Re[2]: c++ или с# для разработки com-приложения
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.05.11 08:52
Оценка: +1 :)
Здравствуйте, rm822, Вы писали:

M>>Полазил я в форумах, почитал и однозначного ответа на сабж не нашел. Задача: разработка in-proc com server, который будет испольщоваться в плагине для офиса (плагин написан на с++), на чем писать? Поскольку с С# я знаком не очень хорошо, то могу иметь лишь приблизительное представление о возможных проблемах.

R>кома на шарпе лучше не писать. Там гемор с деплойментом и весьма серьезный
R>-регасм _очень_ иногда глючит, и регистрация либы не проходит с 1го раза.
А можно кейс когда такое происходит? Я сколько сделал com-ов на C# проблем не видел.

R>-там идет биндинг к версии сборки, т.е. если ты зарегаешь сначала v1.1.1.2, а потом v1.1.1.1 — то это ахтунг — туши свет. Дотнет всегда будет пытаться найти 1.1.1.2 и _только_ ее. Сначала нужно разрегать 1.1.1.2, а потом регать 1.1.1.1 — иначе ничего не работает. А с учетом того что регасм иногда подглючивает получается феерический гемор.

http://msdn.microsoft.com/en-us/library/tzat5yw6(v=VS.100).aspx
Говорит что возможна sidebyside работа нескольких версий сборок. Я сам не пробовал.

R>PS: был еще какой-то геморрой с передачей массивов

Это скорее от того как массивы понимаются хост-приложением. Сам наталкивался на непонимание 1С-ом типов COM.
Re[5]: c++ или с# для разработки com-приложения
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.05.11 18:15
Оценка:
Здравствуйте, vdimas, Вы писали:

V>А если вручную CLR-хосты инициализировать? Разве нельзя их сколько угодно из разных DLL проинициализировать?


Хост может быть один на процесс. А вот доменов сколько влезет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: c++ или с# для разработки com-приложения
От: Tom Россия http://www.RSDN.ru
Дата: 10.05.11 14:28
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, michae1, Вы писали:


A>При написании плагинов на .Net для unmanaged приложений стоит помнить, что в один процесс может быть загружен только один runtime. Так чтое сть выпишете плагин на .Net 2.0, а кто-то другой на .Net 4.0, то кому-то из вас не повезёт.


Начиная с .NET 4 в процесс можно грузить несколько версий фреймворка
Народная мудрось
всем все никому ничего(с).
Re[2]: c++ или с# для разработки com-приложения
От: Tom Россия http://www.RSDN.ru
Дата: 10.05.11 14:30
Оценка:
O>Писать inproc-серверы можно и нужно на C++.
Ой не будьте так уверены, как человек который оочень хорошо знает COM и ATL в частности я бы 100 раз подумал бы прежде чем начинать писать в наше время используя C++/ATL. Особенно если писать надо что то большое и долгоживущее
Народная мудрось
всем все никому ничего(с).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.