c# - .net standard vs.net framework
Diferencias en el desarrollo entre.NET y Mono (8)
Mono tiene una implementación completamente funcional de ASP.NET. Esto incluye soporte completo para formularios web y servicios web ASP.NET. Básicamente, esto significa que más o menos cualquier aplicación ASP.NET que haya desarrollado utilizando .NET Framework funcionará con Mono. Obviamente, es posible que se necesiten cambios, como cambios en el acceso a los datos, eliminación de cualquier dependencia en los tipos de BCL de .NET Framework. Mono- Usuarios de Oracle- .Net Programación C #: ubuntu 11.04
Estoy buscando en Mono y .NET C # y necesitaremos ejecutar el código en servidores Linux en el futuro cuando se desarrolle el proyecto. En este punto he estado mirando ASP.NET MVC y Mono.
Ejecuto una distribución Ubuntu y quiero hacer el desarrollo para una aplicación web, algunos de los otros desarrolladores usan Windows y ejecutan otros elementos .NET con Visual Studio.
¿Qué no proporciona Mono que hace Visual Studio?
Si ejecutamos esto en Linux más tarde, ¿no deberíamos usar MonoDevelop?
¿Existen algunas herramientas de terceros o complementos que podrían ser un problema con Mono más adelante?
No necesita MonoDevelop para ejecutar el programa ASP.NET en Linux, cree una carpeta compartida en su servidor de desarrollo (VMWare''d o real), haga una prueba a menudo para poder solucionar fácilmente lo que falta en Mono
Ese es el mismo enfoque que estoy usando en mi programa .NET Remoting que tengo en el servidor Ubuntu. Pero hago lo contrario, ya que soy un programador solo, hago una carpeta compartida en mi máquina de desarrollo de Windows y luego accedo a esa carpeta compartida en mi servidor de prueba de Ubuntu (vmware''d). En ASP.NET, si los cambios no se reflejan en su servidor de prueba de Ubuntu, en la Terminal solo toque el archivo Web.Config en su servidor de prueba de Ubuntu. es decir, touch Web.Config
, luego actualice la página
No tengo mucha experiencia en esta área pero ...
La Hoja de ruta del proyecto Mono tiene una descripción general de las características nuevas, futuras y no presentes en Mono en comparación con MS.NET. Incluso cuando Mono tiene las mismas clases que .NET, tenga en cuenta que la compatibilidad no es del 100% (aunque ese es generalmente su objetivo). No estoy seguro si existe una lista completa de cosas que faltan en Mono.
MonoDevelop ahora está disponible tanto en Windows como en Linux, por lo que probablemente sea mejor que lo utilices. Sin embargo, parece que MonoDevelop usa el mismo formato de archivo de proyecto que Visual Studio y SharpDevelop, por lo que podría intentar mezclar IDE.
Por supuesto, cuando utilice bibliotecas .NET de terceros, tenga en cuenta que muchas de ellas no se han probado con mono, y en particular todo lo que usa P / Invoke no funcionará en Mono para Linux. Sin embargo, la mayoría de las incompatibilidades con mono son menores, y si te quedas con las bibliotecas de código abierto, siempre puedes solucionar cualquier incompatibilidad con la que te encuentres.
Si ninguno de sus desarrolladores necesita desarrollar en Mono para ciertas funciones, sugiero que todos usen Visual Studio en Windows. Luego prueba las aplicaciones en Mono vía
- Mono Tools para Visual Studio
- copiar manualmente los binarios sobre
- Revisa el código en Linux y compila en MonoDevelop.
Personalmente experimenté muchos problemas pequeños cuando probé la tercera vía, pero afortunadamente soy capaz de encontrar soluciones.
Solo cuando toca Mono, sabe qué parte de su aplicación necesita ser sintonizada.
Si puede evitarlo, le recomendamos que evite la implementación Mono de Remoting. Parece que hay algunos contratiempos inesperados y depurar no es sencillo.
Tuvimos un producto muy remoto que intentamos trasladar a Mono para que pudiéramos soportar Linux. Debido a que no pudimos resolver los problemas de Remoting, finalmente tuvimos que abandonar nuestros intentos de soportar Linux por completo.
Advertencia : mis experiencias pueden estar desactualizadas. Ver comentarios abajo
También puede echar un vistazo a Mono Tools para Visual Studio . Permite a los desarrolladores de tu estudio visual apuntar y probar con la plataforma mono.
Tu objetivo es tener siempre soporte y / o usar principalmente el software en Linux, ¿correcto? Esta es en realidad una pregunta que le hice a los desarrolladores de Mono en una conferencia hace un tiempo, y básicamente se redujo a lo que quieres hacer con ella.
Si quieres que funcione siempre en Linux, usa Mono. Si solo te importa Windows, entonces usa Visual Studio.
Si está usando Mono, entonces use MonoDevelop en todos los desarrolladores. Más adelante, hará que la vida sea mucho más fácil y se asegurará de que cualquier cosa que escriba en la misma funcionará para todos.
Desafortunadamente, no conozco la respuesta a los límites / ventajas exactos de Mono frente a .NET, aparte de que .NET está más adelantado, y que Mono está al día, ni acerca de los diferentes complementos.
¿Qué no proporciona Mono que hace Visual Studio?
MonoDevelop es probablemente lo que quieres decir aquí. MonoDevelop ofrece desarrollo multiplataforma en Linux, Mac OS X, Windows basado en GTK. Sin embargo, no está tan pulido como Visual Studio por razones obvias: son 3 personas las que lo hacen, no cientos. Tiene algunas características interesantes, especialmente su arquitectura de complemento de control de fuente. Sin embargo, como Visual Studio Express es gratis, no hay muchas ventajas en Windows para usarlo.
Utiliza el mismo formato .csproj
y .sln
que Visual Studio, sin embargo, el formato de documentos XML es diferente.
Si ejecutamos esto en Linux más tarde, ¿no deberíamos usar MonoDevelop?
Como mencioné anteriormente, los formatos del proyecto son interoperables.
¿Existen algunas herramientas de terceros o complementos que podrían ser un problema con Mono más adelante?
A diferencia de Visual Studio, no hay una gran cantidad de complementos para Monodevelop. Los que usa en Monodevelop no afectarán sus archivos .csproj, ya que Visual Studio no puede leerlos, por lo general, los ignora.
Como la gente ha dicho, no confundas a Mono con MonoDevelop. MonoDevelop es un IDE para Mono que originalmente vino de SharpDevelop (bifurcado).
Mono es el marco multiplataforma que "imita" a las bibliotecas CLR y framework de Microsoft.