Будет ли 2-й уровень правильным выбором для этого сценария?

Будет ли 2-й уровень правильным выбором для этого сценария:

  1. база данных sql server
  2. бизнесу никогда не потребуется более пары сотен одновременных подключений к общей базе данных по локальной сети
  3. тот факт, что (я считаю) гораздо меньше усилий для разработки 2 уровня
    приложение
  4. Автоматическое обновление клиентских программ по локальной сети

4 ответа

Сначала это может быть проще для разработки, но я также думаю, что в долгосрочной перспективе это будет стоить вам, если проект не является тривиальным инструментом только для внутреннего использования.

Нужны ли вам 3 уровня, зависит от того, как долго вы будете поддерживать проект и сколько функций / обновлений вы планируете для него позже. Это также может зависеть от того, сколько ошибок вы готовы принять (и исправить). 3-уровневый ИМО имеет тенденцию создавать более стабильное программное обеспечение.

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

Если это приложение будет иметь важное значение для бизнеса и будет существовать в течение значительного периода времени, я думаю, вы обнаружите, что дополнительное время, потраченное на разделение вашей презентации, бизнес-логики и доступа к данным на их собственные уровни, будет окуплено, когда оно приходит время что-то исправить, изменить логику или расширить приложение.

Это один из тех вопросов, где вы, вероятно, получите столько же разных мнений, сколько и ответов.

Скопировано из книги Чарльза Уильямса "Профессиональные базы данных Visual Basic 6": -

2-й уровень против N-уровня

Выбор между 2-уровневой и n-уровневой моделями, кажется, является тем, что думает народ. Существует так много переменных для учета в уравнении (включая предпочтения), что ни одна книга не может определить наилучшую структуру для вашей модели клиент-сервер. Некоторые из этих переменных могут включать в себя:

Гибкость и мощь выбранного вами сервера базы данных. Современные серверы баз данных способны обрабатывать сотни или даже тысячи одновременных соединений без перехода на трехуровневую архитектуру.

Мощность и универсальность процессора, в котором размещается сервер. Чем мощнее процессор, тем быстрее сервер будет обрабатывать запрошенные задачи.

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

Экономический фактор. Сколько вы готовы потратить на свою систему. Как правило, n-уровневая система будет стоить дороже в разработке и обслуживании. Если вы можете справиться с 2-уровневым решением, вы можете сэкономить много денег.

Мне кажется, это говорит о том, что если вы не разрабатываете для (очень популярного) веб-приложения, то двухуровневое решение может быть более логичным.

Оба ответа, кажется, почти говорят о том, что 3 уровня - превосходное решение. возможно

Рокфорд Лхотка, похоже, утверждает, что вам следует использовать 2-уровневый уровень, если только анализ затрат и выгод вашей конкретной ситуации не приведет к 3-уровневому анализу.

он говорит:

Как хороший архитектор, вы должны быть вовлечены в добавление уровней в вашу систему.

Безопасность, которую он предлагает, является единственной областью, в которой трехуровневое решение явно превосходит другие.

И он утверждает, что

Хуже того, границы увеличивают сложность проектирования программного обеспечения, сетевой инфраструктуры, управляемости и общего обслуживания системы. Короче говоря, чем больше уровней в приложении, тем больше сложность, с которой приходится иметь дело - что напрямую увеличивает затраты на создание и обслуживание приложения.

Наконец, что касается масштабируемости, я хотел бы знать, правда ли, что если вы используете отключенные наборы записей в ado для доступа к данным, у вас есть пул соединений по умолчанию и, следовательно, высокая степень масштабируемости в любом случае?

Другие вопросы по тегам