Como um simples Unity indie dev, Mono and.NET ainda me confundes. Quem é quem? Quem faz o quê?
- o frameWork.NET não foi concebido para ser uma plataforma cruzada. O objetivo do frameWork. NET é projetar programas de uma forma unificada, e todos eles devem ser executados em uma máquina virtual.
- o Mono é uma versão de código aberto de .net framework, projetado para ser cross plateform. Programas construídos com ele podem correr onde quer que haja uma máquina virtual mono.
- os programas construídos com o mono framework não podem ser executados, ou não são totalmente compatíveis com o.NET virtual machine.
- a Unity usa apenas o Mono frameWork, quer na edição, construção e execução de jogos. Os jogos construídos com unidade incorporaram mono framework e / ou mono virtual machine. Não preciso de ter uma estrutura. Net para construir ou correr. Jogos da União.
- os scripts C# que escrevi em Unity são executados por uma máquina virtual mono, antes e depois do tempo de construção.
Toda a biblioteca de código Público Unity engine é C++ embrulhada e não são na verdade C#, assim eles estão rodando no C++ side engine. - as ferramentas mono framework e a biblioteca são executadas num jogo com uma máquina mono virtual.
- o Dll construído com o framework. NET não é totalmente compatível com o mono.
(Por favor, seja gentil. Inglês não é a minha primeira língua).
1 answers
- o frameWork.Net não foi concebido para ser uma plataforma cruzada.
Depende se deseja incluir o say Linux nisso. Se você está perguntando se o. Net foi originalmente projetado para atingir o Linux então, no . No entanto, há o .net Compact Framework que permitiu o código. NET para executar o Xbox 360 e Windows Phone.
Existe agora o núcleo. NET, um framework livre e de código aberto que é projetado para plataforma cruzada, especificamente Windows, Mac e Distribuicao.
Sim. O termo correto é Motor de execução a propósito, não VM embora ambos estejam na mesma classe. Não pense no EE como algo semelhante ao vmWare onde as instruções da CPU são constantemente imuladas. . NET como Java e são uma forma de código-p no entanto. net conjuntos são JIT'D para a CPU atual, de modo a melhorar desempenho e executar nativamente na CPU. [1]O objetivo do frameWork. Net é projetar programas de uma forma unificada, e todos eles devem correr e uma máquina virtual.
Sim. O núcleo da .NET tem as mesmas reivindicações. [4]
- Mono é uma versão de código aberto do frameWork. Net, projetado para ser cross plateform. Programas construídos com ele podem correr onde quer que haja uma máquina virtual mono.
- os programas construídos com o mono frameWork não podem ser executados, ou não são totalmente compatíveis com a.Net virtual machine.
O Quadro Mono é muitas versões não é um 1: 1 do Framework. net equivalente.
Por exemplo
- o Mono não tem suporte para o WPF in. net 3.0 [2]
- o Mono não tem suporte para a WWF no. NET 3.0 [2]
- Mono não tem suporte para CodeContracts em. Net 4.0 [2]
Incorrecto. A unidade também usa o Script Unity para compor um jogo.
- a Unity usa apenas o Mono frameWork, quer na edição, construção e execução de jogos.
No entanto, há uma grande diferença para o tempo de execução, independentemente da sua escolha de Língua. Ao direcionar um navegador web via Unity Web Player, não há. net / mono EE. A plataforma é o Unity Web Player. Neste sentido, o. NET / Mono não é necessário na plataforma de destino. [3]
Os jogos construídos com unidade têm o mono framework e /ou mono virtual machine.
Incorrecto, ver acima
Não preciso. tem. NET frameWork para construir ou executar jogos Unity.
Correcto
- os scripts C# que escrevi em Unity são executados por uma máquina virtual mono, antes e depois do tempo de construção. Toda a biblioteca de código Público Unity engine é C++ embrulhada e não são na verdade C#, assim eles estão rodando no C++ side engine.
Incorrecto, não há correlação entre o idioma que escolhe usar para escrever o seu jogo de unidade e o. NET/Mono. EE está presente no tempo de execução.
Depende.
- as ferramentas mono frameWork e a biblioteca são executadas num jogo com uma máquina mono virtual.
- no seu ambiente de trabalho enquanto executa o Editor Unity? - Sim.
- implantado em execução num smartdevice / navegador? - não
Incorrecto. É Mono que pode ou não ser totalmente compatível com o equivalente. NET Framework. [2]
- o Dll construído com o frameWork. Net não é totalmente compatível com o mono.
Ver também
1 "a CLR é uma máquina Virtual?", MSDN
2 Compatibilidade, Mono
3 como funciona o Unity Web Player?, Quora
4 .net Core Framework-Go Cross-Platform with the .NET Framework, MSDN