¿C# es multiplataforma?
C#, incluidos otros lenguajes .NET, es multiplataforma en términos de implementación técnica, porque todos cumplen con el estándar de tiempo de ejecución público .NET después de la compilación. El código de bytes se traduce al tiempo de ejecución binario final. Tiempo de ejecución de la máquina virtual .NET.
Microsoft anteriormente limitaba C# a los sistemas operativos de Microsoft, lo cual era solo una consideración de competencia comercial. Se espera que la mayoría de los desarrolladores sigan desarrollando en torno al ecosistema de sistemas operativos de Microsoft.
C# ya es, por supuesto, un lenguaje de programación multiplataforma completo. Lo más poderoso es que C# es actualmente el único lenguaje de programación además de C++ que puede desarrollar terminales móviles y de PC, además de la plataforma Windows. Desarrollo de C#, y también ha completado el desarrollo de iOS/Android. No es necesario desarrollarlo por separado para cada plataforma como C++.
A partir de Mono, C# no parece ser verdaderamente multiplataforma
C# no fue multiplataforma desde el principio, a diferencia de lenguajes de programación como Java/Python/JavaScript. /PHP desde el principio es multiplataforma, lo que no es el caso de C#. C# no fue diseñado originalmente para ser multiplataforma.
Anders Helsberg, el padre de C# y el padre de Delphi, ha utilizado C# como herramienta de programación exclusiva de la plataforma Windows desde que lo diseñó. Por lo tanto, los funcionarios de Microsoft no son tan multiplataforma como Java.
Xamarin alberga un proyecto de código abierto llamado Mono. El propósito de este proyecto es crear una herramienta
.NET de código abierto, que incluye un compilador de C# y un marco de lenguaje común, en cooperación. con Microsoft oficial
La diferencia con .NET Framework es que el proyecto Mono no solo puede ejecutarse en la plataforma Windows, sino también en Linux, Unix, macOS, FreeBSD, Solaris, etc., e incluso en juegos. Se pueden ejecutar plataformas como Playstation3, Wii y XBox360 Mono All.
Más tarde, Microsoft adquirió la empresa Xamarin. Microsoft promovió oficialmente el código abierto de C# y
.NET, y Microsoft lanzó oficialmente la versión macOS de Visual Studio, que en realidad se basa en. xamarin.Se puede decir que este es el soporte oficial de Microsoft para el código abierto y multiplataforma del sistema de desarrollo central de Microsoft.
C# se puede utilizar en los siguientes marcos
.NETCore (plataforma completa, soporte totalmente multiplataforma para Linux, Windows, macOS), utilizado principalmente en desarrollo del lado del servidor, Web desarrollo de aplicaciones, además del desarrollo de sistemas empresariales, este aspecto es en el que los lenguajes de programación como C++/Java/PHP/Python son mejores;
Desarrollo de programas de escritorio de Windows, la tecnología principal es Marco WPF, este nivel de tecnología es en lo que C++ es mejor;
El principal lenguaje de secuencias de comandos del motor de juegos Unity, que se puede utilizar para desarrollar varios juegos en PC, Sony, Xbox y otras plataformas de juegos. Unity es uno de los motores de juegos más maduros en la actualidad, además del más fuerte de Unity. Es Unreal Engine. El lenguaje de programación principal de Unreal Engine es C ++. En términos relativos, C # tiene un umbral de aprendizaje más bajo, lo que también ha permitido a Unity desarrollarse rápidamente. en uno de los motores de juegos más populares;
Desarrolle aplicaciones móviles nativas. Además de la plataforma anterior de Windows Phone, a través de la tecnología Xamarin, Microsoft ha realizado el desarrollo de aplicaciones nativas para iOS/Android y, al mismo tiempo, también admite el desarrollo de aplicaciones macOS;
Los estándares .NET se utilizan en todas las aplicaciones anteriores. Biblioteca de creación de estándares .net.
Finalmente, resumamos las características de los lenguajes de programación multiplataforma: Java se escribe una vez y se ejecuta en todas partes, C++ se escribe una vez y se compila para una plataforma específica, y C# es esencialmente solo un lenguaje de programación. Si desea lograr plataformas multiplataforma, debe elegir diferentes pilas de tecnología y diferentes marcos.
Este artículo fue producido originalmente por EmacserVimer. No lo reimprima en ningún canal o plataforma sin permiso. Los infractores serán procesados.
.NET y C# fueron diseñados para ser multiplataforma cuando aparecieron por primera vez. Sin embargo, debido a consideraciones estratégicas de Microsoft, solo eran multiplataforma en ese momento y solo podían considerarse semi-multiplataforma. plataforma.
Después de eso, se introdujo Mono, que es una implementación
.NET de código abierto. En este momento, C# puede considerarse completamente multiplataforma. Sin embargo, después de todo, Mono es una implementación comunitaria y no cuenta con el apoyo financiero de grandes empresas. Aunque se está desarrollando de manera constante, siempre ha sido tibio.
Esta situación ha mejorado en los últimos años. Debido a que Microsoft finalmente tomó medidas, este es el famoso
.NETCore, la implementación oficial
.NET multiplataforma. Como lenguaje hijo de
.NET, C# es naturalmente multiplataforma.
El código de .NETCore está completamente reescrito y es modular. Por el contrario, la modularidad de Java no se implementó hasta Java 9.
Después de eso, Microsoft centró su trabajo en .NETCORE, y frameworks como ASP.NET y EF también desarrollaron nuevas versiones para adaptarse a .NETCORE.
Ahora
La versión de .NETCORE es 2.2. La principal novedad reciente es reescribir gran parte de la capa inferior con Span, lo que mejora enormemente la velocidad de ejecución. La versión 3.0 que llegará a finales de este año traerá bibliotecas GUI como WPF en CORE. Puedo esperarlo.
PD. Ahora Linux convencional ha incluido
.NETCORE en el almacén oficial, que se puede instalar con un solo comando. Después de eso, podrá disfrutar de la comodidad que ofrece el lenguaje C#.
El hermano Shitou ya te ha dado la respuesta. ?
Para ganar algunos fans, también responderé. C# es un lenguaje en .NET, al igual que F#, VB, etc. Generalmente no hablamos de C#, sino de .NET.
Actualmente, .NET cuenta con frameworks como .netframework, .netcore, xamarin y mono. En el futuro, comenzaremos con .NET5 para unificar el marco.
.net puede ser una arquitectura multiplataforma y multiCPU.
Soporta sistemas Windows, linux, mac, debain, ubuntu, centos y otros sistemas desarrollados en base a linux.
Además de las CPU Intel, se admiten CPU AMD y CPU con arquitectura ARM.
Además de los sistemas Windows y Linux que utilizamos habitualmente para ordenadores y servidores, también soporta varias placas de desarrollo integradas Linux como Raspberry Pi.
El lenguaje C es un lenguaje no administrado y debe generarse por separado para varias plataformas. .net se puede generar solo una vez y el software se puede ejecutar en varias plataformas. Una vez generado, se puede ejecutar en todas las plataformas, independientemente de la CPU o el sistema.
Para docker, k8s y otras tecnologías. .net se puede utilizar muy bien para construir sistemas a gran escala y desarrollar aplicaciones distribuidas a través de tecnologías de contenedores y clústeres.
Los países extranjeros tienen mucha experiencia en aplicaciones a gran escala, pero a nivel nacional no son muy sensibles a .NET y utilizan principalmente Java y otra programación para el desarrollo. Para referirse a la situación de .net, conviene acudir a Google para buscar información. El "entusiasmo" por .net en China no es alto.
.net es compatible con windows, mac, linux y otros sistemas, y admite computadoras, teléfonos móviles (Android e ios), servidores, placas de desarrollo/dispositivos de Internet de las cosas.
El software solo necesita generarse una vez y puede implementarse en varias plataformas.
El rendimiento de .netcore es muy cercano al de C++.
.net no sólo es multiplataforma, sino que también es muy multiplataforma.
Cross
Mono, una implementación de .netframework de terceros (ahora incluida oficialmente)
Casi implementa
todas las funciones de .netframework , incluidos winfrm, wcf, aspnetwebfrm, etc.
El famoso unity3d usa mono para implementar scripts usando C#
Xamarin
Está desarrollado en base a mono Mobile. marco multiplataforma, compatible con Android, iOS, WP (W10M)
.NETCore Supongo que no necesito mencionar esto.
C# es el principal lenguaje de desarrollo en la plataforma .Net, además de VB.Net y F#. La multiplataforma C# mencionada aquí se entiende temporalmente como multiplataforma .Net.
1. Cuando Microsoft diseñó .Net, solo admitía la plataforma Windows, en múltiples versiones de plataformas de sistemas Windows, pero no en Linux, etc.
2.Net hizo público el estándar de lenguaje tan pronto como salió, por lo que un equipo diseñó Mono basado en este estándar, además de Windows, también es compatible con Linux y lo ha estado manteniendo y actualizando. En este momento, se puede considerar como soporte multiplataforma.
3. En 2004, Niubi Game Company creó un motor de juego llamado Unity, que ahora solo admite C# y es muy popular.
4. Mono, admite el desarrollo móvil en plataformas Apple, Android y WP. En este momento, la multiplataforma .Net es aún más valiosa.
5. En 2016, Microsoft lanzó oficialmente .NetCore, que es inherentemente multiplataforma y es compatible con Windows, Linux, iOS, etc.
6. Más tarde, Microsoft adquirió Mono y Xamarin y los hizo gratuitos y abiertos.
¡En este punto, .NetCore multiplataforma domina el mundo!