martes, 20 de octubre de 2009

¿Qué es el .Net Framework?


.Net Framework es la solución de Microsoft como plataforma de programación segura, la cual ofrece varias ventajas como:
  1. Librerías de clase: provee las clases básicas para el manejo de tareas comunes (Interfaz de usuario, acceso a datos, colectividad, networking, criptografía, aplicaciones web, entre otros.
  2. Máquina Virtual: maneja la ejecución de los programas que se ejecutan.
  3. Administración de memoria y Garbage Collector (GC), la asignación y desasignación ahora es tarea del framework y el GC, ya que éste último se encarga de liberar la memoria que estaba siendo asignada a un objeto que ya no esté en uso.
  4. Manejo de excepciones.
  5. Ahora en la versión 3.0 están incluidas otras características como Windows Presentation Fundation, Windows Workflow Fundation, Windows Comunication Fundation y Windows Cardspace, de los cuales hablaremos en otras entradas.
  6. LINQ (en la versión 3.5): añade la capacidad de hacer consultas de dato nativas (tipo sql).
  7. ASP.NET Ajax.
  8. Seguridad
  9. Portabilidad
  10. Multiplataforma: gracias al proyecto Mono de Novel.

¿Cuáles son las etapas de la ejecución de una aplicación en .net?

Luego de que se termina de "echar código" como dicen muchos, se procede a compilar la aplicación, estas son etapas normales, donde antes el compilador tenia como salida código de máquina, ahora el compilador traduce todo nuestro código a MSIL, Microsoft Intermediate Language (Lenguaje intemedio de Microsoft) lo que quiere decir que nuestro programa no se "casa" con la plataforma actual (ejm: x86, x64, mobile, etc). Esto pasa con todos los lenguajes, sean C#, Visual Basic.Net, C++.Net, IronPython, etc. Gracias a esta "traducción" a MSIL es que pueden haber muchísimos lenguajes para .Net y que a la final todos tienen el mismo rendimiento.

Luego de que el programa esta precompilado y es ejecutado, ya sea por el usuario o por el IDE, el CLR (Common Lenguage Runtime) es el encargado de ejecutar las instrucciones de dicho programa y transformarlas en código nativo de la plataforma actual para que el procesador pueda entenderlas.


Críticas

Algunas personas han calificado al estos entornos Admistrados (.Net, Java) como de bajo rendimientos y acusados de utilizar demasiados recursos, pero por otro lado, cuando le ves el lado bueno, todas las opciones que te dan y las facilidades son tantas que esos pequeños problemas, en caso de que se presenten, pueden ser solucionados mediante Hardware.

Porque además, si necesitas hacer una aplicación Administrativa para la empresa Contoso (jajaja) y ellos necesitan que la termines en 1 mes por ejemplo, ¿Crees posible ese desarrollo en C++?, ¿No crees que al tardarte más aumentas los costos? por lo cual, utilizando .Net (o Java, etc) aumentas la productividad del desarrollo por lo que bajas costos y esto tiene como resultado: Cliente Feliz :)

Además si necesitas desarrollar una aplicación que requiera en verdad alto rendimiento, lo mejor es, obviamente C++, pero normalmente los proyectos son simples (en terminos de procesador) y salen muy bien en .Net.

Bueno espero haber respondido las dudas, de todas maneras pueden comentar en caso de necesitar más información o tener dudas.

Creditos de la imagen: Wikipedia.

y como siempre, gracias por leer!!

No hay comentarios:

Publicar un comentario