powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFramework и паттерн Repository
25 сообщений из 121, страница 4 из 5
EntityFramework и паттерн Repository
    #39715841
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
love_bachViPRoshVostt,

напиши тест на вывод числе фибаноччи, или поиск пути минимальной длина на графе, или суммы/факториала/да че угодно от 1 до n,... :)

Я напишу метод который отработает для твоих тестов, но воще будет ошибочен

легко.

поиск пути (при заданном алгориме) - это итерации. вот и проверяем: шаг при заданных входных
с фибоначи не сложнее. есть таблицы. вот и проверяем по ним
Это не тестирование а фуфель
раньше давали так называемый Контрольный пример и если прога на этом примере норм отрабатывала, то принимали
дык вот люди именно эту задачу и решали :)
так и ваши тесты глупые
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39715859
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, затянул своё унылое ворчание.
Сахават, что ты ещё тут вообще делаешь? Пора на пенсию, прикупи домик, выращивай базилик...
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39715889
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухУ тебя может и будет, но мы не понимаем, с чего вдруг. Пример приведи уже.

В случае с CQRS ЕF запросы будут инкапсулированны в отдельных классах, а не зацементированы в методах сервисного класса, чего бы это не значило
В случае с CQRS (и EF) командная ее часть будет в репозиториях, а запросная - либо тоже в репозиториях в виде одного из подтипов указанных выше, либо зацементирована. Если вдруг у вас как-то по-другому, то примеры как раз вам и надо приводить
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39715898
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypДмитрий МухУ тебя может и будет, но мы не понимаем, с чего вдруг. Пример приведи уже.

В случае с CQRS ЕF запросы будут инкапсулированны в отдельных классах, а не зацементированы в методах сервисного класса, чего бы это не значило
В случае с CQRS (и EF) командная ее часть будет в репозиториях, а запросная - либо тоже в репозиториях в виде одного из подтипов указанных выше, либо зацементирована. Если вдруг у вас как-то по-другому, то примеры как раз вам и надо приводить
Теперь стало ясно, что Вы CQRS в глаза не видели. Погуглили бы что-ли, прежде чем писать, примеров полно.
Лично я их на этом форуме уже приводил и ссылки давал.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39715900
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lessyp,

хотя я похоже понял: Вы стали смотреть, что такое CQRS, наткнулись на пару примеров, где в CommandHandler прокидывается именно репозиторий и решили, что только так и бывает.

Верно?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39715903
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Муххотя я похоже понял: Вы стали смотреть, что такое CQRS, наткнулись на пару примеров, где в CommandHandler прокидывается именно репозиторий и решили, что только так и бывает.

Верно?
в коммерческих проектах не применял, верно, но самой идеи уже 100 лет в обед, ее в самом начале ООП придумали. И да, на каждый агрегат в команде нужен репозиторий. У вас по-другому? Ну так приведите пример, я-ж не против. Но я изначально говорил не столько про команды (с ними все понятно вне зависимости от ваших примеров), сколько про чтение. Вы заявили, что ни репозиториев, ни цементирования в классах для чтения у вас нет. Отлично, ждем пример того, что есть
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39715930
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypДмитрий Муххотя я похоже понял: Вы стали смотреть, что такое CQRS, наткнулись на пару примеров, где в CommandHandler прокидывается именно репозиторий и решили, что только так и бывает.

Верно?
в коммерческих проектах не применял, верно, но самой идеи уже 100 лет в обед, ее в самом начале ООП придумали. И да, на каждый агрегат в команде нужен репозиторий. У вас по-другому? Ну так приведите пример, я-ж не против. Но я изначально говорил не столько про команды (с ними все понятно вне зависимости от ваших примеров), сколько про чтение. Вы заявили, что ни репозиториев, ни цементирования в классах для чтения у вас нет. Отлично, ждем пример того, что есть
Давайте с начала. Вы написали, цитирую ( 21694802 ):
Lessypвсе ЕF запросы зацементированы в методах сервисного класса
Не про инкапсуляцию одного запроса в отдельном классе, а именно про "в методах" и именно "сервисного класса".
Вот именно пример такого и хотелось бы увидеть.

Я приводил простейшую демонстрацию в форуме "Разработка информационных систем", теме "Локальная сеть: web-браузер или десктоп":
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
using Context = ApplicationQueryContext;

public class ApplicationQuery : SqlQuery<Context, Application>
{
    protected override IDbCommand CreateCommand(Context context)
    {
        var command = new SqlCommand("sp_application_select") { CommandType = CommandType.StoredProcedure };

        command.Parameters.AddWithValue("guid", context.Guid);
        command.Parameters.AddWithValue("name", context.Name);

        return command;
    }

    protected override Application ToResult(IDataRecord record)
    {
        return new Application { ... };
    }
}


Вызов:
Код: c#
1.
gridApplications.ItemsSource = query.Ask(queryContext).AsObservable();


Как видите ни репозиториев, ни цементирования в методах сервисного класса.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716055
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНе про инкапсуляцию одного запроса в отдельном классе, а именно про "в методах" и именно "сервисного класса".
Вот именно пример такого и хотелось бы увидеть.

увидеть пример как можно EF зацементировать в класс сервиса? Неужели не догадываетесь?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public void NotifyCustomers()
{
var myCustomers = db.Customers.Where(c=>c.Region == "Russia").Select(c=>Convert).toList()
myCustomers.foreach(c=>c.SendNotification())
...
myCustomers.foreach(c=>c.IsNotified = true);
db.SaveChanges()
}



skyANAЯ приводил простейшую демонстрацию в форуме "Разработка информационных систем", теме "Локальная сеть: web-браузер или десктоп":
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
using Context = ApplicationQueryContext;

public class ApplicationQuery : SqlQuery<Context, Application>
{
    protected override IDbCommand CreateCommand(Context context)
    {
        var command = new SqlCommand("sp_application_select") { CommandType = CommandType.StoredProcedure };

        command.Parameters.AddWithValue("guid", context.Guid);
        command.Parameters.AddWithValue("name", context.Name);

        return command;
    }

    protected override Application ToResult(IDataRecord record)
    {
        return new Application { ... };
    }
}


Вызов:
Код: c#
1.
gridApplications.ItemsSource = query.Ask(queryContext).AsObservable();


Как видите ни репозиториев, ни цементирования в методах сервисного класса.
ok. Зацементировали в хранимой процедуре. И чем собствено это отличается от репозитория, где я могу точно также вызвать ХП или прямо там написать запрос на linq?
Какие конкретно преимущества? И как именно это относится к CQRS?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716066
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lessypидеть пример как можно EF зацементировать в класс сервиса? Неужели не догадываетесь?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public void NotifyCustomers()
{
var myCustomers = db.Customers.Where(c=>c.Region == "Russia").Select(c=>Convert).toList()
myCustomers.foreach(c=>c.SendNotification())
...
myCustomers.foreach(c=>c.IsNotified = true);
db.SaveChanges()
}


В случае с CQRS работа с EF будет инкапсулированна в команде, или запросе, а не в методах сервисного класса.
Согласен, или по пятому кругу пойдём?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716074
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lessyp,

вообще меня конечно ход Ваших мыслей поражает.

Давайте фигли запросы цементировать прямо в батонкликах. А почему бы и нет?
Это же вариация на тему зацементированности, вариация. Так какая тогда на фиг разница?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716341
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVosttпропущено...


Алгоритмы твои тогда на чем основаны? Чем докажешь, что они работают? Ну кроме твоего авторитетного слова? )
Вощем ты в отличии от гуглистов понимаешь что тесты должны быть СЛОЖНЕЕ чем тестируемые методы?

Алгоритмы не тестируются с помощью принятых подходов юнит-тестирования.
Например, чтобы потестировать метод сортировки, бессмысленно давать какие-то входные данные и проверять, отсортированы они или нет в конечном счёте. Нужно использовать методы доказательства алгоритмов, а тестировать только, выполняются ли требуемые шаги в реализации алгоритмов.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716349
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлгоритмы не тестируются с помощью принятых подходов юнит-тестирования.
Например, чтобы потестировать метод сортировки, бессмысленно давать какие-то входные данные и проверять, отсортированы они или нет в конечном счёте. Нужно использовать методы доказательства алгоритмов, а тестировать только, выполняются ли требуемые шаги в реализации алгоритмов.

Против методов доказательства правильности программ ничего не имею, а тестирование, которое вам навязали, фуфло бестолковое,.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716356
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Поясни.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716417
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Ну лан. Чего только нам не навязали. Ээээх.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716478
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVosttАлгоритмы не тестируются с помощью принятых подходов юнит-тестирования.
Например, чтобы потестировать метод сортировки, бессмысленно давать какие-то входные данные и проверять, отсортированы они или нет в конечном счёте. Нужно использовать методы доказательства алгоритмов, а тестировать только, выполняются ли требуемые шаги в реализации алгоритмов.

Против методов доказательства правильности программ ничего не имею, а тестирование, которое вам навязали, фуфло бестолковое,.
Да, да, навязали.. А ещё они "Союз" поломали..
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716480
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВ случае с CQRS работа с EF будет инкапсулированна в команде, или запросе, а не в методах сервисного класса.
Согласен, или по пятому кругу пойдём?
разумеется цементирование в классе сервиса это антипаттерн. Я-же написал его минусы в самом первом посте

вы не ответили на мой пост:

Lessypok. Зацементировали в хранимой процедуре. И чем собствено это отличается от репозитория, где я могу точно также вызвать ХП или прямо там написать запрос на linq?
Какие конкретно преимущества? И как именно это относится к CQRS?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716481
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lessyp,

Вы поняли, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716485
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВы поняли, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса?
почему вы так упорно избегаете ответа на мой вопрос? Я могу повторить его еще раз - можете-ли вы указать какие именно преимущества имеет то, что вы написали перед вызовом метода репозитория?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716489
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lessyp,

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

Вы поняли? Если да, то мы продолжим дискуссию.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716494
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAя не избегаю, а просто сначала хочу убедиться в том, что Вы поняли то, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса.

Вы поняли? Если да, то мы продолжим дискуссию.
то, что вы написали не отличается от вызова репозитория. Поэтому я и прошу вас написать в чем разница
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716495
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypskyANAя не избегаю, а просто сначала хочу убедиться в том, что Вы поняли то, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса.

Вы поняли? Если да, то мы продолжим дискуссию.
то, что вы написали не отличается от вызова репозитория. Поэтому я и прошу вас написать в чем разница
Я вроде ясно выразился, что напишу, в чём разница, но сначала хочу убедиться в том,
что Вы поняли, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса.

Вы поняли?
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716574
Lessyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухЯ вроде ясно выразился, что напишу, в чём разница, но сначала хочу убедиться в том,
что Вы поняли, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса.

Вы поняли?
Вы написали репозиторий, просто назвали его другим словом, поэтому пока не напишите чем именно это отличается от репозитория дискутировать не имеет смысла
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39716598
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LessypДмитрий МухЯ вроде ясно выразился, что напишу, в чём разница, но сначала хочу убедиться в том,
что Вы поняли, что можно не использовать репозиторий и при этом не будет цементирования в классе сервиса.

Вы поняли?
Вы написали репозиторий, просто назвали его другим словом, поэтому пока не напишите чем именно это отличается от репозитория дискутировать не имеет смысла
О, я вижу Вы вообще не понимаете, что такое репозиторий. Дискутировать действительно не имеет смысла.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39717061
Фотография StalkerS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lessypможете-ли вы указать какие именно преимущества имеет то, что вы написали перед вызовом метода репозитория?
В данном примере - никаких. Тут скорее всего подразумевается паттерн query object, реализация которого по-сути представляет собой по мини репозиторию на каждый метод "классического" репозитория.
...
Рейтинг: 0 / 0
EntityFramework и паттерн Repository
    #39717067
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StalkerS,

реализаций может быть множество, данные могут доставться из MongoDB, кэшироваться в Couchbase и памяти, запрашиваться у стороннего сервиса.
А для вызывающей стороны - это всё будет просто вызовом метода репозитория. И при этом никакого нарушения принципа единственности ответсвенности.

Но если подходить с точки зрения, что где-то там всё равно как-то зацементирован какой-то запрос, то да, нет никакой разницы между следующими двумя каринками

Типичная схема:


CQRS:
...
Рейтинг: 0 / 0
25 сообщений из 121, страница 4 из 5
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFramework и паттерн Repository
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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