powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / выбор IoC
25 сообщений из 286, страница 3 из 12
выбор IoC
    #38474473
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ MVC базовый контроллер, как вариант. Может и контроллер наследник, если потребуется какая-то нештатная ситуация.

фигня какая-то. это ж с какого-та перепугу контроллер решил, что может диспозить чужой объект выданный ему внешним компонентом??

не товарищ. я канеш уверен, что это работает. и что так повсеместно делают. но это хреновая практика. для первокурсника какого ещё сойдёт, ему лишь бы компилелось и запускалось. но для серьезного дядьки, не камильфо так яростно говнокодить. ещё и с умным видом.
...
Рейтинг: 0 / 0
выбор IoC
    #38474479
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУP.S. Хвост, ты сначала изучи хорошенько ООП и нативные возможности .NET

вот я не пойму что ты имеешь в виду под "изучи ООП"? взять одну из классических книжек по ООП, там на 100 листов полезных листа 2, остальное — неумный пеар, как ООП спасёт мир.

даж GoF-паттерны и те в осномном применимы лишь для построение библиотек и фреймворков. для построение архитектуры конечных приложений применяеются композиция, а не наследования. хрен ли там от ООП толку.
...
Рейтинг: 0 / 0
выбор IoC
    #38474494
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНу и так далее. Хвост, что тебя конкретно интересует? Вчера научил тебя LINQ, даже спасибо не сказал.

ну дык
...
Рейтинг: 0 / 0
выбор IoC
    #38474500
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ том же WPF отдельная абстракция IWindowService (выполняет роль презентёра):

ну а нафига? зачем словно сопли по кафелю размазывать ответственность по классам? кто выдал инстанс, тот пусть будет добр его и уничтожит. сам создал? сам и убей.
...
Рейтинг: 0 / 0
выбор IoC
    #38474502
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВчера научил тебя LINQ, даже спасибо не сказал.

вообче, спасибо
...
Рейтинг: 0 / 0
выбор IoC
    #38474568
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttфигня какая-то. это ж с какого-та перепугу контроллер решил, что может диспозить чужой объект выданный ему внешним компонентом??
Вообще-то, он - контроллер, является миддлом (ака презентёр). В его пропертях в явном виде доступны абстракции, которые были инжектированы (возможно, им же). Кому как не ему знать, когда и что нужно выгрузить. Не говори глупостей. Контроллер - это святыня святых.

hVosttне товарищ. я канеш уверен, что это работает. и что так повсеместно делают. но это хреновая практика. для первокурсника какого ещё сойдёт, ему лишь бы компилелось и запускалось. но для серьезного дядьки, не камильфо так яростно говнокодить. ещё и с умным видом.
Опять твои аргументы уровня канализации... Ты уперся рогом в какой-то один шаблон, который тебе навязал какой-то фееричный ламер, и не желаешь смотреть на ситуацию шире. Что ж, твоё дело.

hVosttвот я не пойму что ты имеешь в виду под "изучи ООП"? взять одну из классических книжек по ООП, там на 100 листов полезных листа 2, остальное — неумный пеар, как ООП спасёт мир.
Ну ты ведь вопишь о том, что наследование УГ и старпёрство. А я тебе говорю, что ты просто еще не силён в этом. Вот я и говорю, что изучи.

hVosttдаж GoF-паттерны и те в осномном применимы лишь для построение библиотек и фреймворков. для построение архитектуры конечных приложений применяеются композиция, а не наследования. хрен ли там от ООП толку .
Бестолочь ты. Прости меня Бог...

Вот тебе пример: обычная с виду базовая вью модель "ака привет мир" (да, я знаю, как ты не любишь наследование с виртуальными методами):
Но тем не менее, смотри, сколько она может: и подчищать хвосты, и нотифицировать, и валидировать. Бери, наследуй и пиши с минимумом кода.

...
Код: 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.
public class ViewModelBase : IDisposable, IDataErrorInfo, INotifyPropertyChanged
{
    public void OnPropertyChanged(string propname)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propname));
        }
    }

    protected void OnPropertyChanged<T>(Expression<Func<T>> propertyExpression)
    {
        if (propertyExpression.Body.NodeType == ExpressionType.MemberAccess)
        {
            OnPropertyChanged((propertyExpression.Body as MemberExpression).Member.Name);
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    public virtual void Dispose()
    {
            
    }

    public virtual string Error
    {
        get { return null; }
    }

    public virtual string this[string columnName]
    {
        get { return null; }
    }
}



Что тут плохого?

hVosttМСУВ том же WPF отдельная абстракция IWindowService (выполняет роль презентёра):
ну а нафига? зачем словно сопли по кафелю размазывать ответственность по классам? кто выдал инстанс, тот пусть будет добр его и уничтожит. сам создал? сам и убей.
Батенька, про разделение ответственности ничего не слыхал? Какие сопли? Часто бывает так, что нужно подчищать хвосты при определенной логике, это будет посложнее простого окончания реквеста. Например, подчистить ссылку при закрытии окна в XAML. Заметь, это не WinForms, окно не реализует никаких IDisposable. Твои действия? :)
...
Рейтинг: 0 / 0
выбор IoC
    #38474570
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВот тебе пример: обычная с виду базовая вью модель "ака привет мир"...
Только что заметил, что эта модель с Expression<Func<T>> propertyExpression Твоя тема!
...
Рейтинг: 0 / 0
выбор IoC
    #38474593
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что то вот сижу и не догоняю.
предположим контейнер выдал нам объект, если - наблюдатели не участвуют, подсчет ссылок не ведется, контейнер не привязан ни к одному внешнему событию, сквозной интеграции в код нет то как он знает что объект уже бесхозный и что его можно диспозить?
Спасибо...
...
Рейтинг: 0 / 0
выбор IoC
    #38474602
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не уж то using ?
...
Рейтинг: 0 / 0
выбор IoC
    #38474605
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степичто то вот сижу и не догоняю.
предположим контейнер выдал нам объект, если - наблюдатели не участвуют, подсчет ссылок не ведется, контейнер не привязан ни к одному внешнему событию, сквозной интеграции в код нет то как он знает что объект уже бесхозный и что его можно диспозить?
Спасибо...
Тогда время жизни объекта будет такое же, как и время жизни контейнера. Что-то типа реализации ContainerControlledLifetimeManager от Unity.
...
Рейтинг: 0 / 0
выбор IoC
    #38474619
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, ну это не интересно, в принципе ничего тут ништяковского нет, создание контейнера должно быть на раз и легкое, хочся
ПРОСТО писать код, а о зачистке пускай заботится контейнер ( так сказать дублирование функции коллектора)
...
Рейтинг: 0 / 0
выбор IoC
    #38474625
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ, ну это не интересно, в принципе ничего тут ништяковского нет, создание контейнера должно быть на раз и легкое, хочся
ПРОСТО писать код, а о зачистке пускай заботится контейнер ( так сказать дублирование функции коллектора)
Я выше озвучил задачу на XAML. Как контейнер должен угадать, что закрывается такое-то Window и что нужно подчистить такие-то объекты?
...
Рейтинг: 0 / 0
выбор IoC
    #38474632
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, Я это видел - спасибо, но оппонент вроде отвергает это ( скорее не отвергает, а говорит что есть лучше фишка) , и имеет свою точку зрения, вот с его точки зрения я и рассуждаю, твой код раннее просмотрел ( целых два раза)
...
Рейтинг: 0 / 0
выбор IoC
    #38474636
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор кто выдал инстанс, тот пусть будет добр его и уничтожит. сам создал? сам и убей.
...
Рейтинг: 0 / 0
выбор IoC
    #38474644
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
я бы мог согласиться что
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 public T Resolve<T>()
        {
            var o = Activator.CreateInstance<T>();
            try
            {
                return o;
            }
            finally
            {
                var disposable = o as IDisposable; 
                if(disposable != null)
                    disposable.Dispose();
            }
        }


но это же банальщина рвет весь формат дискусии..
...
Рейтинг: 0 / 0
выбор IoC
    #38474657
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ, Я это видел - спасибо, но оппонент вроде отвергает это ( скорее не отвергает, а говорит что есть лучше фишка) , и имеет свою точку зрения, вот с его точки зрения я и рассуждаю, твой код раннее просмотрел ( целых два раза)
Оппонент и вчера отвергал информацию о том, что лямбда компилируется в делегат. Пока по зубам ему не настучали... :)
...
Рейтинг: 0 / 0
выбор IoC
    #38474691
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи, в общем варианте MVVM решение такое (хвосту не читать, который меряет жизнь одним шаблоном):

Вот вью модель. После инжектирования в неё DI контейнера, она резолвит нужный объект, использует его и уничтожает. Всё.
В следующий раз контейнер опять отдаст новый экземпляр. Диспоузить по требованию очень важно - например ситуации с веб сервисами, жизнь инстанса сервиса должна быть как можно короче. Попользовал пару методов и грохнул опосля. Ни один контйнер не сможет угадать тот момент времени, когда нужен Dispose. Я и только я знаю этот момент.

Код:

Код: 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.
public class EmployeeViewModel : ViewModelBase
{
    private IUnityContainer Container;

    public EmployeeViewModel(IUnityContainer container)
    {
        this.Container = container;

        var ctx = Container.Resolve<IDataContext>();
        var stages = ctx.GetEmployeeStages();
        // Тот, кто резолвит - уничтожает!
        ctx.Dispose();

        Stages = new ObservableCollection<EmployeeStage>(stages);
    }

    public int EmployeeId { get; set; }

    public string FirstName { get; set; }

    private ObservableCollection<EmployeeStage> _stages;
    public ObservableCollection<EmployeeStage> Stages
    {
        get
        {
            return _stages;
        }
        set
        {
            _stages = value;
            OnPropertyChanged(() => Stages);
        }
    }
}
...
Рейтинг: 0 / 0
выбор IoC
    #38474713
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, мне казалось. что хвост имеет глобальный.
да бог с этим, контейнеры - банальный код ( как квадрат малевича ) но в то же время можно говорить о них годами, ибо разные исполнения обросли разными вкусняшками, можно как Чапай ( В.И.) - написать свой..
пожалуй соглашусь, что "временем жизни" должен управлять кто заказал инстанс, а не кто его смастерил,
...
Рейтинг: 0 / 0
выбор IoC
    #38474720
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степида бог с этим, контейнеры - банальный код ( как квадрат малевича ) но в то же время можно говорить о них годами, ибо разные исполнения обросли разными вкусняшками, можно как Чапай ( В.И.) - написать свой..
О чем и речь. Но он замахивается на наследование, на ООП. Говорит, что это УГ и старпёрство. Каким нужно быть близоруким прыщавым студнем, что бы писать такие вещи? :)

Где-то в степипожалуй соглашусь, что "временем жизни" должен управлять кто заказал инстанс, а не кто его смастерил,
+1К, только попробуй это объяснить студенту, который мыслит одним шаблоном, вброшенным в букварь, который он сейчас читает... Это всё от неопытности. Ничего, я сделаю из него человека Но уж много энергии уходит на этого мальчёнку, однако. Давишь его, как прыщ, а он уворачивается и вскакивает в другом месте. Давишь там - он опять прыгает как заяц. Пока не выдавишь, не успокоится.
...
Рейтинг: 0 / 0
выбор IoC
    #38474727
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и по сабжу, доипался студень до мвц-шного DependencyResolver, мол инжектить не умеет Объяснил на пальцах, как можно пукалку сделать. Начал горланить, мол этот функционал должен быть вшит в DI конейнер. Оскорбил замечательный DependencyResolver сервис локатором. Объяснил на пальцах, что помимо локаторности, DependencyResolver обладает еще двумя фишками - может описывать зависимости и регистрировать их. Далее, начал он орать, что мол нету управлением жизни. Объясняю на пальцах, что DependencyResolver - это простенький контейнер, без наворотов. Что-то типа легковесного SimpleIoC . Не доходит... Потом начал гнать на ООП, это вообще песня. Потом понесло его ветром в сторону того, кто и как должен диспоузить. Вообщем, цирк
...
Рейтинг: 0 / 0
выбор IoC
    #38474822
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, ох и любишь ты потоптаться на костях, ничо страшного не знает - научится, учись посыпать голову пеплом - это то же в жиpни
будет пригождаться :)
...
Рейтинг: 0 / 0
выбор IoC
    #38474944
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ, ох и любишь ты потоптаться на костях
Топтаться не цепляет, а вот станцевать твист на костях подопытных кодеманок - вот оно че, Михалыч
...
Рейтинг: 0 / 0
выбор IoC
    #38475088
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУГде-то в степи, в общем варианте MVVM решение такое (хвосту не читать, который меряет жизнь одним шаблоном):

Вот вью модель. После инжектирования в неё DI контейнера, она резолвит нужный объект, использует его и уничтожает. Всё.
В следующий раз контейнер опять отдаст новый экземпляр. Диспоузить по требованию очень важно - например ситуации с веб сервисами, жизнь инстанса сервиса должна быть как можно короче. Попользовал пару методов и грохнул опосля. Ни один контйнер не сможет угадать тот момент времени, когда нужен Dispose. Я и только я знаю этот момент.

Код:

Код: 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.
public class EmployeeViewModel : ViewModelBase
{
    private IUnityContainer Container;

    public EmployeeViewModel(IUnityContainer container)
    {
        this.Container = container;

        var ctx = Container.Resolve<IDataContext>();
        var stages = ctx.GetEmployeeStages();
        // Тот, кто резолвит - уничтожает!
        ctx.Dispose();

        Stages = new ObservableCollection<EmployeeStage>(stages);
    }

    public int EmployeeId { get; set; }

    public string FirstName { get; set; }

    private ObservableCollection<EmployeeStage> _stages;
    public ObservableCollection<EmployeeStage> Stages
    {
        get
        {
            return _stages;
        }
        set
        {
            _stages = value;
            OnPropertyChanged(() => Stages);
        }
    }
}



Ой, дорогая редакция, Муслима за контейнеры взялся!!! Дитятко растет на глазах.
Dispose в конструкторе порадовал, не успели создать и тут же прибиваем. Наверное, viewmodel очень секретные у тебя и перед прочтением нужно сжечь.
Начинающий архитектор, будешь под каждый viewmodel отдельный контейнер заводить?


ЗЫ Тупица, правильно сказали, что DependencyResolver - CommonLocator. Ты как всегда и в теплом, и мягком с головы до пят
...
Рейтинг: 0 / 0
выбор IoC
    #38475157
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ух ты кто пожаловал сюда, не уж-то фееричная сильверлайтная обезьяна без ума и фантазии?
Шагом марш читать букварь, чем тебя так напугал диспоуз сервиса в ctor вью модели? Хотя чего это я, дальше хеллоуворлдных пукалок на тухлом призме у тебя нет и не было. Впрочем это и так видно невооруженным глазом, когда читаешь твой высер про вью модель и контейнер. Откуда знаешь про контейнеры, нагуглил? Вообщем, джуниор девелопер, рано тебе еще тут гадить, иди лучше детвора расскажи про генерацию сборок в памяти. Пусть посмеются над идиотом.
...
Рейтинг: 0 / 0
выбор IoC
    #38475167
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУУх ты кто пожаловал сюда, не уж-то фееричная сильверлайтная обезьяна без ума и фантазии?
Шагом марш читать букварь, чем тебя так напугал диспоуз сервиса в ctor вью модели? Хотя чего это я, дальше хеллоуворлдных пукалок на тухлом призме у тебя нет и не было. Впрочем это и так видно невооруженным глазом, когда читаешь твой высер про вью модель и контейнер. Откуда знаешь про контейнеры, нагуглил? Вообщем, джуниор девелопер, рано тебе еще тут гадить, иди лучше детвора расскажи про генерацию сборок в памяти. Пусть посмеются над идиотом.

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



ЗЫ Модераторы, долго это чмо будет пачкать своей дурью мозги другим? То, что он несет на форуме - полный бред.
...
Рейтинг: 0 / 0
25 сообщений из 286, страница 3 из 12
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / выбор IoC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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