#.net #asp.net #winforms #design-patterns #datasource
#.net #asp.net #winforms #шаблоны проектирования #источник данных
Вопрос:
Какой в настоящее время наиболее широко используемый и принятый шаблон проектирования для разработки .СЕТЕВЫЕ приложения с пользовательским интерфейсом Windows и Web?
Примером этого может быть приложение, которое извлекает данные из стороннего источника (такого как RSS-канал) со следующими пользовательскими интерфейсами:
- Пользовательский интерфейс WinForms, который локально кэширует некоторые данные (xml)
- ASP.NET Веб-интерфейс, который кэширует данные на сервере (SQL)
Я думаю о MVC, MVP или MVVM. Я ищу современный шаблон, который использует или применяется к конкретным функциям .NET (таким как привязка данных, LINQ и IProviders).
Комментарии:
1. Если вы используете MVC, посмотрите на ASP.NET MVC вместо ASP.NET
2. Я знаю ASP.NET имеет встроенный фреймворк MVC, я просто думал, что MVC применим только к веб-приложениям.
3. ASP.NET MVC — это платформа, отличная от ASP.NET шаблон MVC применим к веб-формам, но для него нет фреймворка.
Ответ №1:
MVC — отличный шаблон. Это помогает создать разделение задач в вашей архитектуре. Прежде всего — убедитесь, что ваш код модульный, легко читаемый, тестируемый и поддерживаемый. Все это элементы хорошего дизайна MVC.
Комментарии:
1. Я знаю ASP.NET имеет встроенную платформу MVC, но нет встроенного MVC для WinForms. Я подумал, что это может быть связано с тем, что он не подходит для WinForms, так как для некоторых форм может потребоваться несколько просмотров.
2. Другими словами — разве MVC не является чисто шаблоном веб-дизайна?
Ответ №2:
MVC или MVP будут работать хорошо, не слишком уверен, что MVVM работает в Интернете (кто-нибудь может уточнить)?
Вам понадобится уровень сервиса, чтобы вы могли совместно использовать бизнес-логику и уровни данных.
Подробнее о сервисном уровне:
http://martinfowler.com/eaaCatalog/serviceLayer.html
Надеюсь, это поможет.
Комментарии:
1. Я склоняюсь к использованию MVP в качестве шаблона уровня презентации как для веб-клиента, так и для клиента Windows.