У нас достаточно крупное корпоративное, многоуровневое, многоуровневое решение, построенное на .Net 3.5. Система представляет собой сервис-ориентированную архитектуру (службы WCF) с интерфейсом пользователя ASP.Net MVC, стоящим перед ней.
Некоторые ребята из команды работают над инструментарием для системы и реализуют их как архитектуры богатых клиентов WPF, которые подключаются напрямую к базе данных (или другим источникам данных).
Почему-то мне это не подходит по следующим причинам:
- Для этого потребуется, чтобы SQL Server был доступен для нескольких машин (на которых запущены инструменты) напрямую. Разве не рекомендуется когда-либо разрешать вашему уровню приложений подключаться к уровню базы данных? Сквозная аутентификация в любом случае будет использоваться для обеспечения возможности аудита, поэтому не возникает проблем с управлением несколькими учетными записями.
- Дублирование (или, по крайней мере, распространение) бизнес-логики должно произойти. Вместо того, чтобы размещать бизнес-логику на сервере для повторного использования, он должен располагаться на каждой клиентской машине.
- Обслуживание нескольких клиентских установок: теперь все эти машины должны обновляться отдельно каждый раз, когда выпускается новая версия инструмента. Хорошо, вы все равно можете использовать что-то вроде одного щелчка, чтобы автоматически обновлять его.
и т. Д. И т. П.
Я предложил богатую интернет-архитектуру для инструментов, чтобы мы могли использовать расширенные функциональные возможности, которые клиентские машины могли бы затем предоставить (что браузер может быть не в состоянии или просто будет намного сложнее в браузере) , По крайней мере, в этом сценарии основная бизнес-логика по-прежнему будет храниться на уровне служб на серверах приложений, и не будет необходимости в каких-либо прямых подключениях к серверам SQL.
Я понимаю, как использовать Rich Clients для таких приложений, как word или excel, но если у вас уже есть законченное многоуровневое решение, то, конечно, это не лучший способ сделать это?!?
Я бы хотел получить хорошее обсуждение этой темы, поскольку я не думаю, что это одна из тех вещей, на которые можно легко ответить однострочными ответами (я могу ошибаться; -).
Что ты думаешь? Что вы, ребята, испытали в прошлом? Где я могу найти ресурсы, чтобы доказать или опровергнуть мои пункты выше?
См. Также: Google Планета Земля - Богатый клиент или богатая интернет-архитектура?