domingo, 7 de diciembre de 2008

¿Cómo compila .net?

El desarrollo de software y la programación es uno de los pilares fundamentales de la informática y al cual se dedican muchas horas de esfuerzo en empresas, colegios, academias y universidades.

Conforme la tecnología va avanzando aparecen nuevas soluciones, nuevas formas de programación, nuevos lenguajes y un sinfín de herramientas que intentan hacer la labor del desarrollador un poco más fácil.

La programación orientada a objetos o los compiladores basados en máquinas virtuales (en muchos casos, multiplataforma), también han supuesto una revolución en la forma de programar.

Microsoft, como empresa desarrolladora de software, es muy consciente de lo importante que es hacer buenos desarrollos y lo complicado que es; por eso, intenta aportar las mejores soluciones al mercado. Actualmente estamos en una época de transición, encaminados hacia un nuevo estilo de programación basada en estándares y para ello Microsoft propone la plataforma .NET.

Un compilador es la pieza base a la hora de desarrollar un programa. Hay compiladores para todos los lenguajes y su función es traducir un programa escrito en un determinado lenguaje a un idioma que el computador entienda.

Si estás interesado en el mundo de los compiladores, Microsoft propone una nueva forma de compilación de forma que se puedan construir programas multilenguaje, de forma que no va a ser necesario conocer muchos lenguajes, sino simplemente el que más te guste. Para ello, se propone una compilación en dos tiempos:




Compilación a código intermedio: Este tipo de compilación es la encargada de traducir desde el código fuente del programador a un lenguaje intermedio independiente de la plataforma.

Compilación JIT a código nativo: En este paso, el código intermedio es traducido a código nativo específico de cada plataforma.

Existen muchas maneras de definir el significado de “programación”, dependiendo del área en la que se engloba poseerá un significado distinto que en otro. Se puede entender la programación como la decisión anticipada de lo que hay que hacer; también se entiende como el conjunto de actividades dirigidas a la consecución de una serie de tareas de forma automática e independiente por un ordenador. Pero en el ámbito puramente informático se puede decir que la programación es la herramienta de la que disponen los desarrolladores de software para crear programas.

Al fin y al cabo, programar no es más que escribir mediante un programa determinado una secuencia de instrucciones pensado para resolver algún tipo de problema. Para ello se apoya en sentencias de control y en la sintaxis del propio lenguaje en el que se esté escribiendo, así pues se verán las sentencias de control de un modo genérico (sin estar ligadas a ningún lenguaje determinado) con ejemplos aclaratorios escritos en C#, para posteriormente ver cómo sería la sintaxis de un lenguaje y con que expresiones contamos para poder ir escribiendo esas secuencias de instrucciones.

Sentencias de control: las Sentencias de Control permiten modelar la estructura del código y el orden por el que irá leyendo el computador las distintas instrucciones.

Programación orientada a objetos: Un lenguaje orientado a objetos se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en base a ellos.

La Programación ha ido evolucionando al mismo ritmo que lo ha hecho la informática en general. Por este motivo, las técnicas y métodos actuales de programación son muy diferentes de los utilizados hace unos años. La plataforma .NET es la apuesta de Microsoft para el futuro desarrollo de aplicaciones.


Windows .NET Framework: Infórmate de los detalles sobre el funcionamiento de la plataforma .NET

Tecnologías auxiliares: Junto con .NET Framework, podemos encontrar un conjunto de tecnologías auxiliares: ASP.NET, ADO. NET y WinForms.

Capa de Presentación (ASP.NET): Descubre ASP.NET, una tecnología ideal para realizar el desarrrollo de la capa de presentación.

Servicios Web XML: Aquí encontrarás detalladas todas las características de los Servicios Web XML, qué son y cómo funcionan.

Acceso a datos con ADO.NET: ADO.NET es el nueva tecnología para acceso a Bases de Datos relacionada directamente con .NET

Acceso a datos con XML: XML es un standard de representación de datos sobre el cual se basa una parte muy importante de .NET

Compatibilidad ADO.NET - XML: Aprende en esta sección como XML y ADO.NET se complementan para proporcionar un control total sobre nuestros datos.

Windows .NET Framework se puede definir como “un entorno en tiempo de ejecución que facilita la escritura de códgio bueno y robusto de una forma rápida y sencilla, así como su instalación, administración y revisión”. Los componentes y programas que se escriben se ejecutan dentro de este entorno. Está compuesto, principalmente por tres partes:

  • Common Language Runtime (CLR)
  • Librería de clases unificada
  • ASP.NET

El potencial de Windows .NET Framework radica en una capa de abstracción que tiene denominada Common Language Runtime (CLR). Esta capa, entre otras cosas, contiene:

  • Compilador de lenguaje intermedio a código nativo.
  • Garbage Collector
  • Sistema de tipos: Esto permite la compatibilidad e interoperabilidad entre distintos lenguajes. Nos permite, por ejemplo, crear una clase con Visual Basic y que esta misma clase, se herede desde otra en C#. Aquí, entra en juego otra capa distinta, que es la Common Language Specification (CLS). No obstante, hay que tener en cuenta que no todos los lenguajes soportados por .NET son lo suficientemente potentes como para soportar todos los servicios que ofrece CLR.
  • Además, contiene otras funcionalidades como soporte de threads, un potente Debug, un manejador de excepciones, etc.
Otra de las características esenciales de .NET es la libertad que se le da al programador de elegir el lenguaje a utilizar. Si un lenguaje tiene un compilador de código intermedio y puede soportar los tipos de la capa CLS, entonces se puede utilizar dicho lenguaje para una aplicación .NET. Así mismo, existe una librería de clases unificada, independientemente del lenguaje a utilizar, lo que facilita enormemente la coexistencia de programas escritos en más de un lenguaje.

No hay comentarios: