Создание достойного RIA-приложения, интенсивно использующего данные, до сих пор сложно.Несмотря на наличие тонны каркасов.
Я собираюсь создать свой собственный фреймворк для такого рода приложений.Одним из ключевых требований является создание лесов (создание пользовательского интерфейса из модели).Другой - это серверная часть .NET.Я знаю о динамических данных asp.net, oracle ADF, fornax / sculptor и т. Д. (Да, два последних предназначены для Java).Существует множество серверных сред, таких как Django (на основе Python), Grails (на основе Groovy), ruby on rails.Они обычно содержат некоторые ORM и виды лесов.Но главная проблема для меня заключается в том, что они не содержат клиентской среды.Они генерируют код пользовательского интерфейса скаффолдинга, но его нельзя использовать повторно в коде, написанном от руки.Мне также не нравится подход asp.net WebForms с «серверными элементами управления».Даже если генерируются все серверные разметки (например, или похожие JSF / JSP).
С другой стороны, существуют (даже более) клиентские инфраструктуры.Они обычно не связаны с технологиями серверов.Здесь у нас есть Dojo, ExtJS, SmartClient, QooxDoo и другие. Все они предлагают нам написать JS-код и сделать немного CSS / HTML дизайна.Это неплохо, но JS-код (так как он является скриптовым кодом) очень подвержен ошибкам.
Поэтому мое первоначальное видение состояло в том, чтобы взять asp.net mvc для серверной части и взять какую-нибудь хорошую клиентскую среду.Проблема в том, какой выбрать.
Моим первым решением было взять инструментарий Dojo.Это фреймворк с множеством полезных свойств для JS (mixins, pub / sub, соединения, Defered, модули, Json-синтаксический анализатор, шаблоны Dijit, абстракции данных) и имеет много виджетов.И это бесплатно.
Но потом я посмотрел на ExtJS.Я еще не изучал это.Но их демо очень приятно.Мне показалось, что качество графического интерфейса намного лучше, чем у виджетов Dojo.Но ExtJS стоит денег для коммерческого использования.Но платить деньги за хороший фреймворк - не большая проблема.
Тогда я посмотрел на SmartClient.Специально для витрина SmartGWT .Я должен сказать, что каждый, кто выбирает фреймворк / библиотеку Ajax, должен это видеть.Это потрясающе.Это клиентская библиотека (SmartClient), встроенная в GWT.Таким образом, мы можем создать удивительное приложение Ajax с Java.С компилируемым языком, без языка сценариев!Большой!Но их еще больше - SmartGWT EE.Он легко интегрирует клиентский код (сгенерированный из Java) с серверными объектами Java, обеспечивая двустороннюю привязку данных между моделью данных (связанной с сервером) и элементами управления графическим интерфейсом.
Это то, что мне нужно, но мне нужна такая вещьдля .NET.Да, я знаю о скрипте №.Но это очень ограничено (c # 1.0).Там также JSC .Работает, даже отладка.Но это далеко от возможностей GWT + SmartGWT.
Так что, глядя на такую красоту, создание фреймворка с asp.net mvc + dojo больше не кажется хорошей идеей.
Я уверен, что многие из вас сталкивались с похожими проблемами: как эффективно соединить клиентскую часть Ajax RIA со стороной сервера в приложениях, требующих большого объема данных (например, для предприятий / интрасетей) (не веб-сайтов).Так какой подход / технологии еще имеет смысл рассмотреть?
ps Я даже рассматриваю возможность использования GWT.Но я должен использовать две IDE: одну для клиентского кода (java) и другую для серверного кода (asp.net mvc).Но это не предел мечтаний.