Рекомендации и проектные решения с .NET и WCSF - PullRequest
0 голосов
/ 21 мая 2011

Мы начали миграцию клиентского приложения .NET на веб. Объем работ ограничен переносом пользовательского интерфейса winforms в веб-интерфейс. Компоненты логики biz будут повторно использоваться как есть после удаления более раннего слоя оболочки веб-службы, поскольку компоненты представления и компоненты biz будут размещены в IIS. Мы решили использовать WCSF для этой цели. Я хотел бы подтвердить некоторые из решений по арке / дизайну,

  1. Нужно ли нам использовать каркас JS, например, JQuery, DOJO и т. д. для AJAX? Или же элементы управления ASP.NET имеют адекватную встроенную поддержку для выполнения всех проверок интерфейса на основе JS, отправки форм AJAX, отображения сообщений об ошибках и т. Д.

  2. Есть ли какие-либо опасения по поводу использования фундаментных модулей? Делает ли это приложение тяжелым, загружая и кэшируя все модули во время запуска?

  3. Является ли использование статического метода / класса для всех функциональных возможностей сервиса хорошим подходом? Или вместо этого мы должны использовать нестатический класс / метод с зависимостью службы?

Я новичок в .NET:)

Ответы [ 2 ]

0 голосов
/ 26 октября 2011

Ваш профиль предполагает, что, хотя вы можете быть новичком в .NET, вы являетесь опытным разработчиком Java.

1 - Я согласен с TomTom в том, что вам НЕ НУЖНА инфраструктура JS, но средства проверки ASP.NET WebForms довольно ограничены. Вы быстро обнаружите, что вам нужно написать собственный JS, и наличие фреймворка, такого как jQuery, с самого начала поможет вам. Такие вещи, как отключение всех кнопок, когда кто-то нажимает на одну из них, чтобы предотвратить двойную обратную передачу, становятся намного проще с помощью селекторов jQuery.

Тем не менее, альтернативой может быть покупка некоторых сторонних элементов управления у таких компаний, как Telerik, DevExpress или Infragistics. Существует бесплатный, открытый сообществом, поддерживаемый сообществом набор элементов управления AJAX, который называется ASP.NET AJAX Control Toolkit, здесь: http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite. Стандартные элементы управления ASP.NET довольно простые.

2 - Все приложения ASP.NET имеют неизбежное время запуска, когда они загружаются в память при первом посещении после обновления, например, 10-20 секунд для типичного бизнес-приложения. Я не исследовал, сколько еще времени добавляет модуль-загрузчик WCSF, но он все равно будет частью начальной загрузки. Как правило, вы посещаете свой сайт ASP.NET один раз после обновления, чтобы вызвать начальную загрузку, чтобы клиенты не должны были это делать. Каждый раз, когда WCSF добавляет, это действительно не имеет значения для клиентов в этом случае.

3 - Недостатком использования статических методов для служб является то, что вы не можете добавить их к интерфейсам в .NET. Если вы используете WCSF, я настоятельно рекомендую использовать его функции DI для разрешения интерфейсов, что означает использование только нестатических элементов. Также сложнее столкнуться с проблемами модульного тестирования с нестатическими вещами, например конструкторы / инициализаторы, которые запускаются только один раз без возможности обновления переменных-членов.

0 голосов
/ 21 мая 2011

Я новичок в .NET:)

Звучит как юный девеопер.

Re 3: плохой подход. Используйте инжектор зависимостей и избегайте статических методов в 90% случаев. Вы отказываетесь от большой гибкости. Это, кстати, мой подход к младшему разработчику - статические методы и «исцеление» уже много лет являются стандартной ИТ-архитектурой и не имеют отношения к .NET.

Re 1: вам НЕ НУЖНО использовать каркас JS. Вам также не нужно покупать автомобиль, и вы можете построить свой собственный. Это не рентабельно, хотя. Веб приложение? УЗНАЙ. Сначала .NET ... как тот факт, что в 3-й версии появился новый подфреймворк Microsoft под названием MVC, который делает разработку хорошего программного обеспечения более удобной (тестируемой серверной частью) и больше подходит для веб-приложений. Внутренние стандартные средства управления MS для asp.net и всей платформы веб-форм ограничены и имеют свои собственные проблемы. Тем не менее, MVC наиболее полезен, если вы знаете, что делаете - JQuery (интегрированный) и модульный тест / архитектура.

Re 2: что вас волнует;) Как в: даже если это делает их академически медленнее, это не очень важно. Тем не менее, что такое фундаментальные модули? Я не вижу этого слова ни в среде ASP.NET, ни в документации IIS.

...