Pregunta

Ha System.Data en Mono ha ampliado para incluir funcionalidad adicional? Estoy tratando de hacer uso del Analizador de SQL escrito para Mono en Mono.Data.SqlExpressions pero cuando todas las clases del espacio de nombres SqlExpressions han incluido el proyecto sigue sin compilar porque las clases en System.Data no coinciden. < br> Ejemplo, System.Data.DataColumn no define el evento PropertyChanged. Voy a tener que utilizar las bibliotecas de Mono System.Data en su lugar? Cuando la clase Mono DataColumn se incluye en el proyecto no se produce este error de compilación (que hace referencia a clases como DataCategory, que no se encuentran en el marco .Net).

Por otra parte, cualquier ayuda en la forma de puerto de SQL Analizador de Mono para NET Framework de Microsoft sería apreciada. He intentado descargar el código fuente y añadir las bibliotecas que faltan para el proyecto, pero este enfoque parece defectuoso. El número de dependencias que faltan parece aumentar en lugar de resolver el problema.

¿Fue útil?

Solución

Mono trató de ser binario y API compatible con la aplicación de la EM. Eso significa que a excepción de algunos métodos de apoyo interno y las clases, todas las API expuestas por Mono deben coincidir con los 101 MS .Net de. Esto es para evitar complicaciones como la gente asumiendo que existe un método, ya que compila en Mono y entonces no funciona en MS.Net después de todo.

Cuando el nuevo código y características se implementan por Mono Colaboradores se incorpora habitualmente en un montaje y proyecto separado. Mono.Data como su nombre indica es una "extensión" tal modo que tiene sentido es necesario incluir todos los ensamblados dependientes para poder construirlo. Si Mono.Data.dll y sus deps se pueden ejecutar en MS.Net o no es una cuestión o control de la documentación y las pruebas a él.

En cuanto a la segunda pregunta que, no puedo decirle detalles, pero a menos que el código tiene CONSEJO específicos que se ejecutan en Windows que lo más probable es que requieren mucho trabajo al puerto. Al igual que con cualquier API mucho código no está expuesto a las interfaces públicas y las características internas de la aplicación necesitan ser resueltos en torno al portar el código. Yo sugeriría que tomar alguna vez analizar cómo funciona el código y luego tratar de hacer que se ejecute en MS.Net mediante la eliminación de la mayor cantidad de deps el código de Mono y cuando tenga sentido. Al final, si el código es lo suficientemente compatibles como usted debe considerar parches fuente de Mono con CONSEJO de compilación y #if! Pragmas MONO para ahorrar la molestia de los futuros usuarios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top