|
Самописный адаптер для контрактов WCF
|
|||
---|---|---|---|
#18+
В общем, есть wcf, который содержит интерфейсы для дёргания кучи процедур отчётов их базы. Процедур дофигища, каждая возвращают набор данных в виде единственной таблицы с фиговой тучей полей. Если возвращать DataTable, то написание и поддержка этого дела сведётся к очень простому коду вида Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
Но вот если писать контракты, тогда придётся описывать все поля возвращаемых данных и писать многокилометровые простыни из самих контрактов и ридеров для них. Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.
Реально ли написать аналог SqlDataAdapter для контрактов? Кто-нибудь пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 11:25 |
|
Самописный адаптер для контрактов WCF
|
|||
---|---|---|---|
#18+
НовыйЯ, тебе хочется написать эммитер(Emit) для класса, чтоль? в .net можно писать и компилить на лету, правда косяк то в чем. как тебе контракт деплоить. он же должен быть и там и там, так как не универсален так же как и datatable. ваще честно тебе сказать, что ты пытаешься решить идеологическую проблему, с помощью вшивой идейки :) потому что "Процедур дофигища, каждая возвращают набор данных в виде единственной таблицы с фиговой тучей полей." вшивай идейкой не искоренишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 14:24 |
|
Самописный адаптер для контрактов WCF
|
|||
---|---|---|---|
#18+
AlexeiKНовыйЯ, тебе хочется написать эммитер(Emit) для класса, чтоль? в .net можно писать и компилить на лету, Плиииииз! Можно об этом поподробнее! Это паттерн какой-то? Гуглом пока ничего путного про Emit не нашёл. :( AlexeiKправда косяк то в чем. как тебе контракт деплоить. он же должен быть и там и там, так как не универсален так же как и datatable. Перед тем, как столкнуться с проблемой специфичности DataTable, прочёл о контрактах вот это: Троелсен Э. - Язык программирования C# 2010 и платформа .NET 4 - 2010Хотя и можно было бы вернуть DataTable из метода службы WCF, вспомним, что технолония WCF обязана следовать принципам SOA, один из которых - программирование на основе контрактов, а не реализаций. Поэтому вместо возврата внешнему клиенту специфичного для .NET типа DataTable, мы вернём специальный контракт данных, который будет корректно выражен в документе WDSL. Вроде контракт получше в этом отношении, по крайней мере, в конкретном моём случае. AlexeiKваще честно тебе сказать, что ты пытаешься решить идеологическую проблему, с помощью вшивой идейки :) потому что "Процедур дофигища, каждая возвращают набор данных в виде единственной таблицы с фиговой тучей полей." вшивай идейкой не искоренишь. Да я без году неделю программирую на дотнете. у меня вообще идей нет. Есть только предположение о том, что я далеко не первый, кто с подобным столкнулся, и варианты решения существуют и не единствены. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 16:51 |
|
Самописный адаптер для контрактов WCF
|
|||
---|---|---|---|
#18+
up! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2012, 11:46 |
|
Самописный адаптер для контрактов WCF
|
|||
---|---|---|---|
#18+
НовыйЯ, что ап? ты токо оправдания написал. вопросов новых нету и не вникнул в "правда косяк то в чем. как тебе контракт деплоить(передавать клиенту)." ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2012, 14:53 |
|
|
start [/forum/topic.php?fid=19&msg=38007874&tid=1397174]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 275ms |
total: | 400ms |
0 / 0 |