Есть ли современная замена для транзакций и функций пула в Enterprise Services? - PullRequest
5 голосов
/ 31 марта 2009

Я использую ServicedComponent от EnterpriseServices AKA Com + для

  • Распределенные транзакции
  • Простое программирование транзакций с использованием атрибутов
  • Объединение объектов

Вещи, которые мне не хватает в ком +

  • Отсутствие dll-версий
  • Боль от необходимости каждый раз менять компонент * gac & reg
  • Прикрепление отладчика

Я знаю, что WCF решает некоторые из тех же проблем, что и COM +. Но решает ли это все из них? Может ли кто-нибудь указать мне правильное направление?

Спасибо

Ответы [ 3 ]

7 голосов
/ 31 марта 2009

Я не очень знаком с плюсами и минусами COM +, но WCF был создан, чтобы заменить его и Enterprise Services на платформе .NET. Все случаи использования, о которых вы здесь упоминаете, встроены во фреймворк (объединение в пул, транзакции, управление версиями) и в значительной степени тривиальны для кода, если вы потратите время на изучение того, как оно хочет что-то делать. Когда вы настроите все правильно, у вас практически не будет предела тому, что вы можете с ним сделать.

WCF также лежит в основе того, над чем Microsoft работает в ближайшем и долгосрочном будущем (службы Azure). Я бы посчитал это выгодным вложением вашего учебного времени, особенно учитывая ваш опыт работы с COM +.

Я бы настоятельно рекомендовал книгу Ювала Лоуи в качестве хорошей отправной точки. Он, вероятно, примерно такой же авторитетный голос, как вы найдете по этому вопросу.

http://oreilly.com/catalog/9780596521301/?CMP=AFC-ak_book&ATT=Programming+WCF+Services%2c+Second+Edition%2c

Я бы также порекомендовал вам посетить веб-сайт его компании IDesign. Они не только предлагают отличное обучение, но и имеют очень полезную библиотеку расширений WCF под названием ServiceModelEx, которая предоставляет ряд служебных расширений / вспомогательных классов, которые значительно упрощают вашу жизнь в WCF.

http://www.idesign.net/idesign/DesktopDefault.aspx

Если вы ищете книгу с более обучающим стилем, книга Мишеля Леру Бустаманте тоже неплохая.

3 голосов
/ 31 марта 2009

Если вам нужны транзакции на основе атрибутов для компонентов, WCF может сделать это за вас. За исключением метафоры больше нет компонентов, как с COM +; сейчас это услуги в WCF. Тонкий, но важный сдвиг. WCF использует ту же транзакционную инфраструктуру (DTC), что и COM +.

Если вы просто хотите использовать COM + в .NET, это EnterpriseServices - та же модель, все равно нужно использовать развертывание DLL и управление версиями. По-прежнему можно получить пул и т. Д. Также можно получить паузу / резюме и некоторые другие новые функции ES.

Если вам нужна модель транзакционного программирования, вы можете использовать пространство имен System.Transactions.

Что касается пула объектов - посмотрите дважды. Возможно, стоит пересмотреть ваше использование пулов объектов. Несколько лет назад, предположения, сделанные отраслью, или понимание, которое у нас было, w.r.t. стоимость создания объекта привела нас к метафоре пула объектов. Эти предположения и понимания могут быть недействительными сегодня. Другими словами, пул объектов может или не может быть действительно полезным для вашего приложения. Это все еще в ES, но стоит подумать, нужно ли это вам.

0 голосов
/ 31 марта 2009

Вы должны взглянуть на Enterprise Services .

...