powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Архитектура приложения, надо ли дублировать сущности под каждый слой
25 сообщений из 295, страница 10 из 12
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086150
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНу в итоге так и получается. Только не по икверибл провайдеру :)
А по реализации своего провайдера с нужным в этой предметной области интерфейсом.

Эмм.. никто не отменяет интерфейса для предметной области. Я только про запросы к данным из коллекции говорю, низкого уровня. Уберём IQueryable и заменим на некий универсальный транслятор domainSQL и по сути получим тоже самое.Хм, если поиск перелёта из Москвы в Барселону происходит в локальной базе туроператора, то IQueryable, а если ещё и по сервисам его партнёров, то уже не IQueryable?
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086151
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosкогда строишь мир свой, обычно какие то вещи невозможно соорудить непротиворечиво и красиво - так как аксиомы неверные
вот тут то начинаются троица там бл* дух зачем то приперся а тут папашу с сыном никак не идентифицировать
дальше пошли бабы, ипостолы, папы, попы и всякая иная нечисть
вот ДТО это типа Попа :)Если рассматривать DTO в рамках данного определения , то никой попы не наблюдается.
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086154
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAХм, если поиск перелёта из Москвы в Барселону происходит в локальной базе туроператора, то IQueryable, а если ещё и по сервисам его партнёров, то уже не IQueryable?

А почему нет?

Код: c#
1.
2.
string odata_qry = "$filter=FirstName eq 'Hello' and LastName ne 'GoodBye'";
var linq_expression = MrODataUriParser.ToLinqExpression<PersonObject>(odata_qry);
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086155
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

я как раз посмотрел и потому написал тот пост
если чек не удосужился понять, что в два чека это мир видя по разному!! то он хотя бы должен был ввести Понятие - Трансформация моделей (со всеми вытекающими), а не фигню, что в голову пришло для залатания устройства своего мирка
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086157
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086158
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAХм, если поиск перелёта из Москвы в Барселону происходит в локальной базе туроператора, то IQueryable, а если ещё и по сервисам его партнёров, то уже не IQueryable?
да. так проще.
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086183
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAХм, если поиск перелёта из Москвы в Барселону происходит в локальной базе туроператора, то IQueryable, а если ещё и по сервисам его партнёров, то уже не IQueryable?

А почему нет?

Код: c#
1.
2.
string odata_qry = "$filter=FirstName eq 'Hello' and LastName ne 'GoodBye'";
var linq_expression = MrODataUriParser.ToLinqExpression<PersonObject>(odata_qry);

Ну потому как expression тут лишнее. Как и OData.

Мы имеем сильно ограниченный набор фильтров (условий, критериев поиска), что легко выражаются объектами предметной области.
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086186
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis.skyANAХм, если поиск перелёта из Москвы в Барселону происходит в локальной базе туроператора, то IQueryable, а если ещё и по сервисам его партнёров, то уже не IQueryable?
да. так проще.Чем же это проще? Проще чего?
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086187
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

я как раз посмотрел и потому написал тот пост
если чек не удосужился понять, что в два чека это мир видя по разному!! то он хотя бы должен был ввести Понятие - Трансформация моделей (со всеми вытекающими), а не фигню, что в голову пришло для залатания устройства своего миркаДавай конкретнее.
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086195
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу потому как expression тут лишнее. Как и OData.

OData лишь для примера. А expression отлично выражает мысль при запросе данных в .NET, почему лишнее? Ну будет не expression, а какой-то кастомный способ для запроса данных, т.е. ты попросту плодишь новые сущности: интерфейсы там, где этого можно было бы избежать.


skyANAМы имеем сильно ограниченный набор фильтров (условий, критериев поиска), что легко выражаются объектами предметной области.

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

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

Это просто для примера, его можно покритиковать, типа а нафига мы будем брать какие-то контролы, мы свои запилим, под свои интерфейсы. Ну-ну...
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086196
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВопросы какие-то нелепые начались.

да просто вы с хвостом начали флудить
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086197
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawskyANAВопросы какие-то нелепые начались.

да просто вы с хвостом начали флудить

Да нет, мы всё выяснили. Ты тупо запилил для кучи Entity классов их дублёры DTO, чтобы эээ... спрятать Entity, иного объяснения я не вижу. Не понятно чё в таком случае тут делают дата-сервисы, вся бизнес логика осела в репозитории. В общем смешались в кучу кони, люди..
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086198
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRosкогда строишь мир свой, обычно какие то вещи невозможно соорудить непротиворечиво и красиво - так как аксиомы неверные
вот тут то начинаются троица там бл* дух зачем то приперся а тут папашу с сыном никак не идентифицировать
дальше пошли бабы, ипостолы, папы, попы и всякая иная нечисть
вот ДТО это типа Попа :)Если рассматривать DTO в рамках данного определения , то никой попы не наблюдается.

а кто его по-другому рассматривает?
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086201
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAНу потому как expression тут лишнее. Как и OData.

OData лишь для примера. А expression отлично выражает мысль при запросе данных в .NET, почему лишнее? Ну будет не expression, а какой-то кастомный способ для запроса данных, т.е. ты попросту плодишь новые сущности: интерфейсы там, где этого можно было бы избежать.


skyANAМы имеем сильно ограниченный набор фильтров (условий, критериев поиска), что легко выражаются объектами предметной области.

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

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

Это просто для примера, его можно покритиковать, типа а нафига мы будем брать какие-то контролы, мы свои запилим, под свои интерфейсы. Ну-ну...Эххх... Мою предметную область могут слопать решения на PHP, Java, Ruby и т.д. Как же у них это получится, когда нету там IQueryable? :)
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086202
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвся бизнес логика осела в репозитории


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public InfoSystemDTO Save(long userId, InfoSystemDTO dto)
        {
            checkStringConstraint("Name", dto.Name, true, 70, 2);
            checkStringConstraint("ShortName", dto.ShortName, true, 70, 2);
            
            if (messages.Count > 0)
                throw new DataServiceException("Не корректно заполненные поля формы", messages);
            
            return infoSystemRepository.Save(userId, dto);
            
        }



Код: 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.
public InfoSystemDTO Save(long userId, InfoSystemDTO dto)
        {
            InfoSystem domain = null;
            if (dto.Id > 0)
            {
                domain = context.InfoSystems.Find(dto.Id);
                domain.UserUpdateId = userId;
                domain.DateUpdate = DateTime.Now;
                domain.Version++;
            }
            else
            {
                domain = new InfoSystem()
                {
                    DateInsert = DateTime.Now,
                    UserInsertId = userId
                };
                context.InfoSystems.Add(domain);
            }

            domain.Name = dto.Name;
            domain.ShortName = dto.ShortName;
            domain.InfoSystemTypeId = dto.InfoSystemTypeId;

            context.SaveChanges();

            return Mapper.Map<InfoSystem, InfoSystemDTO>(domain);
        }



где тут "бизнес логика осела в репозитории"? маппинг? так маппинг это не бизнес-логика - это маппинг
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086203
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawskyANAпропущено...
Если рассматривать DTO в рамках данного определения , то никой попы не наблюдается.

а кто его по-другому рассматривает?Ты. По-своему :)
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086204
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAkmawпропущено...


а кто его по-другому рассматривает?Ты. По-своему :)

это тебе так кажется
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086206
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawhVosttвся бизнес логика осела в репозитории


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public InfoSystemDTO Save(long userId, InfoSystemDTO dto)
        {
            checkStringConstraint("Name", dto.Name, true, 70, 2);
            checkStringConstraint("ShortName", dto.ShortName, true, 70, 2);
            
            if (messages.Count > 0)
                throw new DataServiceException("Не корректно заполненные поля формы", messages);
            
            return infoSystemRepository.Save(userId, dto);
            
        }



Код: 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.
public InfoSystemDTO Save(long userId, InfoSystemDTO dto)
        {
            InfoSystem domain = null;
            if (dto.Id > 0)
            {
                domain = context.InfoSystems.Find(dto.Id);
                domain.UserUpdateId = userId;
                domain.DateUpdate = DateTime.Now;
                domain.Version++;
            }
            else
            {
                domain = new InfoSystem()
                {
                    DateInsert = DateTime.Now,
                    UserInsertId = userId
                };
                context.InfoSystems.Add(domain);
            }

            domain.Name = dto.Name;
            domain.ShortName = dto.ShortName;
            domain.InfoSystemTypeId = dto.InfoSystemTypeId;

            context.SaveChanges();

            return Mapper.Map<InfoSystem, InfoSystemDTO>(domain);
        }



где тут "бизнес логика осела в репозитории"? маппинг? так маппинг это не бизнес-логика - это маппингАдъ :)
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086207
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAkmawпропущено...



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public InfoSystemDTO Save(long userId, InfoSystemDTO dto)
        {
            checkStringConstraint("Name", dto.Name, true, 70, 2);
            checkStringConstraint("ShortName", dto.ShortName, true, 70, 2);
            
            if (messages.Count > 0)
                throw new DataServiceException("Не корректно заполненные поля формы", messages);
            
            return infoSystemRepository.Save(userId, dto);
            
        }




Код: 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.
public InfoSystemDTO Save(long userId, InfoSystemDTO dto)
        {
            InfoSystem domain = null;
            if (dto.Id > 0)
            {
                domain = context.InfoSystems.Find(dto.Id);
                domain.UserUpdateId = userId;
                domain.DateUpdate = DateTime.Now;
                domain.Version++;
            }
            else
            {
                domain = new InfoSystem()
                {
                    DateInsert = DateTime.Now,
                    UserInsertId = userId
                };
                context.InfoSystems.Add(domain);
            }

            domain.Name = dto.Name;
            domain.ShortName = dto.ShortName;
            domain.InfoSystemTypeId = dto.InfoSystemTypeId;

            context.SaveChanges();

            return Mapper.Map<InfoSystem, InfoSystemDTO>(domain);
        }




где тут "бизнес логика осела в репозитории"? маппинг? так маппинг это не бизнес-логика - это маппингАдъ :)

почему?
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086210
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawskyANAпропущено...
Ты. По-своему :)

это тебе так кажетсяНе кажется. У меня от смены хранилища понятия не меняются :)
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086211
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAkmawпропущено...


это тебе так кажетсяНе кажется. У меня от смены хранилища понятия не меняются :)

у меня тоже
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086213
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawskyANAпропущено...
Не кажется. У меня от смены хранилища понятия не меняются :)

у меня тожеНу-ну... Хранили в РСУБД, использовали ORM, User был entity. Стали хранить в MongoDB и User стал DTO :)
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086215
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawskyANAпропущено...
Адъ :)

почему?У тебя в одну сторону маппинг в одну строку, в обратную в 20.
При этом уже используя ORM ты сверху зачем-то харкодишь правило transient-ости.
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086217
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУ тебя в одну сторону маппинг в одну строку, в обратную в 20.

это фигня
...
Рейтинг: 0 / 0
Архитектура приложения, надо ли дублировать сущности под каждый слой
    #39086219
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПри этом уже используя ORM ты сверху зачем-то харкодишь правило transient-ости.

поясни, плиз
...
Рейтинг: 0 / 0
25 сообщений из 295, страница 10 из 12
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Архитектура приложения, надо ли дублировать сущности под каждый слой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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