Domanda

È System.Data in Mono stata ampliata per includere funzionalità aggiuntive? Sto tentando di fare uso di SQL Parser scritto per Mono in Mono.Data.SqlExpressions ma quando tutte le classi nello spazio dei nomi SqlExpressions sono stati inclusi il progetto ancora non riesce a compilare perché le classi in System.Data non corrispondono. < br> Esempio, System.Data.DataColumn non definisce l'evento PropertyChanged. Avrò bisogno di utilizzare le librerie Mono System.Data invece? Quando la classe DataColumn Mono è incluso nel progetto di questo errore di compilazione non si verifica (si fa riferimento a classi come DataCategory, che non si trovano nel quadro Net).

In alternativa, qualsiasi aiuto su come porto Sql Parser in Mono a NET Framework di Microsoft sarebbe apprezzato. Ho tentato di scaricare la fonte e aggiungere le librerie mancanti al progetto, ma questo approccio appare viziata. Il numero delle dipendenze mancanti sembra aumentare, invece di risolvere il problema.

È stato utile?

Soluzione

Mono cercato di essere binario e API compatibile con l'implementazione di MS. Ciò significa che, a parte alcuni metodi di supporto interno e classi, tutte le API esposte da Mono devono corrispondere 101 con MS .Net di. Questo per evitare complicazioni come le persone assumendo un metodo esiste perché si compila in mono e quindi non funziona su MS.Net dopo tutto.

Quando nuovo codice e funzionalità sono implementate da Mono i contributi giunti di solito è incorporato in un montaggio e progetto separato. Mono.Data come suggerisce il nome è una tale "estensione" quindi ha senso è necessario includere tutti gli assembly dipendenti di essere in grado di costruirlo. Se Mono.Data.dll e le sue dipendenze verrà eseguito su MS.Net o no è una questione o il controllo dei documenti e testarlo.

Per quanto riguarda la seconda domanda si, non posso dirvi specifiche, ma a meno che il codice deve intructions specifici da eseguire su Windows è molto probabile che richiedono un sacco di lavoro in porto. Come con qualsiasi API un sacco di codice non è esposto alle interfacce pubbliche e le caratteristiche interne di attuazione devono essere elaborati in giro quando il porting del codice. Vorrei suggerire di prendere qualche tempo analizzando il funzionamento del codice e quindi provare a farlo funzionare su MS.Net rimuovendo tanto dipendenze sul codice Mono come ha senso. Alla fine, se il codice è sufficientemente compatibili si dovrebbe prendere in considerazione l'applicazione di patch fonte di mono con intructions compilazione e #if! Pragma MONO per risparmiare la fatica di futuri utenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top