|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ есть дата класс есть DTO (обвязка одного или нескольких дата классов) есть модель (бизнес-логика, которая оперирует DTO классами) Потом в модели завернули новый DTO и отправили дальше. Длинный конвеер получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 14:59 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ, да как раз не ясно, как это класс без совйств и методов зачем он нужен счас прочту ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:00 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ, ах вот оно что, это какой то фаулер Датасет назвал ДТО ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:03 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
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 и потроллим друг-друга на тему надо/не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:10 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонМСУ есть дата класс есть DTO (обвязка одного или нескольких дата классов) есть модель (бизнес-логика, которая оперирует DTO классами) Потом в модели завернули новый DTO и отправили дальше. Длинный конвеер получается. да конвеер то фиг с ним, это мы умеем, линии конвееры танки... а что делать с таким классом, ну получил кто то такой класс, а там ни свойств ни методов ужсть какой то ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:10 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонПотом в модели завернули новый DTO и отправили дальше. Длинный конвеер получается. А дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы: а) не прибиваем прикладной слой логики к конкретному ORM б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName) Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:28 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
Lord BritishКстати говоря, ползуясь случаем, хочу спросить кто колупал LightSwitch, как ощущения? Там вроде есть все перечисленное выше для некоторого круга задач, типа документооборотов и т. п... Я колупал, жалкое сильверлайтовское отребье. Тут недавно было. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:31 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
Lord BritishДавайте все же вернемся к EF, UOW, REPO и потроллим друг-друга на тему надо/не надо. Это не тема, а мелкие частности, которые в любой момент могут быть заменены. Если это есть, то это решение. А сам по себе EF пригоден только в качестве тупого DAL, любые попытки слепить из него что-то более внятное(ты упоминал: lazy, proxy) ничего не дадут кроме еще большего усложнения и так мало пригодной половы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:31 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ, правильно я понимаю, что ДТО в моем примере это - Накладаная целиком? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:40 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
или это что бог на душу положит? типа какой нить джойн? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:41 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
даю 5 мин на ответ, потом расстрел на месте ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:43 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ViPRosМСУ, правильно я понимаю, что ДТО в моем примере это - Накладаная целиком? Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 15:49 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
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.
DTO (то, что нужно модели) Код: c# 1. 2. 3. 4. 5.
IDataService: Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:02 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУА дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы: а) не прибиваем прикладной слой логики к конкретному ORM б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName) Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а) Это из плюсов, а минусов тоже не мало. Pros and Cons of Data Transfer Objects Как на пример туева хуча дата шейпов, чуть ли не на каждый запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:02 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонМСУА дальше - точно так же, как и обычно. То есть 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:11 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонМСУА дальше - точно так же, как и обычно. То есть DTO - это плюс 1 абстракция, с помощью которой мы: а) не прибиваем прикладной слой логики к конкретному ORM б) абстрагируемся от дата-классов (маппинг объектов хранилища), пример с ProductInfo (ProductId, ProductName, CategoryName) Второе намного важнее, чем фееричная смена ORM. Просто если мы реализуем пункт б), мы автоматом получаем в бонус пункт а) Это из плюсов, а минусов тоже не мало. Pros and Cons of Data Transfer Objects Как на пример туева хуча дата шейпов, чуть ли не на каждый запрос. Поэтому я и писал про OData, который позволяет обойти эти проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:18 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУЧто за дата шейпы? data shape DTO другими словами. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:18 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ Резюме в статье: ...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 На самом деле я и не вижу альтернатив, а хотелось бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:24 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
SeVaПоэтому я и писал про OData, который позволяет обойти эти проблемы Покурю на досуге, пока не ясно ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:26 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонSeVaПоэтому я и писал про OData, который позволяет обойти эти проблемы Покурю на досуге, пока не ясно ) OData содержит метаинформацию, а это в купе с динамическими объектами позволяет сделать одну универсальную реализацию и не плодить сущности на каждый чих. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:30 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ, это плохо такихДТО могут быть тыщами что то тут концептуально не проработано ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:38 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ПарамонSeVaПоэтому я и писал про OData, который позволяет обойти эти проблемы Покурю на досуге, пока не ясно ) Не кури, опять бредни Севы. OData в обсуждаемой теме никак не относится :) SeVaOData содержит метаинформацию, а это в купе с динамическими объектами позволяет сделать одну универсальную реализацию и не плодить сущности на каждый чих. Сдурел, что-ли? Ты бы еще рефлексию предложил в прикладном коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:40 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
ViPRosМСУ, это плохо такихДТО могут быть тыщами что то тут концептуально не проработано Значит, тыщами. Классифицируй по предназначению. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:41 |
|
EF, Repository, UnitOfWork
|
|||
---|---|---|---|
#18+
МСУ, это просто запросы к БД? а зачем тогда объектная модель и маппинг? определение ДТО как я понимаю на сервереной части? или это просто метод какого то объекта не врубаюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2013, 16:45 |
|
|
start [/forum/topic.php?fid=17&msg=38108324&tid=1350110]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 546ms |
0 / 0 |