2010-11-26 6 views
0

Я программист Winforms раньше; Я всегда разделяю программы, которые пишу в двух частях: front-end (Winforms) и средний уровень (облегчается с помощью Remoting/WCF)Можно ли создать веб-программу для взаимодействия с агностическим слоем базы данных?

При таком подходе интерфейсный код не может получить доступ к Linq или System.Data. SqlClient. Но это имеет дополнительное преимущество в том, что средний уровень является мгновенным SOA-гражданином (сервис-ориентированная архитектура), который может использоваться в сценариях B2B, агностиках баз данных и в Интернете, даже если это просто приложение Winforms.

Теперь я изучаю веб-навыки. Используя проект SportsStore из книги Pro ASP.NET MVC, неизбежно, что я бы сравнил мой старый подход (?) (Средний уровень) и подход хранилища к этой книге. Подход репозитория предоставляет механизм доступа к данным (Linq to SQL) непосредственно на интерфейсе (SportsStore.WubUI). Используя подход репозитория, SportsStore.WebUI все еще имеет прямое подключение к базе данных.

Вопрос в том, что на веб-программах я должен стремиться к тому, чтобы интерфейс был интерфейсом только к среднему уровню (поэтому интерфейс может быть агрегированным по базе данных, а средний уровень - мгновенным SOA-гражданином) , или я должен использовать базу данных напрямую (с помощью подхода репозитория, ORM или аналогичного) на front-end?

ответ

0

Я уверен, что эта книга нарушила некоторые лучшие практики ради краткости. Авторы должны балансировать «как я могу понять свою точку зрения» по сравнению с «каким правильным способом это сделать»; они обычно выбирают первый (как и должны - это книга о веб-разработке, а не об архитектуре, не так ли?).

Вы должны абсолютно продолжать использовать n-уровневые архитектуры. Вся суть архитектуры n-уровня заключается в том, чтобы позволить вам (более) легко обменивать слои - переключать базы данных, переключать пользовательские интерфейсы (например, заменить Winforms на ASP.NET).

 Смежные вопросы

  • Нет связанных вопросов^_^