0

Я работаю над веб-проектом, который вполне приличный по размеру. В то же время этот проект планируется расширить до нескольких платформ, таких как Android, iOS и т. Д. Я намерен централизовать код, доступ к которому можно получить на нескольких платформах.Решение трехслойной архитектуры

Однако я немного запутался в организации слоев (BL, DL, UI), поскольку я очень новичок в этой конструкции.

Я намерен сохранить весь код, связанный с конкретным модулем, в одной библиотеке классов. Вот почему я сохранил DAL и BL внутри каждого модуля.

подход 1

 - (UI) Web Project   
     - Module1 (Class Library) 
      - Module1.DAL 
      - Module1.BL 
     - Module2 (Class Library) 
      - Module2.DAL 
      - Module2.BL 
     - Module3 (Class Library) 
      - Module3.DAL 
      - Module3.BL 

подход 2

 - (UI) Web Project   
     - DAL (Class Library) 
      - Module1.DAL(folder) 
      - Module2.DAL(folder) 
     - BL (Class Library) 
      - Module1.BL(folder) 
      - Module2.BL(folder) 

Согласно моему пониманию большинство людей идет вторым approatch. Однако могу ли я получить такую ​​же развязанную архитектуру, используя первый подход?

ответ

0

Я бы подумал, что подход 1 намного лучше, поскольку вы можете изолировать весь стек для одного модуля. Однако вы можете разместить свои данные и бизнес-классы в разных проектах.

Вы также можете добиться совместного использования бизнес-логики на нескольких платформах путем введения уровня обслуживания.

Для идеи о том, как это можно сделать, проверить http://serena-yeoh.blogspot.com/2013/07/layered-applications-3-tier.html

Вы также можете скачать образцы здесь. http://layersample.codeplex.com