none
Expor componente COM para .NET Framework RRS feed

  • Pergunta

  • Olá Fórum,

    Tenho um Componente Com desenvolvido pela SAP, que utilizo para acessar as informaçõe de sistema SAP, onde já utilizo no Visual Studio sem problema.

    Agora preciso utilizar este componente em outra ferramenta que suporta apenas Dll .Net, não suporta Dll COM. Então preciso achar alguma forma de convertar estar COM para Dll .Net ou criar tipo uma interface para esta COM.

    Alguém poderia me ajudar como posso fazer isto?

    Agradeço,

    Diego.

    quarta-feira, 23 de novembro de 2011 18:57

Respostas

  • Diego, crie uma camada em .net que chame os métodos do componente COM+. este procedimento é conhecido como wrapper, aonde você irá empacotar as funcionalidades do COM em uma biblioteca .Net.

    Ficaria até melhro se você distribuisse essas funcionalidades como um serviço, por exemplo uma aplicação WCF que empacota o COM+


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta hamiltonj sexta-feira, 25 de novembro de 2011 16:13
    • Marcado como Resposta Eder CostaModerator terça-feira, 29 de novembro de 2011 16:56
    quinta-feira, 24 de novembro de 2011 10:59
    Moderador

Todas as Respostas

  • Diego, crie uma camada em .net que chame os métodos do componente COM+. este procedimento é conhecido como wrapper, aonde você irá empacotar as funcionalidades do COM em uma biblioteca .Net.

    Ficaria até melhro se você distribuisse essas funcionalidades como um serviço, por exemplo uma aplicação WCF que empacota o COM+


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta hamiltonj sexta-feira, 25 de novembro de 2011 16:13
    • Marcado como Resposta Eder CostaModerator terça-feira, 29 de novembro de 2011 16:56
    quinta-feira, 24 de novembro de 2011 10:59
    Moderador
  • Diego, crie uma camada em .net que chame os métodos do componente COM+. este procedimento é conhecido como wrapper, aonde você irá empacotar as funcionalidades do COM em uma biblioteca .Net.

    Ficaria até melhro se você distribuisse essas funcionalidades como um serviço, por exemplo uma aplicação WCF que empacota o COM+


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Twitter @Olavooneto
    Se for útil marque como resposta e faça um Developer feliz :)

    Olá Olavo, hum, não sabia que este processo que é chamado de wrapper, vou procurar informações de como o fazer. Ainda não conheço WCF, vou procurar maiores informações isto também.

    Agradeço pelas informaçõçes.

    Diego Rodrigo,

    sexta-feira, 25 de novembro de 2011 12:16
  • Este software faz oque vc precisa...porem foi descontinuado, só que não conheço nada que faça igual, por este motivo uso ate hoje... 

    http://www.aurigma.com/Products/COMtoNET/

     

     

    sábado, 26 de novembro de 2011 18:18
  • Este software faz oque vc precisa...porem foi descontinuado, só que não conheço nada que faça igual, por este motivo uso ate hoje... 

    http://www.aurigma.com/Products/COMtoNET/

     

     

    Olá, desculpe por ressuscitar o tópico, mas que agora que consegui a voltar com este assunto.

    Mateus, utilizei este programa e criei um Interop que até funcionou, mas em alguns funções terei que editar as classes, pois o ferramente Case que estou utilizando não suporta alguns coisas da Orientação a Objetos como Cast, então teria que editar estas funções e tratar isto dentro do wrapper.

    Mas estou em dúvida em como fazer isto, estou fazendo como exemplo:

    namespace SapDiAPI
    {
        public class Company
        {
            SAPbobsCOM.Company oCompany = null;
    
            public Company()
            {
                oCompany = new SAPbobsCOM.Company();
            }
    
            public string Server
            {
                get
                { return oCompany.Server; }
                set{ oCompany.Server = value; }
            }
            
            public int Connect()
            {
                return oCompany.Connect();
            }
    }

    Onde SAPbobsCOM.Company é a classe do componente COM, e SapDiAPI.Company é a criada por mim.

    Mas isto me gerou um problema em lugares onde a propriedade do componente Com recebe SAPbobsCOM.Company, e eu vou ter SapDiAPI.Company, tentei fazer um Cast mas não deu certo, e isto me levou a pensar que talvez esteja fazendo da forma errada.

    Se alguém puder me dar uma ideia se estou no caminho certo ou errado, agradeço.

    terça-feira, 5 de junho de 2012 14:10