Для многих из вас это будет звучать как нелепый вопрос, но я спрашиваю, потому что у меня практически нет опыта работы с веб-формами ASP.Net - я перешел прямо к ASP.Net MVC.
Сейчас я работаю над проектом, в котором мы ограничены .Net 2.0 и Visual Studio 2005.
Мне понравилось четкое разделение проблем при работе с ASP.Net MVC, и я ищу что-то, чтобы сделать веб-формы менее невыносимыми. Есть ли рекомендуемые шаблоны или практики для людей, которые предпочитают asp.net MVC, но застряли на .net 2.0 и visual studio 2005?
asp.net-mvc
jlnorsworthy
источник
источник
Ответы:
Я бы порекомендовал Model View Presenter (MVP). Мы использовали это в недавнем приложении WebForms, и это повысило нашу тестируемость и позволило нам обеспечить разделение задач.
http://msdn.microsoft.com/en-us/magazine/cc188690.aspx - отличная статья Джина Пола Буду по этому шаблону; загрузка кода также хороша. Вы можете обнаружить, что вам не нужны DTO и интерфейсы для DTO.
Еще одна хорошая статья на codeproject.com: http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx
Изменить: есть также фреймворк под названием WebForms MVP, но я не знаю много об этом.
источник
Я бы порекомендовал вам понять жизненный цикл страницы .net 2.0
Эти видео, возможно, стоит посмотреть, хотя не все они бесплатны, но, по крайней мере, это будет хорошим началом для вас ... Дело в том, что это даст вам представление о том, что делать дальше.
источник
Как вы, возможно, уже поняли, вам необходимо отучиться от нескольких вещей, которые вы изучили с ASP.NET MVC (кстати, то же самое происходит, когда человек ASP.NET начинает изучать ASP.NET MVC). Вы все еще можете реализовать шаблон MVC в ASP.NET, но разделение View и Model очень размыто в ASP.NET из-за архитектуры событий / пост-обратной отправки.
По моему мнению, большая часть вашего нового обучения будет связана с Page Life Cycle и Eventing & Controls. Обычные вещи взаимодействия Session, Cache, ViewState и DB остаются прежними.
НТН ...
источник
Оформить заказ шаблона Front Controller и Реализация Front Controller в Asp.Net. Делайте это только в том случае, если ваш проект будет хорошего размера. Выполнение этого для небольшого проекта не будет оправдывать возврат инвестиций.
В небольшом проекте вы можете попытаться установить некоторые рекомендации. Например - в коде нет бизнес-логики, нет использования сессий и т. Д.
Посмотрите, что подходит лучше всего в вашем случае. В любом случае держи искушение делать над инжинирингом.
источник
В темные дни .NET 1.1 я создал (думаю, как и все) своего рода систему MVC для приложения, которое работало так.
Страница была сделана, чтобы быть своего рода «поддельным» мастером. Это было немного сантехника, чтобы показать меню, сценарии, стили и т. Д.
«Представления» были отдельными пользовательскими элементами управления.
Там была таблица с информацией о каждом представлении. Например, «Продукт» будет загружен
~/Controls/Product.ascx
в заполнитель. В таблице также есть поле, которое содержит имя типа класса модели (как будто). В каждой модели реализован известный интерфейс. Этот класс был создан с использованиемActivator.CreateInstance()
и вызван для инициализации, а затем был передан самому элементу управления (инверсия управления?). Затем элемент управления вызывал различные методы для получения наборов данных или еще чего-нибудь. Сам интерфейс был нормализован, чтобы иметь обычные методы CRUD (Read / Write / List / Delete). Под этим был также слой DAL / ORM.Это было не красиво, но работало хорошо. Было легко тестировать и разрабатывать, и большинство разработчиков, которые пришли на борт, довольно быстро освоились. Больше всего его было относительно просто создать.
источник