Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Используете ли вы такую архитектуру или Ваш проект организован как-то по-другому? - модели данных (классы что генерит EF, L2SQL и другие орм) - модели представления - то, что передается во вьюхи - репозитории где весь фунционал генерящий списки на основе модели данных для модели представления В контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 18:20 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
arch2000, авторВ контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представление А вот встречный вопрос - модель может быть самодостаточной? то есть сама себя заполнять при инициализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 18:27 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
arch2000В контроллерах вызываются методы из репозиториев, заполняется модель данных модель представления и передается в представление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 20:48 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperarch2000В контроллерах вызываются методы из репозиториев, заполняется модель данных модель представления и передается в представление И таким образом контроллер знает о модели - это правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 23:12 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
evgen12345cooldeveloperпропущено... И таким образом контроллер знает о модели - это правильно? А он в общем то и должен знать о модели он ведь ее спускает во вью Код: c# 1. 2. 3. И также получает при Post Код: c# 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 23:40 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
evgen12345И таким образом контроллер знает о модели - это правильно? Шагом марш читать букварь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 00:14 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperevgen12345И таким образом контроллер знает о модели - это правильно? Шагом марш читать букварь! Да в том то и дело - я этих букварей начитался и теперь каша в голове. Разьясните мне (если не сложно) зачем тогда скрывать модели за вью-моделями. зачем все эти DI если мы получаем сильную зависимость модулей? Я не могу понять как по слоям располагается вся эта архитектура? Как я понял: 1. есть модель данных, например набор классов для CodeFirst и контекст. 2. следующий слой это репозиторий который предоставляет CRUD операции над моделями и возвращает объекты модели. 3. далее идет ViewModel, в идеале создается для каждой Вью и содержит необходимы набор данных который может подтягиваться из разных моделей с учетом различной логики. 4 View в нее передается ViewModel, в контроллере создается ViewModel и передается в представление. Так вот я думал что в идеале пункты 1 и 2 должны быть закрыты от 3 и выше. А перед пунктом 3, есть пункт: 3.a - слой/сервис (назавем его слоем бизнес логики) который скрывает сложности создания бизнес сущности и логику ее обработки. Данный сервис предоставляет методы получения и сохранения ViewModel, так как кроме логика сохранения данных может быть достаточна сложна - данные нужно разложить на сопоставляющие ее объекты модели, установить связи, возможно что то еще. Тогда последовательность будет следующей: 1, 2, 3a, 3, 4. И тогда о модели данных не будет знать представление или это не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 08:55 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
evgen12345Разьясните мне (если не сложно) зачем тогда скрывать модели за вью-моделями. Модель (она же дата-модель, модель данных, классы датаконтекста) - это обвязка БД, а вью-модель - это класс для представления (валидация, логика и т.д.). Вью-модель может содержать в себе несколько моделей данных, дополнительные коллекции для привязки различных элементов управления (комбобоксы, гриды и т.д.). Только и всего. В самом простом случае можно использовать в качестве вьюмодели саму модель данных. evgen12345зачем все эти DI если мы получаем сильную зависимость модулей? Не вижу никакой зависимости. Есть впраппинг, но не зависимость. DI не панацея, можно с таким же успехом воспользоваться наследованием и хранить экземпляры там. Вот пример . evgen123451. есть модель данных, например набор классов для CodeFirst и контекст. 2. следующий слой это репозиторий который предоставляет CRUD операции над моделями и возвращает объекты модели. 3. далее идет ViewModel, в идеале создается для каждой Вью и содержит необходимы набор данных который может подтягиваться из разных моделей с учетом различной логики. 4 View в нее передается ViewModel, в контроллере создается ViewModel и передается в представление. Всё верно. evgen12345Так вот я думал что в идеале пункты 1 и 2 должны быть закрыты от 3 и выше. А перед пунктом 3, есть пункт: Они и так закрыты от 3. Контроллер обращается к репозитрию, получает дата-модель, перемапливает её во вью-модель и скармиливает представлению. evgen12345И тогда о модели данных не будет знать представление или это не нужно? Что-то я нифига не понял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 09:22 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
arch2000Используете ли вы такую архитектуру или Ваш проект организован как-то по-другому? - модели данных (классы что генерит EF, L2SQL и другие орм) - модели представления - то, что передается во вьюхи - репозитории где весь фунционал генерящий списки на основе модели данных для модели представления В контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представлениеНе использую, т.к. мой проект организован по-другому. - доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику) - модели данных, мапперы - репозитории, что используются в классах-сервисах - модели представления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 10:05 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloper, спасибо большое, стало прояснятся. Получается 3а - это и есть сам контроллер, методы контроллера. авторИ тогда о модели данных не будет знать представление или это не нужно? В этой фразе скрывается мысль -> клиентская часть нечего не знает от том как хранятся данные, о их структуре. А знает только о ViewModel, или этого не нужно добиваться? Еще один вопрос. cooldeveloperНе вижу никакой зависимости. Есть впраппинг, но не зависимость. DI не панацея, можно с таким же успехом воспользоваться наследованием и хранить экземпляры там Что такое врапинг? с ходу в гугле не нашел, можно ткнуть носом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 10:13 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANA- доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику) - модели данных, мапперы - репозитории, что используются в классах-сервисах - модели представления Так те же яйца, только вид сбоку. evgen12345Что такое врапинг? с ходу в гугле не нашел, можно ткнуть носом? http://ru.wikipedia.org/wiki/Враппер Обёртка по-русски. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 10:21 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperskyANA- доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику) - модели данных, мапперы - репозитории, что используются в классах-сервисах - модели представления Так те же яйца, только вид сбоку.Ну не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты. А у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 10:34 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAНу не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты. А я тебе про что? Даже ссылку дал , в которой как-раз и говорится о том, что работаем с разными источниками. skyANAА у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях? Еще раз прочти сабжевый пост, там речь о репозитории. Логика - во вьюмоделях или, как вариант, ее можно выносить в отдельный слой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 10:42 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloper, моя твоя не понимает. ТС спросил, я ему ответил. У меня более сложный проект, чем у него. Есть десктоп админка, где можно добавлять, редактировать, удалять данные. Смотреть логи, настраивать параметры. Есть морда на ASP.NET MVC, что красиво отображает динамику изменения данных в виде инфографических виджетов. Также отображение этих виджетов реализовано в клиенте для iOS и в виде Windows Sidebar Gadget. Есть веб-сервис, что отдаёт и принимает данные из внешних систем. Реализован 1С клиент, что работает с этим сервисом. У меня доменная модель ничего не знает о структуре хранения данных в БД, в 1С, где-то там ещё. А у ТС? У него репозитории генерирует какие-то списки на основе модели данных. Что в этих списках, экземпляры классов модели данных, или модели представления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 13:19 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAА у ТС? У него репозитории генерирует какие-то списки на основе модели данных. Что в этих списках, экземпляры классов модели данных, или модели представления? У него пока ничего нет, он интересуется как ему жить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 13:30 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperskyANAА у ТС? У него репозитории генерирует какие-то списки на основе модели данных. Что в этих списках, экземпляры классов модели данных, или модели представления? У него пока ничего нет, он интересуется как ему жить :)Ну дак давай выясним, что за проект он планирует пейсать, прежде чем рассуждать о яйцах и о том, с какого ракурса на них смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 13:58 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAcooldeveloperпропущено... Так те же яйца, только вид сбоку.Ну не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты. А у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях? Вот это я очень долго ждал! Спасибо - теперь все более менее понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 16:07 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
evgen12345skyANAпропущено... Ну не скажи. Данные могут быть распределены: часть в SQL БД, часть в NoSQL БД, часть в каком нить кэше на Couchbase. Репозиторий скрывает то, где они хранятся и как распределены, скрывает модели данных и маппинг, и выдаёт доменные объекты. А у ТС, что выдаёт репозиторий? И где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях? Вот это я очень долго ждал! Спасибо - теперь все более менее понятно.Хм. У Фаулера есть каталог шаблонов , а к нему есть перевод: design-pattern.ru . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 16:37 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAИ где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях? БЛ должна быть в веб-сервисах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 16:49 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIskyANAИ где у ТС бизнес-логика, в контроллерах что-ли, или в БД, или в репозиториях? БЛ должна быть в веб-сервисах А морда должна быть на SL! А заказы у Вас такие ещё остались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:06 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAА морда должна быть на SL! Предпочтительно skyANAА заказы у Вас такие ещё остались? Да, мне сейчас целый завод под SL отдали, развлекайся не хочу Но в том-то и дело что веб-сервисы можно дергать с чего угодно и SL по большому счету здесь не причем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:15 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, веб сервисы на помойку. Даешь wcf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:18 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperEDUARD SAPOTSKI, веб сервисы на помойку. Даешь wcf. Дык я про WCF и говорю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:22 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIcooldeveloperEDUARD SAPOTSKI, веб сервисы на помойку. Даешь wcf. Дык я про WCF и говорю... Дык ты говоришь про веб сервисы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:25 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, Вы как-то ни о чём говорите. К примеру в терминах шаблонов проектирования что Вы предлагаете убрать, или добавить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:28 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperДык ты говоришь про веб сервисы... Не находишь что WCF покрывает функционал веб-сервисов? Эта терминалогия сегодня уже устаревающая формальность ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:28 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIcooldeveloperДык ты говоришь про веб сервисы... Не находишь что WCF покрывает функционал веб-сервисов? Эта терминалогия сегодня уже устаревающая формальность ИМХО.WCF, не WCF. Сам код сервиса какую архитектуру имеет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:31 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAК примеру в терминах шаблонов проектирования что Вы предлагаете убрать, или добавить? А я как-то уже на эти темы и не загоняюсь, есть ORM, сверху накрываю WCF-прослойкой где реализую основную БЛ, а клиент уже дело десятое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:32 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIНе находишь что WCF покрывает функционал веб-сервисов? Трактор покрывает функционал лопаты. Лопата это трактор? EDUARD SAPOTSKIЭта терминалогия сегодня уже устаревающая формальность ИМХО. Терминология всегда была едина. Если нужно сказать о сервисном подходе, то говори SOA. Если нужно сказать о конкретике, говори WCF или веб-сервисы (asmx). P.S. Распределять бизнес логику через SOA - не панацея. Где-то это нужно (если у тебя n систем на различных платформах и фреймворках используют общий шлюз с логикой), где-то это нафик не нужно. Если у тебя .NET архитектура, все эти SOA пляски только навредят. Закладываешь логику в отдельную сборку и скармливаешь потребителям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:49 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIskyANAК примеру в терминах шаблонов проектирования что Вы предлагаете убрать, или добавить? А я как-то уже на эти темы и не загоняюсь, есть ORM, сверху накрываю WCF-прослойкой где реализую основную БЛ, а клиент уже дело десятое...А если появится необходимость данные брать к примеру из NoSQL БД, или получать у десятка сторонних систем, или всё вместе, то Вы, не загоняясь, напишите ещё пару WCF-прослоек, где повторно реализуете БЛ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 17:59 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, Вы походу не поняли, что классы доменной модели, реализующие бизнес-логику, классы конкретной модели данных, конкретной реализации репозитория пишутся один раз и используются хоть в WCF-прослойках, хоть в ASP.NET MVC, хоть где. И Ваша фраза: "БЛ должна быть в веб-сервисах", - ни о чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2013, 18:09 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperТерминология всегда была едина. Если нужно сказать о сервисном подходе, то говори SOA. Если нужно сказать о конкретике, говори WCF или веб-сервисы (asmx). Уговорил:) Всем приношу свои извинения, под веб-сервисами я подразумевал именно технологию WCF! cooldeveloperРаспределять бизнес логику через SOA - не панацея. Не спорю. Но у меня этот вариант очень хорошо прокатывает skyANAА если появится необходимость данные брать к примеру из NoSQL БД, или получать у десятка сторонних систем, или всё вместе, то Вы, не загоняясь, напишите ещё пару WCF-прослоек, где повторно реализуете БЛ? Какая мне разница где хранятся данные? Есть ORM с объектной моделью с ней я и работаю в WCF-сервисах. Откуда брать данные это проблемы ORM, если брать данные со сторонних систем, так WCF в этом случае по дефолту то что доктор прописал. skyANAВы походу не поняли, что классы доменной модели, реализующие бизнес-логику, классы конкретной модели данных, конкретной реализации репозитория пишутся один раз и используются хоть в WCF-прослойках, хоть в ASP.NET MVC, хоть где. Да все это я прекрасно знаю, я просто говорю Вам как можно сделать все быстро, дешево и сердито, еще и будет работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 10:22 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, Дык о чем вы говорите, это одна из методик получения данных(soap, почта России и тд), применяется обычно - как старший скажет. МСУ он такой, за все цепляется.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 10:44 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIskyANAА если появится необходимость данные брать к примеру из NoSQL БД, или получать у десятка сторонних систем, или всё вместе, то Вы, не загоняясь, напишите ещё пару WCF-прослоек, где повторно реализуете БЛ?Какая мне разница где хранятся данные? Есть ORM с объектной моделью с ней я и работаю в WCF-сервисах. Откуда брать данные это проблемы ORM.Снова ни о чём. Приведите пример ORM, что сможет взять данные к примеру из MongoDB. EDUARD SAPOTSKIskyANAВы походу не поняли, что классы доменной модели, реализующие бизнес-логику, классы конкретной модели данных, конкретной реализации репозитория пишутся один раз и используются хоть в WCF-прослойках, хоть в ASP.NET MVC, хоть где.Да все это я прекрасно знаю, я просто говорю Вам как можно сделать все быстро, дешево и сердито, еще и будет работать Спасибо конечно. Но сделать, чтобы работало, не заморачиваясь по поводу архитектуры, любой вчерашний студент сможет. По теме что-нибудь скажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2013, 13:18 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Где-то в степиДык о чем вы говорите, это одна из методик получения данных(soap, почта России и тд), применяется обычно - как старший скажет. МСУ он такой, за все цепляется..Да, это одна из методик получения данных и на мой взгляд на сегодняшний день самая универсальная из всего что придумали, т.к. данные может получить/отправить и толстый клиент и тонкий и SL-приложение и таже 1С-ка... И на мой взгляд WCF это удобное место для размещения бизнес-логики. ЗЫ При чем здесь МСУ я так и не понял, у меня своя голова на плечах, если наши мнения в чем-то сходятся это не значит что я ему поддакиваю или подражаю. К вменяемым аргументам я всегда уважительно отношусь. skyANAСнова ни о чём. Приведите пример ORM, что сможет взять данные к примеру из MongoDB.Привидите мне статистику, какой процент проектов на .NET работают с MongoDB? Ну не нужна мне MongoDB как и 99%-ам девелоперов! А если даже что-то в лесу сдохнет и она мне понадобится, то что мешает состряпать DAO-прослойку и заюзать теже WCF-сервисы? skyANAСпасибо конечно. Но сделать, чтобы работало, не заморачиваясь по поводу архитектуры, любой вчерашний студент сможет. По теме что-нибудь скажете?Еще раз, используемая мной архитектура - ORM(одни классы сущностей, никакой логики, только доступ к данным из БД), WCF сервис(юзает объекты предоставляемые ORM, реализует БЛ, предоставляет доступ приложениям). В чем конкретно Вы видите недостатки такой архитектуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 09:19 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAПриведите пример ORM, что сможет взять данные к примеру из MongoDB Честно говоря, тоже не совсем понял, причем тут ORM к монго. В чем проблема написать реализацию своего IMongoDataService, который во внутрях содержит объектную модель штатного драйвера ? Извне это будет так же смотреться, как и IOracleDataService, как и ISqlServerDataService. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 09:52 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Мы тут с вами за архитектуру, а тут вона жесть 14211392 какая бывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 10:18 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, авторДа, это одна из методик получения данных и на мой взгляд на сегодняшний день самая универсальная из всего что придумали, т.к. данные может получить/отправить и толстый клиент и тонкий и SL-приложение и таже 1С-ка... И на мой взгляд WCF это удобное место для размещения бизнес-логики. Да не лучше она и не хуже, куча г..носайтов ( почти все ) сидят на отдаче информации и что, я должен прикручивать wcf что бы получить что то на основе чего то с базы которая лежит в корневой сайта, в зависимости от того? Да не в жись, достаточно хоть чего но не wcf , если смотреть с точки зрения каркаса то орм така же загигулина как wcf ( абстрактно) то что я не могу туда логику засунуть, дак это спорно, в хибере я могу делать триггеры на операции заряжать их делегатами и иметь возможность хранить этот код в дальнем чулане.. Зы МСУ на форуме все.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 10:59 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIskyANAСнова ни о чём. Приведите пример ORM, что сможет взять данные к примеру из MongoDB.Привидите мне статистику, какой процент проектов на .NET работают с MongoDB? Ну не нужна мне MongoDB как и 99%-ам девелоперов! А если даже что-то в лесу сдохнет и она мне понадобится, то что мешает состряпать DAO-прослойку и заюзать теже WCF-сервисы?И зачем Вам моя статистика? Для Вас MongoDB - это как один из примеров. Речь идёт о том, что данные могут быть распредлены: сегодня они хранятся в одной единственной вашей БД, а завтра помимо неё надо опрашивать сервера и сервисы партнёров (предметная область туризм) и ORM с WCF вам в этом не помогут. Я понимаю, что Вы с этим не сталкивались, что для решения 99% Ваших задач не требуется использовать какие-то шаблоны проектирования и загоняться на тему архитектуры. Но зачем тогда участвовать в дискуссии о ней? EDUARD SAPOTSKIskyANAСпасибо конечно. Но сделать, чтобы работало, не заморачиваясь по поводу архитектуры, любой вчерашний студент сможет. По теме что-нибудь скажете?Еще раз, используемая мной архитектура - ORM(одни классы сущностей, никакой логики, только доступ к данным из БД), WCF сервис(юзает объекты предоставляемые ORM, реализует БЛ, предоставляет доступ приложениям). В чем конкретно Вы видите недостатки такой архитектуры?Я вообще не вижу тут никакой архитектуры. Снаружи это может и выглядит как архитектурное решение. Но о внутренней реализации ничего не сказано. Если в методе сервиса дёргается ORM, полученные объекты тут же обрабатываются и отдаются наружу, то это, грубо говоря, ничем не отличается от "в методе ОнБаттонКлик открываем конекшн, дёргаем дата адаптер, обрабатываем полученный датасет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 09:25 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperskyANAПриведите пример ORM, что сможет взять данные к примеру из MongoDB Честно говоря, тоже не совсем понял, причем тут ORM к монго. В чем проблема написать реализацию своего IMongoDataService...Никаких проблем. Я уже написал, а Эдуарду это не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 09:28 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANA, честно говоря, я уже запутался, котому что нужно и какая у кого архитектура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 09:36 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloper, дык перечитай топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 09:49 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAсегодня они хранятся в одной единственной вашей БД, а завтра помимо неё надо опрашивать сервера и сервисы партнёров (предметная область туризм) и ORM с WCF вам в этом не помогут.Почему не помогут?! Еще раз: EDUARD SAPOTSKIчто мешает состряпать DAO-прослойку и заюзать теже WCF-сервисы?cooldeveloperВ чем проблема написать реализацию своего IMongoDataService, который во внутрях содержит объектную модель штатного драйвера ? Извне это будет так же смотреться, как и IOracleDataService, как и ISqlServerDataService.И что мешает в том же WCF - сервисе дергать сервера Ваших партнеров?! skyANAВаших задач не требуется использовать какие-то шаблоны проектирования и загоняться на тему архитектуры. Видишь кролика? А он есть! (с) Этими паттернами и "изысканными архитектурами" уже весь инет засрали, а когда дело до практики доходит, так никто не может внятно объяснить зачем это нужно! Ну хорошо, туризм так туризм. Имел честь учавствовать в разработке системы бронирования, для гостиничного комплекса. Есть предварительное бронирование, заезд клиента, "интелектуальная система расселения по номерам", отчеты и т.д... Вот какая из этих задач требует неких изысканных архитектурных решений и эксклюзивных паттернов?! Ну или привидите свой РЕАЛЬНЫЙ пример задачи, где это действительно необходимо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 12:34 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAcooldeveloper, дык перечитай топик. Перечитал. Один одно горорит, другой другое, третий третье. Каша, базар и неразбериха, хотя проблема и выеденного яйца не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 12:42 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, смотри, на пальцах. Если у тебя логика размещена в SOA, то на каждый чих тебе нужно ходить куда-то на сервер и дергать 100500 методов. Когда логика у меня под рукой в классе (dll), то мне не нужно никуда ходить, всё работает оперативно и независимо. Отседова простота и скорость. У обоих вариантов есть свои плюсы и минусы. У первого, например, из плюсов - это, несомненно, распределенность (как следствие, масштабируемость) и централизованность. Долго еще будем тесто месить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 12:48 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperсмотри, на пальцах. Если у тебя логика размещена в SOA, то на каждый чих тебе нужно ходить куда-то на сервер и дергать 100500 методов. Когда логика у меня под рукой в классе (dll), то мне не нужно никуда ходить, всё работает оперативно и независимо. Отседова простота и скорость. У обоих вариантов есть свои плюсы и минусы. У первого, например, из плюсов - это, несомненно, распределенность (как следствие, масштабируемость) и централизованность. Долго еще будем тесто месить? Дык ёпт, что мешает теже WCF сервисы сбить в dll-ку и юзать ее как простую сборку классов с БЛ? Можно еще атрибуты закоментить для полного счастья. Говорим об одном и том же, но skyANA грит что это нифига не архитектура! Так а что тогда архитектура?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:10 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, лично мне ничто не мешает использовать какие-то сборки с какими-то классами. Я на первой странице в кратце описал из каких частей состоит мой проект и что и как там используется. Вы же, судя по Вашим постам, не писали никаких DAO-прослоек, не делали независимых от модели данных сборок с классами БЛ, вообще не использовали "изысканных архитектурных решений и эксклюзивных паттернов", т.к. оно Вам и не надо было. Я предполагаю, что реализация методов в Вашем WCF сервисе по большому счёту ничем не отличается от "в методе ОнБаттонКлик открываем конекшн, дёргаем дата адаптер, обрабатываем полученный датасет". И собственно по этому не вижу смысла обсуждать с Вами какие-то архитектурные решения и шаблоны проектирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:28 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIДык ёпт, что мешает теже WCF сервисы сбить в dll-ку и юзать ее как простую сборку классов с БЛ? С каких это пор реализация классов SOA доступна для потребителей?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:30 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAИ собственно по этому не вижу смысла обсуждать с Вами какие-то архитектурные решения и шаблоны проектирования. Короче конкретного примера не будет cooldeveloperС каких это пор реализация классов SOA доступна для потребителей?! ХЗ, возможно я и лоханулся, сейчас посмотрю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:38 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, еще раз, найти компромисс с твоим мозгом. Что такое SOA? Правильно, SOA - это, прежде всего, обмен, выраженный абстракциями DTO. http://msdn.microsoft.com/en-us/library/ff649585.aspx A DTO is a simple container for a set of aggregated data that needs to be transferred across a process or network boundary. It should contain no business logic and limit its behavior to activities such as internal consistency checking and basic validation. Be careful not to make the DTO depend on any new classes as a result of implementing these methods. Какая в жопу бизнес логика в SOA, ты что? Только обмен болванками (тупыми прокси классами). Поэтому я тебе и написал про 100500 раз дергать разные методы сервиса, вместо того, чтобы тупо заюзать целостный класс с нормальной реализацией логики в нем. P.S. Такое ощущение, что ты инопланетянен. Ну или с SOA не работал и насилуешь нам тут моцк. Мало того, вебсервисы он wcf-ы называл, так еще и в dto он логику собрался поставлять через шлюзы. Пестец просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:39 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIcooldeveloperС каких это пор реализация классов SOA доступна для потребителей?! ХЗ, возможно я и лоханулся, сейчас посмотрю... Причем конкретно, друг мой. Готовь зад, я несу хлыст... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:40 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIskyANAИ собственно по этому не вижу смысла обсуждать с Вами какие-то архитектурные решения и шаблоны проектирования. Короче конкретного примера не будет Ну почему же. Пример проекта, что я уже описал в етме - это мой личный проект, в данный момент на стадии тестирования перед релизом и сборки интсаллятора, надеюсь в скором времени смогу дать ссылку на сайт. Вот ссылка на проект с предыдущей работы. Ссылка на проект, что разрабатывается на текущем месте работы, в профиле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:50 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Более 200 000 отелей по всему миру от глобальных поставщиков (GTA, Kuoni, Travco и пр.) и принимающих туроператоров Европы - это конечно не гостиничный комплекс, но что есть, то есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 13:55 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperEDUARD SAPOTSKI... Такое ощущение, что ты инопланетянен. Ну или с SOA не работал и насилуешь нам тут моцк. Мало того, вебсервисы он wcf-ы называл, так еще и в dto он логику собрался поставлять через шлюзы. Пестец просто.ВикипедиЯ Сервис-ориентированная архитектура (англ. Service-oriented Architecture) — подход к разработке программного обеспечения на основе слабосвязанных компонентов, взаимодействующих посредством стандартизованных интерфейсов.EDUARD SAPOTSKIЭтими паттернами и "изысканными архитектурами" уже весь инет засрали, а когда дело до практики доходит, так никто не может внятно объяснить зачем это нужно ! МСУ, ему это не нужно, конечно он не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 14:20 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANA, не хотелось Эдюшку шпынять, нормальный парень, но достал уже ей богу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 14:38 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperskyANA, не хотелось Эдюшку шпынять, нормальный парень, но достал уже ей богу... Не парься, у меня отпуск, поэтому тут херней страдаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 14:41 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIпоэтому тут херней страдаю Я так и понял. Значит, вот тут ты нам аккуратно поднаврал? EDUARD SAPOTSKIВидишь кролика? А он есть! (с) А тут? EDUARD SAPOTSKIНу хорошо, туризм так туризм. Имел честь учавствовать в разработке системы бронирования, для гостиничного комплекса. Батенька, позволь нескромно поинтересоваться, на чем крутилась твоя системы бронирования, на DTO-логике в SOA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 14:49 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloper, вполне может оказаться, что под системой бронирование понимается: "позвонили в гостиницу на ресепшн, или пришли с паспортом, и ваши данные какая-то тётушка куда-то вбила". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 14:56 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperЗначит, вот тут ты нам аккуратно поднаврал? EDUARD SAPOTSKIВидишь кролика? А он есть! (с) А тут? EDUARD SAPOTSKIНу хорошо, туризм так туризм. Имел честь учавствовать в разработке системы бронирования, для гостиничного комплекса. Не поверишь, но не совсем наврал, реально сто лет назад допиливали довольно "с виду" приличную систему. cooldeveloperБатенька, позволь нескромно поинтересоваться, на чем крутилась твоя системы бронирования, на DTO-логике в SOA? А от тут можешь сразу падать пацтол! На эксесе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 15:00 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANA, ну может и правда участвовал, просто дело далече, чем SqlCommand + SqlDataReader + DataSet не заходило. Эдичек ведь честный малый, а не врунишка форумный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 15:02 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIНе поверишь, но не совсем наврал, реально сто лет назад допиливали довольно "с виду" приличную систему. Как мне нравятся такие ответы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 15:02 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Кто-нить помнит как эту штуковину System.Web.HttpContext.GetGlobalResourceObject(key, value) заставить видеть внедрённые ресурсы? После деплоя папки с ресурсами нет (App_GlobalResources), они в dll теперь и данная штуковина всегда возвращает null. Ну а Project.App_GlobalResources.Key.Value прекрасно работает без данной папки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 15:14 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
st_stПосле деплоя папки с ресурсами нет (App_GlobalResources), они в dll теперь и данная штуковина всегда возвращает null. Это у WebApplication, чтоли? У меня всё работает и ресурсы никуда не компилятся. Нафига resx куда-то вкомпиливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 16:04 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
cooldeveloperЭто у WebApplication, чтоли? У меня всё работает и ресурсы никуда не компилятся. Нафига resx куда-то вкомпиливать. Если отправлять содержимое ресурсов (content), тогда при деплое папка App_GlobalResources целиком перекидывается на хостинг и GetGlobalResourceObject() работает. А ставишь внедрённые (насколько помню "embedded" в англ. студии, они по умолчанию), папка не копируется и GetGlobalResourceObject() возвращает null, а если напрямую ресурс запросить через Project.App_GlobalResources.Key.Value, то работает. Просто интересно, можно ли заставить GetGlobalResourceObject() работать без папки App_GlobalResources и видеть скомпиленные в dll ресурсы, так же как их видит Project.App_GlobalResources. Мне не проблема при деплое копировать ресурсы как есть, без компиляции, вопрос интересен в теоретическом плане. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 16:26 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Хм. Класс System.Web.UI.Page наследуется от класса System.Web.UI.TemplateControl, где есть метод: Код: c# 1. 2. 3. 4. Данный метод на странице вызывается к примеру так: Код: c# 1. и работает А теперь смотрим класс System.Web.HttpContext: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Вроде одинаково ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 16:28 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
st_stcooldeveloperЭто у WebApplication, чтоли? У меня всё работает и ресурсы никуда не компилятся. Нафига resx куда-то вкомпиливать. Если отправлять содержимое ресурсов (content), тогда при деплое папка App_GlobalResources целиком перекидывается на хостинг и GetGlobalResourceObject() работает. А ставишь внедрённые (насколько помню "embedded" в англ. студии, они по умолчанию), папка не копируется и GetGlobalResourceObject() возвращает null, а если напрямую ресурс запросить через Project.App_GlobalResources.Key.Value, то работает. Просто интересно, можно ли заставить GetGlobalResourceObject() работать без папки App_GlobalResources и видеть скомпиленные в dll ресурсы, так же как их видит Project.App_GlobalResources. Мне не проблема при деплое копировать ресурсы как есть, без компиляции, вопрос интересен в теоретическом плане.А, вот оно чё, Михалыч! Чёрт его знает, что за фигня. Но! Вы можете реализовать свой ResourceExpressionBuilder, наследника от System.Web.Compilation.ExpressionBuilder, где использовать свою реализацию IResourceProvider. И подключить это дело через конфиг: Код: xml 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 16:39 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
st_stА ставишь внедрённые (насколько помню "embedded" в англ. студии, они по умолчанию), папка не копируется и GetGlobalResourceObject() возвращает null А зачем ставить ресурсу embedded, что за бред? Если уж нужен эмбдед, то вот так: http://codearticles.ru/home/articleview/1436 st_stПросто интересно, можно ли заставить GetGlobalResourceObject() работать без папки App_GlobalResources Сомнитетельное какое-то желание... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 16:43 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
skyANAиспользовать свою реализацию IResourceProvider Окончательно ресурсы будут в бд + кэш. А про GetGlobalResourceObject() спросил, так как интересно было, чё он отвалился после деплоя без папки с ресурсами. dll открываешь и там видишь все эти ресурсы и также они доступны через Project.App_GlobalResources.Key.Value. Да и хрен с ним, не столь важно. Продолжайте дальше архитектуру обсуждать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 05:33 |
|
||
|
Архитектура
|
|||
|---|---|---|---|
|
#18+
Воскрешу немного топик :) skyANAarch2000Используете ли вы такую архитектуру или Ваш проект организован как-то по-другому? - модели данных (классы что генерит EF, L2SQL и другие орм) - модели представления - то, что передается во вьюхи - репозитории где весь фунционал генерящий списки на основе модели данных для модели представления В контроллерах вызываются методы из репозиториев, заполняется модель данных и передается в представлениеНе использую, т.к. мой проект организован по-другому. - доменная модель (классы, выражающие сущности предметной области и классы-сервисы, реализующие бизнес-логику) - модели данных, мапперы - репозитории, что используются в классах-сервисах - модели представления 1. Вопрос про модели - могут ли модели-представления содержать в себе логику, методы которые возвращают данные из этой же модели предоставления (например среднюю сумму по вложенным сущностям по каким либо полям), или свойства только для чтения например которое из Петров Иван Сергеевич, делает Петров И.С. 2. Вложенные сущности и репозитории - я тут запутался, объясню ситуацию. Я описал интерфейс - Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Далее, сделал реализацию репозиторя дефолтувую: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. Для создания репозитория для любой модели выглядит след-щим образом: Код: c# 1. 2. 3. 4. И все теперь для большинства сущностей написать репозиторий дело 2-х минут. Собственно вопрос - имеем следующее: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. Получается что докумет не может существовать без клиента и как в этом случае должен быть реализован репозиторий? Это в репозитории по клиенту добавить методы InsertDocument, UpdateDocument, DeleteDocument, GetDocumentBy.... Или в репозиторий по документу должен быть самостоятельным, но тогда в модель по документу добавится свойство ClientId - которое как мне кажется не имеет отношение к Модели представлению документа и так же не подходит к реализации IRepository? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2013, 14:18 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1358501]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
130ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 482ms |

| 0 / 0 |
