ASP.NET - Как эффективно использовать шаблоны проектирования без чрезмерного проектирования! - PullRequest
17 голосов
/ 02 февраля 2009

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

В классическом ASP уровни кода были минимальными. Страница ASP содержала HTML и скрипт вместе взятые. Компоненты COM содержали бизнес-логику и инфраструктуру DAO . Сами страницы ASP были грязными, но все было в одном месте.

Кодовый компонент ASP.NET нейтрализует код, это нормально. Элементы управления позволяют нам быть более объектно-ориентированными на уровне представления. Эти вещи хороши.

Вот моя проблема. Многие проекты, в которые я заходил, являются корпоративными веб-приложениями, но не такими уж сложными, скажем, около 10 веб-страниц / пользовательских интерфейсов, много взаимодействий с базами данных и т. Д. Раньше это было очень легко понять. Теперь я часто сталкиваюсь с 5-10 слоями кода для создания довольно простой веб-страницы. К ним могут относиться ASP, программный код, управляющие классы, DTO классы, объекты ORM, а затем еще несколько других, которые просто добавили его в ад.

В дополнение к 5-10 слоям для доступа к базе данных существует множество пользовательских объектов, созданных только для хранения обычных данных, вместо использования POCO (простые старые объекты CLR), например, коллекции. , Чтобы понять эти объекты, часто приходится прослеживать через иерархию наследования, включающую 3 или более уровней объектов и интерфейсов.

Вот суть: ранее я посмотрел одну страницу ASP и сказал, что 1 или 2 небольших объекта, несколько запросов SQL, выполнили свою работу и были довольно просты в обслуживании и понимании.

Теперь для одной и той же страницы может быть буквально 50 или более объектов, распределенных по сотням объектов в пользовательском пространстве имен.

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

Пожалуйста, поделитесь своими мыслями.

Ответы [ 11 ]

0 голосов
/ 02 февраля 2009

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

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

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