title: Portable.NET
text: # Portable.NET
  
  Portable.NET es una suite de herramientas de software libre para compilar y ejecutar aplicaciones para la Common Language Infrastructure, más conocida como .NET.
  La plataforma inicial para la que se desarrolló fue GNU/Linux, pero DotGNU Portable.NET funciona también bajo Windows, NetBSD, FreeBSD, Solaris, y Mac OS X, entre otros. Además corre en una gran variedad de arquitecturas: x86, PPC, ARM, Sparc, s390, Alpha, ia-64, y PARISC.
  DotGNU Portable.NET busca la compatibilidad con las especificaciones ECMA-334 y ECMA-335 para C# y CLI, y con la implementación comercial.NET de Microsoft. El principal objetivo es facilitar el desarrollo de aplicaciones portátiles que funcionen tanto en la plataforma DotGNU Portable.NET como en Microsoft.NET.
  El proyecto Portable.NET tiene muchas semejanzas con el proyecto Mono de Novell. Ambos intentan proporcionar una alternativa a la tecnología.NET desarrollando una implementación libre del marco de aplicaciones y servicios.NET de Microsoft.
  
  # Portable.NET
  ## Componentes
  
  Los componentes principales de la suite son: treecc, pnet, pnetlib, a los que se suman los siguientes componentes opcionales: pnetc, ml-pnet y cscctest
  
  # Portable.NET
  ## Componentes
  ### pnet
  
  contiene el entorno de ejecución, el compilador de C# y otras herramientas de desarrollo.
  
  # Portable.NET
  ## Componentes
  ### pnetlib
  
  Contiene las bibliotecas principales de C#, incluyendo: mscorlib, System, System.Xml, System.Drawing, System.Windows.Forms, etc.
  
  # Portable.NET
  ## Componentes
  ### TreeCC
  
  Herramienta de programación complementaria de Flex y Bison utilizada para ayudar en el desarrollo del compilador de portable.net, cscc.
  
  # Portable.NET
  ## Componentes
  ### pnetC
  
  Es la biblioteca para el compilador de C basada en glibc.
  
  # Portable.NET
  ## Componentes
  ### ml-pnet
  
  Algunas de las bibliotecas de mono son utilizadas junto con scripts de DotGNU que permiten utilizarlas con las herramientas de DotGNU.
  
  # Portable.NET
  ## Cómo ejecutar programas en MSIL
  
  Se utiliza la orden ilrun seguida del nombre del ejecutable, con o sin su extensión.
  ilrun puede registrarse en el núcleo Linux de la siguiente manera: ilrun --register; esto permite ejecutar el programa sin necesidad de teclear ilrun cada vez. ilrun puede ser desregistrado de la siguiente manera: ilrun --unregister.