Желательно ли сделать веб-программу для взаимодействия с уровнем, независимым от базы данных? - PullRequest
0 голосов
/ 26 ноября 2010

Я раньше программист Winforms; Я всегда разделяю программы, которые пишу, на две части: интерфейс (Winforms) и средний уровень (облегчается Remoting / WCF)

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

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

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

1 Ответ

0 голосов
/ 26 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...