Habrá quienes den con este blog queriendo saber qué es esto del .NET, con qué se come. En este primer post hablaré de lo que trata esta plataforma y los distintos ámbitos de desarrollo que abarca y para lo que nos es útil.
A final del siglo (y milenio) pasado, Microsoft estaba en la cúspide del mundo de la programación con su super fantabuloso Visual Studio 6.0, sobre todo por el magnífico y maravilloso Visual Basic 6.0. Bueno, tal vez estoy siendo algo sarcástico. Pero el punto es que a MS le estaba yendo muy bien con su suite de desarrollo.
El problema es que tenía a un competidor muy grande: Java. Un lenguaje de programación orientado a objetos, multiplataforma, de los más utilizados en el mundo del desarrollo de software. El hecho de no depender de un sistema operativo específico, ni de la arquitectura del equipo, era una de las mayores ventajas de Java. Microsoft tenía que hacer algo al respecto. Aunque claro, lo hizo a su manera.
Pasado el fin de milenio (y ya que vimos que todos sobrevivimos), Microsoft empezó a trabajar en su siguiente versión de Visual Studio, la cual incorporaría algo distinto a lo que hasta entonces se hacía. Fue así como lanzaron su Visual Studio 2002 (7), el cual integraba cambios muy drásticos para competir con Java. Aún no me queda claro si VB6 era un burdo y fallido intento de un lenguaje orientado a objetos, pero la verdadera entrada de Microsoft a este tipo de lenguajes fue con C#, Visual Basic.NET (VB7) y J#, los cuales eran incluidos en esta y las futuras versiones de Visual Studio. Con eso se ponían en el campo de batalla frente a Java, pero no era todo por hacer.
Java aún tenía un aspecto por combatir, y este era su máquina virtual, sobre la cual se ejecutan los programas compilados en el lenguaje, independientemente del sistema operativo o el hardware utilizados. Es aquí donde entra la principal arma de Visual Studio a partir de esa edición: Microsoft .NET Framework.
Ahora sí, ¿qué es .NET Framework?
Precisamente eso: .NET Framework es una plataforma sobre la cual se ejecutan las aplicaciones creadas en Visual Studio, y que es independiente de la arquitectura del equipo y también (en cierto modo) del sistema operativo.
Podemos ver a .NET como un intermediario entre la aplicación y la computadora. Es el sistema que se encarga de «traducir» nuestro programa al lenguaje máquina de nuestra computadora, una máquina virtual, pues.
Otro aspecto de .NET es que, al igual que los frameworks de cualquier lenguaje de programación, contiene toda una serie de herramientas, tanto visuales como funcionales, que facilitan nuestro trabajo de programación. Por ejemplo, si hablamos de sistemas que utilizan bases de datos, .NET incluye clases que nos permiten interactuar con esas BDs de manera sencilla, además de controles visuales para desplegar esa información obtenida, o modificarla sin tanto problema.
¿Multiplataforma? En cierto modo: el modo Microsoft
A diferencia de Java, .NET no es un sistema «multiplataforma» en el estricto sentido de la palabra. Recordemos que Microsoft es una empresa privada, y su propósito como tal es venderse. También tomemos en cuenta que es una de las empresas más conocidas por mantener al mercado dependiente de sus productos, en todos los ámbitos que abarquen. La idea de que .NET sea multiplataforma es defendida por la empresa, mas no implementada.
En casi diez años de vida y cuatro versiones, .NET sigue siendo desarrollado únicamente para sistemas Windows. Hay proyectos independientes para otras plataformas, como Mono y dotGNU, pero ninguno está a la altura del original, y es que mientras se intenta implementar completamente el framework en otros sistemas operativos, Microsoft ya lanzó una nueva versión, por lo que estos proyectos siempre quedarán un paso atrás.
¿Qué puedo hacer en .NET?
En .NET Framework podemos crear distintos tipos de aplicaciones:
En otros artículos hablaré más sobre los tipos de aplicaciones que se pueden crear en .NET. Mucho de lo que publique puede ser enfocado a un tipo de aplicaciones, pero hay cosas que son generales en .NET, más que nada en cuanto a aspectos funcionales.
¿Conviene usar .NET?
Bueno, esto depende de cada quien. Hay mucha crítica contra este framework. Y hay que ser realistas: muchas críticas son fundamentadas meramente en el repudio contra Microsoft. Pero eso no significa que .NET sea perfecto. Ya mencioné que está sujeto a la política de Microsoft de hacer todo porque uses únicamente sus productos, como lo hacen muchas compañías (Google, Apple…). Sí nos vemos limitados en este aspecto. No podemos crear un sistema multiplataforma, solamente uno multiwindows.
Pero eso sí les aseguro. Si van a crear una aplicación de Windows, realmente les recomiendo usar .NET. Precisamente porque está muy bien integrado a estos sistemas operativos. Crear sitios y aplicaciones Web en ASP.NET también es una muy buena opción, siempre y cuando no nos limitemos a lo que la plataforma nos ofrece, sino aplicar cuando conozcamos de HTML, Javascript, etc. Una gran ventaja es la de poder crear controles personalizados, y en Web nos abre todo un mundo de posibilidades, que hay que saber aprovechar.
Entonces, mi opinión es que .NET es muy recomendable para lo que está hecho: aplicaciones en ambiente Windows.
Sé que estuvo muy largo este post, pero hay muchas cosas que es importante conocer antes de entrar a programar bajo plataformas como ésta. Más adelante hablaré de los lenguajes de programación para .NET y de Visual Studio.
Nos vemos… o mejor dicho, nos leemos.