Будет ли 2-й уровень правильным выбором для этого сценария?
Будет ли 2-й уровень правильным выбором для этого сценария:
- база данных sql server
- бизнесу никогда не потребуется более пары сотен одновременных подключений к общей базе данных по локальной сети
- тот факт, что (я считаю) гораздо меньше усилий для разработки 2 уровня
приложение - Автоматическое обновление клиентских программ по локальной сети
4 ответа
Сначала это может быть проще для разработки, но я также думаю, что в долгосрочной перспективе это будет стоить вам, если проект не является тривиальным инструментом только для внутреннего использования.
Нужны ли вам 3 уровня, зависит от того, как долго вы будете поддерживать проект и сколько функций / обновлений вы планируете для него позже. Это также может зависеть от того, сколько ошибок вы готовы принять (и исправить). 3-уровневый ИМО имеет тенденцию создавать более стабильное программное обеспечение.
Двухуровневое решение может быть проще в разработке, но его будет сложнее поддерживать, если приложение имеет любой размер и / или сложность.
Если это приложение будет иметь важное значение для бизнеса и будет существовать в течение значительного периода времени, я думаю, вы обнаружите, что дополнительное время, потраченное на разделение вашей презентации, бизнес-логики и доступа к данным на их собственные уровни, будет окуплено, когда оно приходит время что-то исправить, изменить логику или расширить приложение.
Это один из тех вопросов, где вы, вероятно, получите столько же разных мнений, сколько и ответов.
Скопировано из книги Чарльза Уильямса "Профессиональные базы данных Visual Basic 6": -
2-й уровень против N-уровня
Выбор между 2-уровневой и n-уровневой моделями, кажется, является тем, что думает народ. Существует так много переменных для учета в уравнении (включая предпочтения), что ни одна книга не может определить наилучшую структуру для вашей модели клиент-сервер. Некоторые из этих переменных могут включать в себя:
Гибкость и мощь выбранного вами сервера базы данных. Современные серверы баз данных способны обрабатывать сотни или даже тысячи одновременных соединений без перехода на трехуровневую архитектуру.
Мощность и универсальность процессора, в котором размещается сервер. Чем мощнее процессор, тем быстрее сервер будет обрабатывать запрошенные задачи.
Сколько пропускной способности работает на сервере и сколько последовательных соединений существует. У вас может быть несколько или много соединений, и каждое соединение может передавать несколько или много запросов.
Экономический фактор. Сколько вы готовы потратить на свою систему. Как правило, n-уровневая система будет стоить дороже в разработке и обслуживании. Если вы можете справиться с 2-уровневым решением, вы можете сэкономить много денег.
Мне кажется, это говорит о том, что если вы не разрабатываете для (очень популярного) веб-приложения, то двухуровневое решение может быть более логичным.
Оба ответа, кажется, почти говорят о том, что 3 уровня - превосходное решение. возможно
Рокфорд Лхотка, похоже, утверждает, что вам следует использовать 2-уровневый уровень, если только анализ затрат и выгод вашей конкретной ситуации не приведет к 3-уровневому анализу.
он говорит:
Как хороший архитектор, вы должны быть вовлечены в добавление уровней в вашу систему.
Безопасность, которую он предлагает, является единственной областью, в которой трехуровневое решение явно превосходит другие.
И он утверждает, что
Хуже того, границы увеличивают сложность проектирования программного обеспечения, сетевой инфраструктуры, управляемости и общего обслуживания системы. Короче говоря, чем больше уровней в приложении, тем больше сложность, с которой приходится иметь дело - что напрямую увеличивает затраты на создание и обслуживание приложения.
Наконец, что касается масштабируемости, я хотел бы знать, правда ли, что если вы используете отключенные наборы записей в ado для доступа к данным, у вас есть пул соединений по умолчанию и, следовательно, высокая степень масштабируемости в любом случае?