Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть проект на MVC3 все работает, но есть активность (пока только шум), что надо будет переводить на MVC4. Лично я не вижу ни каких плюшек, может кто что подсказать по данной теме? У кого был опыт перевода или разработки под MVC4, какие грабли, в чем преимущества или наоборот и т.д.? P.S. Пока я вижу что только увеличился размер за счет бОльшого количества библиотек. Сам проект это корпоративное приложение, нет цели поддерживать моб. устройства или например web api сейчас и так все на wcf работает, оснастку можно любую прикрутить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 22:20 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Переходить однозначно. http://www.asp.net/whitepapers/mvc4-release-notes What's New in ASP.NET MVC 4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 22:29 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Ок, еще не успел почитать доку по MVC 4. P.S. от вас не ожидал этого услышать :) ну это так в шутку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 22:45 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
eJackP.S. от вас не ожидал этого услышать :) ну это так в шутку! Мне MVC4 нравится больше, чем WebForms. Просто последнему жить точно, а MVC под вопросом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 22:54 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
MVC же помер, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 23:06 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
ИзопропилMVC же помер, не? SL помер, MVC следующий. Посмотрим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 23:15 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУeJackP.S. от вас не ожидал этого услышать :) ну это так в шутку! Мне MVC4 нравится больше, чем WebForms. Просто последнему жить точно, а MVC под вопросом :) Ок, понятно. Коллеги, давайте холивар не начинать. Всем большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 23:42 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
eJackКоллеги, давайте холивар не начинать. слово - не воробей, вылетит - не поймаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2012, 23:46 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
eJackКоллеги, давайте холивар не начинать. Шутник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 00:24 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIeJackКоллеги, давайте холивар не начинать. Шутник кто в восторге от Razor ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 00:33 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, SL с самого начала была полуглупая затея, но при чём тут MVC? с чего это он должен умереть? посмотрите количество проектов под MVC на GitHub , на CodePlex , последний коммит в ветку разработки MVC был 4 дня назад. Откуда такие мысли про смерть ASP.NET MVC? Учитывая, что по сравнению с WebForms это действительно полезный и мощный инструмент. Когда я в последний раз разрабатывал под WebForms, мне хотелось выстрелить себе в голову. А на MVC — кайф )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 07:59 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt SL с самого начала была полуглупая затея... И че ета? hVosttКогда я в последний раз разрабатывал под WebForms, мне хотелось выстрелить себе в голову. Тебе все таки придется это сделать когда МСУ проснется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 09:23 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Изопропилкто в восторге от Razor ? Я. ASPX движок какой-то унылый. hVosttМСУ, SL с самого начала была полуглупая затея Это еще почему? Вроде как конкуренция флешу, своя клиентская песочница от майкрософта - выглядит весьма аппетитно (если взлетело бы). hVosttно при чём тут MVC? с чего это он должен умереть? Читать с самого начала: http://www.sql.ru/forum/actualthread.aspx?tid=989503 hVosttКогда я в последний раз разрабатывал под WebForms, мне хотелось выстрелить себе в голову Нужно было это сделать. Ибо не осилил ты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 09:26 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIТебе все таки придется это сделать когда МСУ проснется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 09:26 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttМСУ, SL с самого начала была полуглупая затея Это еще почему? Вроде как конкуренция флешу, своя клиентская песочница от майкрософта - выглядит весьма аппетитно (если взлетело бы). Про конкуренцию флешу, поздноватенько вышли на рынок. Сама по себе вещь-то не плохая вышла, но смысол при активном развитии HTML5? Во внутрикорпоративных сетях ОК, но не для инета. МСУhVosttно при чём тут MVC? с чего это он должен умереть? Читать с самого начала: http://www.sql.ru/forum/actualthread.aspx?tid=989503 Расплывчато и не понятно. Четких аргументов нет. Если моська сказала, что возможно не будет развивать MVC, так оно опен-соурс, и живет на стеке ASP.NET. Развивается ASP.NET, значит развивается MVC. Нет причин для паники )) МСУhVosttКогда я в последний раз разрабатывал под WebForms, мне хотелось выстрелить себе в голову Нужно было это сделать. Ибо не осилил ты. Нет уж. Осиливать дао борьбы с фреймворком это задача для истиных самураев, умеющих ко всему прочему втягивать в себя яйца. Веб-сайты на вебформах в 90% убоги чуть менее, чем полностью. Начиная с хранения состояния формы — оно вообще, зачем может в принципе понадобиться? Больное вооброжение создателей наверняка рисовало себе картины, в которых программист пишет один и тот же код для настольных и веб-приложений. Но они же, чорт побьери, разные.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 09:44 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttПро конкуренцию флешу, поздноватенько вышли на рынок. Сама по себе вещь-то не плохая вышла, но смысол при активном развитии HTML5? Во внутрикорпоративных сетях ОК, но не для инета. 1. Своевременность - не проблема, при активной финансовой составляющей маркетинга MS, они-таки убили бы флеш от адоба. 2. Так или иначе, сравнивать возможности XAML и HTML5 бессмысленно, полноценная песочница на клиенте мощнее по определению. hVosttРасплывчато и не понятно. Четких аргументов нет. Если моська сказала, что возможно не будет развивать MVC, так оно опен-соурс, и живет на стеке ASP.NET. Развивается ASP.NET, значит развивается MVC. Нет причин для паники )) Не расплывчато и конкретно - нет смысла держать на привязи двух оголтелых псов, внося раздор в комьюнити. Стратегия должна быть однозначна и понятна всем. hVosttНет уж. Осиливать дао борьбы с фреймворком это задача для истиных самураев, умеющих ко всему прочему втягивать в себя яйца. Именно для таких самураев разработка противопоказана априори, глядишь и яйца себе разобьют. Тут нужно еще шевелить мозгами, если их нет - лучше заняться земледелием. hVosttВеб-сайты на вебформах в 90% убоги чуть менее, чем полностью. У таких самураев - да, у нормальных специалистов - нет, эти сайты ничем не отличаются от остальных. hVosttНачиная с хранения состояния формы — оно вообще, зачем может в принципе понадобиться? Не вижу ничего предсудительного в хранении вьюстейта. Оно вообще может понадобиться, когда тебе нужно сохранять состояние. Банально, да? Многие контролы используют его, особенно полезно в гридах и т.п. Не нравится - никто не заставляет использовать, не вижу паники. hVosttБольное вооброжение создателей наверняка рисовало себе картины, в которых программист пишет один и тот же код для настольных и веб-приложений. Но они же, чорт побьери, разные.. Вовсе не так, создатели хотели отделить представление от его логики, и им это удалось - aspx/ascx и кодбехайнд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 09:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, ладно про SL и смерть MVC забьём (хотя покопайтесь в предыстории создания MVC, одна из основных причин — уродство WebForms и тонна критики сообщества за это уродство) на счет веб-формс. вот только не надо начинать про профессионализм. найдутся и такие специалисты, которые на брайнфаке смогут виндоус написать. а потом говорить остальным, что они просто все тупые, недалекие идиоты. хороший фреймворк должен быть легкоусвояем, прост, удобен и быстр. это не значит что он должен быть для домохояек. хотя именно для домохозяек изначально и позиционировался веб-формс. контролы мышой двигуются на форму ложатся, даже байндинги устанавливаются мышой. красота. но почему же при фсем при этом требуется недюжий профессионализм, чтобы из этого сделать хоть что-то хорошее? не складывается. вернемся к сути. состояние. вы вообще в курсе про REST? каким задумывался веб? каким он должен быть? и самое главное, почему REST, а не какие-нить RPC или суррогатные недоделанные убогие веб-формы, которые только с виду кажутся «элементами на событиях». никаких событий там и в помине нет. все эт (за каким-то хреном) эмулируется. и затраты не оправданы. П.С. видали мы засейвленные вьюстейты гигабайтных размеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:06 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttНет уж. Осиливать дао борьбы с фреймворком это задача для истиных самураев, умеющих ко всему прочему втягивать в себя яйца. Веб-сайты на вебформах в 90% убоги чуть менее, чем полностью. Начиная с хранения состояния формы — оно вообще, зачем может в принципе понадобиться? Больное вооброжение создателей наверняка рисовало себе картины, в которых программист пишет один и тот же код для настольных и веб-приложений. Но они же, чорт побьери, разные.. не пишите пурги...не важно мвц или формы. и там и там можно делать одно и тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:08 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, а кто это отрицает? можно. я уверен, что на веб-формах можно реализовать все что угодно. но на мвц я это можно сделать в разы быстрее, с комфортом и ветерком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:11 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttвернемся к сути. состояние. вы вообще в курсе про REST? каким задумывался веб? каким он должен быть? и самое главное, почему REST, а не какие-нить RPC или суррогатные недоделанные убогие веб-формы, которые только с виду кажутся «элементами на событиях». никаких событий там и в помине нет. все эт (за каким-то хреном) эмулируется. и затраты не оправданы. и? почему от этого сайты убогие ?) вопрос рук актуален..если вы перетаскиваете контролы это ваши проблемы про затрыты..нука в студию ссылки что веб формы медлнее мвц. hVosttП.С. видали мы засейвленные вьюстейты гигабайтных размеров. ахаха ..собственно МСУ и сказал про корявость рук. П.С. конечно мвц удобнее но говорить что веб формы убого все это вопрос убогости мышления и применения на практике. Мне вообще плевать на чем делать, закажут на веб формах сделаю на них...скажут мвц сделаю на них..плевать но получиться для юзера одно и тоже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:15 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttхотя покопайтесь в предыстории создания MVC, одна из основных причин — уродство WebForms и тонна критики сообщества за это уродство Вовсе не так, MVC появилось не для того, чтобы заменить WebForms, и показывать её недостатки. MVC появилось для того, чтобы людям показать другую концепцию написания веб-приложений, ориентированную на модный паттерн проектирования MVP (MVC). Всего-то. А комьюнити восприняло это как убиение WebForms и всё пошло как обычно - шумиха, гул и троллинг. Именно поэтому нельзя вести такую политику и в MS это осознают - зачем держать в узде две как-бы конкурирующие технологии, внося раздор в своё же комьюнтти? У PHP и Java такого беспредела не наблюдается. hVosttна счет веб-формс. вот только не надо начинать про профессионализм. найдутся и такие специалисты, которые на брайнфаке смогут виндоус написать. а потом говорить остальным, что они просто все тупые, недалекие идиоты. Про профессионализм нужно начинать, причем всегда. Найдутся такие кретины, которые на самом деле ничего не умеют и ничего не знают, но при этом будут утверждать, что это гавно, а это кул. По типу, Достоевского не читал, но осуждаю. hVosttхороший фреймворк должен быть легкоусвояем, прост, удобен и быстр. это не значит что он должен быть для домохояек. хотя именно для домохозяек изначально и позиционировался веб-формс. контролы мышой двигуются на форму ложатся, даже байндинги устанавливаются мышой. красота. но почему же при фсем при этом требуется недюжий профессионализм, чтобы из этого сделать хоть что-то хорошее? не складывается. А что ж тут плохого, если у технологии низких порог вхождения? Это особенно полезно тем, кто перелез с десктопа. Во-вторых, даже мышкой можно сделать качественный продукт, который будет удовлетворять всем требованиям. hVosttвернемся к сути. состояние. вы вообще в курсе про REST? Вообще, в курсе. hVosttкаким задумывался веб? каким он должен быть? и самое главное, почему REST, а не какие-нить RPC или суррогатные недоделанные убогие веб-формы, которые только с виду кажутся «элементами на событиях». никаких событий там и в помине нет. все эт (за каким-то хреном) эмулируется. и затраты не оправданы. REST - не панацея, я это говорил, говорю и буду говорить. Давай еще порассуждаем, что SOAP - это зло, а RESTful - тру. Каким задумывался веб - малоинтересующий фактор, не нужно жить конкретными стереотипами, события - это хорошо и удобно. В классическом вебе не было и аякса, и песочниц со своими экшен скриптами и т.п. Что дальше, как вообще жить без аякса в современном обществе? Стереотипы нужно ломать. hVosttП.С. видали мы засейвленные вьюстейты гигабайтных размеров. Проблема не технологии, а водителя. Зришь не в тот корень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:18 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttна мвц я это можно сделать в разы быстрее, с комфортом и ветерком. На счет скорости разработки - глупости несусветные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttвернемся к сути. состояние. вы вообще в курсе про REST? каким задумывался веб? каким он должен быть? и самое главное, почему REST, а не какие-нить RPC или суррогатные недоделанные убогие веб-формы, которые только с виду кажутся «элементами на событиях». никаких событий там и в помине нет. все эт (за каким-то хреном) эмулируется. и затраты не оправданы. Как позновательно и каким же задумывался веб? И каким он должен быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, что-то вы опять придумываете. я ничего не говорил про «медленнее». и хотя общее впечатление от сайтов на веб-формах именно такое у меня и осталось. но это все конечно же происки кривых рук. они везде, они повсюдуу... так можно про всё что угодно сказать — не вышел по нашему рецепту пирог?? да у вас же кривые руки! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttтак можно про всё что угодно сказать — не вышел по нашему рецепту пирог?? да у вас же кривые руки! Сайт, на котором ты пишешь эти буквы, написан на ASP.NET WebForms. Чем он принципиально отличается от других сайтов? Не нравится дизайн - натяни другую верстку. Всё как везде. Причем тут веб, REST и обработчики? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:23 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI, http://ru.wikipedia.org/wiki/REST но на самом деле, секрет состоит в прямых руках. куются они в скрытых, недоступных глазу обывателей, кузницах, они могу все, любая задача им по плечу. клиент сказал веб-формс, значит будет веб-формс. клиент сказал мвц, значит будет мвц. одного только не могу понять. как клиент может вообще такие задачи ставить? а он случайно не объявляет для разработчика набор переменных, которые должны обязательно быть в коде и список методов, один из которых «сделать_хорошо()»? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:24 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostthandmadeFromRu, что-то вы опять придумываете. я ничего не говорил про «медленнее». и хотя общее впечатление от сайтов на веб-формах именно такое у меня и осталось. но это все конечно же происки кривых рук. они везде, они повсюдуу... так можно про всё что угодно сказать — не вышел по нашему рецепту пирог?? да у вас же кривые руки! сори я фразу " и затраты не оправданы." воспринял как медленнее. На веб формах писать быстро и чисто по ощущениям сложнее конечно, просто 2 разные штуки для создания веба. К примеру в мвц мне не нравиться плодить вьюмодели по феншую для вьюшек, в рубях с этим проще но там другая опера народ седня ж не пятница для холиваров)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:27 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttодного только не могу понять. как клиент может вообще такие задачи ставить? а он случайно не объявляет для разработчика набор переменных, которые должны обязательно быть в коде и список методов, один из которых «сделать_хорошо()»? )) Ну вот видишь, если ты не встречал, это ведь не означает, что такого нет, верно ведь? Открою тебе секрет - такое сплошь и рядом. Банальный пример, мы на аутсорс (через подряд, через интегратора и т.д.) отдаем проект команде, чтобы нам сделали решение. Решение после этого упадет к нам на поддержку и развитие. На внешку мы отдаем проект для экономии своих ресурсов, которые сейчас заняты на других более приоритетных проектах. Разумеется, мы будем диктовать условия - на каких технологиях писать решение, какую СУБД использовать, какой язык использовать, вопросы лицензирования и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:31 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt, про руки. у меня не давно был проект который пришел в фирму от владельца одного сайта не большого. сделан на мвц..я думал круто будет..а хрен там ...ормка ввиде синглетона , трайкетчи понатыканы везде, чертовы лейзи загрузки из самой вьюшки когда вроде как по феншую надо вьюмодел готовую и можно дальше перечислять.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:38 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, вы очень адекватно ответили. с этим, прям и не поспоришь. в общем-то да, ломать стереотипы можно, а иногда даже нужно. но REST, это не стереотип, это архитектура веб. все сервера работают на этом принципе. например, веб-сокеты, появившиеся не так уж и давно не являются нарушением REST архитектуры, и не ломают её, они её качественно дополняют. AJAX полностю укладывается в архитектуру REST. такого количества кривых рук программистов на веб-форм наверное нигде больше нет. ни о чем не заставляет задуматься? нет? согласен, есть некоторое количество виртуозов, чувствующих себя на веб-форм кофмортно. но если начинать дружить несколько технологий, ведь в общий стек с MVC легко (я бы даже сказал, почти безукоризненно) ложатся мощные JS-фреймворки (бекбон, кнокаут...), и даже серверные движки типа node.js, все эт в одной архитектуре. я считаю, что это очень удобно и никогда не посоветую никому курить веб-формс, потому что наверняка обнаружатся проблемы с кривыми руками... ну а те, кто выкурили все маны, прониклись и приняли концепцию веб-формс, мои глубочайшие поздравления. но нам, простым смертным, слишком далеко до этого левела :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:39 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttа он случайно не объявляет для разработчика набор переменных, которые должны обязательно быть в коде и список методов, один из которых «сделать_хорошо()»? )) Не поверишь, и такое часто бывает. Мы указываем сигнатуры (названия методов, входные параметры, тип результата) для взаимодействия с хранилищем (БД, SOA, и т.д.) в виде DLL с интерфейсами. Фейковая реализация этих интерфейсов - на их стороне. На этапе тестирования на нашей стороне и после приемки - мы подменяем фейковые реализации (просто выкидываем их) на нужные нам (боевые базы и сервисы) и стыкуем их приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:40 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt, прости вы считаете что бекбон и прочую тему в формы не засунуть?) и все разработчики на асп мвц такие крутые перцы?: ))) вопрос рук всегда будет актуален...щас скианыч прийдет и всех потушит рестфул сервисами!!) отдельное спасибо ему ..увлекло и понравилось) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:46 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttодного только не могу понять. как клиент может вообще такие задачи ставить? а он случайно не объявляет для разработчика набор переменных, которые должны обязательно быть в коде и список методов, один из которых «сделать_хорошо()»? )) Ну вот видишь, если ты не встречал, это ведь не означает, что такого нет, верно ведь? Открою тебе секрет - такое сплошь и рядом. Банальный пример, мы на аутсорс (через подряд, через интегратора и т.д.) отдаем проект команде, чтобы нам сделали решение. Решение после этого упадет к нам на поддержку и развитие. На внешку мы отдаем проект для экономии своих ресурсов, которые сейчас заняты на других более приоритетных проектах. Разумеется, мы будем диктовать условия - на каких технологиях писать решение, какую СУБД использовать, какой язык использовать, вопросы лицензирования и пр. и все же, это совсем другое. если ты уже давно в теме веб-формс, ты берешь проект или часть проекта на аутсорс, делаешь её, там.. потом сдаешь... потом переделываешь... потом опять сдаешь... ну или что-то вроде того. с такими ребятами спорить так же глупо, как спорить с действующим извозчиком на лошади, типа «бросай ты свою клячу, пересажывайся на майбах!» )) я именно про выбор средств разработчиком до старта проекта. и когда заказчику параллельно, на чем это будет сделано, лишь бы ТЗ было выполнено и все работало в срок. ну может еще какие издержки потребуются на сопровождение, ведь чем мудреннее технология, тем дороже потом программист. поэтому выбирать надо что-то такое, что сможет быстрее освоить веб-программер, даже если он пол жизни ездил на рельсах, с разжиженными перлом мозгами в детстве )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:46 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttEDUARD SAPOTSKI, http://ru.wikipedia.org/wiki/REST За ссыль на википедию спасибо, не знал что такой позновательный ресурс есть Но я думал кто-то тут расскажет каким интернет задумывался и каким он должен быть... hVosttодного только не могу понять. как клиент может вообще такие задачи ставить? а он случайно не объявляет для разработчика набор переменных, которые должны обязательно быть в коде и список методов, один из которых «сделать_хорошо()»? )) Ну если этого не можешь понять то до ПМ-а тебе еще очень далеко. Никогда не задумывался почему можно в автосалоне заказать машину с определенной комплектацией и дизайном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:47 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttно REST, это не стереотип, это архитектура веб. все сервера работают на этом принципе. 1. REST - это не архитектура. Это архитектурный стиль , другими словами - стереотип, религия, идея. Как не назови, всё правильно. 2. Сервера не работают на этом принципе :) Рассмотрим пример, классический ASMX сервис, работающий на SOAP рельсах. Откуда там REST? hVosttAJAX полностю укладывается в архитектуру REST. Правильно, но я говорил о другом. Речь же шла о том, каким "веб задумывался", вот я и аргументировал аяксом. hVosttтакого количества кривых рук программистов на веб-форм наверное нигде больше нет. ни о чем не заставляет задуматься? нет? Тут не совсем верно сравнивать, WebForms на рынке сущсетвует уже более десятка лет, MVC начал набирать обороты только с 3 версии (предыдущее - несъедобное гумно на лопате). Сравнивать миллион "кривых программистов" и "сотню умных" - согласись, неразумно. В обоих технологиях есть нормальные спецы, а есть идиоты. Это жизнь. hVosttну а те, кто выкурили все маны, прониклись и приняли концепцию веб-формс, мои глубочайшие поздравления. но нам, простым смертным, слишком далеко до этого левела :) Да ладно тебе, какие маны :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:47 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuщас скианыч прийдет и всех потушит рестфул сервисами!!) Скианыч еще не вышел из стадии кодеманки ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:49 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttя именно про выбор средств разработчиком до старта проекта. и когда заказчику параллельно, на чем это будет сделано, лишь бы ТЗ было выполнено и все работало в срок. ну может еще какие издержки потребуются на сопровождение, ведь чем мудреннее технология, тем дороже потом программист. поэтому выбирать надо что-то такое, что сможет быстрее освоить веб-программер, даже если он пол жизни ездил на рельсах, с разжиженными перлом мозгами в детстве )) Даже в таких случаях (технология хотя бы) прописывается в техническом задании. Но заказчику по идее должно быть фиолетово, главное, чтоб работало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:50 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuhVostt, прости вы считаете что бекбон и прочую тему в формы не засунуть?) и все разработчики на асп мвц такие крутые перцы?: ))) вопрос рук всегда будет актуален...щас скианыч прийдет и всех потушит рестфул сервисами!!) отдельное спасибо ему ..увлекло и понравилось) ну действительно, чоб бекбон в веб-формс не засунуть, где ему еще-то быть? )) засунуть можно. вы картинку про хлебный трамвай видели? или вам запостить? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:51 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, архитектура, стиль.... я однажды как-то пытался свою коллекцию музыки посортировать )) пока не понял, что металика играет в том же жанре, что и бритни спирс. в общем, архитектурный стиль, вы правы. архитектура, это уже что-то более конкретное. но четкий паттерн основного взаимодействия есть. от него все и пляшут. ну а моська решила пойти на встречу домохозякам. только в результате она создала особый вид домохозяек в очках с толстенными линзами, и абсолютно прямыми, несгибаемыми руками :) при усложнении приложений, границы фреймворков начинают стираться, поэтому один и тот же программист скорее всего сделает очень похожие вещи, что на веб-формс, что на мвц. я своими глазами видел как один программер 7 лет назад сделал на веб-форм свой мвц. при чем не с точки базового хендлера, а со стартовой точки веб-формс. ну в общем вы поняли :) чувствуете, что попахивает кривыми руками? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 10:59 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttпри усложнении приложений, границы фреймворков начинают стираться, поэтому один и тот же программист скорее всего сделает очень похожие вещи, что на веб-формс, что на мвц. +1 hVosttну в общем вы поняли :) чувствуете, что попахивает кривыми руками? )) О них и речь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:02 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, про MVC ниже 3-ей версии обсолютно согласен. я на том его этапе развития чуть для себя его не похоронил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:03 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttну действительно, чоб бекбон в веб-формс не засунуть, где ему еще-то быть? )) засунуть можно. вы картинку про хлебный трамвай видели? или вам запостить? :) да не спасибо) уже пошел просто какой то холивар))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:07 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIhVosttодного только не могу понять. как клиент может вообще такие задачи ставить? а он случайно не объявляет для разработчика набор переменных, которые должны обязательно быть в коде и список методов, один из которых «сделать_хорошо()»? )) Ну если этого не можешь понять то до ПМ-а тебе еще очень далеко. Никогда не задумывался почему можно в автосалоне заказать машину с определенной комплектацией и дизайном? пм — прожект менегер? не хочу )) ...но приходится да, я вот задумывался как-то о том, почему нельзя заказать машину с определенным дизайном и комплектацией. дают несколько вариантов на выбор. обычно нужно как можно навороченней и как можно понтовей. поэтому с небольшим выбором, это удобно, не надо париться над тем «а как сейчас модно», заходишь и забираешь самое последнее. только я не понимаю, как это относится к теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:15 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuhVostt, про руки. у меня не давно был проект который пришел в фирму от владельца одного сайта не большого. сделан на мвц..я думал круто будет..а хрен там ...ормка ввиде синглетона , трайкетчи понатыканы везде, чертовы лейзи загрузки из самой вьюшки когда вроде как по феншую надо вьюмодел готовую и можно дальше перечислять.... ну лейзи загрузки из вьюшки не так уж и плохи в некоторых случаях. конечно, гоняться за стопроцентным соблюдением паттерна также плохо, как и совсем не следовать ему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:24 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
лан, холиворить похоже над приходить в пятницу )) всем удачного дня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:27 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttну лейзи загрузки из вьюшки не так уж и плохи в некоторых случаях. конечно, гоняться за стопроцентным соблюдением паттерна также плохо, как и совсем не следовать ему. вьюшка не должна грузить себе что то еще, а должна только отображать..хотите кашу вперед... и это фейл если еще есть доступ вьюшки к бд/орму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:28 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuвьюшка не должна грузить себе что то еще, а должна только отображать..хотите кашу вперед... и это фейл если еще есть доступ вьюшки к бд/орму вьюшка должна делоть то, что должна. презентовать слой логики. каши как раз нет. ef, например как раз и предоставляет айквериэйбл, типа микроконтроллера. никакого доступа к орму нет. только легкое ненавязчивое управление выводом. поясню. например, у меня три различных вьюшки для одного и того же. для десктопов, для мобилок ну и для чтения (печати, а также олдскул браузеров, включая текстовых). где-то нужно больше информации отобразить, где-то меньше. контроллеру, что там на выходе обычно знать ни к чему. ну это если следовать чистой мвс логике. а еще ведь могут быть атом/фиды и другие причины вью не заниматься фигней, заставляя всю подинфраструктуру передачи данных повторять по 10 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:34 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttвьюшка должна делоть то, что должна. презентовать слой логики. каши как раз нет. ef, например как раз и предоставляет айквериэйбл, типа микроконтроллера. никакого доступа к орму нет. только легкое ненавязчивое управление выводом. Чего чего? Ты что, во вьюху пихаешь IQueryable члены? С дубу что-ли рухнул? :) Во-первых, датаконтекст будет уже задестроен, трансляции SQL никакой уже не будет. Во-вторых, ты что, используешь глобальный (кеш, статика, аппликейшен) датаконтекст EF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:41 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУЧего чего? Ты что, во вьюху пихаешь IQueryable члены? С дубу что-ли рухнул? :) Во-первых, датаконтекст будет уже задестроен, трансляции SQL никакой уже не будет. Во-вторых, ты что, используешь глобальный (кеш, статика, аппликейшен) датаконтекст EF? временем жизни управляет другой механизм, например автофак. все там ок, вы не переживайте, и трансляция SQL и своевременное уничтожение контекстов. честно говоря, вью вообще не в курсе, что там какая-то база данных сидит, у которой бывает невиданный «езык запросов». строя архитектуру по этому курсу, в последствии легко сменить поставщик данных на какой-нибудь равен или монго. главное, это хороший di контейнер и разруливание зависимостей и временем жизни объектов. юзинг-отдай-данные-умри это из учебных примеров, весьма хорош для начинаний )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:49 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttвременем жизни управляет другой механизм, например автофак. все там ок, вы не переживайте, и трансляция SQL и своевременное уничтожение контекстов. честно говоря, вью вообще не в курсе, что там какая-то база данных сидит, у которой бывает невиданный «езык запросов». строя архитектуру по этому курсу, в последствии легко сменить поставщик данных на какой-нибудь равен или монго. главное, это хороший di контейнер и разруливание зависимостей и временем жизни объектов. юзинг-отдай-данные-умри это из учебных примеров, весьма хорош для начинаний )) Тааак, что-то ты мне голову морочишь :) Вообщем, жду от тебя пример контроллера, в котором будет четко отражено, как он подготавливает модель для представления. А потом продолжим дискуссию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:52 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt, хм а для таких случаев делаю через RenderPartial / RenderAction вызываю или нет и концепция сохраняется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 11:59 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttef, например как раз и предоставляет айквериэйбл, типа микроконтроллера. никакого доступа к орму нет. только легкое ненавязчивое управление выводом. 1. Еще раз не совем понятно, что за "ненавязчивое управление выводом" и в каком слое оно реализовано? 2. Какой-такой микроконтроллер? :) Ты, наверное, рассуждаешь о неком IService или фабрике? Опять же, в каком слое? 3. Давай всё по-порядку, рассмотрим 3 слоя: модель, представление и контроллер (можно четвертый слой ввинтить - модель представления). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:04 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, Код: 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. как видно все, что нужно для работы инжектируется в контроллер каким-то внешним объектом (депенси ресолвером), оно же управляет временем жизни. зачем отдавать вью квери и параметры сортировки? ну, например, хотя бы потому, что вью может выбрать столько, сколько нужно и отсортировать в соответствии со видом и назначением вью (например, параметры сортировки для атома всегда одни и те, же в независимости от того, что там хочет контроллер) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
представленный выше пример достаточно примитивный, конечно в реальном большом проекте фильтры/сортировки инкапсулируются в отдельные структуры, и во вью отдаётся специальный моделвью но в использовании iqueryable ничего плохого нет, я считаю. так как сломать данные (базу) нельзя, отсутствует доступ к контексту и к unitofwork, все что можно делать, это сортировать и фильтровать. но при развитии проекта, iqueryable все реже перепадает вью. я знаю, что различные гуру советуют все упаковывать во вью модель и только так. не согласен с ними. заочно не согласен с любыми позициями, где фигурируют слова «только вот так, и никак иначе» :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:26 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttef, например как раз и предоставляет айквериэйбл, типа микроконтроллера. никакого доступа к орму нет. только легкое ненавязчивое управление выводом. 1. Еще раз не совем понятно, что за "ненавязчивое управление выводом" и в каком слое оно реализовано? 2. Какой-такой микроконтроллер? :) Ты, наверное, рассуждаешь о неком IService или фабрике? Опять же, в каком слое? 3. Давай всё по-порядку, рассмотрим 3 слоя: модель, представление и контроллер (можно четвертый слой ввинтить - модель представления). дали тебе список солдат. ты как, вью можешь разделить их по ротам, отделениям и взводам, разместив их по группам на большом экране. но если вдруг у тебя маленький экранчик 320пикс шириной, ты покажешь только группировку по взводам, а в них отобразишь командиров отделений. вот как-то так. простейший пример. микроконтроллер, я так называю некоторые самодостаточные интерфейсы, IEnumerable и IQueryable вкупе с LINQ одни из них. т.е. универсальные сервисы. еще это могут быть всякие IPageable, IRoleable.... то, что эти насквозь прошивают «великую и могучую» MVC не нарушает её принципов, если не нарушают принципов независимости и самодостаточности. как говорится, не плодите лишних сущностей :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:37 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttкак видно все, что нужно для работы инжектируется в контроллер каким-то внешним объектом (депенси ресолвером), оно же управляет временем жизни. В большинстве случаев (а их 99%) достаточно ручной инстанциации экземпляра (IProjectRepository) - через конструктор базового контроллера. У тебя он отсутствует. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. В IDataService - только IEnumerable , никаких квери и еще что-либо. Код: c# 1. 2. 3. 4. 5. По причине того, что мы можем подключить сторонний датасервис, например, XmlDataService, который ничего не знает о трансляции SQL. IEnumerable - это бест практис. hVosttзачем отдавать вью квери и параметры сортировки? ну, например, хотя бы потому, что вью может выбрать столько, сколько нужно и отсортировать в соответствии со видом и назначением вью (например, параметры сортировки для атома всегда одни и те, же в независимости от того, что там хочет контроллер) Как решается эта задача - в IDataService: Код: c# 1. Всё. А в своём SqlDataService или XmlDataService делаешь реализацию. Из контроллера: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. Идея понятна? P.S. Слишком много инъекций с ресолвами, код выглядит загаженно и удручающе. В моем случае - код чистый, инкапсуляция рулит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:43 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt, ваша позиция ясна) а вам никто не говорил делать так и не иначе по другому. на вкус и цвет фломастеры разные) но чет смущает меня. зачем к примеру зачем отдельный репозиторий, если есть UoW? или то что код загажен как то, хотя я может не прав тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:50 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, нееет, батенька )) про 99% разработчиков, не применяющих TDD вы конечно загнули. ладно, забьём на тесты, русские тру-кодеры хотели покакать на это ваше тестирование с большой мариуопольской вышки. кейс №1. базовый контроллер — это плохо. это действительно плохо, так как рулить контроллерами должна фабрика, а не инкапсуляция. а мало ли чего (мы же забыли про тесты, та?). если хотябы фабрика своя и она даёт датасервис каждому контроллеру... ну это вообще жуть. получается каждый контроллер де-факто имеет доступ ко всей дата бейз? ну и ну. поехали дальше. почему репа и сервис — вещи разные. потому что репа, это инстанс дженерика почти во всех случаях. ну а про тесты мы уже даже и не вспоминаем. а сервис, более умный брат репы, так как знает больше умных слов, чем чего-то откуда-то взять и куда-то сохранить. а еще в сервис может инжектироваться кеш-провайдер. и сервис будет послушно брать данные из кеша, при чем даже не догадываясь, как это вообще получилось. едем дальше. наконец, кейс. реальный! жил-проект. у него все было в одной базе и все было круто. потом вдруг этот проект попадает в стек других проектов, где есть своя база данных пользователей, ролей и прочей профильной фигни. как же это решается? ничегошеньки переделывать не надо. пишется реализация IUserRepository, подсовывается в депенси ресолвер. в итоге, ни один контроллер, ни один сервис, ни один фильтр не почувствал разницы. ок? заказчик доволен, программеры в экстазе. все решилось быстро и без нервотрепки. ну и на последок. ладно вы отдаете в контроллер инстанс датасервиса через базовый класс. а кто отдает этот инстанс различным фильтрам? в том числе глобальным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:55 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuзачем к примеру зачем отдельный репозиторий, если есть UoW? Немного не понял, о каком репозитории речь? :) У меня нет репозиториев, у меня абстракция для контроллера - IDataService. С реализациями в виде SqlDataService, XmlDataService и т.д. Подключай к базовому контроллеру любой провайдер (сервис), и твоё приложение будет крутиться на новых рельсах (вроде инкапсулированного мока). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, потому что у UoW одна задача — сделать дать сделать коммит (или не дать). ради чего в этот вов пихают свои сервисы и репы не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 12:57 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, и эта.. IDataService это не абстракция )) это весьма конкретный дай-сюда-это, возьми-вот-это, сделай-как-то-так. интерфейсом зовётся. ну если только это не обстракция в виде: IDataService { MyDbContext Context {get;} } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:03 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, нееет, батенька )) про 99% разработчиков, не применяющих TDD вы конечно загнули. Я ничего не говорил про "неприменение TDD". Мой "вариант" так же легко можно тестировать. hVosttладно, забьём на тесты, русские тру-кодеры хотели покакать на это ваше тестирование с большой мариуопольской вышки. Не согласен. Тестирование - это хорошо, я это не отрицаю :) Просто главное понимать, тесты пишутся для программ, но не наоборот. Это я к 100% покрытию (шизофрения). hVosttкейс №1. базовый контроллер — это плохо. это действительно плохо, так как рулить контроллерами должна фабрика, а не инкапсуляция. а мало ли чего (мы же забыли про тесты, та?). если хотябы фабрика своя и она даёт датасервис каждому контроллеру... ну это вообще жуть. получается каждый контроллер де-факто имеет доступ ко всей дата бейз? ну и ну. 1. Ну так рули в базовом контроллере, хоть руками, хоть через фабрику. Какая принципиальная разница? Зато я не размазываю эту логику в самих прикладных контроллерах. Даешь чистый контроллер! 2. Каждый контроллер де-факто не имеет доступ ко всей дата бейз, каждый контроллер де-факто имеет доступ своему IDataServive. Почувствуй разницу. hVosttпоехали дальше. почему репа и сервис — вещи разные. потому что репа, это инстанс дженерика почти во всех случаях. Чё-то я нифига не понял, еще раз - причем тут вообще дженерик? Репозиторий так же не обязан быть дженериком. hVosttа сервис, более умный брат репы, так как знает больше умных слов, чем чего-то откуда-то взять и куда-то сохранить. а еще в сервис может инжектироваться кеш-провайдер. и сервис будет послушно брать данные из кеша, при чем даже не догадываясь, как это вообще получилось. Да это принципиально одно и то же, у меня просто абстракция в дата слое. hVosttедем дальше. наконец, кейс. реальный! жил-проект. у него все было в одной базе и все было круто. потом вдруг этот проект попадает в стек других проектов, где есть своя база данных пользователей, ролей и прочей профильной фигни. как же это решается? ничегошеньки переделывать не надо. пишется реализация IUserRepository, подсовывается в депенси ресолвер. в итоге, ни один контроллер, ни один сервис, ни один фильтр не почувствал разницы. ок? заказчик доволен, программеры в экстазе. все решилось быстро и без нервотрепки. Так у меня точно так же, пишется свое реализация IDataService (например, был SqlDataService, а стал WcfDataService или XmlDataService). Потом в базовом конструкторе кентроллера мы подключили наш новый сервис и всё стало так же работать (через абстракции IDataService). Ты читаешь как-то между строк, что-ли? Или я пишу непонятно :) hVosttну и на последок. ладно вы отдаете в контроллер инстанс датасервиса через базовый класс. а кто отдает этот инстанс различным фильтрам? в том числе глобальным? Выражайся по-русски, инопланетяне сейчас не в моде. Какой фильтр? Что такое глобальный фильтр, ты о чем вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:06 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, и эта.. IDataService это не абстракция )) это весьма конкретный дай-сюда-это, возьми-вот-это, сделай-как-то-так. интерфейсом зовётся. ну если только это не обстракция в виде: IDataService { MyDbContext Context {get;} } Нет, это абстракция. Код: c# 1. 2. 3. 4. 5. P.S. Мляяя, сорри, я понял ошибку Я в начале написал "class", а надо "interface". Разумеется, речь о interface, сорри Из-за этого сыр-бор :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:08 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ эт я hVostt вопрос адресовал) hVostt, ну да но uow и репо близки. честно ...чет я сам запутался. загуглил сюды http://stackoverflow.com/questions/7940854/is-unit-of-work-and-repository-patterns-very-useful-for-big-projects uow - это типа буфера для команд обновления БД репозиторий - это ОО интерфейс к данным. он же отслеживает изменения в модели и выдает команды к uow фишка в том, что все крупные ORM - это UoW + Repository собственно из-за этого и спросил про зачем они вместе лежат по мне EF + тонкий интерфейс над ним - вот и все, что нужно. или вам надо сделать абстракцию над орм? ...я думаю переезды на другую орм ..я хз событие как конец света - редкое, но веселое)! п.с. надеюсь я еще адекватен и не в бреду и правильно понял) даешь пятницу в среду!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:21 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttМСУ, нееет, батенька )) про 99% разработчиков, не применяющих TDD вы конечно загнули. Я ничего не говорил про "неприменение TDD". Мой "вариант" так же легко можно тестировать. хотел бы я на это посмотреть. МСУhVosttкейс №1. базовый контроллер — это плохо. это действительно плохо, так как рулить контроллерами должна фабрика, а не инкапсуляция. а мало ли чего (мы же забыли про тесты, та?). если хотябы фабрика своя и она даёт датасервис каждому контроллеру... ну это вообще жуть. получается каждый контроллер де-факто имеет доступ ко всей дата бейз? ну и ну. 1. Ну так рули в базовом контроллере, хоть руками, хоть через фабрику. Какая принципиальная разница? Зато я не размазываю эту логику в самих прикладных контроллерах. Даешь чистый контроллер! 2. Каждый контроллер де-факто не имеет доступ ко всей дата бейз, каждый контроллер де-факто имеет доступ своему IDataServive. Почувствуй разницу. получается, вы размазали свой код не вдоль, а поперёк. Действительно, какая принципиально разница? Вы выиграли только визуально (меньше кода в контроллере отображается), но функционально.... в общем дабы избежать долгого спора, раньше я именно так и делал (как вы) :) вот практически один в один, базовый контроллер, большой дата сервис (обстракция!). но потом пришло время расти. надо было 100% тестирование. это не шиза, это реальное условие заказчика (к вопросу об условиях заказчика, в особенности зарубежного). МСУhVosttпоехали дальше. почему репа и сервис — вещи разные. потому что репа, это инстанс дженерика почти во всех случаях. Чё-то я нифига не понял, еще раз - причем тут вообще дженерик? Репозиторий так же не обязан быть дженериком. это я к слову сказал. но чтобы было понятней: Repository<TEntity>: IRepository<TEntity>... скафолдинг и кодогенерация (а ручки-то вот они где) МСУhVosttа сервис, более умный брат репы, так как знает больше умных слов, чем чего-то откуда-то взять и куда-то сохранить. а еще в сервис может инжектироваться кеш-провайдер. и сервис будет послушно брать данные из кеша, при чем даже не догадываясь, как это вообще получилось. Да это принципиально одно и то же, у меня просто абстракция в дата слое. не одно и тоже. репу можно подсунуть другую, сервис будет работать с любой репой. а вот если надо переписывать весь сервис из-за смены Sql на Xml (кстати, хотел спросить что за пример такой допотопный, кому вообще может прийти в голову менять Sql на Xml? или веб-сервис? я еще понимаю монго, мемори...) МСУhVosttедем дальше. наконец, кейс. реальный! жил-проект. у него все было в одной базе и все было круто. потом вдруг этот проект попадает в стек других проектов, где есть своя база данных пользователей, ролей и прочей профильной фигни. как же это решается? ничегошеньки переделывать не надо. пишется реализация IUserRepository, подсовывается в депенси ресолвер. в итоге, ни один контроллер, ни один сервис, ни один фильтр не почувствал разницы. ок? заказчик доволен, программеры в экстазе. все решилось быстро и без нервотрепки. Так у меня точно так же, пишется свое реализация IDataService (например, был SqlDataService, а стал WcfDataService или XmlDataService). Потом в базовом конструкторе кентроллера мы подключили наш новый сервис и всё стало так же работать (через абстракции IDataService). Ты читаешь как-то между строк, что-ли? Или я пишу непонятно :) вы лезете в конструктор контроллера и что-то там меняете, чтобы сменить сервис. и после этого вы мне говорите, что ваше решение готово к TDD? вы издеваетесь? МСУhVosttну и на последок. ладно вы отдаете в контроллер инстанс датасервиса через базовый класс. а кто отдает этот инстанс различным фильтрам? в том числе глобальным? Выражайся по-русски, инопланетяне сейчас не в моде. Какой фильтр? Что такое глобальный фильтр, ты о чем вообще?[/quot] ActionFilter, ActionFilterAttrribute, AuthorizationFilterAttribute..... etc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:22 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
уууу, вот поперла тема! Пиво и попкорн закупил вечером после раббы почитаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:36 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
хотел бы разъяснить, почему я провожу четкую черту между сервисом и репозиторием вот репозиторий: Код: 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. репы для остальных сущностей делаются так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. ничего нового? ну это нужно потому, что отдельные сущности могут потребовать каких-то сложных ресурсоёмких операций, которые должны быть реализованы именно в слое данных (вьюха или табличная процедура в базе, например), но это редкий случай. выборки, даже сложные в LINQ обычно отрабатывают достаточно быстро, а с учетом кеширования.... а вот сервис, это такой умный братан репы, который знает много контекстно-зависимых слов: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. реализован сервис полностью через репозиторий. поэтому достаточно сменить репу. при чем, репу сменить можно всего одной строчкой в конфиге CS или даже в web.config, так что эта репа будет использоваться везде в проекте. при чем репу можно сменить для отдельной сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:41 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuМСУ эт я hVostt вопрос адресовал) hVostt, ну да но uow и репо близки. честно ...чет я сам запутался. загуглил сюды http://stackoverflow.com/questions/7940854/is-unit-of-work-and-repository-patterns-very-useful-for-big-projects uow - это типа буфера для команд обновления БД репозиторий - это ОО интерфейс к данным. он же отслеживает изменения в модели и выдает команды к uow фишка в том, что все крупные ORM - это UoW + Repository собственно из-за этого и спросил про зачем они вместе лежат по мне EF + тонкий интерфейс над ним - вот и все, что нужно. или вам надо сделать абстракцию над орм? ...я думаю переезды на другую орм ..я хз событие как конец света - редкое, но веселое)! п.с. надеюсь я еще адекватен и не в бреду и правильно понял) даешь пятницу в среду!!! у EF DbContext это UnitOfWork. но мы делаем свой UoW, поверх него. задача у него одна, принципиальная. в контроллер мы никогда не прокидываем DbContext. а сохранять данные как-то надо. прокидываем IUnitOfWork, у которого есть Save (или Commit, кому как нравится). да, он может много чего еще. отслеживать изменения данных, вешаясь на определенные события, если надо. в общем, действовать как транзакционная машина, обрабатывать программные триггеры. ну и самое главное. если в контроллере нет IUnitOfWork, значит он гарантированно 100% ничего в базу не сохраняет. только берет. это важный в разработке ньюанс. на самом деле приведенный выше код, это не «много грязи в коде», это кристальная ясность относительно того, что контроллер делает. а если контроллер чист, типа все ему передается через базовый класс, то не понятно ничего. надо копать. в большом проекте ковыряться для выяснения обстоятельств, — нудное и безынтересное занятие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:51 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttхотел бы я на это посмотреть. Гавно вопрос, выложил сюда подход: http://codearticles.ru/Home/ArticleView/2155 hVosttполучается, вы размазали свой код не вдоль, а поперёк. Действительно, какая принципиально разница? Вы выиграли только визуально (меньше кода в контроллере отображается), но функционально.... 1. Визуальность рулит, дружище. Смотреть в каждый код на тонны гавнокода, гвоздями прибитого к фабрикам, репозиториям, датасервисам... Бррр. Вспомни о трёх китах объектно-ориентированного программирования :) 2. Функционально я не проигрываю, сколько раз тебе объяснять, могу еще раз объяснить это. Ты просто помешан на резолвах в локаторах, а я объясняю, что в большинстве случаев и инстанция подойдет - главное, что она в одном месте . Зачем мне 100500 резолвов, размазанных в 100500 контроллерах, если я один раз в базовом контроллере инстанциируюсь и все унаследованные контроллеры получат своего поставщика. hVosttв общем дабы избежать долгого спора, раньше я именно так и делал (как вы) :) вот практически один в один, базовый контроллер, большой дата сервис (обстракция!). но потом пришло время расти. надо было 100% тестирование. это не шиза, это реальное условие заказчика (к вопросу об условиях заказчика, в особенности зарубежного). Ты в упор не видишь то, что я пишу? Еще раз - мой вариант отлично тестируемый, ничем не уступает твоему. Но главный его плюс - это его чистота, посмотри в примере в аттаче и сравни со своей "грязной" реализацией. hVosttэто я к слову сказал. но чтобы было понятней: Repository<TEntity>: IRepository<TEntity>... скафолдинг и кодогенерация (а ручки-то вот они где) На свалку, ибо Repository может зависить от n entity. А если у на 2 БД, плодить два репозитория и делать 2 подключения к БД? :) У меня же IDataService более "абстрактен", к нему можно прибить 2 базы данных (по сути это одно хранилище, разнесенное по базам - так, к примеру, шарепоинт работает), а на выхлопе использовать родные сущности. И всё это счастье за единый коннекшен (в твоем случае их будет уже два). Кстати, один из минусов ORM это то, что они прибиваются к одной БД в разрезе контекста. Последствия сам понимаешь какие. Я же всегда могу обойти это в своем слое (на ридерах вмапиться в прокси классы) за одно физическое соединени к БД. hVosttне одно и тоже. репу можно подсунуть другую, сервис будет работать с любой репой. а вот если надо переписывать весь сервис из-за смены Sql на Xml (кстати, хотел спросить что за пример такой допотопный, кому вообще может прийти в голову менять Sql на Xml? или веб-сервис? я еще понимаю монго, мемори...) Ну почему допотопный, вот тебе ситуация из жизни. Нужно писать софт, ТЗ готово, всё готово, люди пишут. Но планируется, что через n-месяцев, когда будет запущено сторонее приложение (пусть на аксапте) мы будем осуществлять поставку данных через эту систему - например, некоторые справочники и служебные данные. Мы пишем свой Sql сервис и спокойно живем. Потом, когда вклинивается аксапта и говорит - берите данные теперь через меня, мы переключаем своё приложение на новый источник - через аксаптовых WCF сервис. Классическое интеграционное решение, просто ты в таких не участвовал, это видно невооруженным глазом :) Я ж говорю, меняй стереотипы, иначе так и помрешь в неведении )) hVosttвы лезете в конструктор контроллера и что-то там меняете, чтобы сменить сервис. и после этого вы мне говорите, что ваше решение готово к TDD? вы издеваетесь? Никто не мешает управлять точно так же через резолвинг через тот же автофак. Зри в корень, а не плавай на поверхности. hVosttActionFilter, ActionFilterAttrribute, AuthorizationFilterAttribute..... etc. См. выше, ты можешь управлять экземпляром в единой песочнице и подсовывать ее в базовый конструктор, фильтры и иже с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 13:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttхотел бы разъяснить, почему я провожу четкую черту между сервисом и репозиториемрепы для остальных сущностей делаются так Лишняя работа, обреченная на гавнокод. hVosttа вот сервис, это такой умный братан репы, который знает много контекстно-зависимых слов: Говорю же, лишнее расслоение. В моем случае я создал бы новый IProjectService и научил бы его последователей всему тому, что требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:01 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttхотел бы я на это посмотреть. Гавно вопрос, выложил сюда подход: http://codearticles.ru/Home/ArticleView/2155 Посмотрю сегодня вечером, о результатах отпишусь :-) МСУhVosttполучается, вы размазали свой код не вдоль, а поперёк. Действительно, какая принципиально разница? Вы выиграли только визуально (меньше кода в контроллере отображается), но функционально.... 1. Визуальность рулит, дружище. Смотреть в каждый код на тонны гавнокода, гвоздями прибитого к фабрикам, репозиториям, датасервисам... Бррр. Вспомни о трёх китах объектно-ориентированного программирования :) 2. Функционально я не проигрываю, сколько раз тебе объяснять, могу еще раз объяснить это. Ты просто помешан на резолвах в локаторах, а я объясняю, что в большинстве случаев и инстанция подойдет - главное, что она в одном месте . Зачем мне 100500 резолвов, размазанных в 100500 контроллерах, если я один раз в базовом контроллере инстанциируюсь и все унаследованные контроллеры получат своего поставщика. 1. Никакой тонны. Я смотрю на то, с чем работаю. Вижу IUnitOfWork, значит понимаю, что могу сохранять данные. Вижу сервис с определенным названием, значит знаю какую область я решаю. Хорошо, когда помнишь. Плохо, когда уже подзабыл, или вас несколько человек работает над одним проектом. Абсолютно ничего лишнего. Я вижу с чем работает контроллер, а не лажу в базовый класс, чтобы разобраться что мне оттуда приходит. В этом и прелесть, дружище :) 2. Она у тебя в базовом контроллере. Считаешь, это лучшее место для управления жизнью инстансов, которые могут понадобиться еще и за пределами контроллера (фильтры, например)? МСУ... Но главный его плюс - это его чистота, посмотри в примере в аттаче и сравни со своей "грязной" реализацией. про тестирование, вечером гляну. а вот грязи никакой нет. класс самодостаточен, я вижу что он получает при создании (конструктор), вижу что он хранит. я могу создать такой контроллер отдельно, вообще в другой сборке. это самый чистый контроллер из всех. МСУhVosttэто я к слову сказал. но чтобы было понятней: Repository<TEntity>: IRepository<TEntity>... скафолдинг и кодогенерация (а ручки-то вот они где) На свалку, ибо Repository может зависить от n entity. А если у на 2 БД, плодить два репозитория и делать 2 подключения к БД? :) У меня же IDataService более "абстрактен", к нему можно прибить 2 базы данных (по сути это одно хранилище, разнесенное по базам - так, к примеру, шарепоинт работает), а на выхлопе использовать родные сущности. И всё это счастье за единый коннекшен (в твоем случае их будет уже два). Кстати, один из минусов ORM это то, что они прибиваются к одной БД в разрезе контекста. Последствия сам понимаешь какие. Я же всегда могу обойти это в своем слое (на ридерах вмапиться в прокси классы) за одно физическое соединени к БД. мда... :) мы похоже забыли про прослойку EF, которой можно отдать другой провайдер данных в конфиге, или другую строку соединения. речь идёт о принципиальной смене поставщика данных. DbContext там не катит. поэтому приложение ничего не знает об это контексте. он работает только с сервисами и репами. МСУЯ ж говорю, меняй стереотипы, иначе так и помрешь в неведении )) а вы... а вы.. )) уничтожаете мои стереотипы, как не стыдно! МСУНикто не мешает управлять точно так же через резолвинг через тот же автофак. Зри в корень, а не плавай на поверхности. ну если так, другое дело. просто вы говорите, можно, но так не делаете. значит для TDD вам потребуется подгонка проекта. ну может вам перепадёт заказ со 100% тдд, а вы их окрестите шизой )) МСУhVosttActionFilter, ActionFilterAttrribute, AuthorizationFilterAttribute..... etc. См. выше, ты можешь управлять экземпляром в единой песочнице и подсовывать ее в базовый конструктор, фильтры и иже с ним. единая песочница где находится? это синглетон? статик класс? отдельный менеджер? что бы вы не назвали, оно тоже должно где-то находиться )) только вот, что это за мифическая штуковина, которая снабжает инстантами контроллеры, фильтры и следит за временем их жизни? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:15 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttхотел бы разъяснить, почему я провожу четкую черту между сервисом и репозиториемрепы для остальных сущностей делаются так Лишняя работа, обреченная на гавнокод. интересный вывод )) жаль, не приправленный доводами... знаете, как-то безвкусно, может найдется щепотка... чего-нибудь? МСУhVosttа вот сервис, это такой умный братан репы, который знает много контекстно-зависимых слов: Говорю же, лишнее расслоение. В моем случае я создал бы новый IProjectService и научил бы его последователей всему тому, что требуется. звучит как будто из уст проповедника )) идите мои браться, да распространится знание по миру! расслоение лишним никогда не бывает. собрать, знаете ли, на много проще, чем разобрать (в мире программирования). тем более не забывайте о Single Of Responsibility. оно знаете ли, очень хорошо выручает, когда требуется вносить изменения и на этапе интенсивной итеративной разработки. и не забывайте еще, что в человеке 206 костей, а не две-три большие. умные дядьки вообще говорили, что один класс должен выполнять одну маленькую задачу. например, одного такого зовут мартин фаулер. хотя вообще-то он просто надменный ботан, ничего не понимающий в разработке приложений. а ТДД, оно и понятно, что для шизанов )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:22 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttПосмотрю сегодня вечером, о результатах отпишусь :-) Ок, главное обращай внимание на чистоплотность кода ) hVostt1. Никакой тонны. Я смотрю на то, с чем работаю. Вижу IUnitOfWork, значит понимаю, что могу сохранять данные. Вижу сервис с определенным названием, значит знаю какую область я решаю. Хорошо, когда помнишь. Плохо, когда уже подзабыл, или вас несколько человек работает над одним проектом. Абсолютно ничего лишнего. Я вижу с чем работает контроллер, а не лажу в базовый класс, чтобы разобраться что мне оттуда приходит. В этом и прелесть, дружище :) 2. Она у тебя в базовом контроллере. Считаешь, это лучшее место для управления жизнью инстансов, которые могут понадобиться еще и за пределами контроллера (фильтры, например)? 1. А ты никогда не работает в команде? Ууу... Я точно так же вижу интерфейс сервиса, вижу его члены, значит знаю какую область я решаю. 2. Еще раз, не путай хранение сервиса в базовом контроллере и управление жизнью. Если ты хочешь управлять жизнь, ты точно так же в базовом контроллере можешь сделать ссылку на фабрику, которая выплевывает тебе экземпляр. Я тебе об этом уже битый час тылдычу, чтож так туго доходит. Не понимаешь до сих, о чем я говорбю? :) Мля, ну на пальца - ты прибиваешь свои интерфейсы в реализации прикладного контроллера. Я прибиваю - в реализации базового контроллера. Всё, только в этом разница. Нужно руками инстанциироваться - пожалуйста, хочешь честный TDD - выноси жизнь экземпляра на дополнительную абстракцию DI. Ну что ж такое-то... hVosttпро тестирование, вечером гляну. а вот грязи никакой нет. класс самодостаточен, я вижу что он получает при создании (конструктор), вижу что он хранит. я могу создать такой контроллер отдельно, вообще в другой сборке. это самый чистый контроллер из всех. Гы, ты же сам признал ранее, что грязно :) hVosttмда... :) мы похоже забыли про прослойку EF, которой можно отдать другой провайдер данных в конфиге, или другую строку соединения. речь идёт о принципиальной смене поставщика данных. DbContext там не катит. поэтому приложение ничего не знает об это контексте. он работает только с сервисами и репами. А причем тут прослойка EF, если ты генерик репозиторий прибиваешь к определенному типу контекста? Или не к типу контекста? Вот смотрю твой код репозитория, он выплевывает IQueryable. Откуда ты берешь контексты EF и как ими управляешь? Ты не показал самого главного. hVosttа вы... а вы.. )) уничтожаете мои стереотипы, как не стыдно! Ломать не строить hVosttну если так, другое дело. просто вы говорите, можно, но так не делаете. значит для TDD вам потребуется подгонка проекта. ну может вам перепадёт заказ со 100% тдд, а вы их окрестите шизой )) Ну наконец! TDD - это еще не значит, что обязательно нужен сервис локатор, согласен? :) hVosttединая песочница где находится? это синглетон? статик класс? отдельный менеджер? что бы вы не назвали, оно тоже должно где-то находиться )) только вот, что это за мифическая штуковина, которая снабжает инстантами контроллеры, фильтры и следит за временем их жизни? Да хоть ASP.NET кеш или application, без разницы :) А мифическая штука - это называется фабрика (factory). Слыхал о таком паттерне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:33 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt у EF DbContext это UnitOfWork. но мы делаем свой UoW, поверх него. задача у него одна, принципиальная. в контроллер мы никогда не прокидываем DbContext. а сохранять данные как-то надо. прокидываем IUnitOfWork, у которого есть Save (или Commit, кому как нравится). да, он может много чего еще. отслеживать изменения данных, вешаясь на определенные события, если надо. в общем, действовать как транзакционная машина, обрабатывать программные триггеры. ну и самое главное. если в контроллере нет IUnitOfWork, значит он гарантированно 100% ничего в базу не сохраняет. только берет. это важный в разработке ньюанс. на самом деле приведенный выше код, это не «много грязи в коде», это кристальная ясность относительно того, что контроллер делает. а если контроллер чист, типа все ему передается через базовый класс, то не понятно ничего. надо копать. в большом проекте ковыряться для выяснения обстоятельств, — нудное и безынтересное занятие. да какой то выхлоп не большой ...обертку над оберткой. как я уже писал "EF + тонкий интерфейс над ним - вот и все". ну на этом я закончу дебаты и просто попкорном запасусь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:34 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttинтересный вывод )) жаль, не приправленный доводами... знаете, как-то безвкусно, может найдется щепотка... чего-нибудь? А какие тут доводы нужны, если ты расслаиваешь свой EF контекст и выводишь уже свои IQueryable. Нафига? EF контекст - это и так уже по сути репозиторий (кодогенеренный или codefirst). Зачем делать второй репозиторий? hVosttзвучит как будто из уст проповедника )) идите мои браться, да распространится знание по миру! Дак это баян, извини, что про тебя забыли. Сто раз перетирали, что делать второй репозиторий наж контекстом - зло. hVosttрасслоение лишним никогда не бывает. Во всём нужно знать меру. Иначе твой подход превращается в безумие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:36 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuда какой то выхлоп не большой ...обертку над оберткой. как я уже писал "EF + тонкий интерфейс над ним - вот и все". ну на этом я закончу дебаты и просто попкорном запасусь) +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:37 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhandmadeFromRuщас скианыч прийдет и всех потушит рестфул сервисами!!) Скианыч еще не вышел из стадии кодеманки )Опа-на, обоснуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 14:51 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAОпа-на, обоснуй. Чё обосновывать, 1. Только укуренные могут переписывать приложение с MVC на WebForms 2. Только укуренные могут скрещивать ужа с удавом 3. Только укуренные могут использовать разные левые гавношаблоны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 15:16 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, неубедительно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 15:20 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
ИзопропилМСУ, неубедительно Давняя история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 15:25 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttхотел бы разъяснить, почему я провожу четкую черту между сервисом и репозиторием Так и есть, репозиторий тупо для CRUD, сервис это уже BL. В мелких проектах правда без разницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 15:40 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAОпа-на, обоснуй. Чё обосновывать, 1. Только укуренные могут переписывать приложение с MVC на WebForms 2. Только укуренные могут скрещивать ужа с удавом 3. Только укуренные могут использовать разные левые гавношаблоны1. Уже уточнял, что никто ничего не преписывает с WebForms на MVC. Пишется новый большой модуль системы на MVC: CMS. Старая CMS имеет примитивный функционал, который не переписывается, а выкидывается, а то, что не выкидывается, дёргается из MVC. Улавливаешь, или укуренный? 2. Если не переписывать, то приходится вызывать некоторые контролы в том виде, в каком они есть. Это просто, а не то, что скрещивать ужа с удавом в надежде получить нормальный гибрид 3. Говношаблоны у тебя в штанах. StringTemplate - это нормальный движок на базе ANTLR. Так что ни фига твое мнение не обосновано. Одно лишь тро-ло-ло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 16:39 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, несете чушь. при чем такую непроходимо глухую и несусветную. с такой позицией как у вас можно, обладая усердием, доказать что MVC усложнение, увеличение количества не нужных простому деревенскому мужику слоёв, и всё надо писать в одном классе. никаких проблем с инстантами, все в одном месте, все всем всегда доступно. а зачем вы делаете IDataService? зачем расслаиваетесь? дайте контроллеру DbContext и не парьте себе мозги. чистота кода будет на высшем уровне -- ничегошеньки лишнего. потом тайна покрытая пылью, чтоже там у вас в базовых контроллерцах, ЧТО? какой-то мега фэктори-мен? но на самом деле по барабану что у вас там сидит и как контроллер получает свой инстанс, либо так: new MyDataService, либо так MyDbFactoryOfServices.GetService<>(), либо даже так MySuperFactoryOfMyFactories.GetFactory().GetService().... разница нет. пока есть цепочка прямых зависимостей, вашему коду есть куда расти. обертка над оберткой? да вы меня просто жестка троллите. нет, это разделение обязанностей, а не второй дбконтекст над существующим. не доходит? ну и ладно, значит вам и не надо :) и кстати, сервис локатор нужен практически всегда :) без него -- можно. можно много без чего. но вам не построить приложение набором независимых взаимозаменяемых (это значит без поползновений в конструкторы объектов) компонентов без DI. но если вдруг вы изобретете что-то, что не использует автофак, юнити, нинжект.... это все равно будет ваш собственный DI, возможно посроенный на инкапсуляции, наследованиях, проброс объектов через вьюдату или темпдату, ну мало ли как вы там извращаетесь )) МСУСто раз перетирали, что делать второй репозиторий наж контекстом - зло. на эту тему даже шутки ради холиворить должно быть стыдно :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 16:49 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANA1. Уже уточнял, что никто ничего не преписывает с WebForms на MVC. Пишется новый большой модуль системы на MVC: CMS. Врешь, кодеманка злая! Черным по-белому говорил, что именно переписываешь. Не вынуждай искать пруф. skyANA2. Если не переписывать, то приходится вызывать некоторые контролы в том виде, в каком они есть. Это просто, а не то, что скрещивать ужа с удавом в надежде получить нормальный гибрид Это не нормальный гибрид - это идиотизм на постном масле со всеми вытекающими. skyANA3. Говношаблоны у тебя в штанах. StringTemplate - это нормальный движок на базе ANTLR. StringTemplate - это такой же нормальный шаблон, как мозг Севы. Не говори глупостей. skyANAТак что ни фига твое мнение не обосновано. Одно лишь тро-ло-ло Ну обосновано же! hVosttМСУ, несете чушь. при чем такую непроходимо глухую и несусветную. с такой позицией как у вас можно, обладая усердием, доказать что MVC усложнение, увеличение количества не нужных простому деревенскому мужику слоёв, и всё надо писать в одном классе. никаких проблем с инстантами, все в одном месте, все всем всегда доступно. Чушью это кажется тем, кто не понимает, что делает (или не пытается понять). Дублировать EF репозиторий и наслаждаться тем, как у него это дело расслоилось, может только шизофреник. Почему ты 3 или 4 раза не расслаиваешь свой "костыльный" репозиторий? Твои же слова - чем больше расслоений, тем лучше. hVosttа зачем вы делаете IDataService? зачем расслаиваетесь? дайте контроллеру DbContext и не парьте себе мозги. чистота кода будет на высшем уровне -- ничегошеньки лишнего. Не путай теплое с мягким - это расслоение разных уровней. У тебя же расслоение одного уровня, причем абсолютно бессмысленное. Улавливаешь разницу? hVosttпотом тайна покрытая пылью, чтоже там у вас в базовых контроллерцах, ЧТО? Открой код и посмотри. Пока там простая инстациация экземпляра. Надо будет - я без проблем подправлю только в одном месте и заюзаю не ручную инстациацию, а вкорячу сервис-локатор. В твоем же случае при каких-либо изменениях придется вносить изменения в 100500 мест, размазанных в прикладных контроллерах. У меня - всё централизованно и единообразно. Black box, о котором прикладные контроллеры ничего не знают. hVosttобертка над оберткой? да вы меня просто жестка троллите. нет, это разделение обязанностей, а не второй дбконтекст над существующим. не доходит? ну и ладно, значит вам и не надо :) Да, обертка над оберткой. Ты тупо прокидываешь IQueryable через дополнительную абстракцию - зачем? hVosttи кстати, сервис локатор нужен практически всегда :) без него -- можно. можно много без чего. Правильно. Поэтому когда мне будет нужно - я только в одном месте его подключу, в базовом контроллере. В твоем же случае получается мазня в 100500 контроллерах. hVosttна эту тему даже шутки ради холиворить должно быть стыдно :-) Стыдно должно быть тем, кто не задумывался над такой элементарной темой. А теме - сто лет в обед, городить второй огород - тупая трата времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:04 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttобертка над оберткой? да вы меня просто жестка троллите. нет, это разделение обязанностей, а не второй дбконтекст над существующим. не доходит? ну и ладно, значит вам и не надо :) эм я не тролил вообще, просто хочу понять накой ляд забор...но смысл обертки такой я вижу если надо сделать независимость от орм. Если вы забыли, мы с вами остановились на uow и репо, которые у вас оба присутствуют в контроллере, обычно репо зависит от uow который и абстрагирует от ормк-ки. В размках Ef лишний слой имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:16 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANA1. Уже уточнял, что никто ничего не преписывает с WebForms на MVC. Пишется новый большой модуль системы на MVC: CMS. Врешь, кодеманка злая! Черным по-белому говорил, что именно переписываешь. Не вынуждай искать пруф.Ищи, ищи, укурок! Только не забудь о том, что я уточнял то, что мы конкретно делаем, потому как стало ясно, что меня не правильно поняли. А то как обезъянка кинешь первую попавшуюся какашку, объясняй тебе потом в сотый раз МСУskyANA2. Если не переписывать, то приходится вызывать некоторые контролы в том виде, в каком они есть. Это просто, а не то, что скрещивать ужа с удавом в надежде получить нормальный гибрид Это не нормальный гибрид - это идиотизм на постном масле со всеми вытекающими.С какими вытекающими? Что нибудь, кроме пустых звуков сказать можешь? МСУskyANA3. Говношаблоны у тебя в штанах. StringTemplate - это нормальный движок на базе ANTLR. StringTemplate - это такой же нормальный шаблон, как мозг Севы. Не говори глупостей.Выссказывание из разряда "ваша музыка говно, потому что гладиолус". Ты же не читал "достоевского", на каком основании осуждаешь? МСУskyANAТак что ни фига твое мнение не обосновано. Одно лишь тро-ло-ло Ну обосновано же! Одно лишь тро-ло-ло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:18 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuhVosttобертка над оберткой? да вы меня просто жестка троллите. нет, это разделение обязанностей, а не второй дбконтекст над существующим. не доходит? ну и ладно, значит вам и не надо :) эм я не тролил вообще, просто хочу понять накой ляд забор...но смысл обертки такой я вижу если надо сделать независимость от орм. Если вы забыли, мы с вами остановились на uow и репо, которые у вас оба присутствуют в контроллере, обычно репо зависит от uow который и абстрагирует от ормк-ки. В размках Ef лишний слой имхо. Независимость от ORM делается по-другому (в моем примере как-раз реализована независимость): http://codearticles.ru/Home/ArticleView/2155 Код: c# 1. 2. 3. 4. 5. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУНезависимость от ORM делается по-другому (в моем примере как-раз реализована независимость) То есть я просто беру и выкидываю SqlDataService, на его место ставлю XmlDataService, который работает вообще с XML Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:20 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuhVosttобертка над оберткой? да вы меня просто жестка троллите. нет, это разделение обязанностей, а не второй дбконтекст над существующим. не доходит? ну и ладно, значит вам и не надо :) эм я не тролил вообще, просто хочу понять накой ляд забор...но смысл обертки такой я вижу если надо сделать независимость от орм. Если вы забыли, мы с вами остановились на uow и репо, которые у вас оба присутствуют в контроллере, обычно репо зависит от uow который и абстрагирует от ормк-ки. В размках Ef лишний слой имхо. повторяю для отдельных :) это разделение обязанностей если у меня контроллер рулит пользователями, я ему даю IUserSevice/IUserRepository, никуда больше он не залезет это интерфейсы, через них я даю доступ к большому такому контексту. окошечко. uow нужен для коммита, сохранения данных и поддержки транзакционности. он не даёт доступа к контекстам, репам, сервисам. ну можно и по-другому конечно, можно как угодно. но мне видится это самым логичным. на практике этот подход показал себя с лучшей стороны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:23 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAИщи, ищи, укурок! Только не забудь о том, что я уточнял то, что мы конкретно делаем, потому как стало ясно, что меня не правильно поняли. Вот видишь, начинаешь пятиться назад, кодеманочка? А то уже хотел искать/ skyANAА то как обезъянка кинешь первую попавшуюся какашку, объясняй тебе потом в сотый раз Да ты сам уже запутался в своём вранье. Сначала одно говоришь, потом второе, теперь третье - прям как кухарка на кухне мечешься от горящей сковородки к взлетевшей вверх кастрюле у плиты skyANAС какими вытекающими? Что нибудь, кроме пустых звуков сказать можешь? С прямыми вытекающими. Понос, другими словами. Тяжело с тобой skyANAВыссказывание из разряда "ваша музыка говно, потому что гладиолус". Ты же не читал "достоевского", на каком основании осуждаешь? Про достоевского ты прав, конечно, но это агрумент из разряда - не из нашей песочницы, значит гумно. Смирись, челядь :) skyANAОдно лишь тро-ло-ло Ну вот, опять тро-ло-ло. Говорю обосновано, значит обосновано :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:26 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttесли у меня контроллер рулит пользователями, я ему даю IUserSevice/IUserRepository, никуда больше он не залезет Садись, два. Контроллер не должен рулить пользователями, он должен обратиться к сервису и ответ его отдать вью. Контроллер выступает в роли презентера, обратился к одному слою, отдал другому. Никакой логики в контроллере не должно быть. Более того, ASP.NET MVC контроллер заточен только под эту технологию со своей спецификой, поэтому он должен быть как можно плоским и простым - ни грамма логики. hVosttuow нужен для коммита, сохранения данных и поддержки транзакционности. Коммитить должен сервис, ровно как и управлять транзакционгостью. P.S. Вот дай паттерны новичку, он задушится ими ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:30 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, Код: c# 1. 2. 3. 4. 5. 6. 7. я не вижу больше смысла в дальнейшей дискуссии. маппинг там, где он совершенно не нужен, захват контекста в каждом методе, и это называется чистым кодом? вы либо просто бредите после жестокой пьянкой и впали в детство... либо, вообще оттуда еще не вылазили :) знал бы вокруг какого "идеального" кода крутится спор, давно бы уже перестал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:32 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУНезависимость от ORM делается по-другому (в моем примере как-раз реализована независимость): http://codearticles.ru/Home/ArticleView/2155 Код: c# 1. 2. 3. 4. 5. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Идём далее. Тут давеча я приводил пример, что через некоторое время может поменяться поставщик для определенных справочников - через акспату. Например, 90% логики остается такой же, 10% - переписывать на WCF-сервисы из акспаты. Гавно вопрос: создаем новый датасервис AxaptaDataService и наследуем его от SqlDataService, 10% методов переписываем через override, всё остальное у нас работает как часы. Поэтому при смене источника для определенных сущностей мы тупо переписали только 10% методов,наследование рулит. Поддерживать такую архитектуру одно удовольствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:35 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttесли у меня контроллер рулит пользователями, я ему даю IUserSevice/IUserRepository, никуда больше он не залезет Садись, два. Контроллер не должен рулить пользователями, он должен обратиться к сервису и ответ его отдать вью. Контроллер выступает в роли презентера, обратился к одному слою, отдал другому. Никакой логики в контроллере не должно быть. Более того, ASP.NET MVC контроллер заточен только под эту технологию со своей спецификой, поэтому он должен быть как можно плоским и простым - ни грамма логики. hVosttuow нужен для коммита, сохранения данных и поддержки транзакционности. Коммитить должен сервис, ровно как и управлять транзакционгостью. P.S. Вот дай паттерны новичку, он задушится ими у вас бред головного мозга. контроллер должен... обратиться к сервису и ответ отдать... -- это же чистой воды ненужная лишняя обертка! вердикт -- убрать. вы помешались на "идеальности" паттернов, и все бы ничего, но из-за этого вы искаженно понимаете суть MVC, что лучше вы бы её вообще не понимали, чем так... почитайте Фаулера. хотябы первую главу. потом может втянитесь, а там глядишь, немного поумнеете :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:37 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУГоворю обосновано, значит обосновано :)Да какой там, слился ты на слова про понос. C тобой это бывает, когда сказать толком нечего. Так что в очередной раз пшёл нах! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:39 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttя не вижу больше смысла в дальнейшей дискуссии. Не заставляю, просто показываю мир под другим углом. По сути тоже самое, но с другой глазурью. Думать, осознавать и принимать блюдо - решать только тебе. hVosttмаппинг там, где он совершенно не нужен, захват контекста в каждом методе, и это называется чистым кодом? Да, полноценный независимый датасервис. Можно отдать его независимым разработчикам на аутсорс, которые ничего не знают от твоем хранилище. Либо отдать своим разработчикам (четкое разделение труда с обозначенными границами), легко вспоследствии рефакторить, дорабатывать, изменять поставщиков и пр. Ты просто с такими проектами еще не работал, поэтому тебя так трясет :) Сядь, пойми и осознай - всё упирается не только в написание кода, но еще и управление проектной командой, поддержкой этого кода, и т.п. hVosttвы либо просто бредите после жестокой пьянкой и впали в детство... либо, вообще оттуда еще не вылазили :) знал бы вокруг какого "идеального" кода крутится спор, давно бы уже перестал. Я просто пытаюсь в очередной раз стереть тем самые стереотипы, которые смотрять на жизнь под одним углом. Если поймешь о чем я тебе втирал - хорошо, не поймешь - покойся с миром. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:40 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttу вас бред головного мозга. контроллер должен... обратиться к сервису и ответ отдать... -- это же чистой воды ненужная лишняя обертка! Бред головного мозга был у тебя еще при твоем рождении, унылая кодирующая обезьянка :) Какая еще лишняя обертка, у меня оберток меньше, чем у тебя hVosttвердикт -- убрать. вы помешались на "идеальности" паттернов, и все бы ничего, но из-за этого вы искаженно понимаете суть MVC, что лучше вы бы её вообще не понимали, чем так... почитайте Фаулера. хотябы первую главу. потом может втянитесь, а там глядишь, немного поумнеете :) Я читал Фаулера, когда ты еще писялся в штаны от удовольствия, что осознал, что такое условный оператор. Искажение у тебя за счет отсутствия опыта, так что можешь захлебнуться своим выделением слюнной жедезы - я всё сказал по теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:43 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAМСУГоворю обосновано, значит обосновано :)Да какой там, слился ты на слова про понос. C тобой это бывает, когда сказать толком нечего. Так что в очередной раз пшёл нах! Ты просто убогая безсознательная обезьянка, которая сама ничего не помнит, что говорила, кому говорила и зачем говорила. Запуталась во вранье? Убей себя об монитор, ты этого заслуживаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:44 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, я помню, что изначально сказал в том топике, потом сделал уточнение в том же топике. Потом несколько раз уточнял специально для тебя. Но ты же у нас не слушаешь... И я после этого обезъянка, которая сама ничего не помнит... Извини, но походу ты му**к конченый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 17:53 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
жжоте приятно читать умных интеллигентных людей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 18:23 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, а вы смешной. врете как мерин, что читали фаулера, зачем врать не понимаю. знаете всего по чуть-чуть, где-то в районе верхушки айсберга. показываете примеры для даунов, скопипащенные с каких-то учебных мануалов, но хотя да — можно делать и хуже. какие вы там сервисы готовите подменять? куда? на что? зачем? что за бредятина? с горячей сменой дата-сервисов вообще другие подходы применяются, даже не такие, что я предлагал (мой ориентирован на TDD). но вы бы знали о них, если бы вы читали проф. литературу, и такой бред бы не несли под видом знатока (кстати, очки поправьте). про унылую мартышку вброс засчитан. показал ваши изыски своему отделу. поржали от души, чо. вы сделали наш день :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 18:27 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Winnipuhжжоте приятно читать умных интеллигентных людей. тут так принято обсирать друг друга? я просто не в курсе. или это такой местный убойный йумор? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 18:33 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttтут так принято обсирать друг друга? я просто не в курсе. или это такой местный убойный йумор? :) Это смотря на какого юмориста попадаешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 18:39 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
пока на личности не перешли - прибить нужно топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 20:45 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУпропущено... Садись, два. Контроллер не должен рулить пользователями, он должен обратиться к сервису и ответ его отдать вью. Контроллер выступает в роли презентера, обратился к одному слою, отдал другому. Никакой логики в контроллере не должно быть. Более того, ASP.NET MVC контроллер заточен только под эту технологию со своей спецификой, поэтому он должен быть как можно плоским и простым - ни грамма логики. пропущено... Коммитить должен сервис, ровно как и управлять транзакционгостью. P.S. Вот дай паттерны новичку, он задушится ими у вас бред головного мозга. контроллер должен... обратиться к сервису и ответ отдать... -- это же чистой воды ненужная лишняя обертка! вердикт -- убрать. вы помешались на "идеальности" паттернов, и все бы ничего, но из-за этого вы искаженно понимаете суть MVC, что лучше вы бы её вообще не понимали, чем так... почитайте Фаулера. хотябы первую главу. потом может втянитесь, а там глядишь, немного поумнеете :) А что Вам не нравится в этом, это как бы аксиома, то что Вы выдернули обращение к сервису из контекста - так это просто казуистика. Мне так то по большому фиолетово что там с контроллером, я например не согласен с мсу в плане орм слоя и уж тем более с Вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 20:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, а вы смешной. врете как мерин, что читали фаулера, зачем врать не понимаю. знаете всего по чуть-чуть, где-то в районе верхушки айсберга. показываете примеры для даунов, скопипащенные с каких-то учебных мануалов, но хотя да — можно делать и хуже. Мне фиолетово мнение бездумного линейного кодера, который не понимает сути, которую ему вменяют. Скопипасщенные примеры, всё же, у тебя - тупое дублирование репозитория с не менее тупым размазыванием абстракций в реализации контроллеров. Да, можно делать и хуже. hVostt какие вы там сервисы готовите подменять? куда? на что? зачем? что за бредятина? с горячей сменой дата-сервисов вообще другие подходы применяются, даже не такие, что я предлагал (мой ориентирован на TDD). но вы бы знали о них, если бы вы читали проф. литературу, и такой бред бы не несли под видом знатока (кстати, очки поправьте). Ты просто уныл своим мартышкиным мышлением, десять раз повторил про жизненные реалии, когда требуется 10% слоя данных брать из других источников. Пример реален как сама жизнь, просто опять же, ты не имеешь опыта работы. Потому что ты глупая кодеманка, коих тыщи. На тебе можно пахать, заправляя в узды. Но на что-то более ты не способа. hVostt про унылую мартышку вброс засчитан. показал ваши изыски своему отделу. поржали от души, чо. вы сделали наш день :-) Предоставил себе отдел линейных обезьянок, радующихся новому дню. Искренне поржал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 21:52 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Где-то в степия например не согласен с мсу в плане орм слоя Готов выслушать альтернативные аргументы. Для меня главное в этом слое - полностью отвязаться от конкретного поставщика данных (ORM, SOA, XML, ... etc). Контроллер через IDataService оперирует дата-моделями (дополнительная прокся от ORM, SOA, XML, ... etc), использует их в моделях представлений (некий примес MVVM подхода) и честно подсовывает это во View. Гибко и отвязанно от конкретного поставщика данных? Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 22:25 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, То что вы перечислили выше, спору нет но вы подаете это через интерфейс, но полгода назад я подсмотрел одну фитчу на черной утке ( nhiber), в голове эта фитча переросла в более что то масштабное. думаю что за недельку я дам новый паттрен ( и тут Остапа понесло :)). более изолированное и более масштабированное ps http://code.ohloh.net/ не плохой проект, есть расширение для студии, пользуюсь пару лет - но г.кода хватает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 22:46 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Где-то в степидумаю что за недельку я дам новый паттрен ( и тут Остапа понесло :)). более изолированное и более масштабированное Готов с распростёртыми объятиями принять это поделие у себя в кулуарах - забрасывай в рецепты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 22:53 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, да это как бы будет размышление, с примерами реализации ну и естественно хотелось бы иметь предложение и направления от сообщества Ну и по Критериону будет новый релиз, я просто по невнимательности пропустил рефакторинг участка кода, и приложение отжирает ( не обосновано, кусок кучи в третьем поколении) просто я всегда об этом помнил, ну а тут забыл ( ну с кем не бывает) ну и будет дополнено контролом для использования этой фишки в классических вебформах. Вот кстати мои утверждения, при разработке контролов на мувице, надо обязательно иметь возможность пользоваться этими "контролами" и на классике равно и на оборот, сделать это вообще не составляет труда (кто меня понимает) но мы имеем универсальный контрол, который может работать на двух направлениях - это не ущемляет разработчиков и вносит толерантность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 23:06 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Манифест однако... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2012, 23:07 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУМСУНезависимость от ORM делается по-другому (в моем примере как-раз реализована независимость): http://codearticles.ru/Home/ArticleView/2155 Код: c# 1. 2. 3. 4. 5. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Идём далее. Тут давеча я приводил пример, что через некоторое время может поменяться поставщик для определенных справочников - через акспату. Например, 90% логики остается такой же, 10% - переписывать на WCF-сервисы из акспаты. Гавно вопрос: создаем новый датасервис AxaptaDataService и наследуем его от SqlDataService, 10% методов переписываем через override, всё остальное у нас работает как часы. Поэтому при смене источника для определенных сущностей мы тупо переписали только 10% методов,наследование рулит. Поддерживать такую архитектуру одно удовольствие. 1.Какой-то бред, придуманный на ходу или для заполнения говносайта с детскими рецептами. CategoryModel - явно не обобщенный вариант, а конкретная модель для Категории. У тебя что 10% Категорий лежат в Аксапте. 2. Интерфейсы были придуманы для того, чтобы уйти от косяков с наследованием. Завтра понадобится еще 10% для 1С, послезавтра 20% для интеграции с другими системами. А через год требования для базовой SqlDataService изменятся так, что они совершенно не будут стыковаться с другими. Наследования для подобных вариантов - полная хрень с обязательными граблями в будущем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 00:35 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУhVosttкак видно все, что нужно для работы инжектируется в контроллер каким-то внешним объектом (депенси ресолвером), оно же управляет временем жизни. В большинстве случаев (а их 99%) достаточно ручной инстанциации экземпляра (IProjectRepository) - через конструктор базового контроллера. У тебя он отсутствует. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. В IDataService - только IEnumerable , никаких квери и еще что-либо. Код: c# 1. 2. 3. 4. 5. По причине того, что мы можем подключить сторонний датасервис, например, XmlDataService, который ничего не знает о трансляции SQL. IEnumerable - это бест практис. hVosttзачем отдавать вью квери и параметры сортировки? ну, например, хотя бы потому, что вью может выбрать столько, сколько нужно и отсортировать в соответствии со видом и назначением вью (например, параметры сортировки для атома всегда одни и те, же в независимости от того, что там хочет контроллер) Как решается эта задача - в IDataService: Код: c# 1. Всё. А в своём SqlDataService или XmlDataService делаешь реализацию. Из контроллера: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. Идея понятна? P.S. Слишком много инъекций с ресолвами, код выглядит загаженно и удручающе. В моем случае - код чистый, инкапсуляция рулит. 1."Ресолвы" только у тех кто не имеет никакого понятия о DI контроллерах, которые инжектят зависимости автоматически. В результате код самый чистый. 2. При переписывании бредовых 10% процентов ты еще будешь своими грязными руками лезть еще в контроллеры, а в случае с DI нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 00:40 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
SeVaМСУпропущено... Идём далее. Тут давеча я приводил пример, что через некоторое время может поменяться поставщик для определенных справочников - через акспату. Например, 90% логики остается такой же, 10% - переписывать на WCF-сервисы из акспаты. Гавно вопрос: создаем новый датасервис AxaptaDataService и наследуем его от SqlDataService, 10% методов переписываем через override, всё остальное у нас работает как часы. Поэтому при смене источника для определенных сущностей мы тупо переписали только 10% методов,наследование рулит. Поддерживать такую архитектуру одно удовольствие. 1.Какой-то бред, придуманный на ходу или для заполнения говносайта с детскими рецептами. CategoryModel - явно не обобщенный вариант, а конкретная модель для Категории. У тебя что 10% Категорий лежат в Аксапте. 2. Интерфейсы были придуманы для того, чтобы уйти от косяков с наследованием. Завтра понадобится еще 10% для 1С, послезавтра 20% для интеграции с другими системами. А через год требования для базовой SqlDataService изменятся так, что они совершенно не будут стыковаться с другими. Наследования для подобных вариантов - полная хрень с обязательными граблями в будущем. 1. Бред у тебя в мозгах, а тут датасервис. 10% методов (категории и продукты) переносятся в аксапту. Пишем новый датасервис с переопределением 10% методов. 2. Интерфейсы были придуманы не для ухода от косяков, а для наследования с обязательностью реализации контракта. сюда можно закладывать не только 1с, но и данные из космоса, вся логика будет работать так же на тех же рельсах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 00:59 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
SeVaМСУпропущено... В большинстве случаев (а их 99%) достаточно ручной инстанциации экземпляра (IProjectRepository) - через конструктор базового контроллера. У тебя он отсутствует. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. В IDataService - только IEnumerable , никаких квери и еще что-либо. Код: c# 1. 2. 3. 4. 5. По причине того, что мы можем подключить сторонний датасервис, например, XmlDataService, который ничего не знает о трансляции SQL. IEnumerable - это бест практис. пропущено... Как решается эта задача - в IDataService: Код: c# 1. Всё. А в своём SqlDataService или XmlDataService делаешь реализацию. Из контроллера: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. Идея понятна? P.S. Слишком много инъекций с ресолвами, код выглядит загаженно и удручающе. В моем случае - код чистый, инкапсуляция рулит. 1."Ресолвы" только у тех кто не имеет никакого понятия о DI контроллерах, которые инжектят зависимости автоматически. В результате код самый чистый. 2. При переписывании бредовых 10% процентов ты еще будешь своими грязными руками лезть еще в контроллеры, а в случае с DI нет. Ты так нихрена и не понял, контроллеры не меняются, они остаются такими как были. Меняется только датасервис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 01:00 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУSeVaпропущено... 1.Какой-то бред, придуманный на ходу или для заполнения говносайта с детскими рецептами. CategoryModel - явно не обобщенный вариант, а конкретная модель для Категории. У тебя что 10% Категорий лежат в Аксапте. 2. Интерфейсы были придуманы для того, чтобы уйти от косяков с наследованием. Завтра понадобится еще 10% для 1С, послезавтра 20% для интеграции с другими системами. А через год требования для базовой SqlDataService изменятся так, что они совершенно не будут стыковаться с другими. Наследования для подобных вариантов - полная хрень с обязательными граблями в будущем. 1. Бред у тебя в мозгах, а тут датасервис. 10% методов (категории и продукты) переносятся в аксапту. Пишем новый датасервис с переопределением 10% методов. 2. Интерфейсы были придуманы не для ухода от косяков, а для наследования с обязательностью реализации контракта. сюда можно закладывать не только 1с, но и данные из космоса, вся логика будет работать так же на тех же рельсах. Бред у тебя в мозгах, а как следствие говнокод. Единый датасервис - полная полова и несоблюдение принципа единичной ответственности. За это голову голову, а тебе задницу, отбивать нужно. До такого идиотизма еще никто не додумался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 06:49 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Мудафаил, твои датасервисы(очередной левый термин, Фаулер ты наш местного разлива) пригодны только для школьников. Любое бизнес-приложение(говносайтики на несколько страниц для которых пригодны мембершипы с тремя ролями не в счет) - достаточно ограниченный набор сценариев: открыть\отфильтровать список, создать\редактировать единичную запись, etc. Для них возможно написание обобщенных контроллеров a'la Controller<TModel>, переопределив resolver для Сontoller'a в купе с DI можно забыть об их создании и ручном кодировании. Для того, чтобы был общий вариант нужно использовать ViewModel, которые ты не осилил, тк это более общий вариант и часто требуется агрегация данных и дополнительные сущности для создании ViewModel и View. При таком подходе все разделено, рисуем View, иногда переопределяем контроллеры и\или ViewModel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 07:10 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
SeVaМСУпропущено... 1. Бред у тебя в мозгах, а тут датасервис. 10% методов (категории и продукты) переносятся в аксапту. Пишем новый датасервис с переопределением 10% методов. 2. Интерфейсы были придуманы не для ухода от косяков, а для наследования с обязательностью реализации контракта. сюда можно закладывать не только 1с, но и данные из космоса, вся логика будет работать так же на тех же рельсах. Бред у тебя в мозгах, а как следствие говнокод. Единый датасервис - полная полова и несоблюдение принципа единичной ответственности. За это голову голову, а тебе задницу, отбивать нужно. До такого идиотизма еще никто не додумался. Единичная ответственность - в твоем убогом воспаленном сознании, которое обгавнялось уже десятки раз. Датасервис - это отдельный слой, который подкючается в базовом контроллере по указанному интерфейсу. Тебе не голову отбивать нужно, а мозги скачать и выкинуть. Будешь пустоголовой обезьяной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 08:18 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
SeVaМудафаил, твои датасервисы(очередной левый термин, Фаулер ты наш местного разлива) пригодны только для школьников. Любое бизнес-приложение(говносайтики на несколько страниц для которых пригодны мембершипы с тремя ролями не в счет) - достаточно ограниченный набор сценариев: открыть\отфильтровать список, создать\редактировать единичную запись, etc. Для них возможно написание обобщенных контроллеров a'la Controller<TModel>, переопределив resolver для Сontoller'a в купе с DI можно забыть об их создании и ручном кодировании. Для того, чтобы был общий вариант нужно использовать ViewModel, которые ты не осилил, тк это более общий вариант и часто требуется агрегация данных и дополнительные сущности для создании ViewModel и View. При таком подходе все разделено, рисуем View, иногда переопределяем контроллеры и\или ViewModel Ты просто унылый ушлепок без грамма сознания - почитай про идею mvp подхода. Обобщенный контроллер нужен только таким кретинам как ты, в асп нет мвц за инстанциацию контроллера отвечает ядро. Ты просто унылый арангутанг, который ничего не понимает в мвц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 08:21 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, даже если все человечество ткнет тебя носом в твой грязный код, ты все равно останешься при своем. такое упорство как минимум заслуживает уважения :) но из программеров я бы тебя выгнал. наверное твоя кандидатура хорошо бы смотрелась среди маркетологов. но не среди программистов, и уж тем более проектировщиков. видимо тебе как маленькому ребеночку надо пояснить, в чем же ты заблуждаешься: 1. в каждом методе твоего "датасервиса" вот такая штука: using(var db = new MyDbContext). возможно, не каждый метод сервиса создает новый контекст. это типа позволяет переписать сервис, заменив только те методы которые зависят от контекста. но чтобы переписать эти методы, надо знать какие . разделение ответственности мы похоронили без музыки и цветов. 2. за использование наследования для тупого прокидывания объекта сервиса/контекста/репозитория, надо отрубать руки, по самую голову. у контроллера не должно быть базового контроллера, если он только не реализует общую логику для всех контроллеров. предоставление объекта сервиса — это не логика. этим должен заниматься внешний контейнер. 3. датасервис ничего не должен знать про MyDbContext. и, поэтому, не должен создавать его инстансты напрямую. таким образом можно вообще убрать контекст из проекта, или заменить контекст на другой, подсунуть его адаптер или прокси. также можно не писать заглушки вручную в процессе разработки, используя моки. что очень хорошо. подход с using(MyDbContext) плох, грязен, и отвратителен. 4. датасервис нужно разделять на зоны ответственности. тогда все части можно будет разрабатывать совершенно независимо, имея на руках только доменную модель интерфейсов. тогда будет разделение работы, и поголовное счастье. и никакого большого IDataService на весь проект — это форменное издевательство, если проект чуть больше, чем "Hello World!" П.С. ответ по-большей части написан не для МСУ, так как этот товарищ обязательно спустится на уровень "ты тупая обезьянка", на котором мне не о чем с ним говорить вообще, а для тех, кому интересна обсуждаемая тема на адекватном уровне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 09:22 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, даже если все человечество ткнет тебя носом в твой грязный код, ты все равно останешься при своем. такое упорство как минимум заслуживает уважения :) но из программеров я бы тебя выгнал. наверное твоя кандидатура хорошо бы смотрелась среди маркетологов. но не среди программистов, и уж тем более проектировщиков. Уж извини, но читать что-то про кандидатур программистов от таких как ты смешно, которые никогда не работали в команде, которые REST называют архитектурой, вещают о том, что все сервера работают REST. Только шизофреник может такое ляпнуть. Про WebForms и небесную ману я вообще поржал - порог вхождения в технологию самый низкий, а для тебя нужно быть каким-то магом, что-бы всё хорошо получилось. Ты просто неотёсаный пионер, которому вкормили на работает старшие товарищи порцию навоза. Ты тупо бездумно проглотил эту хрень, ничего другого принимать не желая. Банальная кодеманка, кули тут еще сказать. hVosttвидимо тебе как маленькому ребеночку надо пояснить, в чем же ты заблуждаешься Тебе нечего объяснять, ибо твоя дегенеративная ветвь мышления - утопична. hVostt1. в каждом методе твоего "датасервиса" вот такая штука: using(var db = new MyDbContext). возможно, не каждый метод сервиса создает новый контекст. это типа позволяет переписать сервис, заменив только те методы которые зависят от контекста. но чтобы переписать эти методы, надо знать какие . разделение ответственности мы похоронили без музыки и цветов. И правильно - каждый метод самодостаточен для получения данные, он и рулит жизью экземпляра датаконтекста. Если это будет XML - значит будет использоваться XmlDocument или XDocument во всеми вытекающими. Вытаскивать наружу MyDbContext (например, через генерик датаконтекст или просто в конструкторе) нет смысла, потому что датасервис может обращаться к различным базам данных. Так же нет смысла вытаскивать наружу MyDbContext для тестирования, так как там тестировать нечего. Зачем тебе тестировать автогенеренный MyDbContext от EF? Поэтому ты вволе им управлять в методах. При большом желании всё-таки никто не запрещает его вытащить на уровень конструктора, дело желания. hVostt2. за использование наследования для тупого прокидывания объекта сервиса/контекста/репозитория, надо отрубать руки, по самую голову. у контроллера не должно быть базового контроллера, если он только не реализует общую логику для всех контроллеров. предоставление объекта сервиса — это не логика. этим должен заниматься внешний контейнер. За не использование наследования и тупое размазывание интерфейсов в прикладных контроллерах нужно выкачивать мозг, напрочь. С последующей заливкой керосина. У контроллера должен быть базовый контроллер и логикой он не должен заниматься априори. За такие слова тебя Фаулер лично бы четвертовал - за тупость и кретинизм. Никому не рассказывай про этот бред. hVostt3. датасервис ничего не должен знать про MyDbContext. и, поэтому, не должен создавать его инстансты напрямую. таким образом можно вообще убрать контекст из проекта, или заменить контекст на другой, подсунуть его адаптер или прокси. также можно не писать заглушки вручную в процессе разработки, используя моки. что очень хорошо. подход с using(MyDbContext) плох, грязен, и отвратителен. Датасервис должен всё знать о датаконтексте, я уже говорил - твоё дублированное расслоение и прокидывание IQueryable - сплошной воды утопия на чистом месте. Датасервис сам является адаптером, поэтому ему не нужна еще какая-либо абстракция. hVostt4. датасервис нужно разделять на зоны ответственности. тогда все части можно будет разрабатывать совершенно независимо, имея на руках только доменную модель интерфейсов. тогда будет разделение работы, и поголовное счастье. и никакого большого IDataService на весь проект — это форменное издевательство, если проект чуть больше, чем "Hello World!" Сами датасервисы - независимые компоненты приложения, которые стыкуется с ними по IDataService. Что ты там еще хочешь разделить, непонятно. "IDataService на весь проект" - это бред твоего воспаленного воображения, а я такого не говорил. У тебя могут быть 100500 датасервисов, у каждого свое предназначение. hVosttП.С. ответ по-большей части написан не для МСУ, так как этот товарищ обязательно спустится на уровень "ты тупая обезьянка", на котором мне не о чем с ним говорить вообще, а для тех, кому интересна обсуждаемая тема на адекватном уровне. Тебе рано еще говорить об адекватном уровне, рано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 09:46 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt... П.С. ответ по-большей части написан не для МСУ, так как этот товарищ обязательно спустится на уровень "ты тупая обезьянка", на котором мне не о чем с ним говорить вообще, а для тех, кому интересна обсуждаемая тема на адекватном уровне.Интересна. Только хочу сказать, что хотя обсуждение идет не на уровне конкретной реализации, все же каждый это подразумевает (оценивая, как бы это сказать... психологическую сторону дискуссии, что ли). При этом МСУ, если так можно выразиться, более "абстрактен/универсален". Складывается впечатление, что его основные оппоненты, в силу каких-то причин, более приближены к конкретной реализации. Отсюда и сыр-бор... hVostt... но на мвц я это можно сделать в разы быстрее, с комфортом и ветерком.Пруф в студию - чем обосновано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 09:54 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Кстати, эта идеология IDataService в контроллере отлично ложится и на WebForms (в контексте презентера): ASP.NET Supervising Controller (Model View Presenter) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 09:55 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, как и ожидалось, ответ на уровне "тупой мартышки". если не очевидно, что ты не протестируешь свой дата сервис без контекста, и не заставишь работать без него... то извините, вопросов больше не имею. вы реальынй тру-кодер, маг с большой буквы и волшебник, нам с нашим куцым примитивным мышлением до вас очень и очень далеко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 09:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
iConstСкладывается впечатление, что его основные оппоненты, в силу каких-то причин, более приближены к конкретной реализации. Отсюда и сыр-бор... Потому что я практик , а не теоретик, как мой голословный оппонент, который даже не имеет опыта командной разработки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 09:57 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУИ правильно - каждый метод самодостаточен для получения данные, он и рулит жизью экземпляра датаконтекста. Если это будет XML - значит будет использоваться XmlDocument или XDocument во всеми вытекающими. Вытаскивать наружу MyDbContext (например, через генерик датаконтекст или просто в конструкторе) нет смысла, потому что датасервис может обращаться к различным базам данных. Так же нет смысла вытаскивать наружу MyDbContext для тестирования, так как там тестировать нечего. Зачем тебе тестировать автогенеренный MyDbContext от EF? Поэтому ты вволе им управлять в методах. При большом желании всё-таки никто не запрещает его вытащить на уровень конструктора, дело желания. детский сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:00 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, как и ожидалось, ответ на уровне "тупой мартышки". если не очевидно, что ты не протестируешь свой дата сервис без контекста, и не заставишь работать без него... то извините, вопросов больше не имею. вы реальынй тру-кодер, маг с большой буквы и волшебник, нам с нашим куцым примитивным мышлением до вас очень и очень далеко. Десятый раз говорю - конкретный датасервис уже в себя включает датасервис, считай это некий balck box (датасервис), о реализации которого ты ничего не знаешь и который поступил от сторонних людей. Ты его как модуль подключаешь и у тебя всё работает. Тестируется датасервис легче пареной репы, какие могут быть с этим сложности? Причем тест будет одинаков для всех конкретных реализация IDataService (SqlDataService, XmlDataService, WcfDataService, ...). В программе у тебя могут быть n датасервисов, как я уже сказал выше: IDataService, IDataService2, IDataService3, ... IDataServiceN. Каждый сам по себе - black box. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:01 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУiConstСкладывается впечатление, что его основные оппоненты, в силу каких-то причин, более приближены к конкретной реализации. Отсюда и сыр-бор... Потому что я практик , а не теоретик, как мой голословный оппонент, который даже не имеет опыта командной разработки :) да вообще МСУ гуру-мастер. великий кодер. кроме того обладает телепатическими способностями и ясновидением, зная наперед кто каким опытом обладает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:02 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttдетский сад. ... сказал мальчик с подгузниками на заднице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:02 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttда вообще МСУ гуру-мастер. великий кодер. кроме того обладает телепатическими способностями и ясновидением, зная наперед кто каким опытом обладает. Да, я такой, тут к гадалке не ходи. А за реализацию дублирующего репозитория я бы тебя уволил без выплаты выходного пособия. По статье "за тупость". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:04 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУДесятый раз говорю - конкретный датасервис уже в себя включает датасервис датаконтекст, считай это некий balck box (датасервис), о реализации которого ты ничего не знаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:07 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt.... да вообще МСУ гуру-мастер. великий кодер. кроме того обладает телепатическими способностями и ясновидением, зная наперед кто каким опытом обладает.На деле, анализируя посты, можно вывести психологический портрет: способности, опыт и т.д. И чем больше постов ситуаций, тем детальней. Возвращаясь к скорости, пруф, где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:12 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, смешал мух с котлетами и наслаждаешься этой кашей. ты логику работы с данными типа ПолучитьТопПользователей(int сколько, int начиная_с_какого, bool сортировать_по_имени) суешь в дата-сервис. у дата-сервиса есть по сути несколько методов (а точнее 5 базовых), это получить весь набор (в т.ч. отфильтрованный набор), элемент по ключу, обновить элемент(ы), удалить элемент(ы), добавить элемент(ы). всё. это и есть весь дата сервис. остальное синтаксический сахар и/или методы для отдельных ресурсоёмких запросов. дабы прекратить скатившийся в тупик спор. у вас, это не так. вы складываете все вместе и считаете это правильным. переписать 10-20% кода и получить новый, для вас это верх профессионализма в проектировании. не буду больше спорить. мы работаем по-другому. нам достаточно сделать еще один (новый, отдельный, независимый) дата-сервис (xml, memory, mongo, dummy). это 5 методов. не 10%, не 20%. а 5 методов. и все 100% остального кода будут работать как часы. ну это у нас. поэтому кто как делает, его личное дело. ок? на счет твоей личной проблемы с iqueryable. скажи. ты хоть раз реализовал этот интерфейс сам? только честно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:18 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
iConsthVostt.... да вообще МСУ гуру-мастер. великий кодер. кроме того обладает телепатическими способностями и ясновидением, зная наперед кто каким опытом обладает.На деле, анализируя посты, можно вывести психологический портрет: способности, опыт и т.д. И чем больше постов ситуаций, тем детальней. Возвращаясь к скорости, пруф, где? скорости чего? разработки или скорости работы результата? или мы говорим про исследования китайских ученых с графиками или про личный опыт? уточните пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:22 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
iConsthVostt, 13693276 автор я это можно сделать можно → могу, опечатка. какой пруф вы хотите? говорю лично за себя и свой личный опыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:27 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, смешал мух с котлетами и наслаждаешься этой кашей. ты логику работы с данными типа ПолучитьТопПользователей(int сколько, int начиная_с_какого, bool сортировать_по_имени) суешь в дата-сервис. Чудила, у тебя котлеты в голове, а не я их смешал. Датасервис - это не логика, это взаимодействие с хранилищем данных. Ты не знаешь, куда приткнуть логику? Мы уже заметили - сначала ты ее пихал в контроллеры и говорил, что это куль (пока тебе по жопе не надавали плетью за этот бред), теперь ты логику приписываешь уже моим датасервисам. BL - это отдельный слой, не имеющий никакого отношения к контроллерам, датасервисам, репозиториям и представлениям. Садись, сегодня опять двойка. hVosttу дата-сервиса есть по сути несколько методов (а точнее 5 базовых), это получить весь набор (в т.ч. отфильтрованный набор), элемент по ключу, обновить элемент(ы), удалить элемент(ы), добавить элемент(ы). всё. это и есть весь дата сервис. остальное синтаксический сахар и/или методы для отдельных ресурсоёмких запросов. Я не сомневался, что твои программы ограничиваются 5 методами. На что-то более отличное от "Здравствуй, Мир!" ты не способен. К примеру, IDataService сайта http://codearticles.ru насчитывает порядка 30 методов, хотя сайт - простецкий, проще некуда. Плюс в том, что если мне потребуется поменять СУБД или отказаться от EF (например, в сторону NHibernate) - мне достаточно написать еще один датасервис и пристыковать его к приложению (в базовом контроллере). Всё, приложение встало на новые рельса. В твоем случае придется лопатить весь твой бесполезный многослойный код говна. hVosttдабы прекратить скатившийся в тупик спор. у вас, это не так. вы складываете все вместе и считаете это правильным. переписать 10-20% кода и получить новый, для вас это верх профессионализма в проектировании. не буду больше спорить. Странно с этим спорить, если я перепишу 10% кода, а ты 100%. Экономия ресурсов (я лучше их ориентирую на более важные задачи) на лицо. hVosttмы работаем по-другому. нам достаточно сделать еще один (новый, отдельный, независимый) дата-сервис (xml, memory, mongo, dummy). это 5 методов. не 10%, не 20%. а 5 методов. и все 100% остального кода будут работать как часы. ну это у нас. поэтому кто как делает, его личное дело. ок? Мужик, даже в самых тривиальных задачах я не встречал всего-лишь 5 методов :) Ну пусть будет так, если ты работаешь с такими задачами. hVosttна счет твоей личной проблемы с iqueryable. скажи. ты хоть раз реализовал этот интерфейс сам? только честно. Зачем мне самому реализовывать IQueryable? Не понял вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:32 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVostt....говорю лично за себя и свой личный опыт.А... Тогда не мешает прибавлять "ИМХО", а то выглядит как аксиома... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:33 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttговорю лично за себя и свой личный опыт. Весомо, очень весомо. Чтож, нам всем надо верить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:34 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУЗачем мне самому реализовывать IQueryable? Не понял вопроса. а у меня вопросов больше нет. надо было с этого и начинать. жуйте дальше свой ienumerable. МСУК примеру, IDataService сайта http://codearticles.ru насчитывает порядка 30 методов, хотя сайт - простецкий, проще некуда. Плюс в том, что если мне потребуется поменять СУБД или отказаться от EF (например, в сторону NHibernate) - мне достаточно написать еще один датасервис и пристыковать его к приложению (в базовом контроллере). Всё, приложение встало на новые рельса. В твоем случае придется лопатить весь твой бесполезный многослойный код говна. МСУ, вы идиот. перечитайте мой предыдущий пост. какой многослойный код говна? вы точно идиот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:39 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУВ большинстве случаев (а их 99%) достаточно ручной инстанциации экземпляра ( IProjectRepository ) - через конструктор базового контроллера. У тебя он отсутствует. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. В IDataService - только IEnumerable , никаких квери и еще что-либо. Код: c# 1. 2. 3. 4. 5. Ты точно уверен, что у тебя может быть несколько дата сервисов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttа у меня вопросов больше нет. надо было с этого и начинать. жуйте дальше свой ienumerable. Их жует весь мир и я вместе с ним. Что хотел спросить - непонятно, очевидно опять твой поток сознания изгрыгнул какой-то кал... hVosttМСУ, вы идиот. перечитайте мой предыдущий пост. какой многослойный код говна? вы точно идиот. hVostt, ты кретин. Обычный многослойный код говна - если у тебя проблемы с унылой памятью, то я напомню - речь о дублировании EF репозитория. Убей себя об стену. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:57 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAТы точно уверен, что у тебя может быть несколько дата сервисов? Точно. IDataService Код: c# 1. 2. 3. 4. 5. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 10:59 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttна счет твоей личной проблемы с iqueryable. скажи. ты хоть раз реализовал этот интерфейс сам? интересный оборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 11:01 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, я надеюсь вы изучили код DotNetNuke, Orchard, Kooboo, N2, Ubraco, и других CMS на ASP.NET MVC дабы убедиться какие беспросветные кретины писали эти вещи, им всем надо срочно убить себя об стену, желательно с разбега, так как ни в одном из этих проектов не делают так как делаете вы, везде самостоятельные сервисы без наследования в архитектуре, и (о ужас) многослойный код с большой кучей интерфейсов, построенный на DI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 11:08 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, я надеюсь вы изучили код DotNetNuke, Orchard, Kooboo, N2, Ubraco, и других CMS на ASP.NET MVC дабы убедиться какие беспросветные кретины писали эти вещи, им всем надо срочно убить себя об стену, желательно с разбега, так как ни в одном из этих проектов не делают так как делаете вы, везде самостоятельные сервисы без наследования в архитектуре, и (о ужас) многослойный код с большой кучей интерфейсов, построенный на DI. Надеюсь ты изучил код и имеешь большой опыт разработки под такие платформенные решения, как MS SharePoint, MS Dynamics CRM и интеграционные шины на SSIS, BizTalk Server, которые реализуют контур между вспомогательными системами, такими как MS Dynamics Axapta, 1C и прочие системы, в т.ч. ERP, CRM, ECM и т.д. направлений. Студент, иди уроки делай, не маячь перед глазами со своими пукалками в виде CMS перделок. Кстати, по поводу DNN, имел продолжительный опыт работы с ним более двух лет еще в 2007 году. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 11:20 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, вай, какой молодец, выучил много умных слов. пирожок вот на полке... если дотянешься. а по теме сказать нечего, да? повторю для слабоумных. где ты видел и в каком проекте, где применяется такой же подход как у тебя? где? дай ссылку на гит, кодеплекс, битбакет, скачаю посмотрю на сорцы. увижу твой подход в большом и сложном решении, сложу оружие, выкину белый флаг, повешу твой портрет на стену, будем всей командой на тебя молиться каждый вечер. а пока вижу только пукание умными словами и ничего. да я, да у меня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 11:30 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, вай, какой молодец, выучил много умных слов. пирожок вот на полке... если дотянешься. Эти умные слова тебя бы расплющили об пол своей тяжестью, кодеманка. hVosttа по теме сказать нечего, да? А по теме я давно уже всё сказал, остается дело за малым - попинать тугого ламера ради забавы и возрадоваться сему. hVosttповторю для слабоумных. где ты видел и в каком проекте, где применяется такой же подход как у тебя? где? дай ссылку на гит, кодеплекс, битбакет, скачаю посмотрю на сорцы. увижу твой подход в большом и сложном решении, сложу оружие, выкину белый флаг, повешу твой портрет на стену, будем всей командой на тебя молиться каждый вечер. Еще разок повторю для дегенератов, которые напрочь отказываются выходить из танка: 13693279 Этой "идее" сто лет в обед, это классика, которая закладывается в фундаментальные подходы MVP паттерна. Во всей его красе. Читай букварь . hVosttа пока вижу только пукание умными словами и ничего. да я, да у меня... По-моему это ты тут начал брызгать слюной по поводу CMS. Не приписывай свою дегенеративную особенность, выскочка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 11:45 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, а я-то, дурак, думал мы говорим о MVC, а не о WebForms. да у вас, батенько, шизофрения в развитой стадии. какой ещо MVP? и что, что оно ложится в WebForms (ну хотя бы потому..... что webforms как раз и реализует паттерн MVP) какие события в мире ASP.NET MVC? хватит уже пить и употреблять всякую дрянь :) большой и умный дяденька. и поправьте очки, а то они у вас кажется опять съехали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:03 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
В какую тему не сунься везде срач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:12 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAТы точно уверен, что у тебя может быть несколько дата сервисов? Точно. + IDataService Код: c# 1. 2. 3. 4. 5. Код: 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. МСУВ программе у тебя могут быть n датасервисов, как я уже сказал выше: IDataService, IDataService2, IDataService3, ... IDataServiceN. Каждый сам по себе - black box.Так ты говоришь о нескольких реализациях одного интерфейса IDataService, или всё-таки о нескольких (N) интерфейсах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:14 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУ, а я-то, дурак, думал мы говорим о MVC, а не о WebForms. Точно дурак, потому что не понимаешь, что MVC и MVP можно спокойно использовать и в WebForms. ASP.NET MVC просто обязывает использовать контроллер, а WebForms никаких обязательств не накладывает. Вот и вся разница. hVosttда у вас, батенько, шизофрения в развитой стадии. какой ещо MVP? и что, что оно ложится в WebForms (ну хотя бы потому..... что webforms как раз и реализует паттерн MVP) Ты просто тугодум с острой нехваткой головного мозга - WebForms не реализует MVP, свадись, двойка. Я тебе и раньше говорил, что ты не умеешь его готовить, а оказывается ты еще и больной на голову. Читай: http://msdn.microsoft.com/ru-ru/magazine/ff955232.aspx Улучшение Web Forms с помощью шаблона MVP , Дино Эспозито (Dino Esposito) Ну ты баран, ей богу hVosttкакие события в мире ASP.NET MVC? хватит уже пить и употреблять всякую дрянь :) большой и умный дяденька. и поправьте очки, а то они у вас кажется опять съехали. Тебе просто нечем понимать, вот в чем корень зла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:26 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAТак ты говоришь о нескольких реализациях одного интерфейса IDataService, или всё-таки о нескольких (N) интерфейсах? Не поверишь, и о том и о том. Первое - для расширения приложения для работы с несколькими "провайдерами" и гибкого манипулирования источниками. Второе - для разнесения датасервисов по разным "областям" отвественности. Для простых приложений хватит за глаза первого варианат - одного интерфейса IDataService. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:30 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttwebforms как раз и реализует паттерн MVP Ну серьезно, таких балбесов нужно сразу под кат :) Жесть. Сходить за попкорном чтоль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:31 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAТак ты говоришь о нескольких реализациях одного интерфейса IDataService, или всё-таки о нескольких (N) интерфейсах? Не поверишь, и о том и о том. Первое - для расширения приложения для работы с несколькими "провайдерами" и гибкого манипулирования источниками. Второе - для разнесения датасервисов по разным "областям" отвественности. Для простых приложений хватит за глаза первого варианат - одного интерфейса IDataService.То есть для не простых приложений у тебя несколько базовых контроллеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:32 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, теперь вы в ряды кретинов записали весь майкрософт. какой по-вашему паттерн реализует чистый вебформс? вы потрудитесь найти больше информации по теме, кроме статьи достаточно умного дядьки экспозито, который черным-по-белому написал, что MVP для вебформс идеален, не задумывались — почему? хотя нет, когда вам. учитывая количество ваших постов на этом форуме, вам некогда развиваться, работать, читать и чего-то изучать, но есть время каждый день чтобы просрацца на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:37 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУASP.NET MVC просто обязывает использовать контроллер, а WebForms никаких обязательств не накладывает. Вот и вся разница. Разница в том, что в WebForms используется page controller, а в MVC front controller. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:48 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAТо есть для не простых приложений у тебя несколько базовых контроллеров? Причем тут базовый контроллер? Речь о IDataService шла. hVosttМСУ, теперь вы в ряды кретинов записали весь майкрософт. какой по-вашему паттерн реализует чистый вебформс? В разрядах кретинов был ты и не вылазил оттуда. Ответ - никакой. WebForms ничего не может реализовывать, это платформа. Ты можешь хоть MVVM реализовать на этой плафторме. Ну ты дурень... hVosttвы потрудитесь найти больше информации по теме, кроме статьи достаточно умного дядьки экспозито, который черным-по-белому написал, что MVP для вебформс идеален, не задумывались — почему? хотя нет, когда вам. учитывая количество ваших постов на этом форуме, вам некогда развиваться, работать, читать и чего-то изучать, но есть время каждый день чтобы просрацца на форуме. Чудик, ты как считаешь, Дино Эспозито просто так посвятил время журналу MSDN Magazine, в котором начал описывать то, как сделать в WebForms подход MVP? Странно, зачем ему это понадобилось, если WebForms по твоим словам и так уже реализует MVP? P.S. Либо ты унылый тролль, либо реально придурок. Уж прости, но читать твой бред становится весьма весело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:52 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Забавно, что МСУ привёл статью, где написано:Улучшение Web Forms с помощью шаблона MVPЛогику этого рабочего процесса можно статически кодировать в контроллере приложения или импортировать из внешнего подключаемого компонента. Реализация Контроллера приложения Код: 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. И где же базовый контроллер, где создаётся инстанс INavigationWorkflow? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:54 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
ПарамонРазница в том, что в WebForms используется page controller, а в MVC front controller. Правильно, но стратегия page controller - это не тоже самое, что MVP. skyANAЗабавно, что МСУ привёл статью, где написано: ... И где же базовый контроллер, где создаётся инстанс INavigationWorkflow? А это не принципиально. Если ты был бы внимательным, я битый час объяснял, что лучше инстанциацию вынести в базовый контроллер, чем её размазывать в реализации самих контроллеров приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 12:57 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУОтвет - никакой. WebForms ничего не может реализовывать, это платформа. свою голову включить я вам даже уже и не предлагаю. там просто нечего включать. «просто платформа»... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 13:04 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Я года два назад бросил следить за всякими MVC в туче реализаций и оговорок, потому что: 1. Ни один из паттернов не закрывает потребности на 100%. 2. Усмотрел следующее: любую поделку можно с этими оговорками пристегнуть к тому или иному "паттерну". М$ взяла курс: нехай народ развлекается, изобретает, а мы подольем (или нет) масла в огонь. ИМХО, последнее куда были вложены деньги по-настоящему, это те самые вебформс. Ну, был, ессно, Сервелат и концептуальные вещи: WCF, например. Однако, мое мнение, в Сервелат изначально вливались деньги, наперед предполагая, что он умрет. Цель - ослабить Флеш и продержаться (чтобы народ не сильно разбредался) до HTML5 - была достигнута. Все - армия свое дело сделала, можно списать и забыть (как 2-я ударная). Будет она воевать, не будет - неважно... И сейчас, М$ держит нос по ветру - с минимальными (насколько можно) вложениями держать дотНет платформу в боеспособном (читай конъюнктурном) состоянии: Джава сильна, ЛАМПы всякие там кровь портят и т.п. Этакий паттерн (Полу)ОперСорса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 13:44 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
iConst ИМХО, последнее куда были вложены деньги по-настоящему, это те самые вебформс. Выбрасывание денег на ветер, спустит любой капитал в итоге :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 13:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУПарамонРазница в том, что в WebForms используется page controller, а в MVC front controller. Правильно, но стратегия page controller - это не тоже самое, что MVP. skyANAЗабавно, что МСУ привёл статью, где написано: ... И где же базовый контроллер, где создаётся инстанс INavigationWorkflow? А это не принципиально. Если ты был бы внимательным, я битый час объяснял, что лучше инстанциацию вынести в базовый контроллер, чем её размазывать в реализации самих контроллеров приложения. Повторяю вопрос:skyANAТо есть для не простых приложений у тебя несколько базовых контроллеров? Или N различных инстансов в базовом контроллере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 14:00 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
hVosttМСУОтвет - никакой. WebForms ничего не может реализовывать, это платформа. свою голову включить я вам даже уже и не предлагаю. там просто нечего включать. «просто платформа»... Зачем мне какие-то левые предложения от какого-то левого ламера? Ну вот честно, на кой они мне? skyANAПовторяю вопрос:skyANAТо есть для не простых приложений у тебя несколько базовых контроллеров? Или N различных инстансов в базовом контроллере? Нет, базовый контроллер всегда один. Ответ понятен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 14:46 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, понятен: N различных инстансов в базовом контроллере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 15:25 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAN различных инстансов в базовом контроллере. Да, если они отличны своим интерфейсом-предком, т.е.: IDataService1, IDataService2, IDataService3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 15:29 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, и смысл? Чисто чтобы всё в одном месте было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:01 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, и смысл? Чисто чтобы всё в одном месте было? Умничка - понадобилсоь 7 страниц топика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:10 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANA, но зло на самом деле в другом - куй бы с ним, что ты размазываешь интерфейсы датасервисов по прикладным контроллерам, а потом ходишь с веником и инжектишь из через DI (или просто ручками инстанциируешь). Зло в дублировании EF репозитория, за это нужно расстреливать на месте. А за то, что "WebForms по дефолту реализует MVP" вообще нужно головой в помои определять. Ну про "REST - это архитектура" я как бы скромно умалчиваю, ибо это ничто по сравнению с вышесказанным. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:14 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
1. Ресолвы обычно в одном месте прописываются, так что не понятно что ты имеешь ввиду под размыванием; 2. Инстансы IDataService1 - IDataServiceN используют один и тотже EF репозиторий у тебя, каким образом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:24 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAпод размыванием размазыванием ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:28 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANA1. Ресолвы обычно в одном месте прописываются, так что не понятно что ты имеешь ввиду под размыванием; 2. Инстансы IDataService1 - IDataServiceN используют один и тотже EF репозиторий у тебя, каким образом? 1. Глянь на эту срань 13687779 2. С чего ты взял что один и тот же EF репозиторий? IDataService1 использует EF подход. IDataService2 использует WCF подход. IDataService3 отвечает за поставку курсов валют и использует ASMX подход. И так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:29 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANA1. Ресолвы обычно в одном месте прописываются, так что не понятно что ты имеешь ввиду под размыванием; 2. Инстансы IDataService1 - IDataServiceN используют один и тотже EF репозиторий у тебя, каким образом? 1. Глянь на эту срань 13687779 2. С чего ты взял что один и тот же EF репозиторий? IDataService1 использует EF подход. IDataService2 использует WCF подход. IDataService3 отвечает за поставку курсов валют и использует ASMX подход. И так далее. А если ты курсы валют начал брать из своей БД, то ты методы IDataService3 добавляешь в IDataService1, реализуешь. Везде в коде заменяешь обращение к первому на обращение к последнему и выкидываешь IDataService3? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 16:58 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, допустим мы пишем систему онлайн бронирования отелей и авиаперелётов. а. Ты реализуешь IHotelService для поиска отелей, IAirflightService для поиска авиаперелётов и IBookingService для бронирования найденного набора услуг, или... б. Ты реализуешь один IDataService для и для поиска отелей и перелётов, и для бронирования найденного набора услуг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:04 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAА если ты курсы валют начал брать из своей БД, то ты методы IDataService3 добавляешь в IDataService1, реализуешь. Везде в коде заменяешь обращение к первому на обращение к последнему и выкидываешь IDataService3? Конечно нет. Если меняется источник курсов, пишется новый сервис NewDataService, унаследованный от OldDataService (OldDataService: IDataService3) и правлю необходимые методы через override. Соотвественно, программа как работала с курсами по протоколу IDataService3, так и работает. Протокол менять нельзя, можно менять реализацию. skyANAМСУ, допустим мы пишем систему онлайн бронирования отелей и авиаперелётов. а. Ты реализуешь IHotelService для поиска отелей, IAirflightService для поиска авиаперелётов и IBookingService для бронирования найденного набора услуг, или... б. Ты реализуешь один IDataService для и для поиска отелей и перелётов, и для бронирования найденного набора услуг? Если работа с отелями, перелетами и бронированиями ведется прозрачно и с одной БД или несколькими БД одного сервера, то скорее всего я не буду разделяться на несколько сервисов и напишу один IDataService. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:30 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
ПарамонМСУГлянь на эту срань 13687779 Там стандартный подход, рекомендуемый для TDD с использованием DI. У меня тоже стандартный подход, рекомендуемый для TDD с использованием DI - Asp.net MVC base controller with constructor injection and MEF Очень удобно стыковать блоки, в т.ч. и через MEF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:35 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, вот хотелось бы услышать твое мнение про размазанность и масштабируемость. если хранить слой доступа в контексте запроса через расширения при старте запроса открываем сессию при окончании диспозим. доступ с любого места + верификация пользователя + верефикация по путям. никакой размазанности все с одного места, в коде никакого исправления, беглый доступ. если учесть что и править то сам контекст слоя. Правда есть нюансы, но они исправимые. Ну я надеюсь мысль понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 17:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAА если ты курсы валют начал брать из своей БД, то ты методы IDataService3 добавляешь в IDataService1, реализуешь. Везде в коде заменяешь обращение к первому на обращение к последнему и выкидываешь IDataService3? Конечно нет. Если меняется источник курсов, пишется новый сервис NewDataService, унаследованный от OldDataService (OldDataService: IDataService3) и правлю необходимые методы через override. Соотвественно, программа как работала с курсами по протоколу IDataService3, так и работает. Протокол менять нельзя, можно менять реализацию.Старый инстанс IDataService1 и новый инстанс IDataService3 будут использовать один и тотже EF репозиторий? МСУskyANAМСУ, допустим мы пишем систему онлайн бронирования отелей и авиаперелётов. а. Ты реализуешь IHotelService для поиска отелей, IAirflightService для поиска авиаперелётов и IBookingService для бронирования найденного набора услуг, или... б. Ты реализуешь один IDataService для и для поиска отелей и перелётов, и для бронирования найденного набора услуг? Если работа с отелями, перелетами и бронированиями ведется прозрачно и с одной БД или несколькими БД одного сервера, то скорее всего я не буду разделяться на несколько сервисов и напишу один IDataService.Завтра тебе надо будет интегрироваться с различными мировыми системами поиска и бронирования, с системами партнёров и т.п. Причём одни предоставляют только поиск и бронирование отелей, другие только перелётов, третьи только прокат авто, четвёртые предоставляют всё что есть у тебя плюс ещё какие-нибудь экскурсии и трансферы, и что ты будешь делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 18:17 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Как ты будешь реализовывать IDataService для поставщика, предоставляющего только отели? Методы, что относятся к другим классам услуг, будут кидать NotImplementedException? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 18:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAА если ты курсы валют начал брать из своей БД, то ты методы IDataService3 добавляешь в IDataService1, реализуешь. Везде в коде заменяешь обращение к первому на обращение к последнему и выкидываешь IDataService3? Конечно нет. Если меняется источник курсов, пишется новый сервис NewDataService, унаследованный от OldDataService (OldDataService: IDataService3) и правлю необходимые методы через override. Соотвественно, программа как работала с курсами по протоколу IDataService3, так и работает. Протокол менять нельзя, можно менять реализацию. skyANAМСУ, допустим мы пишем систему онлайн бронирования отелей и авиаперелётов. а. Ты реализуешь IHotelService для поиска отелей, IAirflightService для поиска авиаперелётов и IBookingService для бронирования найденного набора услуг, или... б. Ты реализуешь один IDataService для и для поиска отелей и перелётов, и для бронирования найденного набора услуг? Если работа с отелями, перелетами и бронированиями ведется прозрачно и с одной БД или несколькими БД одного сервера, то скорее всего я не буду разделяться на несколько сервисов и напишу один IDataService. Про принцип единичной ответственности эта чурка даже не слышала. Одна из причин для чего нужны обобщенные контроллеры - это, если вдруг на проекте попадется такое ...(не буду уточнять), то будет возможность держать его на коротком поводке, чтобы он кизяками все вокруг не закидал. Что вы с ним этот идиотизм обсуждаете? У него никогда не было этих контроллеров и не будет, чисто теоретический бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2012, 20:06 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Где-то в степиНу я надеюсь мысль понял? Да, более того, так нужно делать в случае с HNibernate, там очень дорого стоит инициализация фабрики. Но не в сессию, а в кеш или статику. skyANAСтарый инстанс IDataService1 и новый инстанс IDataService3 будут использовать один и тотже EF репозиторий? Не обязательно. Но лучше под один (или несколько) EF контекстов делать IDataService, а не наоборот. Хотя никто не запрещает, конечно. skyANAЗавтра тебе надо будет интегрироваться с различными мировыми системами поиска и бронирования, с системами партнёров и т.п. Причём одни предоставляют только поиск и бронирование отелей, другие только перелётов, третьи только прокат авто, четвёртые предоставляют всё что есть у тебя плюс ещё какие-нибудь экскурсии и трансферы, и что ты будешь делать? Отлично, я пишу новый NewDataService, унаследованный от того же IDataService или от предыдущего OldDataService (который так же наследуется от IDataService). В моем NewDataService закладывается интеграция различными мировыми системами поиска и бронирования, с системами партнёров и т.п. NewDataService так же легко стыкуется с моим приложением, которое умеет работать с IDataService. Вся черная работа лежит в black box - в NewDataService. skyANAКак ты будешь реализовывать IDataService для поставщика, предоставляющего только отели? Методы, что относятся к другим классам услуг, будут кидать NotImplementedException? Не понял тебя. IDataService работает не только с отелями, а объединяет в себе работу как с отелями, так и с бронированием и прочим. В чем проблема-то? Если ты разносишь работу на несколько зон отвественности (IDataService1, IDataService2, IDataService3), значит твое приложение умеет работать только с этими зонами. Отстыкуй любой блок и пристыкуй новый (был OldDataService2, стал NewDataService2) - и всё у тебя будет роаботать. SeVaПро принцип единичной ответственности эта чурка даже не слышала. Одна из причин для чего нужны обобщенные контроллеры - это, если вдруг на проекте попадется такое ...(не буду уточнять), то будет возможность держать его на коротком поводке, чтобы он кизяками все вокруг не закидал. Принцип единичной ответственности как-раз реализует датасервис, просто скудность твоего больного воображения не позволяет понять это. Неуч, ASP.NET MVC не умеет работать с обобщенными контроллерами, все остальные жалкие потуги скрестить ужа с удавом приводят к гавнокоду, который никому не нужен. SeVaЧто вы с ним этот идиотизм обсуждаете? У него никогда не было этих контроллеров и не будет, чисто теоретический бред. Учи матчасть, бестолочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 10:59 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANA, главный плюс такого подхода в легкости управления проектом. 1. Вот я беру и на аутсорс тебе выношу задачу - написать слой, который будет работать с отелями, перелетами и бронированиями через какие-то там внешние сервисы. 2. Отправляю тебе только DLL с требуемым IDataService и классами-болванками для резултатов методов IDataService. Всё. Тебе ничего не надо знать о моем приложении, ты просто решаешь свою задачу независимо. 3. Я продолжаю дальше разработку по проекту, вкорячив фейковую реализацию IDataService. 4. При приемке решения от тебя я выкидываю свой фейковый датасервис и вставляю твой - отлично, моё приложение теперь интегрировано с мировыми отелями, перелетами и бронированиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 12:49 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAСтарый инстанс IDataService1 и новый инстанс IDataService3 будут использовать один и тотже EF репозиторий? Не обязательно. То есть разные сервисы используют разные EF репозитории? Или когда тебе хочется, то ты используешь один EF репозиторий в разных сервисах? Тогда покажи как ты это делаешь. МСУНо лучше под один (или несколько) EF контекстов делать IDataService, а не наоборот.Сам себе противоречишь:МСУskyANAА если ты курсы валют начал брать из своей БД, то ты методы IDataService3 добавляешь в IDataService1, реализуешь. Везде в коде заменяешь обращение к первому на обращение к последнему и выкидываешь IDataService3? Конечно нет. МСУskyANAЗавтра тебе надо будет интегрироваться с различными мировыми системами поиска и бронирования, с системами партнёров и т.п. Причём одни предоставляют только поиск и бронирование отелей, другие только перелётов, третьи только прокат авто, четвёртые предоставляют всё что есть у тебя плюс ещё какие-нибудь экскурсии и трансферы, и что ты будешь делать? Отлично, я пишу новый NewDataService, унаследованный от того же IDataService или от предыдущего OldDataService (который так же наследуется от IDataService). В моем NewDataService закладывается интеграция различными мировыми системами поиска и бронирования, с системами партнёров и т.п. NewDataService так же легко стыкуется с моим приложением, которое умеет работать с IDataService. Вся черная работа лежит в black box - в NewDataService. skyANAКак ты будешь реализовывать IDataService для поставщика, предоставляющего только отели? Методы, что относятся к другим классам услуг, будут кидать NotImplementedException? Не понял тебя. IDataService работает не только с отелями, а объединяет в себе работу как с отелями, так и с бронированием и прочим. В чем проблема-то? Если ты разносишь работу на несколько зон отвественности (IDataService1, IDataService2, IDataService3), значит твое приложение умеет работать только с этими зонами. Отстыкуй любой блок и пристыкуй новый (был OldDataService2, стал NewDataService2) - и всё у тебя будет роаботать.Хорошо, пойдём с другой стороны :) Есть поставщики, что предоставляют функционал поиска и бронирования только авиаперелётов: IAirflightService. Есть поставщики только отелей: IHotelService. Есть поставщики только трансфер: ITransferService. И твой NewDataService круто с ними работает, вернее тупо пробрасывает запросы им. То есть в твоей системе есть и IAirflightService, и IHotelService, и ITransferService, и IDataService. Заметь кстати, что OldDataService, что работает с твоей БД, теперь обязан каким-то образом реализовать поиск и бронирование трансферов, которых нет в твоей системе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 12:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAЕсть поставщики, что предоставляют функционал поиска и бронирования только авиаперелётов: IAirflightService. Есть поставщики только отелей: IHotelService. Есть поставщики только трансфер: ITransferService. И твой NewDataService круто с ними работает, вернее тупо пробрасывает запросы им. Стоп, уже ошибка. Как это мой NewDataService может с ними рабоать? Если ты разбросал ответсвенность на 3 части, значит у нас будут 3 датасервиса: Код: c# 1. 2. 3. skyANAТо есть в твоей системе есть и IAirflightService, и IHotelService, и ITransferService, и IDataService. Нет, см. выше. Откуда IDataService и зачем он в данной задаче? skyANAЗаметь кстати, что OldDataService, что работает с твоей БД, теперь обязан каким-то образом реализовать поиск и бронирование трансферов, которых нет в твоей системе Чё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 13:00 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANA, главный плюс такого подхода в легкости управления проектом. 1. Вот я беру и на аутсорс тебе выношу задачу - написать слой, который будет работать с отелями, перелетами и бронированиями через какие-то там внешние сервисы. 2. Отправляю тебе только DLL с требуемым IDataService и классами-болванками для резултатов методов IDataService. Всё. Тебе ничего не надо знать о моем приложении, ты просто решаешь свою задачу независимо. 3. Я продолжаю дальше разработку по проекту, вкорячив фейковую реализацию IDataService. 4. При приемке решения от тебя я выкидываю свой фейковый датасервис и вставляю твой - отлично, моё приложение теперь интегрировано с мировыми отелями, перелетами и бронированиями.В реальности ты такое не сможешь сделать. С мировыми отелями, перелетами и бронированиями нужно будет заключить контракт, чтобы интегрироваться. Хотел бы я посмотреть как ты это сделаешь одновременно. В реальности поставщики подключаются отдельно. То есть по мере необходимости подключения всё новых поставщиков, тебе придётся допиливать сервис, компилировать, тестировать. В особенности это будет весело, при подключение поставщиков услуг, которых у тебя раньше не было. По мне так проще реализовать конкретный IAirflightService, или набор сервисов, протестировать их и подключить в систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 13:05 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, ну то есть мы пришли к тому, что в системе должны быть отдельные сервисы: IAirflightService, IHotelService, - так? Не смотря на то, что в начале работа с отелями, перелетами и бронированиями ведется прозрачно и с одной БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 13:10 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAВ реальности ты такое не сможешь сделать. С мировыми отелями, перелетами и бронированиями нужно будет заключить контракт, чтобы интегрироваться. Хотел бы я посмотреть как ты это сделаешь одновременно. Это не мои проблемы, а заказчика ПО - пусть договариается, покупает лицензии, заключает контракты. Главное, что инфраструктурно и логически у меня не будет ниаких проблем переключиться на другие источники, хранилища и сервисы. И пусть не одновременно, а поочереди - не суть, у меня всё будет работать так же бесперебойно как и раньше. skyANAВ реальности поставщики подключаются отдельно. То есть по мере необходимости подключения всё новых поставщиков, тебе придётся допиливать сервис, компилировать, тестировать. В особенности это будет весело, при подключение поставщиков услуг, которых у тебя раньше не было. Допиливать не придется, это будет новый датасервис с новым источником. Причем, если большая часть его реализации совпадает со старым, достаточно будет просто от него отнаследоваться. Если вдруг потребуется вернуться к начальному датасервису, я всегда смогу это сделать. skyANAПо мне так проще реализовать конкретный IAirflightService, или набор сервисов, протестировать их и подключить в систему. Я тебе не понимаю. А у меня что, не так? Либо пихай всё в один ISuperService, либо разноси на несколько. От перемены мест стлагаемых сумма не изменяется. В чем проблема-то? skyANAМСУ, ну то есть мы пришли к тому, что в системе должны быть отдельные сервисы: IAirflightService, IHotelService, - так? Мы к этому не приходили. Я с самого начала сказал, что может быть один общий датасервис, либо несколько, о которых ты пишешь. Принципиальной разницы тут нет. skyANAНе смотря на то, что в начале работа с отелями, перелетами и бронированиями ведется прозрачно и с одной БД? Тоже уже отвечал на эту тему - ограничений никаких нет. Определяй зоны ответственности по усмотрению, главное архитектурный принцип стыковки слоёв не нарушается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:03 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAВ реальности ты такое не сможешь сделать. С мировыми отелями, перелетами и бронированиями нужно будет заключить контракт, чтобы интегрироваться. Хотел бы я посмотреть как ты это сделаешь одновременно. Это не мои проблемы, а заказчика ПО - пусть договариается, покупает лицензии, заключает контракты. Главное, что инфраструктурно и логически у меня не будет ниаких проблем переключиться на другие источники, хранилища и сервисы. И пусть не одновременно, а поочереди - не суть, у меня всё будет работать так же бесперебойно как и раньше. skyANAВ реальности поставщики подключаются отдельно. То есть по мере необходимости подключения всё новых поставщиков, тебе придётся допиливать сервис, компилировать, тестировать. В особенности это будет весело, при подключение поставщиков услуг, которых у тебя раньше не было. Допиливать не придется, это будет новый датасервис с новым источником. Причем, если большая часть его реализации совпадает со старым, достаточно будет просто от него отнаследоваться. Если вдруг потребуется вернуться к начальному датасервису, я всегда смогу это сделать. skyANAПо мне так проще реализовать конкретный IAirflightService, или набор сервисов, протестировать их и подключить в систему. Я тебе не понимаю. А у меня что, не так? Либо пихай всё в один ISuperService, либо разноси на несколько. От перемены мест стлагаемых сумма не изменяется. В чем проблема-то? skyANAМСУ, ну то есть мы пришли к тому, что в системе должны быть отдельные сервисы: IAirflightService, IHotelService, - так? Мы к этому не приходили. Я с самого начала сказал, что может быть один общий датасервис, либо несколько, о которых ты пишешь. Принципиальной разницы тут нет. skyANAНе смотря на то, что в начале работа с отелями, перелетами и бронированиями ведется прозрачно и с одной БД? Тоже уже отвечал на эту тему - ограничений никаких нет. Определяй зоны ответственности по усмотрению, главное архитектурный принцип стыковки слоёв не нарушается.Бла-бла-бла, ни читать, ни думать ты не хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:14 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, ещё раз. Изначально у тебя своя система (со своей БД), что позволяет искать и бронировать отели и перелёты. Ты предложил сделать один сервис: Код: c# 1. 2. 3. 4. 5. 6. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:18 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAБла-бла-бла, ни читать, ни думать ты не хочешь Тебе просто понимать не чем, вот и приходится бла-бла-бла. Кодеманка, куле :) skyANAТак? Верно мыслишь, человече. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:49 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУskyANAТак? Верно мыслишь, человече.Круто. Приходит время интеграции: заказчик говорит, что нужно подключить поставщика отелей Travko, через их XML API. Что ты делаешь, о гуру-архитектор? NewDataService : OldDataService и новый IHotelService и его реализацию для Travko? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 15:57 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAМСУпропущено... Верно мыслишь, человече.Круто. Приходит время интеграции: заказчик говорит, что нужно подключить поставщика отелей Travko, через их XML API. Что ты делаешь, о гуру-архитектор? NewDataService : OldDataService и новый IHotelService и его реализацию для Travko? Ты прикидываешься идиотом или им и являешься? Я 100500 раз повторил, что: 1. Изначально был и работал OldDataService: IDataService, приложение понимает только IDataService и ничего кроме 2. Теперь стал NewDataService : OldDataService с каким-то там изменениями Откуда тут IHotelService, ты с дуба упал? Никаких левых интерфейсов наше приложение не понимает, только IDataService. Следовательно, делаем наш новый NewDataService и подключаем к приложению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:01 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, приложение у тебя как работало с IDataService так и продолжает с ним работать. Как ты реализуешь работу с Travko? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:19 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, приложение у тебя как работало с IDataService так и продолжает с ним работать. Правильно, как было 50 методов у IDataService, так и осталось. skyANAКак ты реализуешь работу с Travko? Правильно, 45 методов остались без измеения, в реализации 5-и методов мы произвели изменения. Сингатура осталась без изменения, всё работает как и раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:22 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
То есть теперь поиск проживания в отеле должен вестись и в твоей системе, и в подключённом поставщике Travko. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:23 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAТо есть теперь поиск проживания в отеле должен вестись и в твоей системе, и в подключённом поставщике Travko. Как напишешь, так и будет. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Ты тупить долго будешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:28 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, тупишь ты, я разбираю твой подход. Реализация метода Find() для поиска в твоей системе как я понимаю юзает EF репозиторий. Как ты засунешь туда работу с XML API Travko? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:35 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANAМСУ, тупишь ты, я разбираю твой подход. Я 100500 раз тебе разжевываю элементарные вещи, но ты упорно сидишь в танке с запертым люком. И я еще туплю? skyANAРеализация метода Find() для поиска в твоей системе как я понимаю юзает EF репозиторий. Как ты засунешь туда работу с XML API Travko? Жесть, ты просто обмороженная кодеманка, скианыч... :( NewDataService Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Так же можно пойти универсальным путем - придумать такой механизм, который бы в БД описывал схемы подключения поставщиков (через БД и через SOA), тогда мы обошлись бы единственным универсальным методом, который по настройкам из нашей базы обращался к нужному поставщику через определенный механизм. Если у тебя пара поставщиков и в ближайшем будущем их количество врядли изменится, подойдет способ в лоб. Если у тебя каждый месяц по новому поставщику, дешевле делать универсальный механизм, чтобы не переписывать все-время свой датасервис. Опять же, это уже второй вопрос. Главное, что наше приложение общается с датасервисом по определенному заранее протоколу - IDataService. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 16:48 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Скиана, можно и так, сути не меняет Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. За реализацию TravkoSearcher ты отвечаешь, т.к. я нанял тебя как стороннего специалиста и ты по удаленке написал мне решение. При этом ты ничего не знаешь о моем приложении, я просто пристыковал результат твоей плодотворной деятельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 17:05 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Скиана, пойми простую вещь: с меня - все сигнатуры в отдельной DLL, с тебя реализация. Как тупая code monkey, ты не должна знать о том, что я делаю, как я делаю и зачем я делаю. Ты бездумно выполняешь свою работу, а я проплачиваю тебе деньги. Ничего личного, только бизнес (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 17:13 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
[quot МСУ]Скиана, можно и так, сути не меняет Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. как то это switch напрашивается на замену (типа фабрики ?) - что, при необходимости подключения еще 10 провайдеров надо расширять этот switch и переписывать AirflightCondition ? хрупкое решение - изменение в поставщике требует перекомпиляцию проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 17:56 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУ, а теперь моя реализация: 1. Считаем что наша система для нашего приложения - это такой же поставщик услуг, что и остальные; 2. То есть изначально мы пишем реализацию поиска в своей системе: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 3. Пишем реализацию IHotelService для приложения, где в методе Find() пробегаемся по всем зарегистрированным сервисам от поставщиков, что реализуют опять же IHotelService и передаём запрос пользователя им; 4. Собираем соответсвенно ответы и отдаём пользователю. При подключении нового поставщика, мы тупо пишем реализацию для поставщика (или отдаём это на аутсорс), регистрируем поставщика в приложении и всё! Никаких 5 методов из 50 вообще переписывать не надо, никаких NewDataService не надо! Гораздо гибче, чем у тебя с твоим switch в методе Find() и постоянным переписыванием IDataService. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 18:06 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Причём MVC приложение может работать как во твоему принципу, так и через инъекции конкретного сервиса в конкретный контроллер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 18:09 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУСкиана, можно и так, сути не меняет Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. За реализацию TravkoSearcher ты отвечаешь, т.к. я нанял тебя как стороннего специалиста и ты по удаленке написал мне решение. При этом ты ничего не знаешь о моем приложении, я просто пристыковал результат твоей плодотворной деятельности.Смотрите-ка, ты по тихому добавил некий IHotelSearcher. А я тебе намекал на то, что он появится. И какой на фиг return внутри case? Нужно по всем поставщикам искать. Но это уже молочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 18:30 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANA, я бы ушел еще ниже по коду. 1 вы работаете с отелями на мапах - объект. 2 вы выбираете их через linq делаем расширение на ling ну типа GetCore<T>.Where(......... типы объектов маркируем атрибутами, откуда тащить это объект а в расширении просто подтягиваем из разных баз, никаких I, и вам вообще до фонаря где лежит это О.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 18:32 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, типы объектов - это классы Airflight, Excursion, Hotel, Transfer и т.п.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 18:54 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
skyANA, ну и что, пометь их атрибутами откуда тащить объекты этого типа, и тащи в расширении, а снаружи будет складываться ощущение что они лежать все в одном месте.. , тут если добавится новый тип или хранилище( атрибут), вообще можно обойтись без пере компиляции кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 19:07 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
светлое будущее - не наступило. правда там, где деньги. Ничего личного. Всё дерьмо, кроме пчёл, хотя и пчёлы - дерьмо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 20:28 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
monstrUкак то это switch напрашивается на замену (типа фабрики ?) - что, при необходимости подключения еще 10 провайдеров надо расширять этот switch и переписывать AirflightCondition ? А это не принципиально уже, хочешь отвязаться от AirflightCondition, кури просто строковый параметр ProviderName, по нему из конфигурации (БД, XML, конфиги и т.д.) вытягивай провайдера и запрашивай через него IEnumerable<Airflight>. monstrUхрупкое решение - изменение в поставщике требует перекомпиляцию проекта. Не хрупкое, идет речь о принципе ответственности, а не о том, как гибко одной ложкой зачерпнуть все провайдеры. По-быстрому - через AirflightCondition, по-уму - описать все провайдеры и способ доступа к ним в конфиге. skyANAМСУ, а теперь моя реализация ... При подключении нового поставщика, мы тупо пишем реализацию для поставщика (или отдаём это на аутсорс), регистрируем поставщика в приложении и всё! Никаких 5 методов из 50 вообще переписывать не надо, никаких NewDataService не надо! Те же яйца только с боку. Выше я описал примерно такой же способ. skyANAГораздо гибче, чем у тебя с твоим switch в методе Find() и постоянным переписыванием IDataService. Ты не зришь в корень, switch - не панацея, это решение в лоб. Если нужно динамически подлить все провайдеры, ты их подгружаешь (регистрация) в том же IDataService. Речь не о том, как красиво собрать все провайдеры :) skyANAПричём MVC приложение может работать как во твоему принципу, так и через инъекции конкретного сервиса в конкретный контроллер В топку инъекции конкретного сервиса в конкретный контроллер, пусть инстансами управляет базовый. skyANAСмотрите-ка, ты по тихому добавил некий IHotelSearcher. А я тебе намекал на то, что он появится. Не суть, ты мне главное верни IEnumerable<Airflight>, а я сам разберусь, как его компактнее упаковать и зарегистрировать. skyANAИ какой на фиг return внутри case? Нужно по всем поставщикам искать. Но это уже молочь. Гы, добавь в енум AirflightProvider флажок All и ищи по всем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2012, 22:31 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУmonstrUкак то это switch напрашивается на замену (типа фабрики ?) - что, при необходимости подключения еще 10 провайдеров надо расширять этот switch и переписывать AirflightCondition ? А это не принципиально уже, хочешь отвязаться от AirflightCondition, кури просто строковый параметр ProviderName, по нему из конфигурации (БД, XML, конфиги и т.д.) вытягивай провайдера и запрашивай через него IEnumerable<Airflight>. monstrUхрупкое решение - изменение в поставщике требует перекомпиляцию проекта. Не хрупкое, идет речь о принципе ответственности, а не о том, как гибко одной ложкой зачерпнуть все провайдеры. По-быстрому - через AirflightCondition, по-уму - описать все провайдеры и способ доступа к ним в конфиге. skyANAМСУ, а теперь моя реализация ... При подключении нового поставщика, мы тупо пишем реализацию для поставщика (или отдаём это на аутсорс), регистрируем поставщика в приложении и всё! Никаких 5 методов из 50 вообще переписывать не надо, никаких NewDataService не надо! Те же яйца только с боку. Выше я описал примерно такой же способ. skyANAГораздо гибче, чем у тебя с твоим switch в методе Find() и постоянным переписыванием IDataService. Ты не зришь в корень, switch - не панацея, это решение в лоб. Если нужно динамически подлить все провайдеры, ты их подгружаешь (регистрация) в том же IDataService. Речь не о том, как красиво собрать все провайдеры :) skyANAПричём MVC приложение может работать как во твоему принципу, так и через инъекции конкретного сервиса в конкретный контроллер В топку инъекции конкретного сервиса в конкретный контроллер, пусть инстансами управляет базовый. skyANAСмотрите-ка, ты по тихому добавил некий IHotelSearcher. А я тебе намекал на то, что он появится. Не суть, ты мне главное верни IEnumerable<Airflight>, а я сам разберусь, как его компактнее упаковать и зарегистрировать. skyANAИ какой на фиг return внутри case? Нужно по всем поставщикам искать. Но это уже молочь. Гы, добавь в енум AirflightProvider флажок All и ищи по всем :) Славная привычка к говнокоду дает о себе знать. Засовываем все в кучу: под двадцать сервисов с 10-20 методами в каждом , обвешиваем все это счастье атрибутами и кучей параметров из конфига. Это даже в канализации не поплывет, а сразу утонет. На пяти сервисах уже надорвешься. Полный бред. skyANA, пустое это занятие, что-то втолковать ему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 00:01 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
SeVaСлавная привычка к говнокоду дает о себе знать. Весьма странно слышать это от обезьяны-наколеночника. SeVaЗасовываем все в кучу: под двадцать сервисов с 10-20 методами в каждом , обвешиваем все это счастье атрибутами и кучей параметров из конфига. Это даже в канализации не поплывет, а сразу утонет. На пяти сервисах уже надорвешься. Полный бред. Остается только понять, откуда тут взялись атрибуты, двадцать сервисов и что там у тебя за куча. Иди букварь читай про генерик контроллеры в MVC, балбес. SeVaskyANA, пустое это занятие, что-то втолковать ему. Иди зад чини от синяков в ветке про пул потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 00:09 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУSeVaПро принцип единичной ответственности эта чурка даже не слышала. Одна из причин для чего нужны обобщенные контроллеры - это, если вдруг на проекте попадется такое ...(не буду уточнять), то будет возможность держать его на коротком поводке, чтобы он кизяками все вокруг не закидал. Принцип единичной ответственности как-раз реализует датасервис, просто скудность твоего больного воображения не позволяет понять это. Неуч, ASP.NET MVC не умеет работать с обобщенными контроллерами, все остальные жалкие потуги скрестить ужа с удавом приводят к гавнокоду, который никому не нужен. SeVaЧто вы с ним этот идиотизм обсуждаете? У него никогда не было этих контроллеров и не будет, чисто теоретический бред. Учи матчасть, бестолочь. Учить матчать не буду советовать. Все равно ничего не поймешь. 1. В asp.net mvc все на интерфейсах с той же единичной ответственностью и можно безболезненно заменить любую часть. Для этого достаточно переопределить ControllerFactory. тынц . Реализация дубовая с switch, специально чтобы ты хотя бы что-то понял. В нормальном варианте необходимо использовать di контейнеры, но ты их не осилил и не осилишь. 2. Просто поражает твоя поразительная способность все воспринимать через одно место. Принцип единичной ответственности означает, что причина изменения класса может быть только одна, а не один тупой сервис на все случаи жизни. Эти принципы выработаны теми, кто уже набил шишки и наелся дерьма, которое ты предлагаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 00:21 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
МСУSeVaСлавная привычка к говнокоду дает о себе знать. Весьма странно слышать это от обезьяны-наколеночника. SeVaЗасовываем все в кучу: под двадцать сервисов с 10-20 методами в каждом , обвешиваем все это счастье атрибутами и кучей параметров из конфига. Это даже в канализации не поплывет, а сразу утонет. На пяти сервисах уже надорвешься. Полный бред. Остается только понять, откуда тут взялись атрибуты, двадцать сервисов и что там у тебя за куча. Иди букварь читай про генерик контроллеры в MVC, балбес. SeVaskyANA, пустое это занятие, что-то втолковать ему. Иди зад чини от синяков в ветке про пул потоков. У нас в проекте больше. ПОка ты в обработчиках ковырялся, а не один проект сделал на обобщенных классах. С ними даже с такими как ты можно их делать, в срок и без дерьма, которое ты тут рисуешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 00:23 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
попкорн кончился) закройте тему уже, пятница прошла!!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 09:43 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
ASP.net MVC 4 хорошая вещь и я рад что проект развивается, совсем другой подход к разработке , нежели у вебформах.И наконец то полная свобода в html верстке. Model-view-controller вполне законченный подход к созданию веб приложений. Здорово вообщем что есть MVC4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 09:57 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
SeVaУчить матчать не буду советовать. Все равно ничего не поймешь. А смысл понимать шизика-невростеника, который в своей жизни не написал ни одной программы? SeVa1. В asp.net mvc все на интерфейсах с той же единичной ответственностью и можно безболезненно заменить любую часть. Для этого достаточно переопределить ControllerFactory. тынц . Твоя левая фабрика для MVC, как кобыле пятое колесо. Примерно тоже самое, что ты предлагал сделать генерик-контроллер. Кроме как шизофрении тут ничем не пахнет. Я сто раз уже говорил, хочешь централизованной инстанции объектов в контроллере (хоть ручная, хоть резолвинг, хоть через космос) - кури базовый контроллер и наследование. Пару строк внятного кода, не более. Но ты теоритик и тебе не понять. SeVaРеализация дубовая с switch, специально чтобы ты хотя бы что-то понял. В нормальном варианте необходимо использовать di контейнеры, но ты их не осилил и не осилишь. Если ты до сих пор в танке, то я ничем помочь не могу - 100500 раз сказал, что не принципиально - Можно и MEF туда воткнуть. switch там или DI - речь шла не о том, как красиво отрулить в методе несколькими поставщиками. SeVa2. Просто поражает твоя поразительная способность все воспринимать через одно место. Принцип единичной ответственности означает, что причина изменения класса может быть только одна, а не один тупой сервис на все случаи жизни. Обезьянка нагуглила новое модное слово и вставляет его во все форумы куда ни попадя? Занятно. Принцип единичной остветствености - у дасервиса, как отдельного слоя. Вся остальная его реализация как ты там внутри разрулишь - монопенисуальна. SeVaЭти принципы выработаны теми, кто уже набил шишки и наелся дерьма, которое ты предлагаешь. Эти принципы глупая мартышка нагуглила в википедиях и как попугай вставляет их куда ни попадя, в потоки, в генерик-контроллеры, в ASP.NET. SeVaУ нас в проекте больше. ПОка ты в обработчиках ковырялся, а не один проект сделал на обобщенных классах. С ними даже с такими как ты можно их делать, в срок и без дерьма, которое ты тут рисуешь У тебя нет проектов, врунишка, мы это выяснили еще давно. С твоими скиллами только кур смешить, иди лучше увеличивай кол-во потоков в тредпуле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 10:22 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
ruby on rails - живёт и жить будет ASP.net mvc 4 тоже будит жить.. А переходить с веб форм на MVC4 - собственно не о чём спор. Из разряда а что лучше php или ruby on rails. Windows или linux.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 10:39 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
saiocsha.И наконец то полная свобода в html верстке. да уж. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 11:17 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Мудафаил, ты простой му**к и говнокодер, который с толстой задницей и кучей switch может быть и сможет сделать одну портянку на сотни методов, но это дерьмо быстро выкинут в помойку, когда пойдут изменения требований и начнется самое интересное. И не тебе муфлону судить о том, что хорошо или плохо. Твое дело копать, если рискнут дать лопату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 11:20 |
|
||
|
Переход на MVC 4
|
|||
|---|---|---|---|
|
#18+
Кухарка, ты просто унылое гавно-ушлёпище, которая с худым костлявым задом (от недостатка пищи) пытается что-то визжать на профорумах. В большей части твоих булькающих предложений проявляется полностью атрофированное больное воображение, которое не кореллирует с действительность. Вся фантастичность твоих потугов сводится в вбросу кала, который даже твой скромный мозг не сможет переварить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2012, 11:33 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1358916]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
185ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 611ms |

| 0 / 0 |
