Архитектура для нового веб-приложения ASP.NET

Я поддерживаю приложение, которое в настоящее время является просто веб-сервисом (созданный с WCF) и бэкенд базы данных. Веб-сервис создается в слоях с linq-to-sql доступом к данным, расстаются с базовой функциональностью в собственном блоке и к тому же блоке веб-сервиса, который содержит код WCF. Базовый блок также обрабатывает все правила бизнес-логики (очень немногие на самом деле).

Клиент теперь хочет веб-интерфейс для приложения вместо того, чтобы просто получить доступ к нему через другие приложения, которые используют веб-сервис. Я вполне потерян на современном дизайне веб-приложения, таким образом, я хотел бы, чтобы некоторый совет относительно какой архитектура и платформы использовал для веб-приложения. Веб-приложение будет использовать тот же базовый блок с бизнес-правилами и linq-to-sql уровнем доступа к данным как веб-сервис.

Некоторые понятия, о которых я думал:

  • ASP.NET MVC (или MVC-2)
  • Веб-формы
  • Средства управления Ajax - возможно разрешение Ajax управляет доступом существующий веб-сервис через JSON.

Есть ли еще понятия, которые я должен изучить? Какой является лучшим для нового проекта?

Средства разработки являются выпуском Visual Studio 2008 Команды для Разработчиков, бывших нацеленных на.NET 3.5. Обновление Visual Studio, 2010 Premium (или возможно даже Окончательный) возможен, если это приносит какую-либо пользу.

5
задан Anders Abel 23 May 2010 в 17:46
поделиться

5 ответов

Обязательно покопайтесь в ASP.NET MVC2 .

Все наши проекты сейчас разрабатываются с использованием ASP.NET MVC2. Это не просто хорошо масштабируемое . Это также хорошо тестируемое . Что в долгосрочной перспективе приводит к созданию более удобных в обслуживании приложений.

WebForms против MVC2 - (исходя из опыта):

Масштабируемость:

В нашей компании у нас было много приложений, использующих WebForms, которые затем обновлялись и изменялись нами по мере необходимости нашими клиентами.

Я думаю, что в ближайшем будущем ваш клиент запросит дополнительные изменения в приложении. Звоните в другие службы, и, возможно, вам придется переделывать части конечного продукта в соответствии с их пожеланиями.

А с приближением облачных вычислений и платформы Windows Azure вам, вероятно, придется идти в ногу со своим кодом.

ASP.NET MVC абсолютно поддерживает концепцию возможности масштабировать ваше приложение в любое время, когда вы захотите.

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

Это не было большой проблемой, настроить эту функцию. (заняло около 2 часов, включая написание тестов) - перейдем к тестам:


Тестируемость:

Используя WebForms , мы не особо интересовались написанием тестов, потому что это было чистой болью. .Я помню, как писал несколько тестов, чтобы иметь хоть какие-то доказательства, но давайте оставим эту тему .. (: p)

У нас были тесты для наших пользовательских классов, но мы не могли действительно протестировать все обработчики событий в WebForms.

Наша CodeBase намного чище и экономичнее благодаря этой тестируемой среде. Я просто проверяю часть кода, изменяю его, запускаю все тесты и: О, он сломался из-за странного поведения! - Давайте исправим это еще раз. Раньше я помню, как сидел с коллегой, занимаясь отладкой, и часами пытался найти эти ошибки.

С ASP.NET MVC2 у нас теперь не хватает тестов! Мы просим самых разных людей (даже тех, кто не работает в Интернете) предоставить тестовые примеры, которые мы могли бы использовать в нашем TestSuite .

И да, есть еще несколько AJAX-элементов управления:


AJAXability:

Вы спрашивали об элементах управления AJAX, и в сочетании с ASP.NET MVC я настоятельно рекомендую вам ознакомиться с Telerik ASP.NET MVC Элементы управления пользовательского интерфейса .

Если это не для вас, мы также широко используем jQuery и jQuery UI

С ASP.NET MVC и HTML-представлениями эти библиотеки не просто приятно использовать, они просто потрясающе красивы.

Больше нет автогенерации random-html-tag-id-value !

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


Эти фреймворки - это гораздо больше, чем просто система шаблонов T4. Авто-строительные леса для ваших ViewModels / DomainModels с Html.EditorFor () и, конечно же, есть отличный и простой способ использовать парадигмы IoC и DI .

Предполагая, что вы задали вопрос в основном с тегами, связанными с .NET Framework, вы, вероятно, будете его придерживаться.

Чтобы сообщение оставалось полным, есть и другие фреймворки, которые не менее хороши (или даже лучше):

И многие многие другие!

11
ответ дан 13 December 2019 в 19:22
поделиться

Только мое мнение об использовании MVC на клиентских сайтах и ​​веб-форм на страницах администрирования (сайт)

-1
ответ дан 13 December 2019 в 19:22
поделиться

Существует также DynamicData, который может подойти, если вам нужен простой CRUD-доступ к вашим данным.

1
ответ дан 13 December 2019 в 19:22
поделиться

Завод программного обеспечения веб-служб (WSSF) может пригодиться в вашей ситуации.

Это позволит вам определять ваши контракты (возвращаемый объект XML (если вы выбираете XML) и т. Д.) При проектировании связи сервер / клиент с использованием WCF (или стандартного протокола связи веб-службы).

WSSF поддерживает либо ASP.NET MVC , либо ASP.NET MVP . Простой пример архитектуры MVP показан здесь , а также в этой статье .

Что касается меня, я часто использую гибридную архитектуру, использующую немного как MVC , так и MVP , поскольку оба имеют разные сильные стороны, которые в совокупности дополняют друг друга. точки.

0
ответ дан 13 December 2019 в 19:22
поделиться

Я также рекомендую изучить Silverlight.

http://www.silverlight.net/learn/

0
ответ дан 13 December 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: