Portable.NET
# 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.

## 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

### pnet

contiene el entorno de ejecución, el compilador de C# y otras herramientas de desarrollo.

### pnetlib

Contiene las bibliotecas principales de C#, incluyendo: mscorlib, System, System.Xml, System.Drawing, System.Windows.Forms, etc.

### TreeCC

Herramienta de programación complementaria de Flex y Bison utilizada para ayudar en el desarrollo del compilador de portable.net, cscc.

### pnetC

Es la biblioteca para el compilador de C basada en glibc.

### ml-pnet

Algunas de las bibliotecas de mono son utilizadas junto con scripts de DotGNU que permiten utilizarlas con las herramientas de DotGNU.

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

