powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF, Repository, UnitOfWork
25 сообщений из 164, страница 2 из 7
EF, Repository, UnitOfWork
    #38108271
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ есть дата класс

есть DTO (обвязка одного или нескольких дата классов)

есть модель (бизнес-логика, которая оперирует DTO классами)


Потом в модели завернули новый DTO и отправили дальше. Длинный конвеер получается.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108272
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

да как раз не ясно, как это класс без совйств и методов
зачем он нужен
счас прочту
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108277
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ах вот оно что, это какой то фаулер Датасет назвал ДТО
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108279
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Seva,

- реализация интерфейсов ошибок и изменений - INotifyPropertyChanged, INotifyCollectionChanged, IErrorDataInfo?
- поддержка полного графа объектов - что имеется ввиду?
- undo\redo - IEditableObject?
- ленивая загрузка - lazy/eager loading?

- переносимость - что имеется ввиду? если это переносимость между СУБД, то могу подкинуть предметную область, где все запросы будут не на стандартном SQL и схема данных будет различной в разных СУБД. Обработка геоданных/картография/анализ дорожных сетей. Можно пилить свою реализацию на табличках и колонках, вряд ли будет эффективно, а можно пользоваться средствами специфичными для СУБД и с частью логики на PL/SQL (увы большей частью), а частью снаружи. Есть компании, которые решают это выпуская свои специальные продукты, через которые работают все вышележащее (например, ESRI ArcSDE такой продукт шлюз, под каждую СУБД своя схема, своя реализация логики, публичный API общий - слушает порт, протокол одинаковый). Не каждая контора потянет денежкой содержать столько зверей под каждую СУБД (MS SQL, Oracle, DBII, PostgreeSQL). Это я к тому, что переносимости может и не получиться по выше описанным причинам.

- возможность переключения с 2х звенки на 3х - можно подробнее?
- etc

---

Кстати говоря, ползуясь случаем, хочу спросить кто колупал LightSwitch, как ощущения? Там вроде есть все перечисленное выше для некоторого круга задач, типа документооборотов и т. п...

---
Давайте все же вернемся к EF, UOW, REPO и потроллим друг-друга на тему надо/не надо.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108280
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУ есть дата класс

есть DTO (обвязка одного или нескольких дата классов)

есть модель (бизнес-логика, которая оперирует DTO классами)


Потом в модели завернули новый DTO и отправили дальше. Длинный конвеер получается.
да конвеер то фиг с ним, это мы умеем, линии конвееры танки...
а что делать с таким классом, ну получил кто то такой класс, а там ни свойств ни методов
ужсть какой то
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108289
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонПотом в модели завернули новый DTO и отправили дальше. Длинный конвеер получается.
А дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы:
а) не прибиваем прикладной слой логики к конкретному ORM
б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName)

Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а)
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108291
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord BritishКстати говоря, ползуясь случаем, хочу спросить кто колупал LightSwitch, как ощущения? Там вроде есть все перечисленное выше для некоторого круга задач, типа документооборотов и т. п...
Я колупал, жалкое сильверлайтовское отребье. Тут недавно было.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108292
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord BritishДавайте все же вернемся к EF, UOW, REPO и потроллим друг-друга на тему надо/не надо.

Это не тема, а мелкие частности, которые в любой момент могут быть заменены. Если это есть, то это решение. А сам по себе EF пригоден только в качестве тупого DAL, любые попытки слепить из него что-то более внятное(ты упоминал: lazy, proxy) ничего не дадут кроме еще большего усложнения и так мало пригодной половы
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108294
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

правильно я понимаю, что ДТО в моем примере это - Накладаная целиком?
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108295
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или это что бог на душу положит?
типа какой нить джойн?
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108296
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даю 5 мин на ответ, потом расстрел на месте
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108298
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ, правильно я понимаю, что ДТО в моем примере это - Накладаная целиком?
Да.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108314
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosили это что бог на душу положит?
типа какой нить джойн?
Это то, что требуется твоей бизнес-логике.

EF классы (ORM)
Код: 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.
public class NoteType
{
    public int NoteTypeId { get; set; }
    public string Title { get; set; }
}

public class Supplier
{
    public int SupplierId { get; set; }
    public string Title { get; set; }
}

public class NoteDetail
{
    public int NoteDetailId { get; set; }
    public decimal Cost { get; set; }
            
}

public class Note
{
    public int NoteId { get; set; }
    public Supplier Supplier { get; set; }
    public NoteType Type { get; set; }
    public ICollection<NoteDetail> Details { get; set; }
}



DTO (то, что нужно модели)
Код: c#
1.
2.
3.
4.
5.
public class NoteDto
{
    public string SupplierTitle { get; set; }
    public decimal Total { get; set; }
}



IDataService:

Код: c#
1.
2.
3.
4.
5.
6.
7.
public NoteDto GetNote(int id)
{
    // Обращение к БД через EF и извлечение Note
    Note note = ...;
    var dto = new NoteDto { SupplierTitle = note.Supplier.Title, Total = note.Details.Sum(d => d.Cost) };
    return dto;
}
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108315
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУА дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы:
а) не прибиваем прикладной слой логики к конкретному ORM
б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName)

Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а)

Это из плюсов, а минусов тоже не мало.

Pros and Cons of Data Transfer Objects

Как на пример туева хуча дата шейпов, чуть ли не на каждый запрос.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108319
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУА дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы:
а) не прибиваем прикладной слой логики к конкретному ORM
б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName)

Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а)

Это из плюсов, а минусов тоже не мало.

Pros and Cons of Data Transfer Objects

Как на пример туева хуча дата шейпов, чуть ли не на каждый запрос.
Что за дата шейпы?

Резюме в статье:

...As an architect, however, you should always be on the alert to recognize signs indicating that the distance between the entity model and what the presentation expects is significant or impossible to cover. In this case, you should take the safer (and cleaner) route of DTOs.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108324
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУА дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы:
а) не прибиваем прикладной слой логики к конкретному ORM
б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName)

Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а)

Это из плюсов, а минусов тоже не мало.

Pros and Cons of Data Transfer Objects

Как на пример туева хуча дата шейпов, чуть ли не на каждый запрос.

Поэтому я и писал про OData, который позволяет обойти эти проблемы
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108325
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧто за дата шейпы?

data shape
DTO другими словами.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108327
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
Резюме в статье:

...As an architect, however, you should always be on the alert to recognize signs indicating that the distance between the entity model and what the presentation expects is significant or impossible to cover. In this case, you should take the safer (and cleaner) route of


На самом деле я и не вижу альтернатив, а хотелось бы.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108328
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaПоэтому я и писал про OData, который позволяет обойти эти проблемы
Покурю на досуге, пока не ясно )
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108331
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонSeVaПоэтому я и писал про OData, который позволяет обойти эти проблемы
Покурю на досуге, пока не ясно )


OData содержит метаинформацию, а это в купе с динамическими объектами позволяет сделать одну универсальную реализацию и не плодить сущности на каждый чих.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108335
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

это плохо
такихДТО могут быть тыщами
что то тут концептуально не проработано
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108336
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонSeVaПоэтому я и писал про OData, который позволяет обойти эти проблемы
Покурю на досуге, пока не ясно )
Не кури, опять бредни Севы. OData в обсуждаемой теме никак не относится :)

SeVaOData содержит метаинформацию, а это в купе с динамическими объектами позволяет сделать одну универсальную реализацию и не плодить сущности на каждый чих.
Сдурел, что-ли? Ты бы еще рефлексию предложил в прикладном коде.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108338
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosМСУ,

это плохо
такихДТО могут быть тыщами
что то тут концептуально не проработано
Значит, тыщами. Классифицируй по предназначению.
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108341
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

это просто запросы к БД?
а зачем тогда объектная модель и маппинг?
определение ДТО как я понимаю на сервереной части?
или это просто метод какого то объекта
не врубаюсь
...
Рейтинг: 0 / 0
EF, Repository, UnitOfWork
    #38108342
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDataService определен на сервере?
...
Рейтинг: 0 / 0
25 сообщений из 164, страница 2 из 7
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF, Repository, UnitOfWork
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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