| 
 | 
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Если тема где то раскрыта, то ткните. Изучаю WCF. Нарисовал себе задачу: wcf сервис работает с БД. Хочу работу с БД сделать через ORM. Предполагаемая архитектура солюшена - 3 проекта: библиотека с контрактами, хост(реализует контракт) и предоставляет сервис, клиент(потребляет сервис). 1. Правильно ли я разделил ответственность? Может для данной задачи есть более правильная архитектура? 2. Как работать с ORM? Нужно пометить классы Entity как [DataMember]. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 13:33 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  WCF и ORM могут иметь одну точку соприкосновения - ISession/DBcontext на запрос. Больше эти две темы никак не пересекаются. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 13:43 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  В контракте есть сложные типы. К примеру есть метод, который возвращает IEnumerable<Car>. Этот класс должен быть описан и в сервисе, и в клиенте. Меня интересует как сделать отдельно библиотеку контрактов, чтобы избежать дублирование кода. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 14:00 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaВ контракте есть сложные типы. К примеру есть метод, который возвращает IEnumerable<Car>. Этот класс должен быть описан и в сервисе, и в клиенте. Меня интересует как сделать отдельно библиотеку контрактов, чтобы избежать дублирование кода. А причем тут вообще ORM? Пока только все что Вы описываете - чистой воды импелементация WCF сервиса. Каким боком контракты относятся к ORM? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 14:05 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ой, поправка 2. Как работать с ORM? Нужно пометить классы Entity как [DataMember][DataContract]. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 15:06 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Slivaой, поправка 2. Как работать с ORM? Нужно пометить классы Entity как [DataMember][DataContract]. Да, а еще есть OperationContractAttribute и ServiceContractAttribute. Про всех про них стОит почитать. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 15:50 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleron, да не то. Зайду с другой стороны. Есть такое решение, что в контракте(отдельная сборка) у нас есть контракт и класс([DataContract]). У класса([DataContract]), есть еще атрибуты валидации. Правильно ли размещать валидацию в контракте? Если нет, тогда где? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 19:34 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaЕсть такое решение, что в контракте(отдельная сборка) у нас есть контракт и класс([DataContract]). У класса([DataContract]), есть еще атрибуты валидации. Правильно ли размещать валидацию в контракте? Если нет, тогда где? Атрибутам валидации в контракте я, считаю, не место. Лучше его оставить чистым и сделать decoupling между уровнем сервисов, DAL и морды. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 19:40 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleron, Что такое decoupling? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.12.2015, 23:49 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaЧто такое  decoupling ? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 13:17 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AxeleronSlivaЧто такое  decoupling ? ниасилил ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 15:54 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Видится так: использовать DTO и Automapper ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 15:56 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaВидится так: использовать DTO и Automapper Дублирование классов не избежать ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 15:57 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  а если просто сервисеРеференсе? и никакого дублирования. прокси кодогенерится студией. а на клинской стороне (т.к. партиал) еще и расширение возможно ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:04 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Slivaиспользовать DTO я как-то спрыгнул с этого подхода ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:05 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawSlivaиспользовать DTO я как-то спрыгнул с этого подхода Чем не устроил? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:18 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleronkmawпропущено... я как-то спрыгнул с этого подхода Чем не устроил? я сильно фанатично к нему подошел. и весь domain маппил в DTO с одной единственной целью - что бы через "веб-сервис". это имело негативные последствия ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:21 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawAxeleronпропущено... Чем не устроил? я сильно фанатично к нему подошел. и весь domain маппил в DTO с одной единственной целью - что бы через "веб-сервис". это имело негативные последствия Которые выражались в написании однообразного кода или в чем? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:23 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawAxeleronпропущено... Чем не устроил? я сильно фанатично к нему подошел. и весь domain маппил в DTO с одной единственной целью - что бы через "веб-сервис". это имело негативные последствия хотя для веб-сервиса, может и оправдано. но для WCF точно перебор ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:23 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleronkmawпропущено... я сильно фанатично к нему подошел. и весь domain маппил в DTO с одной единственной целью - что бы через "веб-сервис". это имело негативные последствия Которые выражались в написании однообразного кода или в чем? да ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:23 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawkmawпропущено... я сильно фанатично к нему подошел. и весь domain маппил в DTO с одной единственной целью - что бы через "веб-сервис". это имело негативные последствия хотя для веб-сервиса, может и оправдано. но для WCF точно перебор местами подрихтовать циклические ссылки - и коробочный сериализатор прекрасно domain отображает в то что надо. а для WinForms еще и INotifyChanged и BindingList ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:27 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawAxeleronпропущено... Которые выражались в написании однообразного кода или в чем? да То есть по сути Вы предлагаете tightly coupled решение, когда Ваш фронт енд зависит всецело от контракта? Могу себе предсавить как Ваш проект сыплется на куски и волосы седеют как только контракт меняется... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:28 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawkmawпропущено... я сильно фанатично к нему подошел. и весь domain маппил в DTO с одной единственной целью - что бы через "веб-сервис". это имело негативные последствия хотя для веб-сервиса, может и оправдано. но для WCF точно перебор А что Вы под WCF понимаете тогда в данном конкретном вопросе, заданном топикстартером? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:29 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AxeleronМогу себе предсавить как Ваш проект сыплется на куски и волосы седеют как только контракт меняется... пока все нормально. тьфу, тьфу... Axeleronфронт енд зависит всецело от контракта а какие еще варианты, конечно зависит. хоть явно (ссылка на dll с контрактом), хоть через кодогенерацию ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:31 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawпока все нормально. тьфу, тьфу... Если только гарантированно контракт сервисов никогда не поменяется, то, может, и ок. Но все равно расширять доменный объект, используемый в приложении, рано или поздно приходится. А имплементируете Вы его все равно на основе интерфейса контракта. kmawа какие еще варианты, конечно зависит. хоть явно (ссылка на dll с контрактом), хоть через кодогенерацию Еще loosely coupled решение, используя DTO паттерн. Тогда Вам просто маппер поправить, если контракт меняется. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:37 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AxeleronТогда Вам просто маппер поправить, если контракт меняется. я не вижу тут преимуществ. править - ключевое слово ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:39 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AxeleronНо все равно расширять доменный объект, используемый в приложении, рано или поздно приходится если сильно, то это будет уже реальные DTO, а не только для передачи через веб-сервис, там и проекция и запрос меняетя. а чуть-чуть - можно и в партиал на клиенте ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:41 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawа чуть-чуть типа галочку для гриды добавить ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:43 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawя не вижу тут преимуществ. Вам просто повезло, что Вы еще просто не попадали в такие ситуации. Везение не носит системного характера. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:46 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawа чуть-чуть - можно и в партиал на клиенте Чуть-чуть уберут пару свойств или имя/тип свойства поменяют в контракте Ваши партнеры - тогда мы и поговорим :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:48 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleronkmawя не вижу тут преимуществ. Вам просто повезло, что Вы еще просто не попадали в такие ситуации. Везение не носит системного характера. смотрите, WCF - это не какой-то внешний сервис, это Ваше, даже, возможно, в одном солюшн. так? и как там может что-то внезапно измениться? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:50 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleronkmawа чуть-чуть - можно и в партиал на клиенте Чуть-чуть уберут пару свойств или имя/тип свойства поменяют в контракте Ваши партнеры - тогда мы и поговорим :) это подстава я не знаю технологии, которая с этим может справиться ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:51 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawсмотрите, WCF - это не какой-то внешний сервис, это Ваше,  даже, возможно, в одном солюшн. так? и как там может что-то внезапно измениться? Давайте брать наиболее часто встречаемый общий случай. Например, сервис сторонней компании для букирования авиабилетов или отелей, обработка операций интернет-банкинга. Вот изменилось что-то, и Вы получили оповещение, что у Вас неделя на внесение изменений. Все бросать и срочно начинать все править в приложении? Потому что Вы точно значете, что изменения сервиса приведут к тому, что Ваш сайт обрушится. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:56 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawAxeleronпропущено... Чуть-чуть уберут пару свойств или имя/тип свойства поменяют в контракте Ваши партнеры - тогда мы и поговорим :) это подстава я не знаю технологии, которая с этим может справиться Вы просто получаете новый контракт от поставщика сервисов. Пользуйтесь :) Одно дело когда Вам нужно поменять один маппер класс, а другое когда проверять весь солюшн на соответствие контракту севриса. Чувствуете разницу? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 18:58 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleronkmawсмотрите, WCF - это не какой-то внешний сервис, это Ваше,  даже, возможно, в одном солюшн. так? и как там может что-то внезапно измениться? Давайте брать наиболее часто встречаемый общий случай. Например, сервис сторонней компании для букирования авиабилетов или отелей, обработка операций интернет-банкинга. Вот изменилось что-то, и Вы получили оповещение, что у Вас неделя на внесение изменений. Все бросать и срочно начинать все править в приложении? Потому что Вы точно значете, что изменения сервиса приведут к тому, что Ваш сайт обрушится. часть откажет - не работают/изменились внешние сервисы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 19:00 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Axeleronkmawпропущено... это подстава я не знаю технологии, которая с этим может справиться Вы просто получаете новый контракт от поставщика сервисов. Пользуйтесь :) Одно дело когда Вам нужно поменять один маппер класс, а другое когда проверять весь солюшн на соответствие контракту севриса. Чувствуете разницу? чувствую, спасибо за критику. но это всплыло в нашем разговоре, не имеет отношения, я думаю, к изначальному посылу ТС ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 19:03 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawчасть откажет - не работают/изменились внешние сервисы. Ну если для Вас некритично, что из-за этого откажет часть Вашего приложения... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 19:03 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawчувствую, спасибо за критику. но это всплыло в нашем разговоре, не имеет отношения, я думаю, к изначальному посылу ТС Отчего же не имеет? 18573684 ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 19:04 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawAxeleronпропущено... Вам просто повезло, что Вы еще просто не попадали в такие ситуации. Везение не носит системного характера. смотрите, WCF - это не какой-то внешний сервис, это Ваше, даже, возможно, в одном солюшн. так?даже если наше, то стоит смотреть на него как на отдельный сервис, который завтра возможно надо будет прикрутить к другой системе ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 21:10 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  мозг болит Напиши, пожалуйста, архитектуру солюшена с учетом орм. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 21:36 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Slivaмозг болит Напиши, пожалуйста, архитектуру солюшена с учетом орм. отдельный проект. в нем не должно быть ничего, кроме сервиса ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 21:42 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  такая схема на сколько пригодна? солюшен --Contracts (контракты, сложные типы) --DAL (EF, репозитирий) --WCFservice (реализация контракта) --Host --Client ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.12.2015, 21:59 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Возвращаясь к теме... Мой первый "блин". Покритикуйте, пожалуйста. По структуре, коду, по всему. Дельные советы очень приветствуются. архив с проектом ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.12.2015, 22:48 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaВозвращаясь к теме... Мой первый "блин". Покритикуйте, пожалуйста. По структуре, коду, по всему. Дельные советы очень приветствуются. архив с проектом зачем rat? GitHub есть ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.12.2015, 22:50 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  то, что бросается в глаз сразу: Код: c# 1. инжектить в репозиторий, используя IoC, обеспечить время жизни ContextDB, например, "на запрос" Код: c# 1. из репозитория выносить в датасервис ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.12.2015, 23:27 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  и без аутентификации как-то не интересно ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.12.2015, 23:30 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawинжектить в репозиторий, используя IoC, обеспечить время жизни ContextDB, например, "на запрос" Думал об этом. Для понимания самой сути решил делать без IoC. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.12.2015, 23:39 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmaw Код: c# 1. из репозитория выносить в датасервис А чем плохо в репозитории? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.12.2015, 23:43 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, там есть менюшка (слева) source ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 00:22 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Slivakmaw Код: c# 1. из репозитория выносить в датасервис А чем плохо в репозитории? репозиториев может быть задействовано на одну бизнес-операцию (метод дата-сервиса) несколько, и SaveChanges лучше вынести в отдельный спец-репозиторий, который "только SaveChanges" и вызываться он будет из методов дата-сервиса. т.к. SaveChanges непосредственное отношение имеет к транзакции. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 07:19 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawSlivaпропущено... А чем плохо в репозитории? репозиториев может быть задействовано на одну бизнес-операцию (метод дата-сервиса) несколько, и SaveChanges лучше вынести в отдельный спец-репозиторий, который "только SaveChanges" и вызываться он будет из методов дата-сервиса. т.к. SaveChanges непосредственное отношение имеет к транзакции.тогда уже в UnitOfWork, или Registry и назвать это дело Commit :) а SaveChanges пусть тупо прикрепляет объект к контексту. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 08:26 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmaw репозиториев может быть задействовано на одну бизнес-операцию (метод дата-сервиса) несколько, и SaveChanges лучше вынести в отдельный спец-репозиторий, который "только SaveChanges" и вызываться он будет из методов дата-сервиса. т.к. SaveChanges непосредственное отношение имеет к транзакции. Что такое датасервис, более высокая абстракция? Отдельный слой? В каком месте данной архитектуры он будет находится? kmawи без аутентификации как-то не интересно Как можно аутентификацию в данную архитектуру вставить? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 14:05 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaЧто такое датасервис, более высокая абстракция? в вашем примере это внутренности реализации wcf-сервиса - их лучше в отдельную сборку вынести: эти функции часто нужны не только через wcf, а через какой-то другой вариант доступа ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 14:24 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmaw, Не понятно. У нас есть DAL, там EF. Как коммитить из другой сборки (датасервис)? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 18:54 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaskyANA, там есть менюшка (слева) sourceПосмотрел. 1. Сразу бросается в глаза, что CityRepository - это копипаста ClientRepository . Даже не все методы переименованы. :) 2. На уровне WCF сервиса используются и DTO объекты (MyClient, MyCity), и зачем-то DataTable. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 19:15 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA 1. Сразу бросается в глаза, что CityRepository - это копипаста ClientRepository . Даже не все методы переименованы. :) 2. На уровне WCF сервиса используются и DTO объекты (MyClient, MyCity), и зачем-то DataTable. 1. Да, копипаста:) UnitOfWork? 2. А DTO и объекты использовать вместе не приветствуется? Передаю DataTable для простоты биндинга с datagrid. Или лучше передавать свой класс, слепленный из MyClient и MyCity? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 20:05 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaПередаю DataTable для простоты биндинга с datagrid ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 20:10 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaskyANA1. Сразу бросается в глаза, что  CityRepository  - это копипаста  ClientRepository . Даже не все методы переименованы. :) 2. На уровне WCF сервиса используются и DTO объекты (MyClient, MyCity), и зачем-то DataTable. 1. Да, копипаста:) UnitOfWork? 2. А DTO и объекты использовать вместе не приветствуется? Передаю DataTable для простоты биндинга с datagrid. Или лучше передавать свой класс, слепленный из MyClient и MyCity?Вам оно лучше знать, что подходит. Но... Если у клиента вдруг появится список контактов, то как Вы это будете передавать в DataTable? :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 22:46 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA Если у клиента вдруг появится список контактов, то как Вы это будете передавать в DataTable? :) Вот, кстати, вопрос. Если нужно передать, к примеру, клиента и список контактов. На EF удобно работать с навигационными свойствами. Как сервису такое передать? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 22:53 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaskyANAЕсли у клиента вдруг появится список контактов, то как Вы это будете передавать в DataTable? :) Вот, кстати, вопрос. Если нужно передать, к примеру, клиента и список контактов. На EF удобно работать с навигационными свойствами. Как сервису такое передать?Как объект соответсвующего типа. В чём проблема? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 22:55 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Так например: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 22:58 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, У меня классы контракта не связанны между собой. Видимо в этом моя проблема. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 23:00 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaskyANA, У меня классы контракта не связанны между собой. Видимо в этом моя проблема. Хм, а какие конкретно классы надо "связать" и зачем? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 23:02 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANAТак например: понял. спасибо. [/src] ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 23:02 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANAХм, а какие конкретно классы надо "связать" и зачем? Имелось в виду связь "главная-подчиненная" ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 23:05 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaskyANAХм, а какие конкретно классы надо "связать" и зачем? Имелось в виду связь "главная-подчиненная"Это к таблицам относится, а не к классам. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 23:10 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skyANA, Вот на примере. Есть класс Client. У него есть поле cityId, которое ссылается на таблицу Cities. Как мне передать клиенту объект Client и получить name таблицы Cities? 2 мысли: 1. Расширить класс Client и предзаполнять поле. 2. Поддержка навигационных свойств на клиенте. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 22.12.2015, 23:20 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Выложил исправления. Поправил код, плюс сделал UnitOfWork. Осталось IoC внедрить. Работал с ninject. Пока не понятно куда его прикрутить. И аутентификацию. Ткните, где почитать. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.12.2015, 00:37 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Slivaплюс сделал UnitOfWork. Ваш класс UnitOfWork - это какая-то лишняя прослойка. зачем? DbContext уже и так является UnitOfWork (да и репозиторием "общего назначения"). Код: c# 1. 2. 3. Commit - он у транзакции. где тут транзакция? я бы выкинул Ваш класс UnitOfWork. куда-то вы не туда пошли, на мой взгляд. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.12.2015, 07:32 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawSlivaплюс сделал UnitOfWork. Ваш класс UnitOfWork - это какая-то лишняя прослойка. зачем? DbContext уже и так является UnitOfWork (да и репозиторием "общего назначения"). Ну да, лишняя абстракция - для наглядности. Транзакцию забыл. Ну тогда и прослойку репозиторий можно убрать. Работать с DbContex-ом из сервиса? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.12.2015, 09:01 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaНу тогда и прослойку репозиторий можно убрать. нет, не надо. в репозитории как раз и спрятан DbContext и детали ОРМ (раз с ней работаете). SlivaРаботать с DbContex-ом из сервиса? это путь в "баттонклик наше все". однозначно нет ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.12.2015, 09:21 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmaw SlivaРаботать с DbContex-ом из сервиса? это путь в "баттонклик наше все". однозначно нет Подождите, у нас есть 2 репы, у которых должен быть один контекст. Получается, инициализируем и сейвим контекст в сервисе? т.е. Код: c# 1. 2. 3. Если нет, то тогда как сервис должен работать с репами? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.12.2015, 17:00 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  И в этом случае DbContext будет светиться за пределами DAL. Это же не правильно? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.12.2015, 19:21 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SlivaИ в этом случае DbContext будет светиться за пределами DAL. Это же не правильно? http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1190871&msg=18567589 кто-то же должен его создать ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.12.2015, 19:51 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmawSlivaИ в этом случае DbContext будет светиться за пределами DAL. Это же не правильно? кто-то же должен его создать Код: 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.12.2015, 20:15 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Slivakmawпропущено... кто-то же должен его создать Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Оно? лучше, чтобы ContextDB инжектился в репозитории. репозитории инжектились в DataService. DataService инжектились в WCF-сервис. это посредством IoC. а создавать ContextDB можно через behavior WCF-сервиса ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.12.2015, 20:25 | 
  
  
  
   | 
||
| 
 
WCF и ORM 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  kmaw лучше, чтобы ContextDB инжектился в репозитории. репозитории инжектились в DataService. DataService инжектились в WCF-сервис. это посредством IoC. а создавать ContextDB можно через behavior WCF-сервиса кто бы все это еще и разжевал), желательно, схематично. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 24.12.2015, 21:55 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?all=1&fid=19&tid=1396810]:  | 
    0ms | 
get settings:  | 
    8ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    41ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    87ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 11ms | 
| total: | 178ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.