Вы бы использовали EnterpriseServices в новой корпоративной разработке?

Как вы, возможно, уже знаете, управляемый код (приложения.NET) может использовать COM+ через EnterpriseServices, делая такие задачи, как распределенные транзакции, пул ресурсов и синхронизацию, "проще для программирования", поскольку решения предоставляются COM+ в качестве вспомогательной инфраструктуры для приложения.,

Если ваши серверы приложений находятся в домене Windows, COM+ автоматически делает ваши приложения более масштабируемыми, обеспечивая пул потоков, пул объектов и своевременную активацию объектов. COM+ также помогает защитить целостность ваших данных, обеспечивая поддержку транзакций, даже если транзакция охватывает несколько баз данных по сети " (источник MS)

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

Это будет большая система, но вы знаете, что со временем она может стать намного больше. Допустим, это что-то вроде большого ERP, с распределенными транзакциями, происходящими постоянно. Наконец, предположим, что ядро ​​системы будет находиться в домене Microsoft Windows... делая выбор COM+ через System.EnterpriseServices (ES). Вам нужно будет сделать некоторые компоненты доступными для третьих лиц, и вы можете сделать это через WCF.

Итак, зная, что эта технология доступна и ваша среда совместима, вы бы ее использовали?

Если ответ отрицательный, все ли услуги COM+, такие как распределенные транзакции, доступны и просты в использовании в полностью управляемой среде?

2 ответа

Я, вероятно, не стал бы использовать EnterpriseServices, если вы еще не женаты на COM. Я думал о подобной проблеме этим утром, и если у вас есть опыт работы с COM, то EnterpriseServices - это находка. Двигаясь вперед, я бы выбрал более современную (.NET) инфраструктуру, потому что

  1. Проще найти разработчиков (и обучение)
  2. Программное обеспечение сторонних производителей будет ориентировано на.NET
  3. MS PSS более доступен для разработки.NET (я знаю, что они не прекращают поддержку COM, но попробуйте вызвать две разные проблемы и время ответа)

Нет.

У нас не было конца проблем (в основном неразрешимых утечек памяти в COM+ - вызванных различными битами взаимодействия COM +, на которые мы не могли повлиять), когда мы использовали.Net в COM+. Мы перешли на WCFServices, предоставляя функциональность бизнес-уровня, и свели наши распределенные транзакции к минимуму (т. Е. Транзакция завершена внутри службы WCF - единственный способ сделать это на самом деле). Используя встроенный.Net Transaction материал обрабатывает все, что нам нужно для обработки транзакций.

Я бы придерживался различных сервисных уровней WCF, чтобы показать функциональность. Держите один уровень внутренним и предоставляйте открытые сервисы на внешнем уровне, который связывается с внутренним уровнем. Это немного тяжело, но, кажется, масштабируется позже и обеспечивает безопасность, которую вы ожидаете (и требуете).

Другие вопросы по тегам