|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
МСУЯ говорю о том, что нужно разделять бизнес-логику и взаимодействие с БД (или любым источником) + объединять все операции доступа к данным в одной области, что значительно упрощает создание и обслуживание данных.А зачем там что-то отделять. EF прекрасно всё отделяет и даёт возможность работать с данными средствами, встроенными в сам язык (C#). Что ещё может быть надо? МСУP.S. Какой итог? )Очевидно, я молодец! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:03 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAРепозитоий я могу использовать повторно в рамках одного проекта. В разных проектах. А метод GetMessageTaskView как мне использовать, кроме как в сервисе? Копипастить содержимое?Сделать его public и получить к нему доступ из других классов? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:05 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Иногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:07 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANA, ладно, Лёшу одного товарища попинали за IQueryable в репозитории. Оказалось, что у него репозиториев вообще нет и он имел ввиду (о боже!) про нужность репозитория как класс :) Таким образом, все поняли, что у Алексея нет никаких IQueryable реп и хорошо. Но остаётся у нас на повестке дня вопрос с hVostt hVosttя понял. речь идёт о необъяснимых вещах. вы так не переживайте, я видел достаточно серьезные проекты давайте хоть одну реальную проблему, к которой может привести выдача репой IQueryable<T>. по вашей же ссылке на каждую проблему есть решение. hVosttМСУhVostt, были озвучены 3 главные причины, почему IQueryable в репозитории это плохо: 1. Нужно держать живым дата контекст на протяжении более длительного времени. Это плохая практика. 2. "Крутить базу может кто как хочет" (с) Это сеет хаос и демократию прикладного кода, в отличие от строго специфицированных репозиториев. 3. И самая главная причина: зависимость от MSSQL + EF. Изменится источник или хранилище данных - приплыли. Всё это: жесткие архитектурные ограничения. Нравится прибивать на каждый чих себя гвоздями? Я не против. У меня все репозитории (сервисы данных) возвращают коллекции через IEnumerable<T>. А что там спрятано за методом репозитория - никому знать об этом не нужно. 3 главные причины, с которыми я полностью согласен. Так я не понял, наш очень опытный и замечательный hVostt использует IQueryable репозитории или он просто вышел опять посмердить на форуме? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:09 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КА зачем там что-то отделять. EF прекрасно всё отделяет и даёт возможность работать с данными средствами, встроенными в сам язык (C#). Что ещё может быть надо? Ну если тебе ничего не надо отделять, нах тебе нужен WCF как третий уровень, пиши двузвенку и дергай БД прямо из своих впф клиентов. Ась? Алексей КМСУP.S. Какой итог? )Очевидно, я молодец! С этим никто не спорит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:11 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КskyANAРепозитоий я могу использовать повторно в рамках одного проекта. В разных проектах. А метод GetMessageTaskView как мне использовать, кроме как в сервисе? Копипастить содержимое?Сделать его public и получить к нему доступ из других классов? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:12 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
МСУАлексей КА зачем там что-то отделять. EF прекрасно всё отделяет и даёт возможность работать с данными средствами, встроенными в сам язык (C#). Что ещё может быть надо? Ну если тебе ничего не надо отделять, нах тебе нужен WCF как третий уровень, пиши двузвенку и дергай БД прямо из своих впф клиентов. Ась?На Делфи ещё предложи, ага... МСУАлексей Кпропущено... Очевидно, я молодец! С этим никто не спорит :)Это главное. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:13 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга. Расскажи нам про базовые принципы рефакторинга? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:13 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
МСУАлексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга. Расскажи нам про базовые принципы рефакторинга? А про ООП почему не надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:15 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КА про ООП почему не надо? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:16 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КskyANAРепозитоий я могу использовать повторно в рамках одного проекта. В разных проектах. А метод GetMessageTaskView как мне использовать, кроме как в сервисе? Копипастить содержимое?Сделать его public и получить к нему доступ из других классов?Дак он итак паблик То есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. А если мне к примеру в голову придёт такая идея: подключить морду WPF напрямую к БД? Ну к примеру к локальной тестовой базе? Опять тянуть сборку WCF сервиса? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:20 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.Хм. Ну вот они: SOLID . Разберём Ваш код? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:22 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAОпять тянуть сборку WCF сервиса? Алексей очень много и красиво писал на форуме про слабосвязность кода (IoC и DI), но как мы видим по его wcf сервису всё не так эпично, как давече представлялось ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:28 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
МСУskyANA, ладно, Лёшу одного товарища попинали за IQueryable в репозитории.Дак у него нет репозитория, он ему и не нужен. Я вообще не понимаю о чём он рассуждает. О том что с IQueryable нет проблем, если база одна, раотает с ней только один сервис и повторное использование кода на фиг не нужно. Ну дак то, что в частном конкретном случае с IQueryable нет проблем, ни о чём не говорит, кроме как о том, что в частном конкретном случае с IQueryable нет проблем. Мне интересно, что это за продукт и под какой нагрузкой работает сервис? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:29 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Сделать его public и получить к нему доступ из других классов?Дак он итак паблик Таки нет. :-) skyANAТо есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. Ну сделать для него обёртку? Код: c# 1. 2. 3.
skyANAА если мне к примеру в голову придёт такая идея: подключить морду WPF напрямую к БД? Ну к примеру к локальной тестовой базе? Опять тянуть сборку WCF сервиса?Задачу надо ставить жосче: "А если WPF-морда захочет читать данные напрямую из файлов, в которых хранит MSSQL свои базы". :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:30 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAАлексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.Хм. Ну вот они: SOLID . Разберём Ваш код? Я убегаю. Может завтра... Всем приятных выходных! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:31 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
МСУskyANAОпять тянуть сборку WCF сервиса? Алексей очень много и красиво писал на форуме про слабосвязность кода (IoC и DI), но как мы видим по его wcf сервису всё не так эпично, как давече представлялось Я всегда был противником повсеместного IoC и DI. У меня до сих пор смешанные чувства по этому поводу. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:32 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANA, да хрен его знает, что там реально за архитектура. В "IQueryable-слое" по большому счету смысла особого не вижу, т.к. его дата контекст и так таблицы и вьюхи в IQueryable возвращает. Разве что писать линейную генерик-обертку над дата контекстом? Вот это точно бред. Короче, всё туманно... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:33 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Дак он итак паблик Таки нет. :-)Точно! Класс паблик, а метод нет. :) Алексей КskyANAТо есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. Ну сделать для него обёртку? Код: c# 1. 2. 3.
Какую ещё обёртку? Над чем? Куда обёртка собирается, как её использовать? Алексей КskyANAА если мне к примеру в голову придёт такая идея: подключить морду WPF напрямую к БД? Ну к примеру к локальной тестовой базе? Опять тянуть сборку WCF сервиса?Задачу надо ставить жосче: "А если WPF-морда захочет читать данные напрямую из файлов, в которых хранит MSSQL свои базы". :-)А ну да. Вы с таким не сталкивались, значит и идея сама по себе бредовая. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 13:37 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Таки нет. :-)Точно! Класс паблик, а метод нет. :) Алексей Кпропущено... Ну сделать для него обёртку? Код: c# 1. 2. 3.
Какую ещё обёртку? Над чем? Куда обёртка собирается, как её использовать?Обёртку в виде свойства P2, чтобы: " То есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. " skyANAАлексей Кпропущено... Задачу надо ставить жосче: "А если WPF-морда захочет читать данные напрямую из файлов, в которых хранит MSSQL свои базы". :-)А ну да. Вы с таким не сталкивались, значит и идея сама по себе бредовая. С чем я не сталкивался? С необходимостью иметь в фабрике контекстов свойство ConnectionString, чтобы иметь возможность настраивать подключение, в том числе и к тестовой БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 19:32 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAАлексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.Хм. Ну вот они: SOLID . Разберём Ваш код? Ну попробуйте. Только обязательно нужна количественная оценка объёма кода, который потребуется написать при добавлении тех или иных возможностей, по сравнению с "правильным" вариантом решения. Голые ссылки на теорию не интересны. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 19:34 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
skyANAДак у него нет репозитория, он ему и не нужен. Я вообще не понимаю о чём он рассуждает. О том что с IQueryable нет проблем, если база одна, раотает с ней только один сервис и повторное использование кода на фиг не нужно.А меж тем, всё это делается ради расширения возможностей повторного использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 19:37 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
МСУВ "IQueryable-слое" по большому счету смысла особого не вижуЗря. Сам же говорил, что чем больше слоёв - тем лучше. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 19:39 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Точно! Класс паблик, а метод нет. :) пропущено... Какую ещё обёртку? Над чем? Куда обёртка собирается, как её использовать?Обёртку в виде свойства P2, чтобы: " То есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. "Можете написать пример кода, чтобы было понятно к какому классу принадлежит свойство, как оборачивается нужный метод и как этой обёрткой пользоваться? Алексей КskyANAпропущено... А ну да. Вы с таким не сталкивались, значит и идея сама по себе бредовая. С чем я не сталкивался? С необходимостью иметь в фабрике контекстов свойство ConnectionString, чтобы иметь возможность настраивать подключение, в том числе и к тестовой БД?С тем, что морду надо подключить напрямую к БД, а не через сервер приложений. Я же вроде ясно написал, будьте внимательнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 22:29 |
|
IRepository как пользоваться
|
|||
---|---|---|---|
#18+
Алексей КМСУВ "IQueryable-слое" по большому счету смысла особого не вижуЗря. Сам же говорил, что чем больше слоёв - тем лучше. :-) А смысл? Этот слой с легкостью покрывает универсальный репозиторий. Нафига мне IQueryable лохмотья? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2013, 22:33 |
|
|
start [/forum/topic.php?fid=17&msg=38416723&tid=1349917]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 271ms |
total: | 419ms |
0 / 0 |