Архитектура n-ряда ASP.NET MVC4: лучший подход

Я развивающий 3 архитектуры ряда для MVC4 webapp + EntityFramwork5. Я хочу сохранять отдельным слой, настолько только DAL знает, что я использую EF, например.

На самом деле у меня есть много классов, чтобы управлять этим:

DAL

  1. Предприятие ПОСТЕПЕННО
  2. Предприятие DataContext: DbContext
  3. Хранилище Предприятия

BL

  1. Предприятие ViewModel
  2. Обслуживание Предприятия <лития> (иллюстрируют примерами Хранилище Предприятия)

СЕТЬ

    Диспетчеры Предприятия <лития> (иллюстрируют примерами Обслуживание Предприятия)

Это работает, но довольно твердо поддержать. Я думал, чтобы снести Хранилище Предприятия в DAL и использовать непосредственно DataContext (если я не неправ, после того, как весь DbContext был desingned, чтобы быть Хранилищем и Единицей работы), но это вынудит меня добавить ссылку на EntityFramework.dll в моем BL. Не большая проблема, но I0m, не уверенный, что это - лучший выбор.

Совет?

(Я надеюсь, что дал достаточно информации, если вы нуждаетесь в больше, просто спрашиваете),

5
nl ja de
I' m не совсем уверенный, почему u упоминают, трудно вести ваш проект. Какой слой делают вы думаете, что действительно ли трудно поддержать?
добавлено автор cat_minhv0, источник
привет @Davide, вы могли применить некоторые шаблоны разработки GOF для своего проекта также. Например, если вы могли бы добавить область к ПОСТЕПЕННО, можно использовать образец "Строителя":).
добавлено автор cat_minhv0, источник
Например, если я добавляю область к ПОСТЕПЕННО, I' ll должен обновить datacontext (не всегда), dal хранилище, модель представления BL, обслуживание BL.. не немногие.. но вероятно необходимость в этой структуре (или ошибка дизайна)
добавлено автор Davide, источник

1 ответы

Можно использовать этоthisandthisarticle.

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

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

  Для тех, у кого нет опыта, позвольте мне кратко упомянуть общие шаги, которые вовлекли в architecturing программное обеспечение ниже...

Поймите, что начальное потребительское требование - Задает вопросы и проводит исследование, чтобы далее разработать требование
Определите технологический маршрут системы предпочтительно в визуальном (диаграмма) форма. Я обычно рисую диаграмму технологического маршрута здесь. В моем
 

усилие, я попытался бы определить версию руководства системы сначала и затем попытался бы преобразовать это в автоматизированную версию в то время как идентификация процессов и их отношений. Этот технологический маршрут диаграмма, которую мы рисуем здесь, может использоваться в качестве среды, чтобы утвердить захваченные требования с клиентом также. Определите модель разработки программного обеспечения тот номер люкс ваши требования Когда требования полностью захватываются и определяются перед началом дизайна можно использовать модель 'Water-Fall'. Но когда требования не определены, вариант 'Спирали' может использоваться, чтобы иметь дело с этим. Когда требования не определяются, система определяется, в то время как она разрабатывается. В таких случаях необходимо держать соответствующие места в соответствующих модулях, какие более поздние расширения ожидаются. Решите что архитектура использоваться. В моем случае, чтобы проектировать нашу Систему управления документами (DMS), я буду использовать комбинацию ASP.NET MVC и многоуровневая архитектура (три варианта ряда). Проанализируйте систему и определите ее модули или sub системы.
Выберите одну sub систему за один раз и далее проанализируйте ее и определите все гранулированные требования уровня, принадлежащие той части систем. Признайте предприятия данных и определите отношения среди предприятий (Диаграмма сущностей и связей или Диаграмма ER). Это может сопровождаемый, определяя предприятия (Некоторые предприятия непосредственно карта с классами вашей системы), и определяют бизнес технологический маршрут. Организованный ваши предприятия. Это - то, где вы нормализуете свою базу данных и решаете что понятия ООП и шаблон разработки, который будет использоваться и т.д.
Сделайте свой дизайн последовательным. Следуйте тем же самым стандартам через все модули и слои. Это включает оптимизацию понятий (как пример, если вы использовали два различных шаблона разработки в два различные модули, чтобы достигнуть той же самой цели, затем выберите лучше подход и использование, что в обоих места), и соглашения использовал в проект. Настройка дизайна является последней частью процесса. Чтобы сделать это, у вас должна быть встреча с проектной группой. В этом встреча вас должна представить ваш дизайн вашей команде и заставить их спросить вопросы об этом. Возьмите это в качестве возможности честно оценить / приспособьте свой дизайн.

5
добавлено
Пожалуйста четко дайте понять, что это - длинная цитата из вашей первой ссылки, и также включайте пронумерованный список? Спасибо. It' s хорошая вещь вы didn' t дают ответ только для связи.
добавлено автор Gert Arnold, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Software Design and OOP
Software Design and OOP
1 481 участник(ов)

OOP, software design, architecture, GRASP, GoF, SOLID, separation of concerns, безысходность. Пожалуйста, придерживайтесь указанных тем. https://oopru.github.io More cool stuff: @fp_ru @tdd_ru @coding_interview_ru @coding_ru

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)