jueves, 24 de enero de 2013

Descubrir .NET



El Framework de .NET es una solución a toda la problemática en torno al desarrollo
de aplicaciones, brinda grandes beneficios no solamente al desarrollador, sino
también al proceso de desarrollo. En primer lugar .NET permite trabajar con
código ya existente, podemos hacer uso de los componentes COM, e incluso, si lo
necesitáramos usar el API de Windows. Cuando el programa .NET está listo es mucho
más fácil de instalar en la computadora de los clientes, que las aplicaciones tradicionales
ya que se tiene una integración fuerte entre los lenguajes.
Un programador de C# puede entender fácilmente el código de un programador de
Visual Basic .NET y ambos pueden programar en el lenguaje con el que se sienten
más cómodos. Esto se debe a que todos los lenguajes que hacen uso de .NET comparten
las librerías de .NET, por lo que no importa en qué lenguaje programemos,
las reconocemos en cualquiera. A continuación conoceremos los diferentes componentes
de .NET: CLR, assembly y CIL.
CLR
El primer componente de .NET que conoceremos es el Common Language
Runtime, también denominado CLR. Este es un programa de ejecución común a
todos los lenguajes. Este programa se encarga de leer el código generado por el compilador
y empieza su ejecución. Sin importar si el programa fue creado con C#,
con Visual Basic .NET o algún otro lenguaje de .NET el CLR lo lee y ejecuta.
Assembly
Cuando tenemos un programa escrito en un lenguaje de .NET y lo compilamos se genera
el assembly. El assembly contiene el programa compilado en lo que conocemos
como CIL y también información sobre todos los tipos que se utilizan en el programa.
CIL
Los programas de .NET no se compilan directamente en código ensamblador del
compilador, en su lugar son compilados a un lenguaje intermedio conocido como
CIL. Este lenguaje es leído y ejecutado por el runtime. El uso del CIL y el runtime
es lo que le da a .NET su gran flexibilidad y su capacidad de ser multiplataforma.
Breve historia de la programación para Windows
www.redusers.com 15
El Framework de .NET tiene lo que se conoce como las especificaciones comunes de
lenguaje o CLS por sus siglas en inglés, estas especificaciones son las guías que cualquier
lenguaje que desee usar .NET debe de cumplir para poder trabajar con el runtime.
Una ventaja de esto es que si nuestro código cumple con las CLS podemos tener
interoperabilidad con otros lenguajes, por ejemplo, es posible crear una librería en C#
y un programador de Visual Basic .NET puede utilizarla sin ningún problema.
Uno de los puntos más importantes de estás guías es el CTS o sistema de tipos
comunes. En los lenguajes de programación, cuando deseamos guardar información,
ésta se coloca en una variable, las variables van a tener un tipo dependiendo
del la información a guardar, por ejemplo, el tipo puede ser para guardar un número
entero, otro para guardar un número con decimales y otro para guardar una
frase o palabra. El problema con esto es que cada lenguaje guarda la información
de manera diferente, algunos lenguajes guardan los enteros con 16 bits de memoria
y otros con 32 bits; incluso algunos lenguajes como C y C++ no tienen un tipo
para guardar las cadenas o frases.
Para solucionar esto el Framework de .NET define por medio del CTS cómo van
a funcionar los tipos en su entorno. Cualquier lenguaje que trabaje con .NET debe
de usar los tipos tal y como se señalan en el CTS. Ahora que ya conocemos los
conceptos básicos, podemos ver cómo es que todo esto se une.

BREVE HISTORIA DE LA PROGRAMACIÓN PARA WINDOWS





Hace algunos años la única forma como se podía programar para Windows era
hacer uso de un compilador de C o C++ y de un API de Windows. El API es
una gran colección de funciones que se relacionan, las que nos permiten comunicarnos
con el sistema operativo. Por medio del API de Win32 se programaban
las ventanas, botones y demás elementos.

El problema de este tipo de programación es que el API de Win32 es realmente complejo
y enorme. Con miles de funciones en su interior, por lo que pocos programadores
podían conocerlo en su totalidad. Pero la complejidad no solamente estaba en
la cantidad de funciones, también en la sintaxis y la forma como se programa.
Para facilitar la programación de aplicaciones para Windows surgen diferentes opciones;
la finalidad de estos intentos era poder hacer las aplicaciones sin tener que
pasar por la complejidad de Win32. Uno de estos intentos fue conocido como
OWL; sin embargo, obtuvo más éxito MFC, creado por Microsoft.

MFC es un conjunto de clases que envuelve a Win32 y facilita su programación.
Con MFC los procesos más comunes se agrupan en funciones de tal forma que con
una simple llamada a una función de MFC se puede hacer una determinada tarea,
para la que antes necesitábamos por lo menos 10 llamadas en Win32 y muchos parámetros.
Sin embargo Win32 está debajo de MFC; la programación MFC simplifica
mucho las cosas, pero muchos programadores que venían del paradigma de programación
estructurada no se sentían a gusto con él.
Otra de las opciones que surgieron es Visual Basic, este lenguaje logró gran popularidad,
especialmente en Latinoamérica. Visual Basic también trabaja por arriba de
Win32, pero basa su sintaxis en el antiguo lenguaje Basic. Es muy sencillo de aprender
y una de las características que le dio gran popularidad fue la facilidad con la
que se podían crear interfaces de usuario y conectividad a bases de datos. Pero hasta
antes de la versión .NET, este lenguaje tenía ciertos limitantes ya que no se podía
llevar a cabo programación orientada a objetos con él.

Otro lenguaje que surge, pero con su propio Framework, es JAVA; su principal
ventaja es ser multiplataforma. Una de sus características es el uso de un runtime,
la aplicación en lugar de correr directamente en el microprocesador, se ejecuta
en un programa llamado runtime y este se encarga de ejecutar el código en el microprocesador
correspondiente. Si se tiene el runtime para Windows, sin problema
se ejecuta el programa de JAVA.

Cuando nosotros deseábamos tener un programa que se pudiera ejecutar, era necesario
compilarlo. Cada uno de los lenguajes tenía su propio compilador, por ello no era
sencillo poder compartir código de C++ con código de Visual Basic ya que el traducir
entre lenguajes era difícil. Para poder compartir código entre los lenguajes surge un mo-
delo conocido como COM, éste nos permite crear componentes binarios, esto quiere
decir que es posible programar un componente en Visual Basic y un programador de
C++ puede tomarlo y hacer uso de él. Esto se debe a que el componente ya es código
compilado y no código fuente en el lenguaje de origen; la programación de COM también
tenía sus complejidades y surge ATL para ayudar en su desarrollo.

Con todo esto, llega el momento en el cual es necesario ordenar, facilitar y organizar
el desarrollo de las aplicaciones para Windows, con esta filosofía surge .NET.

EVOLUCIÓN Y CONCEPTOS WEB 2.0



Hoy por hoy, los blogs son una parte importante de la Web 2.0, término usado para
describir diversas tecnologías utilizadas en la construcción de aplicaciones web, y
la forma en que los usuarios interactúan con ellas. Si bien el término es resistido por
algunos, se refiere también a una concepción de la Web que implica una mayor colaboración
del usuario en la generación de sus contenidos.
Además de los blogs, que permiten a cualquier persona subir sus propios contenidos
a la Web con mucha facilidad (y a otros usuarios participar en forma activa
a través de sus comentarios), hay muchos otros ejemplos de aplicaciones Web
2.0 que han cambiado nuestra forma de navegar por Internet:
Wikipedia: creada por Jimmy Wales en 2001, revolucionó el concepto tradicional
de enciclopedia al permitir a cualquier usuario modificar y agregar contenidos
en ella, incluso en forma anónima. Luego de resistir los embates de sus detractores,
que auguraban un fracaso de la idea, Wikipedia es la enciclopedia más
completa del mundo, con más de 10 millones de artículos en más de 250 idiomas.
Corregida y aumentada en forma constante por una comunidad de miles de
usuarios, se la considera más confiable que la propia Enciclopedia Británica.






Flickr y YouTube: el auge de los teléfonos celulares y de las cámaras digitales convirtió
a la Web en el medio ideal en donde subir fotos y videos. Si bien ya existían otros
servicios para compartir imágenes entre familiares y amigos, el éxito descomunal de

ambos servicios se debe en especial a su fuerte componente de comunidad. Los usuarios
pueden comentar las fotos y los videos, calificarlos, clasificarlos, crear grupos de
intereses afines, y un sinnúmero de formas de interactividad.



Delicious y Google Bookmarks: los enlaces favoritos existen desde los tiempos
del navegador Netscape. Sin embargo, la brillante idea de almacenar nuestros sitios
favoritos en un sitio web y al mismo tiempo compartirlos con otras personas permitió
una clasificación de la Web a nivel humano que antes no existía. Por supuesto,
también nos brinda la posibilidad de acceder a nuestros sitios favoritos desde
cualquier computadora con conexión a Internet.

Google Docs: la suite de aplicaciones online de oficina creada por Google empezó
a convertir en realidad la idea de que la única aplicación necesaria es el navegador,
y que todo lo demás podemos hacerlo a través de la Web. Incluye un procesador de
texto, hoja de cálculo y creador de presentaciones, y es capaz de abrir y guardar documentos
en formato de Microsoft Office. Al ser una aplicación online, permite
compartir documentos con otras personas para trabajar en forma colaborativa.



Bloglines y Google Reader: la posibilidad de acceder a medios informativos de todo
el mundo, incluyendo miles de blogs, hizo necesaria una tecnología que nos permitiera
acceder a los contenidos, a medida que éstos son actualizados. Los lectores
de feeds nos permiten acceder a todas nuestras fuentes de información desde la misma
aplicación online y, además, compartir estos contenidos con otras personas.


Ya consolidados como opción informativa, los blogs ofrecen al lector nichos de contenido
que los medios de comunicación tradicionales nunca considerarían cubrir.
Por ejemplo, a ningún diario se le ocurriría hacer un suplemento dedicado a cuán
realistas son los fenómenos físicos en las historias de ciencia ficción, y, sin embargo,
el blog Física en la Ciencia Ficción (http://fisicacf.blogspot.com) se ocupa
justamente de eso y es uno de los más visitados de la blogósfera en español.



Además, las redes comerciales de blogs salieron a competir fuerte con otros medios
online, y sus bloggers son cada vez más tomados en cuenta. Por otro lado, las empresas
utilizan sus blogs corporativos para ganar en transparencia al comunicarse de
manera directa con sus clientes.
El futuro es auspicioso para los bloggers, en todo sentido. Los blogs crecen cada vez
más en audiencia y cantidad, al mismo tiempo que aumenta la inversión de las empresas
en la publicidad online. Esto permitirá que haya cada vez más blogs periodísticos
mantenidos por profesionales que podrán alcanzar el sueño del medio de
comunicación propio y sustentable.




Aplicaciones ASP.NET


Más de quince años han pasado desde
que la Web se instaló entre nosotros, y es
por eso que cada vez más aplicaciones de
escritorio se incorporan dentro de los
navegadores. Incluso, la mayoría de las
compañías del mundo ya comprende que,
tarde o temprano, todas sus aplicaciones
de gestión terminarán corriendo en los
browsers. Visual Basic 2010 incluye el
soporte necesario para desarrollar
aplicaciones web que cumplan con todos
los requerimientos de los usuarios.




QUÉ ES UNA APLICACIÓN WEB

Junto con el nacimiento de los sistemas operativos para computadoras personales,
llegaron las aplicaciones que volvían útiles a estas máquinas. Procesadores de textos,
planillas de cálculo y pequeñas bases de datos, entre otras más, permitieron aprovechar
al máximo el uso de una computadora.
Esta situación mejoró aún más con la llegada de los sistemas operativos como
Windows, que permitieron correr más de una aplicación a la vez. Luego llegaron
las redes LAN y, por último, Internet. Si bien la gran Red de redes en un principio
era lenta y en su mayoría estática, el avance de las tecnologías y la visión de
futuro de muchos gurúes informáticos ayudaron a mover el motor de los avances
tecnológicos en torno a Internet. Microsoft comprendió que el mundo web necesitaba
una herramienta de calidad, del mismo estilo que Visual Basic, y decidió
crear ASP.NET. Esta es la parte del framework .NET que permite desarrollar aplicaciones
basadas en Internet. Para todos los programadores que quieren adaptar
sus conocimientos al mundo de hoy, esta herramienta fue la más revolucionaria
creada por Microsoft, dado que conservó la simpleza de desarrollo de aplicaciones
RAD, a la cual la empresa ya tenía acostumbrados a todos los desarrolladores,
junto con la integración de servicios web y conexión a bases de datos. ASP.NET
integra dos tecnologías diferentes pero estrechamente relacionadas: los Servicios Web
y los Web Forms.


Las aplicaciones ASP.NET están basadas en la Web, con lo cual necesitamos un
servidor apropiado para correrlas. Si nuestros desarrollos web serán instalados sobre
Internet, tenemos en el mercado una amplia variedad de proveedores de hosting que
ofrecen planes basados en IIS (Internet Information Services), para que todos nuestros
desarrollos web se ejecuten sin problema alguno. Internet Information Services
es un servidor web que se instala en computadoras que corren Windows Server.
Las primeras versiones de IIS fueron creadas para ser ejecutadas tanto en Windows
9x hasta XP profesional, como en Windows NT Server, 2000 o 2003 Server.
Desde las últimas versiones, Microsoft solo permite correr IIS en Windows
Server, a raíz de diferentes problemas de compatibilidad que sufría entre las
versiones de escritorio y servidor de Windows. De todos modos, podremos apreciar
que cada ejercicio ASP.NET que realicemos puede probarse en nuestro
entorno de escritorio sin ningún problema.
Visual Studio Express o superior incluye un servidor web que se ejecuta de
manera automática cada vez que corremos nuestro proyecto.

Concepto de Web Forms
Al instalar el framework .NET, se registran extensiones de archivos nuevas en
Internet Information Services. Una de ellas es .ASPX, la cual identifica una de las
páginas denominada Web Form. Los Web Forms son aplicaciones con una interfaz
de usuario basada en la Web, a las cuales se puede acceder mediante un browser.
Dichas páginas son la evolución de lo que se conocía antiguamente como Active
Server Pages (ASP). La funcionalidad de este mecanismo es que, cuando un
explorador web, denominado cliente, solicita un archivo con la extensión .ASPX,
se carga de manera automática en memoria el componente asp-net_isapi.dll para
procesar dicha solicitud. Dado que ASP.NET utiliza una extensión distinta de la
antigua ASP, ambas pueden convivir dentro del mismo servidor IIS. Al igual que
sucede con las aplicaciones XAML, las páginas .ASPX pueden crearse con un
simple editor de textos, como el Bloc de Notas, pero en la era de los diseños
visuales, Microsoft provee de todo lo necesario para que nuestros desarrollos sean
catalogados como RAD.