|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Есть задача на реализацию проекта на MVC. Проект будет состоять из множества модулей(20-40 штук). Каждый бизнес модуль представляет собой некую систему, к примеру модуль заявок, модуль мероприятий и т.д. Для удобства работы с модулем планируется организовать его так, чтобы вся работы велась в нем. В каждом модуле сделать структуру примерно такую. Один модуль - 1 dll. Слои разделены неймспейсами. Соответственно получаем четкую структуру всего проекта, сразу понятно что где лежит и не бегаем по модулям. Соответственно, контроллеры и вьюМодели там. Проект Web не имеет контроллеров и вьюМоделей. Проект Core.Library хранит общий функционал, расширения и т.д. Еще планируется проект для админки. 0. Есть мысли роуты, относящиеся к модулю, так же в проект модуль закинуть. Заполнение таблицы роутов будет в проекте Web, будем тянуть через рефлексию. 1. На сколько такая организация приемлема? 2. Как в больших проектах организовывают структуру солюшена? Подскажите, как видится вам правильнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 00:37 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Sliva, ХЗ. Какие-то модули.. какая у этих модулей связность? Будут ли они работать с одной БД или каждый со своей? Как модули взаимодействуют между собой и взаимодействуют ли? Разделяемые оперативные данные? Общие ресурсы? Честно говоря, от того, что монолит разбит на 20-40 длл, вместо того, чтобы распихать всё по Area, не вижу никаких плюсов, всё равно монолит, пока не будет больше конкретики о том, какие задачи нужно решать, какой характер данных, сколько пользователей и функциональных ролей, как вообще собираетесь организовывать здесь безопасность? Вообще тонна вопросов, и без ответов на них, ответ один: правильно это один единственный проект и «модули» засунуть в Area. Вот так правильно, так как не надо делать телодвижения, не понимая зачем конкретно и для чего это делается. Какую пользу из этого можно извлечь. Ведь так придётся конкретно поебстись, чтобы просунуть свои скрипты, стили, вьюхи через длл. И как бы вы не придумали это сделать, это уже плохо пахнет, прямо на взлёте. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 00:49 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Sliva, Разделить можно следующим образом для монолита: 1. Инфраструктурные сборки (DI, кеш, лог, блокировки, безопасность, и проч.) 2. Сборки доступа к данным (DAL, Repo...) 3. Бизнес-логика (при чём не важно сколько логических модулей, это на кол-во сборок не отражается напрямую, можно не париться и засунуть всё в одну DLL, и разделять по мере острой необходимости) 4. Компоненты для построения UI (dll, npm..) 5. Собственно единственное веб-приложение, которое содержит UI, соединяет всё добро в кучу и содержит только прикладной код. Прикладной код представляет собой набор действий контроллеров, разделённый по Area, которые выражают логическое разделение (бизнес-модули), действия контроллеров содержат код вызова бизнес-логики, используют во вью компоненты для размещения функционала, и связывает данные отправляемые/полученные с клиента с логикой (view model, binding, validation...) SlivaПроект Web не имеет контроллеров и вьюМоделей. Вот это совершенно точно геморрой на задницу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 01:06 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
SlivaПодскажите, как видится вам правильнее.модулей в вашем понимании делать не нужно. Сделайте первый проект без модулей. Т.к. он у вас первый. А модуль заявок у вас АРМ автоматизированное рабочее место по ГОСТ. В первом вашем проекте это просто страничка на веб сайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 07:25 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
SlivaКак в больших проектах организовывают структуру солюшена? сколько у вас страниц в приложении и табличек в базе? Это выясняется до архитектуры. Чтобы не перепутать слово "большой")). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2018, 07:44 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
hVosttSliva, Разделить можно следующим образом для монолита: 1. Инфраструктурные сборки (DI, кеш, лог, блокировки, безопасность, и проч.) 2. Сборки доступа к данным (DAL, Repo...) 3. Бизнес-логика (при чём не важно сколько логических модулей, это на кол-во сборок не отражается напрямую, можно не париться и засунуть всё в одну DLL, и разделять по мере острой необходимости) 4. Компоненты для построения UI (dll, npm..) 5. Собственно единственное веб-приложение, которое содержит UI, соединяет всё добро в кучу и содержит только прикладной код. Прикладной код представляет собой набор действий контроллеров, разделённый по Area, которые выражают логическое разделение (бизнес-модули), действия контроллеров содержат код вызова бизнес-логики, используют во вью компоненты для размещения функционала, и связывает данные отправляемые/полученные с клиента с логикой (view model, binding, validation...) Да, все "модули" будут работать с одной БД. И тут конфиг EF с подключенными DbSet со временем будет длиною в километр. hVosttодин единственный проект и «модули» засунуть в Area. 1. Какие плюсы Area в отличие от разделения Неймспейсами? 2. По большому счету не имеет значения выносить bll, dal в длл или разделять их неймспейсами. Проект на старте и планируется активно развиваться, хочется на старте сделать внятную архитектуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 23:32 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Petro123SlivaКак в больших проектах организовывают структуру солюшена? сколько у вас страниц в приложении и табличек в базе? Это выясняется до архитектуры. Чтобы не перепутать слово "большой")). Пока не много, 20-30. Но у руководства большие планы. И хотелось бы на понять как он будет жить когда в нем будет 100-300 сущностей, которые работают с Entity Framework. Гоняя между слоями DTO. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2018, 23:40 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Sliva1. Какие плюсы Area в отличие от разделения Неймспейсами? Архитектурный способ разделения функциональности идущий из коробки. Про неймспейсы речи не идёт, у каждой Area итак свой нейсмпейс по факту. Sliva2. По большому счету не имеет значения выносить bll, dal в длл или разделять их неймспейсами. Не имеет значения делать бессмысленные телодвижения. SlivaПроект на старте и планируется активно развиваться, хочется на старте сделать внятную архитектуру. Под словом внятная должны быть какие-то обоснования выбранным решениям. Разделяй и властвуй, это хороший принцип, но если делаете монолит, то как раз таки хорошо, когда фрагментации меньше, чем больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 00:19 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
hVostt Под словом внятная должны быть какие-то обоснования выбранным решениям. Разделяй и властвуй, это хороший принцип, но если делаете монолит, то как раз таки хорошо, когда фрагментации меньше, чем больше. Под внятностью понимается, что при значительном расширении проекта сложность разработки не увеличивалась, ну или не значительно. "но если делаете монолит". Монолит-телодвижений меньше, но с опаской смотрю на это через 1-3 года. Во что он вырастит.... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 00:59 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
hVostt, и по поводу area, он же в рамках веб проекта создается. В слоях логики и репы структура папок своя. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 01:04 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
SlivaИ тут конфиг EF с подключенными DbSet со временем будет длиною в километр.через 3 года будут аннотации в каждом классе. И не будет вашего километра. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 07:06 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Slivaбы на понять как он будет жить когда в нем будет 100-300с чего взял что это большое? Когда будет 500, то разобёшь по функционалу. А не как программист захотел по dll'кам))). Как у 1С: 1. Веб приложение, проект Торговляи Склал 2. Проект Бухгалтерия 3. Проект Кадры ... А когда будет 500 таблиц, по любому перепишешь всё т.к. первый проект все переписывают) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 07:16 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
Petro123А когда будет 500 таблиц, по любому перепишешь всё т.к. первый проект все переписывают) не первый проект. Но все проекты не имели неопределенности в плане развития и масштабирования. Были четкие ТЗ, с конечной точкой разработки. А тут бесконечная разработка все нового и нового функционала. Чтобы не было через 2-3 года куча чего то непонятного. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 09:06 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
SlivaБыли четкие ТЗв ТЗ по ГОСТ нет понятия DLL. Есть понятия подсистема, модули по функционалу. А ты пытаешься разрезать как программист. Смотри выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 09:48 |
|
Имеет ли такая организация проекта право на существование
|
|||
---|---|---|---|
#18+
SlivaПод внятностью понимается, что при значительном расширении проекта сложность разработки не увеличивалась, ну или не значительно. "но если делаете монолит". Монолит-телодвижений меньше, но с опаской смотрю на это через 1-3 года. Во что он вырастит.... Ну а если конкретнее? Вырастет-то вырастет. Но что меняет тот факт, что вы растащили монолит по десятку DLL? Это абсолютно ничего не меняет, только усложняет разработку. Slivaи по поводу area, он же в рамках веб проекта создается. В слоях логики и репы структура папок своя. Вообще, в веб-приложении не должно быть логики. Логика как раз выносится отдельно. Но Area содержат именно UI часть, вью-модели, контроллеры. Общий пул скриптов и стилей. Но это по-старинке. Если делаете Angular/React/etc., Area тогда не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 10:27 |
|
|
start [/forum/topic.php?fid=18&msg=39625796&tid=1355261]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 419ms |
0 / 0 |