




Я только что потратил последние два дня, пытаясь заставить два моих старых бизнес-объекта COM + работать на новом Windows 2003 Server, и я уверен, что больше никогда не захочу работать с COM +.
WCF - это новый рекомендуемый механизм межобъектного взаимодействия.
COM + - это монитор транзакций, а не просто механизм IPC.
Что ты сделал? Прочитать COM + и перейти к ближайшей замене технологии? Я шокирован тем, что это ответ с наивысшим рейтингом, когда, скорее всего, даже нет необходимости использовать WCF. Архитектура оригинального проекта, скорее всего, неправильная. Прочтите, чего он пытается достичь.
COM + - это на самом деле просто MTS (Сервер транзакций Microsoft), переименованная и связанная с Windows 2000 и более поздними версиями (это было необязательным дополнением к NT4). Если вы используете неуправляемый код, COM + по-прежнему является предпочтительным вариантом для транзакционного среднего уровня. Фактически, он обычно используется в качестве монитора TP в тестовых системах TPC-C, потому что он более эффективен, чем .Net или Java, и намного дешевле, чем Tuxedo или Encina (что снижает $ / TPM).
WCF (Фонд связи Windows) имеет собственный монитор транзакций, что разумно, поскольку архитектура COM + тесно связана с COM, и было бы трудно модернизировать среду выполнения .Net. Если вы пишете транзакционное приложение в .Net, WCF предоставляет эту возможность, хотя библиотека System.Transactions также обеспечивает поддержку распределенных транзакций для клиентов ADO.Net.
Здесь много говорят о WCF, но я, честно говоря, не думаю, что это то, что вы ищете.
На заре ASP люди быстро поняли, что размещение всего кода на страницах разметки сложно поддерживать. В результате некоторые люди начали реализовывать многоуровневые проекты с использованием компонентов COM. Если вы намереваетесь просто построить DAL типичным многоуровневым способом, нет причин, по которым простой библиотеки классов будет недостаточно.
Рассмотрите возможность создания библиотеки классов, добавления ее в качестве ссылки на свой веб-проект и, конечно же, на ADO.NET.
От http://msdn.microsoft.com/en-us/library/ms686988(VS.85).aspx:
"COM+ is the next step in the evolution of the Microsoft® Component Object Model and Microsoft Transaction Server (MTS). COM+ handles many of the resource management tasks you previously had to program yourself, such as thread allocation and security. It automatically makes your applications more scalable by providing thread pooling, object pooling, and just-in-time object activation. COM+ also helps protect the integrity of your data by providing transaction support, even if a transaction spans multiple databases over a network."
Хотя это выглядит чем-то вроде устаревшего, я не думаю, что какая-то модная технология, предоставляемая Microsoft в настоящее время, может заменить COM +.
Я также столкнулся с проблемами при переходе с COM + на win2k3. В моем случае мне пришлось изменить настройки безопасности для моего приложения COM +. На вкладке «Идентификация» я изменил учетную запись с «Интерактивного пользователя» на новую учетную запись локального компьютера.