powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / О применении SOLID
25 сообщений из 159, страница 6 из 7
О применении SOLID
    #38521789
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

да, мы же ведет дискуссию про объекты EF и новые бизнес-объекты. Я вот спросил на примере конкретной БД.
...
Рейтинг: 0 / 0
О применении SOLID
    #38521814
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanskyANA,

да, мы же ведет дискуссию про объекты EFПозволю себе некоторую иронию: Работа с объектами (платформа Entity Framework) .

Интересно, зачем в EF поддерживается четыре типа сущностей: EntityObject, POCO, Прокси POCO и Сущности с самостоятельным отслеживанием? Разве одного типа не достаточно для большинства проектов?

Сам я с EF не работал, поэтому хотелось бы услышать Ваши комментарии.
netivanЯ вот спросил на примере конкретной БД.К сожалению я не работал с БД Northwind и не знаком с её структурой. Насколько я знаю, это учебная база от MS.
Фишка в том, что в институте на лабах у нас была Delphi Paradox Database, карьеру я начал с Oracle, а когда столкнулся с Sql Server, то учебные базы ковырять уже не имело смысла.
...
Рейтинг: 0 / 0
О применении SOLID
    #38521869
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья, вообще солид - это УГ. Всё, все по домам. ))
...
Рейтинг: 0 / 0
О применении SOLID
    #38521975
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

что-то в тупик меня поставили. Я кстати не особый знаток ЕФ,достаточно давно с ним работал. Но если честно не вижу для нашей беседы разницы в тех походах. А про БД Northwind вы загнули она достаточно типичная.
...
Рейтинг: 0 / 0
О применении SOLID
    #38521999
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivan, что я загнул про БД Northwind? Что не работал с ней? Действительно не работал. Убедите меня в обратном.

Погуглил:technet.microsoft.comThe Northwind and pubs sample databases are not installed by default in Microsoft SQL Server.technet.microsoft.comThe AdventureWorks2008R2 sample databases that are used in the code examples in SQL Server Books Online can be downloaded from the Microsoft SQL Server Samples and Community Projects home page.Это я к тому, что даже краем глаза не мог видеть БД Northwind, т.к. её отдельно надо скачивать и прикреплять к инстансу сервера.

А что значит "она достаточно типичная"?
...
Рейтинг: 0 / 0
О применении SOLID
    #38522106
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

авторА что значит "она достаточно типичная"? типичное решение типичной задачи. Клиенты, продажи и т.д. Да и вообще я всего лишь хотел донести мысль, что следовать принципам потому что так написано где-то имхо глупо и неправильно. Если модели домена и бизнеса совпадают это сразу неправильно и плохо? Бред.
...
Рейтинг: 0 / 0
О применении SOLID
    #38522152
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanЕсли модели домена и бизнеса совпадают это сразу неправильно и плохо? Бред.
Что такое "модель бизнеса"?
...
Рейтинг: 0 / 0
О применении SOLID
    #38522160
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanskyANA,

авторА что значит "она достаточно типичная"? типичное решение типичной задачи. Клиенты, продажи и т.д. Да и вообще я всего лишь хотел донести мысль, что следовать принципам потому что так написано где-то имхо глупо и неправильно. Если модели домена и бизнеса совпадают это сразу неправильно и плохо? Бред.Хм. Клиенты, продажи и т.д. Какой хороший пример :)

Значит есть заказы. В заказе есть шапка/заголовок/основная часть и товары/услуги/детализация.
В реляционной БД это минимум две сущности/таблицы (в реальности конечно больше, т.к. есть всякие справочные данные типа валюты, единиц измерения и т.п.), в коде доменной модели одна - заказ (агрегирующая).

По Вашему тут нужен маппинг или нет? :)

P.S.: а я разве предлагал слепо следовать принципам?
...
Рейтинг: 0 / 0
О применении SOLID
    #38522170
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВ реляционной БД это минимум две сущности/таблицы (в реальности конечно больше, т.к. есть всякие справочные данные типа валюты, единиц измерения и т.п.), в коде доменной модели одна - заказ (агрегирующая).Тут имеется ввиду, что данные в БД раскиданы по нескольким таблицам, а инстансе заказа они собраны.
...
Рейтинг: 0 / 0
О применении SOLID
    #38522298
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAskyANAВ реляционной БД это минимум две сущности/таблицы (в реальности конечно больше, т.к. есть всякие справочные данные типа валюты, единиц измерения и т.п.), в коде доменной модели одна - заказ (агрегирующая).Тут имеется ввиду, что данные в БД раскиданы по нескольким таблицам, а инстансе заказа они собраны.
а там в EF будет все что нужно в связанной коллекции :). Но если даже предположить что надо получить имя какого-то справочника для заказа, то какой-то код приложения дернет 2 репозитория (например) и заполнит некий объект. Но помойму это не маппинг, а уже совсем логика /контроллер/ хуеллер. Например пусть это будет в методе WCF сервиса СформироватьЗаказ НОМЕР ХХХ
...
Рейтинг: 0 / 0
О применении SOLID
    #38522335
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanskyANAпропущено...
Тут имеется ввиду, что данные в БД раскиданы по нескольким таблицам, а инстансе заказа они собраны.
а там в EF будет все что нужно в связанной коллекции :). Но если даже предположить что надо получить имя какого-то справочника для заказа, то какой-то код приложения дернет 2 репозитория (например) и заполнит некий объект. Но помойму это не маппинг, а уже совсем логика /контроллер/ хуеллер. Например пусть это будет в методе WCF сервиса СформироватьЗаказ НОМЕР ХХХВы смешали всё в кучу и пишете глупости.

Давайте разбираться:

1. 2 репозитория тут не нужно. Заказ является корнем агрегации (почитайте на досуге про этот термин) и достаточно одного репозитория, что возвращает заказы;
2. Репозиторий не отвечает за маппинг, репозиторий дёргает EF;
3. EF - это ORM, что расшифровывается как object-relational mapping.

То есть если Вы используете EF напрямую, без прослойки в виде репозитория, или внутри реализации репозитория, то маппинг выполняется.
Если Вы не используете EF, или какой другой ORM, то придётся писать маппинг самостоятельно. И от того, что Вы его ручками напишите, он не станет логикой/контроллером/хелпером.
...
Рейтинг: 0 / 0
О применении SOLID
    #38522347
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

вот видите, вы говорите "глупости", а я вам говорю что это не глупости. Давайте разбираться далее.
Под репозиторием я подразумеваю http://blogs.msdn.com/b/wriju/archive/2013/08/23/using-repository-pattern-in-entity-framework.aspx вот- что-то такое. И вполне может быть что при формировании "заказа" может потребоваться обращаться к нескольким таким репозиториям. В конце концов представим что у нас не EF c готовыми маппингами связанных сущностей а самописный слой. В чем глупость?
...
Рейтинг: 0 / 0
О применении SOLID
    #38522351
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivan, не спешите. Я Вам задал прямой вопрос: "По Вашему тут нужен маппинг или нет?".
Давайте сначала на него ответим, а потом уже будем разбираться с количеством репозиториев :)
...
Рейтинг: 0 / 0
О применении SOLID
    #38522363
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет. Давайте сразу на Ваш вопрос ответим:netivanВозьмем известный пример бд Northwind. Что там маппить будете?
Маппить (отображать) будем данные из нескольких таблиц БД на одну доменную сущность - заказ. Согласны?
...
Рейтинг: 0 / 0
О применении SOLID
    #38522395
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAХотя нет. Давайте сразу на Ваш вопрос ответим:netivanВозьмем известный пример бд Northwind. Что там маппить будете?
Маппить (отображать) будем данные из нескольких таблиц БД на одну доменную сущность - заказ. Согласны?
я вам косвенно ответил уже.
авторЗначит есть заказы. В заказе есть шапка/заголовок/основная часть и товары/услуги/детализация.
Имеем заказ как бизнес-сущность, совсем не связанную с БД, так?
Чтобы "собрать" заказ я буду обращаться к разным сущностям Бд через репозиторий EF (например). И вся логика работы с заказом будет в отдельном классе/сервисе/контроллере. Только я бы это маппингом не стал называть ибо вывести Заголовок как вы сказали в виде больших букв,например, задача совсем не репозитория с маппингами :) Если вы намекаете, что тем самым я буду дублировать код например в сервисе и веб-приложении, то да, такое может быть и тогда этот бизнес-объект с логикой будет в отдельном месте, а уже результат его работы будут использоваться все по своему.
ЗЫ наверное пример с большими буквами неудачный, тут сразу закидаете что это "представление". Пусть будет лучше какая-то сложная формула для суммы заказа.
ЗЫ фух, слишком для вечера пятницы!
...
Рейтинг: 0 / 0
О применении SOLID
    #38522417
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivan, Вы скачете с пятого на десятое и путаетесь.

Ещё раз сначала:

1. в БД две таблицы: Orders (шапка/заголовок/основная часть заказа) и OrderDetails (товары/услуги/детализация по заказу);
2. с точки зрения доменной модели одна сущность: Order (заказ).

Вам нужно представить данные, что лежат в БД в виде сущности доменной модели (экземпляра класса Order), согласны?

Это называется object-relational mapping. Отображение реляционнных данных на объект области определения.
Бизнес логика работы с заказом нам тут пока на фиг не нужна, код этой логики отрабатывал, когда заказ оформляли (генерировался номер заказа, учитывались всякие скидки/наценки).

Ни про какие выводы Заголовка куда-то там в представление я не писал, и уж тем более не называл это маппингом.
...
Рейтинг: 0 / 0
О применении SOLID
    #38522422
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanЗЫ наверное пример с большими буквами неудачный, тут сразу закидаете что это "представление". Пусть будет лучше какая-то сложная формула для суммы заказа.Сложные формулы не нужны, так как уже применены, заказ оформлен, данные уже в БД. :)
...
Рейтинг: 0 / 0
О применении SOLID
    #38522424
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanЗЫ фух, слишком для вечера пятницы!Оно и видно
...
Рейтинг: 0 / 0
О применении SOLID
    #38522432
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAnetivan, Вы скачете с пятого на десятое и путаетесь.

Ещё раз сначала:

1. в БД две таблицы: Orders (шапка/заголовок/основная часть заказа) и OrderDetails (товары/услуги/детализация по заказу);
2. с точки зрения доменной модели одна сущность: Order (заказ).

Вам нужно представить данные, что лежат в БД в виде сущности доменной модели (экземпляра класса Order), согласны?

Это называется object-relational mapping. Отображение реляционнных данных на объект области определения.
Бизнес логика работы с заказом нам тут пока на фиг не нужна, код этой логики отрабатывал, когда заказ оформляли (генерировался номер заказа, учитывались всякие скидки/наценки).

Ни про какие выводы Заголовка куда-то там в представление я не писал, и уж тем более не называл это маппингом.
да, я напутал. У меня это будет так OrderRepository<Order>, где Order это класс EF.
...
Рейтинг: 0 / 0
О применении SOLID
    #38522448
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanskyANAnetivan, Вы скачете с пятого на десятое и путаетесь.

Ещё раз сначала:

1. в БД две таблицы: Orders (шапка/заголовок/основная часть заказа) и OrderDetails (товары/услуги/детализация по заказу);
2. с точки зрения доменной модели одна сущность: Order (заказ).

Вам нужно представить данные, что лежат в БД в виде сущности доменной модели (экземпляра класса Order), согласны?

Это называется object-relational mapping. Отображение реляционнных данных на объект области определения.
Бизнес логика работы с заказом нам тут пока на фиг не нужна, код этой логики отрабатывал, когда заказ оформляли (генерировался номер заказа, учитывались всякие скидки/наценки).

Ни про какие выводы Заголовка куда-то там в представление я не писал, и уж тем более не называл это маппингом.
да, я напутал. У меня это будет так OrderRepository<Order>, где Order это класс EF.Замечательно!

Мы развеяли Ваши заблуждения о бестолковом маппинге:netivanЗачем для этого бестоклу мапить объекты?
И получили ровно один репозиторий. Ура! :)
...
Рейтинг: 0 / 0
О применении SOLID
    #38524149
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

не Ура, их несколько. Вот разгребу напишу код).Хотя возможно мы говорим об одном и том же.
...
Рейтинг: 0 / 0
О применении SOLID
    #38524300
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivan, для одного корня агрегации (aggregation root) достаточно одного репозитория.
...
Рейтинг: 0 / 0
О применении SOLID
    #38525335
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Я тоже. :-)Потому как нет никакого наезда. :)Мне наверное показалось . Собственно, с чего и был начат этот топик.
skyANAПосмотрев остальной код проекта, прихожу к выводу, что DRY (don’t repeat yourself) у Вас и не пахнет.
...
Рейтинг: 0 / 0
О применении SOLID
    #38525356
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

мы немного по-разному понимаю данный термин. Хорошо, в конкретном примере "Заказ" будет единственным нужным репозиторием. Вообщем вроде бы мы пришли в завершению темы. Может кто еще выскажется)
...
Рейтинг: 0 / 0
О применении SOLID
    #38526235
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Потому как нет никакого наезда. :)Мне наверное показалось . Собственно, с чего и был начат этот топик.
skyANAПосмотрев остальной код проекта, прихожу к выводу, что DRY (don’t repeat yourself) у Вас и не пахнет.Показалось. И мы начали обсуждать этот момент в начале топика.
...
Рейтинг: 0 / 0
25 сообщений из 159, страница 6 из 7
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / О применении SOLID
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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