AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2010, 23:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
axcoder: the future of F#
Источник: http://axcoder.blogspot.com/2010/11/future-of-f.html
==============

The very interesting session from PDC10 related to the future of F# - Microsoft functional-object-imperative variance of OCAML.

They are extending application with "type providers", which allow to extend static type system of F# with dynamically generated types withoun explicit code generation - by implementation of a very simple interface.

I think it can be useful techique to implement business platforms such as LightSwitch (when it come to C#) - LightSwitch authors can just implement type provider for entities and do not generate very much intermediate code.

PS. I think there is aplso enteresting how easy Don manipulates various data in F# interactive


Источник: http://axcoder.blogspot.com/2010/11/future-of-f.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 02.11.2010, 17:08   #2  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
:)
Какая запись интересная прорвалась, интересно сколько участников данного форума видели в глаза код Ocaml, ну не заглядывая в вики? Я вот только что впервые увидел.

p.s. На всякий, в посте нет никаких претензий, просто улыбнуло
Старый 02.11.2010, 18:40   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а о чем там?
кто смотрел? и кто может пересказать на родном языке?
__________________
полезное на axForum, github, vk, coub.
Старый 02.11.2010, 18:48   #4  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от mazzy Посмотреть сообщение
а о чем там?
Я честно говоря не смотрел, так как про F# ничего не знаю, но подозреваю что данный пост к аксапте толком отношения не имеет, не считая того, что автор, если я правильно понял, belugin. Я вот немного поглядываю на эти функциональные языки и видимо мозг сильно испорчен прикладным программированием , я все никак не могу понять что же такое на них будет удобно писать и близкое к учетной тематике? Решительно не понимаю, хотя Scala(язык), который тоже испытал влияние OCaml, вполне себе интересная шутка.
Старый 02.11.2010, 23:21   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
На самом деле, сложны не столько языки, сколько теория, лежащая в основе декларативного программирования. Если кто-то решит разобраться - рекомендую htpd, с которой сам начинал когда-то. Да, это scheme, но после изучения основ будет проще перейти на любой другой язык программирования, если вас пугает большое количество скобочек

По поводу практического применения в Аксапте, я последнее время часто использую их для того, чтобы автоматически порождать однотипный код X++, когда надоедает писать его ручками. Начиная от простейших find(), exist() и заканчивая FSM, которые я использую для разбора формул с самописном модуле отчетности или при анализе импортируемых текстовых файлов.
За это сообщение автора поблагодарили: Lemming (5).
Старый 03.11.2010, 08:17   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Источник: http://axcoder.blogspot.com/2010/11/future-of-f.html
==============

The very interesting session from PDC10 related to the future of F# - Microsoft functional-object-imperative variance of OCAML.
редкостное блядство.
во-первых, заставили закачивать "последнюю версию" (хотя у меня самая последняя)
Название: 1.PNG
Просмотров: 1384

Размер: 12.4 Кб

и это все чтобы увидеть ссылку и скачать файл.
у кого-нибудь есть нормальная человеческая ссылка на видео в высоком разрешении?
__________________
полезное на axForum, github, vk, coub.
Старый 03.11.2010, 08:24   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Источник: http://axcoder.blogspot.com/2010/11/future-of-f.html
==============

The very interesting session from PDC10 related to the future of F# - Microsoft functional-object-imperative variance of OCAML.
пидарасы. кто ж так сайты то делает...
как они собираются продвигать свои технологии и свой гребанный силверлайт, если даже партнеру со всем установленным майкрософотвским требуется полчаса чтобы просто ссылку получить на видео. Кто ж посмотрит это видео...

нормальная ссылка:
http://videoaz.microsoftpdc.com/vod/.../FT12_High.wmv
http://videoaz.microsoftpdc.com/vod/...s/FT12_Low.wmv
__________________
полезное на axForum, github, vk, coub.
Старый 03.11.2010, 08:57   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Источник: http://axcoder.blogspot.com/2010/11/future-of-f.html
==============

The very interesting session from PDC10 related to the future of F# - Microsoft functional-object-imperative variance of OCAML.
Фееричное блядство, а не страница с видео.
Я то все думал, почему автор не дал название видео в ссылке - ведь это повысило бы PageRank страницы с видео.

Оказывается, на этой странице НЕЛЬЗЯ выделить и скопировать текст.
следовательно нельзя быстро обратиться к поисковикам, нельзя воспользоваться кучей сервисов, которые работают по выделенному тексту на странице... Даже просто скопировать название себе в блог - и то нельзя.

в общем, я потратил на это видео около часа, но так и не посмотрел его.
посмотрел только 10минутную (!) заставку с музыкой.
мудаки. слов нет.

для все еще желающих поискать вокруг этого видео - вот введенное руками название "The Future of F#: Data and Services at your Finger Tips"
а я - пас.
__________________
полезное на axForum, github, vk, coub.
Старый 03.11.2010, 09:16   #9  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,495 / 1070 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Мне ввобще непонятно, как на сайтах M$ можно что то найти. Самый отвратный принцип построения сайтов у них. Как они вообще хотят с кем то конкурировать в области веб, если не умеют делать сайты. Даже сам Бил Гейтс как то высказал свое фи по этому поводу.
Старый 03.11.2010, 10:00   #10  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Кстати раз уж народ массово жалуется на сайты микрософтовские, не могу не отметить что после того как community.dynamics.com переехал на новое ядро (и типа стал Web 2.0) я нечаянно лишился прав доступа туда. Попытался ответить на какой-то вопрос, система не дала (попросила слогироваться). Я ничего не подозревая разлогировался и попытался снова слогироваться. В итоге - теперь при любой попытке доступа - система предлогает мне зарегистрироваться и естественно говорит что имя Denis Fedotenko уже занято. Не смотря на всяческие чистки кук и временных файлов, вывести ее из этого состояния не удалось. Создается ощущение что микрософт как-то очень крепко поломал свой passport.net (Который, к слову сказать, проектировал тот же Hal Howard, который счас рулит разработкой Dynamics ERP )
В итоге - с работы мне на этот сайт просто не войти...

Из дома все-таки удается читать эту community. Интерфейс-ужасен. Слева треть экрана занята списком форумов по разным продуктам (наверное процентов 80 пользователей работает с одним или двумя продуктами, непонятно зачем под это треть экрана отвели). Справа - треть экрана занята ссылками на customersource/partnersource и копией некоторых (непонятно по какому принципу отобранных) тем из дискуссии. Внизу помещена фотография микрософтовского телесейла, который безнадежно ждет что после посещения данного сайта кто-то ему позвонит с вопросами. Наверху присутствует огромное поле "Ask Community", которое позволяет ОСУЩЕСТВЛЯТЬ ПОИСК по форуму. В прошлой версии форума (это в которой интерфейс был не такой кривой) такой возможности не было... (Был только поиск по ВСЕМ форумам, неважно - GP/NAV/AX/SL. Это ведь теперь MS Dynamics, а не отдельные продукты )

Говоря о контенте, хочу заметить о том что форум фактически не модерируется. Ну то есть - я думаю что если там попробовать развести дискуссию на какие-нить политические темы - их отмодерируют. Но вот если спросить чего-нить типа "Как мне добавить поставщика в ledgerTrans", никто не напишет о том что сама постановка задачи странненькая. Наоборот - почти точно кто-нить предложит переопределить метод insert() в vendTrans или какую-нить подобную фигню.

Да - забыл сказать, что существенную часть контента составляет ретрансляция блоггеров-флюродроссеров, которые в свою очередь пересказывают своими словами маркетинговую лабуду с сайта самого микрософта или его партнеров...

Вот такой вот Web 2.0
Старый 03.11.2010, 11:19   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, чтобы Маззи хотя бы чуть-чуть успокоить (кстати, он правила нарушил, маты запрещены, насколько я помню - кто-нить из модераторов выпишите-ка ему предупреждение и read-only на 3 дня), ссылочка:
http://itc.ua/news/microsoft_budet_i...verlight_49615
Старый 03.11.2010, 11:56   #12  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Цитата:
Сообщение от Андре Посмотреть сообщение
Да, это scheme, но после изучения основ будет проще перейти на любой другой язык программирования, если вас пугает большое количество скобочек

По поводу практического применения в Аксапте...
Скобочки не пугают, я тут Clojure(диалект Lisp'a) ковыряю, по поводу ссылки на книгу, увы теорию на английском языке читать не готов, тут на русском то некоторые вещи с первого раза не понять Суть вопроса про функциональные языки была в том, действительно они столь хороши и универсальны? Суровые Lisp программисты говорят что на нем можно написать абсолютно что угодно, но вот глядя на тот же Clojure мне кажется что он менее выразителен для тех задач, которые привыкли решать участники этого форума. Во всяком случае как по мне, для описания бизнес логики ООП парадигма более подходит, нежели функциональная.


Цитата:
Сообщение от kashperuk Посмотреть сообщение
Ну, чтобы Маззи хотя бы чуть-чуть успокоить (кстати, он правила нарушил, маты запрещены, насколько я помню - кто-нить из модераторов выпишите-ка ему предупреждение и read-only на 3 дня), ссылочка:
http://itc.ua/news/microsoft_budet_i...verlight_49615
Зато от этой ссылочки сильно заерзали на стульях те, кто вложился в SilverLight как в платформу для десктоп А вообще да, Микрософт в интернете напоминает Крыловскую "Мартышка и очки".
Старый 03.11.2010, 12:38   #13  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
по поводу ссылки на книгу, увы теорию на английском языке читать не готов, тут на русском то некоторые вещи с первого раза не понять
Есть перевод на русский, могу выслать. Теории, кстати там не так много - гораздо больше разобранных упражнений, задача которых, в общем то, сводится к двум вещам - научить студента мыслить рекурсивно и донести идею, что функция это такой же тип данных как и все остальное.

Исходя из поставленных целей подобраны упражнения. Как правило это код, который, как правило, уже решен в стандартных библиотеках - поиск максимума в списке, объединение списков, поиск по дереву и так далее, но реализовав только реализовав все эти алгоритмы самостоятельно и рекурсивно я почувствовал себя достаточно уверенно, чтобы двигаться дальше.

Цитата:
Скобочки не пугают, я тут Clojure(диалект Lisp'a) ковыряю
А в Clojure, кстати, разработчик очень сильно уменьшил количество скобочек (по сравнению с классическим лиспом), а часть оставшихся заменил на квадратные скобки.

Цитата:
действительно они столь хороши и универсальны?
Нет, конечно - серебрянной пули нет и у каждого инструмента есть своя ниша. Другое дело, что чисто функциональных языков не так уж и много и тот же Lisp (и тем более Closure) им не является.

Гораздо важнее, на мой взгляд, что элементы декларативного программирования активно проникают в mainstream и это основной положительный выхлоп волны популярности декларативного программирования, которую мы наблюдаем последнее время.
Старый 03.11.2010, 12:42   #14  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от Андре Посмотреть сообщение
донести идею, что функция это такой же тип данных как и все остальное.
Ты порвал мое представление о мире
Старый 03.11.2010, 13:03   #15  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Не очень понял, чем вызвана улыбка. Вообще я говорил вот про это (на примере Haskell). Или ты имел в виду, что это очевидная вещь?
Старый 03.11.2010, 16:57   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
(кстати, он правила нарушил, маты запрещены, насколько я помню - кто-нить из модераторов выпишите-ка ему предупреждение и read-only на 3 дня),
Публично приношу всем свои извинения.
__________________
полезное на axForum, github, vk, coub.
Старый 03.11.2010, 17:25   #17  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,480 / 1255 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Не стоит спешить: проверь партнерский сайт

С Уважением,
Георгий
Старый 03.11.2010, 17:44   #18  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
:)
Цитата:
Сообщение от Lemming Посмотреть сообщение
Во всяком случае как по мне, для описания бизнес логики ООП парадигма более подходит, нежели функциональная.
С моей точки зрения, SQL, например, это довольно ограниченный функциональный язык - запросы собраются из чистых функций над отношениями.

F#, насколько я знаю, используется в финансовой сфере для всяких финансовых вычислений.

Вот тут обсуждение на stackoverflow что там есть полезного. Например, возможность типизировать переменные единицами измерений - при попытке сложить квадратные метры и секунды будет ошибка компиляции.

Для мена он интересен в качестве скриптового языка - там убрано много ненужных элементов (вплоть до фигурных скобок) - так что код получается коротким, но при этом там строгая статическая типизация - так что студия подсказывает, где ошибка.

Так же F# - это такой же дотнет язык как и все - на нем можно написать сборку, использовать чужой код, он идет в комплекте с VS2010, так что если надо сделать сложный быстрый расчет, то можно его подключить к AX.

Цитата:
Зато от этой ссылочки сильно заерзали на стульях те, кто вложился в SilverLight как в платформу для десктоп А вообще да, Микрософт в интернете напоминает Крыловскую "Мартышка и очки".
Стратегия Microsoft - Silverlight и HTML5

PS. Вообще, посты, которые не относятся к аксапте, я помечаю спецтегом Non-Axaptic. И вообще я ожидал, что предыдущий пост вызовет реакцию здесь а не этот.

PPS. А PageRank я просто даже не озаботился
Старый 03.11.2010, 18:27   #19  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
PS. Вообще, посты, которые не относятся к аксапте, я помечаю спецтегом Non-Axaptic. И вообще я ожидал, что предыдущий пост вызовет реакцию здесь а не этот.
Лучше не вводить ключевое слово, содержащее Axapt
В том числе и по нему, мы отбираем
__________________
полезное на axForum, github, vk, coub.
Старый 06.11.2010, 03:14   #20  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Спасибо за ссылки, по-моему, очень занимательная презентация, заставляет о многом задуматься... К слову, качать вариант high, как оказалось, смысла не имеет: отличается от low он не качеством картинки, а тем, что слева рядом с записью презентации и примеров кода есть небольшое окошко, где показывают докладчика, как он ходит по сцене, жестикулирует, переключает кадры презентации, однако, из-за существенно рассинхронизации звука и видео (!) смотреть на него становится совсем не интересно.
Цитата:
Сообщение от belugin Посмотреть сообщение
F# для мена он интересен в качестве скриптового языка - там убрано много ненужных элементов, но при этом там строгая статическая типизация - так что студия подсказывает, где ошибка.
К слову, для тех, кто не осилил видео, презентация как раз и посвящена, можно сказать, строгой типизации. Вот вкратце ее пересказ.

Итак, тема доклада: Будущее F#: данные и сервисы у вас под рукой в строго типизированном виде (The Future of F#: Data and Services at your Finger Tips, Strongly Typed).
Докладчик: Дон Сайм (Don Syme), некий высокопоставленный исследователь из Microsoft Research
В самом начале докладчик делает многообещающее заявление, что, мол, то, чему посвящен доклад, представляется для него в определенном смысле более важным, чем дженерики в .NET, поддержка на уровне языка программирования асинхронных вычилений (asynchronous programming support), над которыми он работает, и даже в чем-то вжнее, чем F# в целом.
Затем он выдвигает следующие утверждения:
  • окружающий мир богат разнообразной информацией, и чем дальше, тем больше мы нуждаемся в компьютерах и информационных технологиях, чтобы справляться с этим разнообразием;
  • современные приложения работают с самой разнообразной информацией;
  • наши языки программирования, однако, не предоставляют простых возможностей для работы со всей этой разнообразной информацией: вы не найдете в спецификации языка никаких конкретных описаний типов, кроме, может, примитивных типов и строк. Конечно, есть .NET Framework, но и она по-своему скудна: там есть замечательные средства для работы с данными, такими как текст, бинарные данные, XML, но все это - очень общие типы данных.
  • мы можем это исправить. К примеру, отчасти можно решить эту проблему за счет использования языков с динамической типизацией, правда, во многом оставаясь без поддержки инструментальных средств. Но как быть с языками со статической типизацией? Тут один из путей - использование ключевого слова dynamic в том же C#, другой весьма распространенный путь - использование автоматически генерируемого кода.
Далее, делается заявление, что будущее F# как раз и состоит в исправлении этого несоответствия или в предоставлении некоторых интерфейсов, к которым разработчики смогут подключить свои компоненты, чтобы исправить это несоответствие. Для этого будет использовать волшебный (sic!) инструмент под названием Type Providers.
Для примера приводится задача построения объектной модели для строго типизированной работы с химическими элементами. Оставив в стороне этап проектирования, внимание концентрируется на том, что помимо самой объектной модели понадобится также ее информационное наполнение: данные об элементах, их названиях, обозначении, атомной массе, валентности, etc. Затем заказчику может понадобиться информация об изотопах: их наличии и характеристиках; потом он может захотеть иметь информацию о том, кто открыл тот или иной химический элемент - и вам понадобиться спроектировать и реализовать классы для представления информации о соответствующих людях. И вот пока вы всем этим занимаетесь, приходит кто-то и говорит: в моем языке программирования уже есть готовые интегрированные источники данных для работы с химическими элементами, потому что я работаю с языком, где кроме строгой типизации также реализован легкий доступ к разнообразной информации - в отличие от ваших языков, где все приходится программировать "с нуля" в виде классов, их свойств, методов и т.д. А у меня, мол, все под рукой - большая часть накопленных человечеством знаний - в виде источников данных и готовых строго типизированных моделей для работы с ними (и в примере на самом деле подключается некий волшебный источник дынных, предоставляющий разнообразную строго типизированную информацию о химических элементах).
За счет строгой типизации поддерживаются все возможности среды разработки: IntelliSence, строгая проверка на этапе компиляции, etc. До того, как вы запустите код на выполнение, компилятор может подсказать вам, что вы, к примеру, некорректно использовали обращение к тому или иному свойству объекта в LINQ-запросе, и вы поймете, что вам нужно скорректировать запрос, скажем, добавив дополнительную фильтрацию данных.
Какие обобщения можно сделать на основе примера с химическими элементами? При работе в информационно насыщенной среде мы имеем дело с:
  • организованными данными;
  • огромным числом различных "типов";
  • взаимосвязанными (interlinked) данными: от химических элементов мы можем перейти к информации о том, кто их открыл, оттуда - к географиеской информации о месте их проживания и т.д.;
  • в качестве источников информации зачастую используется Wikipedia и тому подобные ресурсы (DBpedia, WolframAlpha, FreeBase, etc)
Извините, но на все это генераторов кода не напасешься.
Волшебство предлагаемого решения в фундаментальном изменении подхода к языку, к архитектуре компилятора и к тому, как мы думаем о языках программирования. Вместо импортирования лишь .NET-сборок, в которых определено конечное относительно небольшое множество типов, мы можем подключить к компилятору механизм предоставления типов (включая проверку типов на этапе компиляции), который за счет т.н. type providers откроет для нас огромное множество типов из окружающего мира: данные веб-сервисов и веб-сайтов, из корпоративных информационных систем, с локальной машины и т.п. Эти type providers могут специализироваться как на работе с каким-то определенным источником данных, так и на работе с определенным типом данных. Таким образом, различные источники данных оказываются интегрированными в контекст разработки программ за счет использования архитектуры адаптеров (провайдеров), отображающих данные на типы языка программирования со строгой статической типизацией.
Что вкратце обеспечивают Type Prividers:
  • данные и сервисы - у вас под рукой;
  • масштабируемость (буквально миллионы типов) - за счет "ленивой" подгрузки типов
  • удобство навигации, поддержку IntelliSence;
  • интеграцию с LINQ-запросами;
  • отсутствие необходимости в явном использовании генераторов кода
Использование того или иного провайдера не отличается от использования обычной .NET-сборки: вам нужно лишь добавить его в список ссылок (references). При этом провайдеры весьма компактны, к примеру, тестовый Microsoft.Management.TypeProvider.dll занимает всего 93kb (около 130 строк кода, правда, в тестовом провайдере поддерживается работа лишь на локальной машине) - и открывает вам полный доступ к миру WMI с его сотнями и тысячами классов, событий и т.д. От провайдера требуется реализация простого и лаконичного интерфейса:
PHP код:
public interface ITypeProvider
{
    
Type GetType(string nameBindingFlags bindingAttr);
    
Expression GetInvokerExpression(MethodBase syntheticMethodBase,
                                    
ParameterExpression[] parameters);
    
event System.EventHandler Invalidate;
    
Type[] GetTypes();

Код провайдера может быть очень простым и занимать около сотни или больше строк; основная его задача - сопоставление информации с системой типов .NET. Архитектура провайдеров открыта, все необходимые руководства и примеры кода будут предоставлены, так что самостоятельное их написание не должно составить труда.
В заключении в качестве примера приводится Windows Azure Marketplace: Data Market, где с одной стороны, могут быть представлены те, кто собирает и систематизирует данные, а с другой - те, кому нужные те или иные данные в структурированном виде, подходящем для автоматизированного использования. Часть данных здесь доступна бесплатно, а для определенных источников может потребоваться подписание соответствующего соглашения и использования определенных учетных данных (credentials) при доступе к источнику информации. В примере набросан код, получающий доступ к одному из источников данных, разбитых в первом приближении на следующие категории:
  • здоровье и здоровый образ жизни;
  • недвижимость;
  • перевозки и навигация;
  • погода;
  • розничная торговля;
  • сервисы, привязанные к местоположению (location based services);
  • статистика;
  • фильмы и развлечения;
  • и др.
Подход с использованием провайдеров типов в перспективе обеспечивает возможность строго типизированной, подразумевающей расширяемость и открытость, не требующей явной генерации кода работы с данными:
  • веб-ресурсов
  • WMI, Active Directory
  • веб-сервисов
  • CRM-систем
  • data markets
  • электронных таблиц (если вы предполагаете, что они будут иметь строго определенную структуру)
  • социальных сетей
  • баз данных SQL
  • XML
  • и др.
Вопрос доступа к данным во многом стал стеной, отделяющей разработчиков, использующих строго типизированные языки программирования, и данные, к которым должны получать доступ приложения, и будущее F# в том, чтобы разрушить эту стену.
За это сообщение автора поблагодарили: mazzy (10), Андре (9), belugin (5), Lemming (5), S.Kuskov (5).
Теги
f#, type providers, функциональное программирование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axcoder: Book review: “Microsoft Dynamics AX 2009 Programming: Getting Started” Blog bot DAX Blogs 1 13.08.2010 16:32
AXDevCenter Headlines: See the Future of X++ and .NET Blog bot DAX Blogs 3 05.04.2010 10:37
axcoder: Search for C# Blog bot DAX Blogs 0 22.05.2009 14:05
axcoder: Book review: “Quality Assurance for Dynamics AX-Based ERP Solutions” Blog bot DAX Blogs 0 27.04.2008 18:07
Dynamics AX: The Future of Dynamics AX and Web 2.0 Blog bot DAX Blogs 0 30.10.2006 22:40

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:19.