Показать сообщение отдельно

Статья:Правильный подход к проектированию ПО
  #1  
Старый 17.12.2009, 13:05
[NiGHT]DarkAngel
Участник форума
Регистрация: 29.03.2005
Сообщений: 138
Провел на форуме:
812087

Репутация: 129
По умолчанию Статья:Правильный подход к проектированию ПО

Правильный подход к проектированию ПО(часть 1)


Введение

При разработке программного обеспечения мы не задумываемся о дальнейшей его судьбе. А что если:
• Придется масштабировать приложение
• Переносить его с Web-приложения на Windows Forms
Придется его полностью переписывать, заново строить архитектуру приложения, все это лишние трудозатраты. А ведь можно было просто изначально подумать над этим?
Вот отсюда и приходит тема этой статьи.

Начинаем проектировать

Для примера возьмем самую простую функцию в программе «Регистрация пользователей»

Она будет разбита на 4 проекта: Domain, Infrastructure,View и ViewModel

Поговорим о каждом из них в отдельности:
Domain – В этом проекте хранится вся бизнес логика программы (Entity and Services)
Infrastructure – В этом проекте хранятся все классы интерфейсов
View – В этом проекте хранится тот вид отображения проекта который вы захотите (Windows Forms или Web Application)
ViewModel – В этом проекте хранятся наши вспомогательные классы для связи Domain и View

Стоит оговорить следующие зависимости(Reference):
Domain видит Infrastructure
ViewModel видит Domain
View видит ViewModel, Infrastructure

В Domain существуют две папки Entity и Service

Теперь можно писать приложения все сущности складываются в Entity, все необходимые операции с ними в Service.

Во ViewModel складываются классы-прослойки, которые получают на вход данные, передают их на обработку сервисам, сервисы возвращают какой-то результат во ViewModel, а она возвращает View что сервис отработан успешно или нет и View выводит только результатирующие сообщение.

Вывод

Таким подходом мы смогли обеспечить легкую масштабируемость приложения, легкое внедрение новых сервисов для вашего приложения и безболезненный переход от Web Application на Windows Forms и обратно.

От автора

Это моя первая статья, если эта тема интересна, могу продолжить развития цикла статей, с подключением репозиториев при разработке,O/R NHibernate, и примерами подкрепленными кодом.
Пример ориентирован на C# и ASP.NET

P.S. Рад буду слышать любую критику и пожелания. Посмотрел вроде такой статьи нет.
 
Ответить с цитированием