Я бы оценил мысли людей о дилемме, с которой я боролся с тех пор, как вышел ASP.NET.
В классическом ASP уровни кода были минимальными. Страница ASP содержала HTML и script вместе взятые. Компоненты COM содержали бизнес-логику и DAO infrastrcuture. Сами страницы ASP были грязными, но все было в одном месте.
Кодирование кода ASP.NET упрощает код, это прекрасно. Элементы управления позволяют нам быть более объектно ориентированными на уровне представления. Эти вещи приятные.
Вот моя проблема. Многие проекты, в которые я вошел, - это корпоративные веб-приложения, но не все эти сложные, скажем, 10 или около того веб-страниц/пользовательских интерфейсов, много взаимодействия с базами данных и т.д. Это было кусок торта, чтобы понять. Теперь я часто сталкиваюсь с 5-10 слоями кода для создания довольно простой веб-страницы. Они могут включать классы ASP, code-behind, control, DTO, объекты ORM, а затем несколько других, просто заброшенных черном.
В дополнение к 5-10 уровням для доступа к базе данных существует множество пользовательских объектов, созданных только для хранения обычных данных, вместо использования POCO (простые старые объекты CLR), например, коллекция. Чтобы понять эти объекты, часто приходится трассировать через наследование hiearchy, включая 3 или более уровней объектов и интерфейсов.
Вот суть: Раньше я смотрел 1 страницу ASP и говорил 1 или 2 маленьких объекта, несколько SQL-запросов, они выполнили свою работу и были довольно просты в обслуживании и понимании.
Теперь для одной и той же страницы может быть буквально 50 объектов и более, распространяемых через сотни объектов в пользовательском пространстве имен.
Я прошу вас, коллеги-ремесленники, это прогресс? Некоторые люди немного за борт с их забавными новыми игрушками для дизайна? Есть ли счастливая среда? Есть ли способ эффективно использовать шаблоны проектирования, не создавая так много объектов, что он становится хуже спагетти, чем старый процедурный парадигм?
Поделитесь своими мыслями.