Pergunta

O System.Data em Mono foi expandido para incluir funcionalidade extra? Estou tentando usar o analisador SQL escrito para Mono em mono.data.sqlexpressões, mas quando todas as classes no espaço nomes do SQLEXPressions foram incluídas, o projeto ainda falha em compilar porque as classes do System.data não correspondem.
Exemplo, System.data.datacolumn não define o evento PropertyChanged. Vou precisar usar as bibliotecas mono system.data? Quando a classe Mono Datacolumn está incluída no projeto, esse erro de compilação não ocorre (ele faz referência a classes como o DataCategory, que não são encontradas na estrutura .NET).

Como alternativa, qualquer ajuda sobre como portar o analisador SQL em Mono para a estrutura .NET da Microsoft seria apreciada. Tentei baixar a fonte e adicionar as bibliotecas ausentes ao projeto, mas essa abordagem parece falha. O número de dependências ausentes parece aumentar em vez de resolver o problema.

Foi útil?

Solução

Mono tentou ser binário e compatível com a API com a implementação da MS. Isso significa que, exceto por alguns métodos e classes de suporte interno, todas as APIs expostas pelo Mono devem corresponder 101 com o MS .NET's. Isso é para evitar complicações como as pessoas assumindo que existe um método porque ele se compila em Mono e, em seguida, não funciona no MS.NET, afinal.

Quando novos códigos e recursos são implementados por colaboradores mono, geralmente é incorporado em uma montagem e projeto separados. Mono.data como o nome sugere é uma "extensão", por isso faz sentido que você precise incluir todos os conjuntos dependentes para poder construí -lo. Se Mono.data.dll e seus depos funcionarão no ms.net ou não é uma questão ou verificar os documentos e testá -lo.

Quanto à sua segunda pergunta, não posso lhe dizer detalhes, mas, a menos que o código tenha intuções específicas a serem executadas no Windows, provavelmente exigirá muito trabalho para portar. Como em qualquer API, muito código não está exposto às interfaces públicas e os recursos internos da implementação precisam ser trabalhados ao portar o código. Eu sugiro que você aceite algum tempo analisando como o código funciona e, em seguida, tente fazê -lo executar no MS.NET, removendo o máximo de deícidos do código mono que faz sentido. No final, se o código for compatível o suficiente, considere corrigir a fonte do Mono com intuções de compilação e #if! Mono Pragmas para economizar o problema para os futuros usuários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top