Como um simples Unity indie dev, Mono and.NET ainda me confundes. Quem é quem? Quem faz o quê?

Uso a unidade com o Visual Studio e o seu brilho. Mas estou confuso de como exatamente. net, Mono e unidade estão relacionados um com o outro. Não tenho experiência profissional na área, preciso de alguns esclarecimentos. Estas declarações são certas ou erradas ?

  1. o frameWork.NET não foi concebido para ser uma plataforma cruzada.
  2. O objetivo do frameWork. NET é projetar programas de uma forma unificada, e todos eles devem ser executados em uma máquina virtual.
  3. 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.
  4. 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.
  5. a Unity usa apenas o Mono frameWork, quer na edição, construção e execução de jogos.
  6. 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.
  7. 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.
  8. as ferramentas mono framework e a biblioteca são executadas num jogo com uma máquina mono virtual.
  9. o Dll construído com o framework. NET não é totalmente compatível com o mono.
Qual é a minha classificação? Onde estou? errado?
(Por favor, seja gentil. Inglês não é a minha primeira língua).

Author: RBT, 2018-02-05

1 answers

  1. 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.

    O objetivo do frameWork. Net é projetar programas de uma forma unificada, e todos eles devem correr e uma máquina virtual.
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]
  1. 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.
Sim. O núcleo da .NET tem as mesmas reivindicações. [4]
  1. 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]
  1. a Unity usa apenas o Mono frameWork, quer na edição, construção e execução de jogos.
Incorrecto. A unidade também usa o Script Unity para compor um jogo.

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

  1. 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.

  1. as ferramentas mono frameWork e a biblioteca são executadas num jogo com uma máquina mono virtual.
Depende.
  • no seu ambiente de trabalho enquanto executa o Editor Unity? - Sim.
  • implantado em execução num smartdevice / navegador? - não
  1. o Dll construído com o frameWork. Net não é totalmente compatível com o mono.
Incorrecto. É Mono que pode ou não ser totalmente compatível com o equivalente. NET Framework. [2]

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

 3
Author: MickyD, 2018-02-05 03:40:08