powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Переход на MVC 4
23 сообщений из 223, страница 9 из 9
Переход на MVC 4
    #38096440
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
public class NewDataService : OldDataService
{
    public IEnumerable<Airflight> Find(AirflightCondition condition)
    {
        switch (condition.Provider)
        {
            case AirflightProvider.Travko: 
                return FindByTravko(condition);
            default: 
                return FindByDefault(condition); ;
        }
    }

    private IEnumerable<Airflight> FindByDefault(AirflightCondition condition)
    {
        // use EF
    }

    private IEnumerable<Airflight> FindByTravko(AirflightCondition condition)
    {
        // use SOA
    }
}



Так же можно пойти универсальным путем - придумать такой механизм, который бы в БД описывал схемы подключения поставщиков (через БД и через SOA), тогда мы обошлись бы единственным универсальным методом, который по настройкам из нашей базы обращался к нужному поставщику через определенный механизм. Если у тебя пара поставщиков и в ближайшем будущем их количество врядли изменится, подойдет способ в лоб. Если у тебя каждый месяц по новому поставщику, дешевле делать универсальный механизм, чтобы не переписывать все-время свой датасервис.
Опять же, это уже второй вопрос. Главное, что наше приложение общается с датасервисом по определенному заранее протоколу - IDataService.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096459
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скиана, можно и так, сути не меняет

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public IEnumerable<Airflight> Find(AirflightCondition condition)
{
    switch (condition.Provider)
    {
        case AirflightProvider.Travko:
            return DefaultSearcher.Find(condition);
        default:
            return TravkoSearcher.Find(condition);
    }
}



За реализацию TravkoSearcher ты отвечаешь, т.к. я нанял тебя как стороннего специалиста и ты по удаленке написал мне решение. При этом ты ничего не знаешь о моем приложении, я просто пристыковал результат твоей плодотворной деятельности.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096466
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скиана, пойми простую вещь: с меня - все сигнатуры в отдельной DLL, с тебя реализация. Как тупая code monkey, ты не должна знать о том, что я делаю, как я делаю и зачем я делаю. Ты бездумно выполняешь свою работу, а я проплачиваю тебе деньги. Ничего личного, только бизнес (с)
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096525
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot МСУ]Скиана, можно и так, сути не меняет

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public IEnumerable<Airflight> Find(AirflightCondition condition)
{
    switch (condition.Provider)
    {
        case AirflightProvider.Travko:
            return DefaultSearcher.Find(condition);
        default:
            return TravkoSearcher.Find(condition);
    }
}



как то это switch напрашивается на замену (типа фабрики ?) - что, при необходимости подключения еще 10 провайдеров надо расширять этот switch и переписывать AirflightCondition ?
хрупкое решение - изменение в поставщике требует перекомпиляцию проекта.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096535
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, а теперь моя реализация:
1. Считаем что наша система для нашего приложения - это такой же поставщик услуг, что и остальные;
2. То есть изначально мы пишем реализацию поиска в своей системе:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public interface IHotelService
{
    IEnumerable<HotelAccommodation> Find(HotelAccommodationCondition condition);
}

public class DefaultHotelService : IHotelService
{
    public IEnumerable<HotelAccommodation> Find(HotelAccommodationCondition condition)
    {
        // тут собственно реализация
    }
}


3. Пишем реализацию IHotelService для приложения, где в методе Find() пробегаемся по всем зарегистрированным сервисам от поставщиков, что реализуют опять же IHotelService и передаём запрос пользователя им;
4. Собираем соответсвенно ответы и отдаём пользователю.

При подключении нового поставщика, мы тупо пишем реализацию для поставщика (или отдаём это на аутсорс), регистрируем поставщика в приложении и всё!
Никаких 5 методов из 50 вообще переписывать не надо, никаких NewDataService не надо!

Гораздо гибче, чем у тебя с твоим switch в методе Find() и постоянным переписыванием IDataService.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096537
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причём MVC приложение может работать как во твоему принципу, так и через инъекции конкретного сервиса в конкретный контроллер
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096552
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУСкиана, можно и так, сути не меняет

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public IEnumerable<Airflight> Find(AirflightCondition condition)
{
    switch (condition.Provider)
    {
        case AirflightProvider.Travko:
            return DefaultSearcher.Find(condition);
        default:
            return TravkoSearcher.Find(condition);
    }
}



За реализацию TravkoSearcher ты отвечаешь, т.к. я нанял тебя как стороннего специалиста и ты по удаленке написал мне решение. При этом ты ничего не знаешь о моем приложении, я просто пристыковал результат твоей плодотворной деятельности.Смотрите-ка, ты по тихому добавил некий IHotelSearcher. А я тебе намекал на то, что он появится.
И какой на фиг return внутри case? Нужно по всем поставщикам искать. Но это уже молочь.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096555
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
я бы ушел еще ниже по коду.
1 вы работаете с отелями на мапах - объект.
2 вы выбираете их через linq
делаем расширение на ling ну типа GetCore<T>.Where(.........
типы объектов маркируем атрибутами, откуда тащить это объект
а в расширении просто подтягиваем из разных баз, никаких I, и вам вообще до фонаря где лежит это О..
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096567
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи, типы объектов - это классы Airflight, Excursion, Hotel, Transfer и т.п.?
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096577
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
ну и что, пометь их атрибутами откуда тащить объекты этого типа, и тащи в расширении, а снаружи будет складываться ощущение
что они лежать все в одном месте.. , тут если добавится новый тип или хранилище( атрибут), вообще можно обойтись без пере компиляции кода.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096640
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
светлое будущее - не наступило. правда там, где деньги. Ничего личного. Всё дерьмо, кроме пчёл, хотя и пчёлы - дерьмо.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096718
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 и ищи по всем :)
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096770
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ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, пустое это занятие, что-то втолковать ему.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096777
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaСлавная привычка к говнокоду дает о себе знать.
Весьма странно слышать это от обезьяны-наколеночника.

SeVaЗасовываем все в кучу: под двадцать сервисов с 10-20 методами в каждом , обвешиваем все это счастье атрибутами и кучей параметров из конфига. Это даже в канализации не поплывет, а сразу утонет. На пяти сервисах уже надорвешься.
Полный бред.
Остается только понять, откуда тут взялись атрибуты, двадцать сервисов и что там у тебя за куча. Иди букварь читай про генерик контроллеры в MVC, балбес.

SeVaskyANA, пустое это занятие, что-то втолковать ему.
Иди зад чини от синяков в ветке про пул потоков.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096789
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaПро принцип единичной ответственности эта чурка даже не слышала.
Одна из причин для чего нужны обобщенные контроллеры - это, если вдруг на проекте попадется такое ...(не буду уточнять), то будет возможность держать его на коротком поводке, чтобы он кизяками все вокруг не закидал.
Принцип единичной ответственности как-раз реализует датасервис, просто скудность твоего больного воображения не позволяет понять это. Неуч, ASP.NET MVC не умеет работать с обобщенными контроллерами, все остальные жалкие потуги скрестить ужа с удавом приводят к гавнокоду, который никому не нужен.

SeVaЧто вы с ним этот идиотизм обсуждаете? У него никогда не было этих контроллеров и не будет, чисто теоретический бред.
Учи матчасть, бестолочь.

Учить матчать не буду советовать. Все равно ничего не поймешь.
1. В asp.net mvc все на интерфейсах с той же единичной ответственностью и можно безболезненно заменить любую часть.
Для этого достаточно переопределить ControllerFactory. тынц .
Реализация дубовая с switch, специально чтобы ты хотя бы что-то понял. В нормальном варианте необходимо использовать di контейнеры, но ты их не осилил и не осилишь.

2. Просто поражает твоя поразительная способность все воспринимать через одно место. Принцип единичной ответственности означает, что причина изменения класса может быть только одна, а не один тупой сервис на все случаи жизни.


Эти принципы выработаны теми, кто уже набил шишки и наелся дерьма, которое ты предлагаешь.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096791
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSeVaСлавная привычка к говнокоду дает о себе знать.
Весьма странно слышать это от обезьяны-наколеночника.

SeVaЗасовываем все в кучу: под двадцать сервисов с 10-20 методами в каждом , обвешиваем все это счастье атрибутами и кучей параметров из конфига. Это даже в канализации не поплывет, а сразу утонет. На пяти сервисах уже надорвешься.
Полный бред.
Остается только понять, откуда тут взялись атрибуты, двадцать сервисов и что там у тебя за куча. Иди букварь читай про генерик контроллеры в MVC, балбес.

SeVaskyANA, пустое это занятие, что-то втолковать ему.
Иди зад чини от синяков в ветке про пул потоков.

У нас в проекте больше. ПОка ты в обработчиках ковырялся, а не один проект сделал на обобщенных классах.
С ними даже с такими как ты можно их делать, в срок и без дерьма, которое ты тут рисуешь
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096934
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попкорн кончился) закройте тему уже, пятница прошла!!!)
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096941
saiocsha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASP.net MVC 4 хорошая вещь и я рад что проект развивается, совсем другой подход к разработке , нежели у вебформах.И наконец то полная свобода в html верстке. Model-view-controller вполне законченный подход к созданию веб приложений. Здорово вообщем что есть MVC4
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096963
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaУчить матчать не буду советовать. Все равно ничего не поймешь.
А смысл понимать шизика-невростеника, который в своей жизни не написал ни одной программы?

SeVa1. В asp.net mvc все на интерфейсах с той же единичной ответственностью и можно безболезненно заменить любую часть.
Для этого достаточно переопределить ControllerFactory. тынц .
Твоя левая фабрика для MVC, как кобыле пятое колесо. Примерно тоже самое, что ты предлагал сделать генерик-контроллер. Кроме как шизофрении тут ничем не пахнет. Я сто раз уже говорил, хочешь централизованной инстанции объектов в контроллере (хоть ручная, хоть резолвинг, хоть через космос) - кури базовый контроллер и наследование. Пару строк внятного кода, не более. Но ты теоритик и тебе не понять.

SeVaРеализация дубовая с switch, специально чтобы ты хотя бы что-то понял. В нормальном варианте необходимо использовать di контейнеры, но ты их не осилил и не осилишь.
Если ты до сих пор в танке, то я ничем помочь не могу - 100500 раз сказал, что не принципиально - Можно и MEF туда воткнуть. switch там или DI - речь шла не о том, как красиво отрулить в методе несколькими поставщиками.

SeVa2. Просто поражает твоя поразительная способность все воспринимать через одно место. Принцип единичной ответственности означает, что причина изменения класса может быть только одна, а не один тупой сервис на все случаи жизни.
Обезьянка нагуглила новое модное слово и вставляет его во все форумы куда ни попадя? Занятно. Принцип единичной остветствености - у дасервиса, как отдельного слоя. Вся остальная его реализация как ты там внутри разрулишь - монопенисуальна.

SeVaЭти принципы выработаны теми, кто уже набил шишки и наелся дерьма, которое ты предлагаешь.
Эти принципы глупая мартышка нагуглила в википедиях и как попугай вставляет их куда ни попадя, в потоки, в генерик-контроллеры, в ASP.NET.

SeVaУ нас в проекте больше. ПОка ты в обработчиках ковырялся, а не один проект сделал на обобщенных классах.
С ними даже с такими как ты можно их делать, в срок и без дерьма, которое ты тут рисуешь
У тебя нет проектов, врунишка, мы это выяснили еще давно. С твоими скиллами только кур смешить, иди лучше увеличивай кол-во потоков в тредпуле.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38096975
saiocsha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ruby on rails - живёт и жить будет ASP.net mvc 4 тоже будит жить.. А переходить с веб форм на MVC4 - собственно не о чём спор. Из разряда а что лучше php или ruby on rails. Windows или linux....
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38097003
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saiocsha.И наконец то полная свобода в html верстке.
да уж.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38097006
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мудафаил, ты простой му**к и говнокодер, который с толстой задницей и кучей switch может быть и сможет сделать одну портянку на сотни методов, но это дерьмо быстро выкинут в помойку, когда пойдут изменения требований и начнется самое интересное.
И не тебе муфлону судить о том, что хорошо или плохо. Твое дело копать, если рискнут дать лопату.
...
Рейтинг: 0 / 0
Переход на MVC 4
    #38097021
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кухарка, ты просто унылое гавно-ушлёпище, которая с худым костлявым задом (от недостатка пищи) пытается что-то визжать на профорумах. В большей части твоих булькающих предложений проявляется полностью атрофированное больное воображение, которое не кореллирует с действительность. Вся фантастичность твоих потугов сводится в вбросу кала, который даже твой скромный мозг не сможет переварить.
...
Рейтинг: 0 / 0
23 сообщений из 223, страница 9 из 9
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Переход на MVC 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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