powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Архитектура
25 сообщений из 69, страница 1 из 3
Архитектура
    #38231476
arch2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используете ли вы такую архитектуру или Ваш проект организован как-то по-другому?

- модели данных (классы что генерит EF, L2SQL и другие орм)
- модели представления - то, что передается во вьюхи
- репозитории где весь фунционал генерящий списки на основе модели данных для модели представления

В контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представление
...
Рейтинг: 0 / 0
Архитектура
    #38231489
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arch2000,
авторВ контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представление
А вот встречный вопрос - модель может быть самодостаточной? то есть сама себя заполнять при инициализации?
...
Рейтинг: 0 / 0
Архитектура
    #38231661
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arch2000В контроллерах вызываются методы из репозиториев, заполняется модель данных модель представления и передается в представление
...
Рейтинг: 0 / 0
Архитектура
    #38231790
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloperarch2000В контроллерах вызываются методы из репозиториев, заполняется модель данных модель представления и передается в представление

И таким образом контроллер знает о модели - это правильно?
...
Рейтинг: 0 / 0
Архитектура
    #38231816
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345cooldeveloperпропущено...


И таким образом контроллер знает о модели - это правильно?
А он в общем то и должен знать о модели он ведь ее спускает во вью
Код: c#
1.
2.
3.
  public ActionResult Index(string id){
   return View(new MyModel(id));
}


И также получает при Post
Код: c#
1.
2.
3.
  public ActionResult Index(string id ,MyModel model){
   return View(model);
}
...
Рейтинг: 0 / 0
Архитектура
    #38231855
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345И таким образом контроллер знает о модели - это правильно?
Шагом марш читать букварь!
...
Рейтинг: 0 / 0
Архитектура
    #38231993
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloperevgen12345И таким образом контроллер знает о модели - это правильно?
Шагом марш читать букварь!

Да в том то и дело - я этих букварей начитался и теперь каша в голове.
Разьясните мне (если не сложно) зачем тогда скрывать модели за вью-моделями. зачем все эти DI если мы получаем сильную зависимость модулей?

Я не могу понять как по слоям располагается вся эта архитектура? Как я понял:

1. есть модель данных, например набор классов для CodeFirst и контекст.
2. следующий слой это репозиторий который предоставляет CRUD операции над моделями и возвращает объекты модели.
3. далее идет ViewModel, в идеале создается для каждой Вью и содержит необходимы набор данных который может подтягиваться из разных моделей с учетом различной логики.
4 View в нее передается ViewModel, в контроллере создается ViewModel и передается в представление.

Так вот я думал что в идеале пункты 1 и 2 должны быть закрыты от 3 и выше. А перед пунктом 3, есть пункт:

3.a - слой/сервис (назавем его слоем бизнес логики) который скрывает сложности создания бизнес сущности и логику ее обработки. Данный сервис предоставляет методы получения и сохранения ViewModel, так как кроме логика сохранения данных может быть достаточна сложна - данные нужно разложить на сопоставляющие ее объекты модели, установить связи, возможно что то еще.

Тогда последовательность будет следующей: 1, 2, 3a, 3, 4.
И тогда о модели данных не будет знать представление или это не нужно?
...
Рейтинг: 0 / 0
Архитектура
    #38232027
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345Разьясните мне (если не сложно) зачем тогда скрывать модели за вью-моделями.
Модель (она же дата-модель, модель данных, классы датаконтекста) - это обвязка БД, а вью-модель - это класс для представления (валидация, логика и т.д.). Вью-модель может содержать в себе несколько моделей данных, дополнительные коллекции для привязки различных элементов управления (комбобоксы, гриды и т.д.). Только и всего. В самом простом случае можно использовать в качестве вьюмодели саму модель данных.

evgen12345зачем все эти DI если мы получаем сильную зависимость модулей?
Не вижу никакой зависимости. Есть впраппинг, но не зависимость. DI не панацея, можно с таким же успехом воспользоваться наследованием и хранить экземпляры там. Вот пример .

evgen123451. есть модель данных, например набор классов для CodeFirst и контекст.
2. следующий слой это репозиторий который предоставляет CRUD операции над моделями и возвращает объекты модели.
3. далее идет ViewModel, в идеале создается для каждой Вью и содержит необходимы набор данных который может подтягиваться из разных моделей с учетом различной логики.
4 View в нее передается ViewModel, в контроллере создается ViewModel и передается в представление.
Всё верно.

evgen12345Так вот я думал что в идеале пункты 1 и 2 должны быть закрыты от 3 и выше. А перед пунктом 3, есть пункт:
Они и так закрыты от 3. Контроллер обращается к репозитрию, получает дата-модель, перемапливает её во вью-модель и скармиливает представлению.

evgen12345И тогда о модели данных не будет знать представление или это не нужно?
Что-то я нифига не понял :)
...
Рейтинг: 0 / 0
Архитектура
    #38232107
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arch2000Используете ли вы такую архитектуру или Ваш проект организован как-то по-другому?

- модели данных (классы что генерит EF, L2SQL и другие орм)
- модели представления - то, что передается во вьюхи
- репозитории где весь фунционал генерящий списки на основе модели данных для модели представления

В контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представлениеНе использую, т.к. мой проект организован по-другому.

- доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику)
- модели данных, мапперы
- репозитории, что используются в классах-сервисах
- модели представления
...
Рейтинг: 0 / 0
Архитектура
    #38232121
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper,

спасибо большое, стало прояснятся. Получается 3а - это и есть сам контроллер, методы контроллера.


авторИ тогда о модели данных не будет знать представление или это не нужно?

В этой фразе скрывается мысль -> клиентская часть нечего не знает от том как хранятся данные, о их структуре. А знает только о ViewModel, или этого не нужно добиваться?


Еще один вопрос.
cooldeveloperНе вижу никакой зависимости. Есть впраппинг, но не зависимость. DI не панацея, можно с таким же успехом воспользоваться наследованием и хранить экземпляры там

Что такое врапинг? с ходу в гугле не нашел, можно ткнуть носом?
...
Рейтинг: 0 / 0
Архитектура
    #38232131
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA- доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику)
- модели данных, мапперы
- репозитории, что используются в классах-сервисах
- модели представления
Так те же яйца, только вид сбоку.

evgen12345Что такое врапинг? с ходу в гугле не нашел, можно ткнуть носом?
http://ru.wikipedia.org/wiki/Враппер Обёртка по-русски.
...
Рейтинг: 0 / 0
Архитектура
    #38232164
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperskyANA- доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику)
- модели данных, мапперы
- репозитории, что используются в классах-сервисах
- модели представления
Так те же яйца, только вид сбоку.Ну не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты.
А у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях?
...
Рейтинг: 0 / 0
Архитектура
    #38232180
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты.
А я тебе про что? Даже ссылку дал , в которой как-раз и говорится о том, что работаем с разными источниками.

skyANAА у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях?
Еще раз прочти сабжевый пост, там речь о репозитории. Логика - во вьюмоделях или, как вариант, ее можно выносить в отдельный слой.
...
Рейтинг: 0 / 0
Архитектура
    #38232574
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloper, моя твоя не понимает.

ТС спросил, я ему ответил.

У меня более сложный проект, чем у него.
Есть десктоп админка, где можно добавлять, редактировать, удалять данные. Смотреть логи, настраивать параметры.
Есть морда на ASP.NET MVC, что красиво отображает динамику изменения данных в виде инфографических виджетов.
Также отображение этих виджетов реализовано в клиенте для iOS и в виде Windows Sidebar Gadget.
Есть веб-сервис, что отдаёт и принимает данные из внешних систем. Реализован 1С клиент, что работает с этим сервисом.

У меня доменная модель ничего не знает о структуре хранения данных в БД, в 1С, где-то там ещё.

А у ТС? У него репозитории генерирует какие-то списки на основе модели данных. Что в этих списках, экземпляры классов модели данных, или модели представления?
...
Рейтинг: 0 / 0
Архитектура
    #38232606
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА у ТС? У него репозитории генерирует какие-то списки на основе модели данных. Что в этих списках, экземпляры классов модели данных, или модели представления?
У него пока ничего нет, он интересуется как ему жить :)
...
Рейтинг: 0 / 0
Архитектура
    #38232666
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperskyANAА у ТС? У него репозитории генерирует какие-то списки на основе модели данных. Что в этих списках, экземпляры классов модели данных, или модели представления?
У него пока ничего нет, он интересуется как ему жить :)Ну дак давай выясним, что за проект он планирует пейсать, прежде чем рассуждать о яйцах и о том, с какого ракурса на них смотреть.
...
Рейтинг: 0 / 0
Архитектура
    #38232990
evgen12345
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAcooldeveloperпропущено...

Так те же яйца, только вид сбоку.Ну не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты.
А у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях?

Вот это я очень долго ждал! Спасибо - теперь все более менее понятно.
...
Рейтинг: 0 / 0
Архитектура
    #38233074
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
evgen12345skyANAпропущено...
Ну не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты.
А у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях?

Вот это я очень долго ждал! Спасибо - теперь все более менее понятно.Хм. У Фаулера есть каталог шаблонов , а к нему есть перевод: design-pattern.ru .
...
Рейтинг: 0 / 0
Архитектура
    #38233107
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях?
БЛ должна быть в веб-сервисах
...
Рейтинг: 0 / 0
Архитектура
    #38233158
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIskyANAИ где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях?
БЛ должна быть в веб-сервисах А морда должна быть на SL!
А заказы у Вас такие ещё остались?
...
Рейтинг: 0 / 0
Архитектура
    #38233185
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА морда должна быть на SL!
Предпочтительно
skyANAА заказы у Вас такие ещё остались?
Да, мне сейчас целый завод под SL отдали, развлекайся не хочу

Но в том-то и дело что веб-сервисы можно дергать с чего угодно и SL по большому счету здесь не причем...
...
Рейтинг: 0 / 0
Архитектура
    #38233191
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI, веб сервисы на помойку. Даешь wcf.
...
Рейтинг: 0 / 0
Архитектура
    #38233201
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cooldeveloperEDUARD SAPOTSKI, веб сервисы на помойку. Даешь wcf.
Дык я про WCF и говорю...
...
Рейтинг: 0 / 0
Архитектура
    #38233211
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIcooldeveloperEDUARD SAPOTSKI, веб сервисы на помойку. Даешь wcf.
Дык я про WCF и говорю...
Дык ты говоришь про веб сервисы...
...
Рейтинг: 0 / 0
Архитектура
    #38233221
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI, Вы как-то ни о чём говорите.
К примеру в терминах шаблонов проектирования что Вы предлагаете убрать, или добавить?
...
Рейтинг: 0 / 0
25 сообщений из 69, страница 1 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Архитектура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]