Microsoft cuenta ahora con .NET Core, .NET Framework y Xamarin (Mono) en su familia .NET.
Parece que hay un gran solapamiento. ¿Cuál es la diferencia entre estos tipos de .NET? ¿Cuándo debería elegir utilizar .NET Core en mi proyecto, en lugar de .NET Framework o Xamarin?
Debería utilizar .NET Core, en lugar de .NET Framework o Xamarin, en los siguientes 6 escenarios típicos según la documentación aquí.
Tenga en cuenta que a partir de junio de 2016, no todas las tecnologías dentro de Azure soportan .NET Core, pero el soporte de .NET Core en Azure aumentará dramáticamente ahora que .NET Core es RTM liberado.
3. Sistemas de mayor rendimiento y escalabilidad
Cuando su sistema necesita el mejor rendimiento y escalabilidad posibles para obtener la mejor capacidad de respuesta sin importar el número de usuarios, entonces es cuando .NET Core y ASP.NET Core realmente brillan. Cuanto más pueda hacer con la misma cantidad de infraestructura/hardware, más rica será la experiencia de sus usuarios finales, con un coste menor. Los días de las mejoras de rendimiento de la ley de Moore para las CPUs individuales ya no se aplican; sin embargo, usted necesita hacer más mientras su sistema está creciendo y necesita una mayor escalabilidad y rendimiento para los usuarios más exigentes de cada día que están creciendo exponencialmente en número. Tiene que ser más eficiente, optimizar en todas partes y escalar mejor a través de clusters de máquinas, VMs y núcleos de CPU, en definitiva. No es sólo una cuestión de satisfacción del usuario; también puede suponer una gran diferencia en el coste/COT. Por eso es importante esforzarse por conseguir rendimiento y escalabilidad. Como se ha mencionado, si puedes aislar pequeñas piezas de tu sistema como microservicios o cualquier otro enfoque débilmente acoplado, será mejor ya que podrás no sólo evolucionar cada pequeña pieza/microservicio de forma independiente y tener una mejor agilidad y mantenimiento a largo plazo, sino que también podrás utilizar cualquier otra tecnología a nivel de microservicio si lo que necesitas hacer no es compatible con .NET Core. Y eventualmente podrás refactorizarlo y llevarlo a .NET Core cuando sea posible.
Si quieres ser capaz de instalar aplicaciones con dependencias de diferentes versiones de frameworks en .NET, necesitas usar .NET Core que proporciona 100% side-by side como se ha explicado anteriormente en este documento.
6. Aplicaciones UWP .NET de Windows 10.
Además, es posible que también quiera leer:
Así lo explica Microsoft:
[]
.NET Framework es el sabor "completo" o "tradicional" de .NET que se distribuye con Windows. Utilícelo cuando cree una aplicación de escritorio de Windows o UWP, o cuando trabaje con ASP.NET 4.6+.
NET Core es una plataforma cruzada de .NET que se ejecuta en Windows, Mac y Linux. Utilícelo cuando desee crear aplicaciones de consola o web que puedan ejecutarse en cualquier plataforma, incluso dentro de contenedores Docker. Esto no incluye actualmente las aplicaciones UWP/de escritorio.
Xamarin se utiliza para crear aplicaciones móviles que pueden ejecutarse en dispositivos iOS, Android o Windows Phone.
Xamarin normalmente se ejecuta sobre Mono, que es una versión de .NET que se construyó para el soporte multiplataforma antes de que Microsoft decidiera pasar oficialmente a la multiplataforma con .NET Core. Al igual que Xamarin, la plataforma Unity también se ejecuta sobre Mono.
Un punto común de confusión es dónde encaja ASP.NET Core. ASP.NET Core puede ejecutarse sobre .NET Framework (Windows) o .NET Core (multiplataforma), como se detalla en esta respuesta: Diferencia entre ASP.NET Core (.NET Core) y ASP.NET Core (.NET Framework)
Puede consultar en esta línea - https://stackoverflow.com/questions/37684508/difference-between-asp-net-core-net-core-and-asp-net-core-net-framework/37684644#37684644
[]
Xamarin no es un debate en absoluto. Si quieres crear aplicaciones móviles (iOS, Android y Windows Mobile) utilizando C#, Xamarin es tu única opción.
El .NET Framework admite aplicaciones de Windows y web. Actualmente, puede utilizar Windows Forms, WPF y UWP para crear aplicaciones de Windows en .NET Framework. ASP.NET MVC se utiliza para crear aplicaciones web en .NET Framework.
.NET Core es el nuevo marco de trabajo de código abierto y multiplataforma para crear aplicaciones para todos los sistemas operativos, incluidos Windows, Mac y Linux. .NET Core sólo admite UWP y ASP.NET Core. UWP se utiliza para construir aplicaciones para Windows 10 y para móviles. ASP.NET Core se utiliza para construir aplicaciones web basadas en el navegador.
Si quieres más detalles, consulta estos enlaces https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server
El estándar .NET es el estándar (en otras palabras, la especificación) del ecosistema .NET.
; .Net La Biblioteca de Clases Centrales está construida sobre el Estándar .Net. NET Standard sólo puede hacer proyecto de biblioteca de clase que no puede ser ejecutado de forma independiente y debe ser referenciado por otro proyecto ejecutable .NET Core o .NET Framework. Si desea implementar una biblioteca que sea portátil al .Net Framework, .Net Core y Xamarin, elija una biblioteca .Net Standard**
...y la de los demás; (Puedes hacer un proyecto ejecutable (como la aplicación de la consola, o la aplicación ASP.NET) con el .NET Framework
.NET Core también un marco basado en .NET.
...y que se basa en la tecnología de la información..; Es el nuevo marco de trabajo de código abierto y multiplataforma para construir aplicaciones para todos los sistemas operativos, incluyendo Windows, Mac y Linux.
...y la de los demás; Apoyo a la implementación del estándar .NET[azul] y plataforma mínima viable para el apoyo total del estándar .NET (último: [https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support]) [![][1]][1]
NET Core es la versión actual del .NET que deberías estar usando ahora mismo (más características, errores corregidos, etc.)
Xamarin es una plataforma que ofrece soluciones para problemas móviles de plataforma cruzada codificados en C# , de modo que no es necesario usar Swift por separado para IOS y lo mismo ocurre con Android.
actualizado en mayo de 2019
...deberías usar el .Net Core 3.0 y más tarde actualizar a su próxima versión .Net 5, todo lo que necesitas es una plataforma unificada. Net5
Habrá un solo .NET en el futuro, y podrás usarlo para apuntar a Windows, Linux, macOS, iOS, Android, tvOS, watchOS y WebAssembly y más. https://devblogs.microsoft.com/dotnet/introducing-net-5/