Resumen Capítulo 1
*- La plataforma .NET da soporte al CLS (Common Language Specification), el cual detalla el comportamiento que deben tener los lenguajes compatibles. Incluye la especificación de tipos comunes (CTS – Common Type Specifications) detallando los tipos para todos los lenguajes .NET
*- C# es el lenguaje ideal para el desarrollo de cualquier tipo de aplicaciones de la plataforma .NET
*- El programa Hola Mundo ilustra los fundamentos de cualquier programa en C#
*- Los pasos a seguir son: escribir el código fuente en un archivo .cs, compilar y ejecutar.
*- El producto de la compilación no es código nativo sino que es código IL (Microsoft Intermediate Language). El CLR () convierte este código IL en un programa ejecutable en un proceso conocido como JIT (Just in Time)
Preguntas y Respuestas – Capítulo 1
1- Qué es ADO.NET?
Es la tecnología incluida en el Framework como reemplazo de ADO; provee un modelo de objetos para interactuar con proveedores de datos como por ejemplo bases de datos relacionales.
2- Qué es MSIL?
Es el código generado por el compilador. Se trata de código intermedio que es utilizado por el JIT para la generación de código ejecutable. La principal ventaja de este código IL es que diferentes lenguajes compatibles con .NET generan IL casi idéntico lo que permite utilizar componentes desarrollados en un lenguaje diferente siempre y cuando respete el CLS.
3- Cuales son los tipos de comentarios soportados en C#?
Existen tres tipos de comentarios soportados en C#. Los comentarios de bloque (/**/), los comentarios que afectan una sola línea de código (//) y por ultimo los comentarios de documentación XML (///)
4- Qué es un namespace?
Es simplemente una forma de organizar la jerarquía de clases comunes.
En la próxima entrada comenzaremos con el capítulo 2 de este tutorial donde veremos los fundamentos del lenguaje
Blog de desarrollo de aplicaciones web en ASP.NET (C#), orientado a desarrolladores de Latinoamérica y de habla hispana. Este blog también está dedicado a tecnologías e industrias como SEO y WEB 2.0 y en especial a uno de sus componentes fundamentales:AJAX y la implementación de Microsoft: ASP.NET AJAX Toolkit.
Mostrando las entradas con la etiqueta Tutorial CSharp. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Tutorial CSharp. Mostrar todas las entradas
miércoles, 2 de julio de 2008
martes, 1 de julio de 2008
CH01-02 - Primer programa en C# - Parte II
En esta entrada seguiremos viendo los elementos constitutivos de un programa simple en C#
Comentarios:
En este ejemplo simple podemos ver una línea que comienza con dos barras (//)
//Imprimir en pantalla
Esta línea se trata de un comentario en C#, no es mas que una nota o recordatorio o como su nombre lo indica un comentario :) que el desarrollador puede escribir sin afectar en nada la normal ejecución del programa. C# tiene soporte para tres tipos de comentarios como se detalla en la siguiente lista:
* Comentarios de bloque al estilo de C /* */
* Comentarios de línea al estilo C++
* Comentarios de documentación XML ///
Los comentarios al estilo C son utilizados para comentar bloques de código completos usualmente de muchas líneas. Comienzan con barra-asterisco y cierran con asterisco-barra. Por lo general se utiliza para deshabilitar de forma temporal bloques de código.
Los comentarios mas comunes que vamos a encontrar o utilizar son los del estilo de C++ de las doble barra (//) Este tipo de comentarios se aplican a una línea en particular desde su ubicación hasta el final de la línea, esto significa que podemos utilizarlos tanto al comienzo como en cualquier parte de la línea. Los ejemplos de abajo ilustran lo expuesto.
//Sumamos dos números
c = a + b;
c = a + b; //Sumamos dos numeros
El tercer tipo de comentarios son los comentarios de documentación XML. Aprenderemos más sobre esta poderosa característica mas adelante en este tutorial. Básicamente son comentarios pensados en describir las características de nuestros métodos, tipos retornados y parámetros recibidos para de tal forma que con una herramienta se colecte esta información para generar documentación a partir de estos comentarios especiales.
Los comentarios son una técnica muy poderosa si se utilizan bien. Una de las claves para tener éxito con los comentarios es agregar el propósito de
una determinada línea de código mas que la descripción de lo que la línea de código hace. Código bien escrito es código bien comentado. Mas de una vez nos sorprendemos de volver sobre código que escribimos hace no mucho y nos preguntamos cual fue el propósito de escribirlo de esa forma. Los comentarios también serán útiles para los pobres desdichados que deban leer nuestro código, por lo tanto no debemos escatimar esfuerzos en lograr un buen equilibrio entre cantidad y calidad de comentarios en nuestras aplicaciones.
Console
La última línea de nuestro programa de ejemplo es la que realiza todo el trabajo
System.Console.WriteLine("Hola Mundo!");
Lo primeros que tenemos que decir es que se trata de una aplicación de consola. Las aplicaciones de consola corren en una ventana de consola usualmente llamada una consola DOS. La consola es nuestro monitor y la aplicación simplemente escribe en la consola, por ello, en el monitor.
Las aplicaciones de consola son muy simples, con poco o nada de soporte para Interfaces Gráficas de Usuario (GUI). En los primeros capítulos de este tutorial vamos a realizar un uso intensivo de este tipo de aplicaciones de consola ya que nos permiten enfocarnos en las nociones del lenguaje sin tener que lidiar con las complicaciones de las interfaces de usuario.
Para este ejemplo diremos que C# maneja su consola a través del objeto Console. WriteLine es uno de los métodos de este objeto, el cual recibe un string como parámetro y su función es, como ya adivinaron, escribir en la consola (nuestro monitor)
Namespaces
Otra de las cosas que notamos es que Console esta precedida por System. System es el espacio de nombres (namespace) donde reside la clase Console. La librería de clases del framework de .NET posee miles de clases sumamente útiles. Cada clase posee un número de métodos. Los espacios de nombre ayudan a organizar de forma ordenada el agrupamiento de clases afines. Accedemos a las clases dentro de un namespace de la misma forma que invocamos un metodo dentro de una clase, con el operador punto (.). De esta forma accedemos a System.Console o bien System.Console.WriteLine("")
En la próxima entrada veremos un resumen de conceptos claves de este capítulo I, como así también preguntas y respuestas relacionadas a los temas expuestos.
Comentarios:
En este ejemplo simple podemos ver una línea que comienza con dos barras (//)
//Imprimir en pantalla
Esta línea se trata de un comentario en C#, no es mas que una nota o recordatorio o como su nombre lo indica un comentario :) que el desarrollador puede escribir sin afectar en nada la normal ejecución del programa. C# tiene soporte para tres tipos de comentarios como se detalla en la siguiente lista:
* Comentarios de bloque al estilo de C /* */
* Comentarios de línea al estilo C++
* Comentarios de documentación XML ///
Los comentarios al estilo C son utilizados para comentar bloques de código completos usualmente de muchas líneas. Comienzan con barra-asterisco y cierran con asterisco-barra. Por lo general se utiliza para deshabilitar de forma temporal bloques de código.
Los comentarios mas comunes que vamos a encontrar o utilizar son los del estilo de C++ de las doble barra (//) Este tipo de comentarios se aplican a una línea en particular desde su ubicación hasta el final de la línea, esto significa que podemos utilizarlos tanto al comienzo como en cualquier parte de la línea. Los ejemplos de abajo ilustran lo expuesto.
//Sumamos dos números
c = a + b;
c = a + b; //Sumamos dos numeros
El tercer tipo de comentarios son los comentarios de documentación XML. Aprenderemos más sobre esta poderosa característica mas adelante en este tutorial. Básicamente son comentarios pensados en describir las características de nuestros métodos, tipos retornados y parámetros recibidos para de tal forma que con una herramienta se colecte esta información para generar documentación a partir de estos comentarios especiales.
Los comentarios son una técnica muy poderosa si se utilizan bien. Una de las claves para tener éxito con los comentarios es agregar el propósito de
una determinada línea de código mas que la descripción de lo que la línea de código hace. Código bien escrito es código bien comentado. Mas de una vez nos sorprendemos de volver sobre código que escribimos hace no mucho y nos preguntamos cual fue el propósito de escribirlo de esa forma. Los comentarios también serán útiles para los pobres desdichados que deban leer nuestro código, por lo tanto no debemos escatimar esfuerzos en lograr un buen equilibrio entre cantidad y calidad de comentarios en nuestras aplicaciones.
Console
La última línea de nuestro programa de ejemplo es la que realiza todo el trabajo
System.Console.WriteLine("Hola Mundo!");
Lo primeros que tenemos que decir es que se trata de una aplicación de consola. Las aplicaciones de consola corren en una ventana de consola usualmente llamada una consola DOS. La consola es nuestro monitor y la aplicación simplemente escribe en la consola, por ello, en el monitor.
Las aplicaciones de consola son muy simples, con poco o nada de soporte para Interfaces Gráficas de Usuario (GUI). En los primeros capítulos de este tutorial vamos a realizar un uso intensivo de este tipo de aplicaciones de consola ya que nos permiten enfocarnos en las nociones del lenguaje sin tener que lidiar con las complicaciones de las interfaces de usuario.
Para este ejemplo diremos que C# maneja su consola a través del objeto Console. WriteLine es uno de los métodos de este objeto, el cual recibe un string como parámetro y su función es, como ya adivinaron, escribir en la consola (nuestro monitor)
Namespaces
Otra de las cosas que notamos es que Console esta precedida por System. System es el espacio de nombres (namespace) donde reside la clase Console. La librería de clases del framework de .NET posee miles de clases sumamente útiles. Cada clase posee un número de métodos. Los espacios de nombre ayudan a organizar de forma ordenada el agrupamiento de clases afines. Accedemos a las clases dentro de un namespace de la misma forma que invocamos un metodo dentro de una clase, con el operador punto (.). De esta forma accedemos a System.Console o bien System.Console.WriteLine("")
En la próxima entrada veremos un resumen de conceptos claves de este capítulo I, como así también preguntas y respuestas relacionadas a los temas expuestos.
lunes, 30 de junio de 2008
CH01-02 - Primer programa en C# - Parte I
Como marca la tradición de cada libro y tutorial de cualquier lenguaje de programación, comenzaremos por el programa más simple que se puede escribir y veremos en detalle sus partes constitutivas.
- Código Fuente:
Todo programa consiste básicamente de una cierta cantidad de lineas de código fuente. Este código fuente es el que el desarrollador escribe en un archivo (en nuestro caso, archivos con extensión .cs).
Luego este archivo de código fuente es compilado a IL (Microsoft Intermediate Languaje). Al ejecutar el programa, el CLR convierte el código IL en código nativo para la plataforma sobre la que se esta ejecutando. Una vez compilado este código se guarda en un cache de memoria de tal forma que la próxima vez que es invocado está listo para ejecutarse sin necesidad de volver a compilarse.
Aunque es un ejemplo de lo mas simple, es muy útil para ilustrar diferentes conceptos del lenguaje. Veamos en detalle parte por parte.
-Clases:
Lo primero que notamos es la palabra reservada "class" en la tercera linea: **class HolaMundo**
La palabra reservada class crea un nuevo tipo. Un tipo es una cosa y el mundo está lleno de cosas como una mesa, una silla, el telefono, etc. El perro, mi hermano, mis hijos son cosas también. El cielo es una cosa, las ideas del amor y el honor son cosas.
Como podemos ver, somos una especie orientada a cosas (objetos) y C# es un lenguaje orientado a objetos también. Algunas cosas son concretas (mesa, silla) y otras son abstractas (amor, libertad) y C# tiene la habilidad de representar ambos tipos.
Una clase define una nueva cosa o una nueva entidad. Un objeto es una instancia de una clase. Por ejemplo la palabra perro describe la generalidad de la idea y mi perro Snoopy es una instancia de la clase perro, es un perro especifico.
De la misma forma, en una aplicación Windows, la palabra botón describe como son los botones y que capacidades poseen los botnoes de una aplicación y los botones Aceptar, Cancelar o Imprimir son instancias especificas de la clase botón.
Las clases definen nuevos tipos. Desde la perspectiva del lenguaje, un tipo describe el tamaño y las capacidades de los objetos. C# provee un número de tipos propios (built-in) como int, long, double, y al mismo tiempo como desarrolladores podemos crear nuestros propios tipos.
- Metodos:
Si miramos el codigo dentro de la clase, encontramos el metod main:
Cada clase posee propiedades y comportamiento. De hecho, en C#, todo lo que sucede, sucede dentro de una clase. Por esta razón una clase no es solo una palabra clave del lenguaje sino es un concepto clave sobre el cual se fundamentan muchos otros conceptos.
El comportamiento de una clase está definido por sus métodos (funciones miembros). Los métodos son tipicamente nombres de acciones que un objeto determinado puede realizar, como por ejemplo ListarNombres o WriteLine. Cada programa debe tener un método especial llamado Main(), el cual no tiene un nombre de acción pero tiene un rol especial en cada programa: es el punto de entrada, esto significa que lo primero que se invoca al llamar a un programa es este método.
Otro aspecto de este metodo es que debe ser marcado como estatico, es decir anteponiendo la palabra reservada static. Mas adelante veremos que significa marcar un metodo con esta palabra reservada. Mientras tanto lo que necesitamos saber es que todo metodo Main() debe ser marcado como static.
De forma general, un metodo posee: un nombre, parametros y un tipo retornado. Cuando un métodono devuelve ningún tipo este tipo es void.
Por ejemplo veamos el siguiente codigo:
El nombre del metodo es SumarNumeros al cual se le pasan dos parametros de tipo entero y retorna otro tipo entero. Las variables que se pasan por parámetro actúan como varibales locales al método y son destruídas al finalizar la invocación al método.
Veremos en mayor detalle los conceptos de variables, su ámbito y alcance, como asi también invocaciones a métodos. Lo que necesitamos concoer a este nivel es la utilidad de los metodos en una clase: manipular los datos de la clase y permitir la interacción con otros objetos.
En la siguiente entrada continuaremos con el análisis de nuestro primer programa en CSharp. Veremos otros conceptos claves: comentartios, el objeto Console y namespaces.
- Código Fuente:
Todo programa consiste básicamente de una cierta cantidad de lineas de código fuente. Este código fuente es el que el desarrollador escribe en un archivo (en nuestro caso, archivos con extensión .cs).
Luego este archivo de código fuente es compilado a IL (Microsoft Intermediate Languaje). Al ejecutar el programa, el CLR convierte el código IL en código nativo para la plataforma sobre la que se esta ejecutando. Una vez compilado este código se guarda en un cache de memoria de tal forma que la próxima vez que es invocado está listo para ejecutarse sin necesidad de volver a compilarse.
namespace Tutorial
{
class HolaMundo
{
static void Main()
{
//Imprimir en pantalla
System.Console.WriteLine("Hola Mundo!");
}
}
}
Aunque es un ejemplo de lo mas simple, es muy útil para ilustrar diferentes conceptos del lenguaje. Veamos en detalle parte por parte.
-Clases:
Lo primero que notamos es la palabra reservada "class" en la tercera linea: **class HolaMundo**
La palabra reservada class crea un nuevo tipo. Un tipo es una cosa y el mundo está lleno de cosas como una mesa, una silla, el telefono, etc. El perro, mi hermano, mis hijos son cosas también. El cielo es una cosa, las ideas del amor y el honor son cosas.
Como podemos ver, somos una especie orientada a cosas (objetos) y C# es un lenguaje orientado a objetos también. Algunas cosas son concretas (mesa, silla) y otras son abstractas (amor, libertad) y C# tiene la habilidad de representar ambos tipos.
Una clase define una nueva cosa o una nueva entidad. Un objeto es una instancia de una clase. Por ejemplo la palabra perro describe la generalidad de la idea y mi perro Snoopy es una instancia de la clase perro, es un perro especifico.
De la misma forma, en una aplicación Windows, la palabra botón describe como son los botones y que capacidades poseen los botnoes de una aplicación y los botones Aceptar, Cancelar o Imprimir son instancias especificas de la clase botón.
Las clases definen nuevos tipos. Desde la perspectiva del lenguaje, un tipo describe el tamaño y las capacidades de los objetos. C# provee un número de tipos propios (built-in) como int, long, double, y al mismo tiempo como desarrolladores podemos crear nuestros propios tipos.
- Metodos:
Si miramos el codigo dentro de la clase, encontramos el metod main:
static void Main()
{
//Imprimir en pantalla
System.Console.WriteLine("Hola Mundo!");
}
Cada clase posee propiedades y comportamiento. De hecho, en C#, todo lo que sucede, sucede dentro de una clase. Por esta razón una clase no es solo una palabra clave del lenguaje sino es un concepto clave sobre el cual se fundamentan muchos otros conceptos.
El comportamiento de una clase está definido por sus métodos (funciones miembros). Los métodos son tipicamente nombres de acciones que un objeto determinado puede realizar, como por ejemplo ListarNombres o WriteLine. Cada programa debe tener un método especial llamado Main(), el cual no tiene un nombre de acción pero tiene un rol especial en cada programa: es el punto de entrada, esto significa que lo primero que se invoca al llamar a un programa es este método.
Otro aspecto de este metodo es que debe ser marcado como estatico, es decir anteponiendo la palabra reservada static. Mas adelante veremos que significa marcar un metodo con esta palabra reservada. Mientras tanto lo que necesitamos saber es que todo metodo Main() debe ser marcado como static.
De forma general, un metodo posee: un nombre, parametros y un tipo retornado. Cuando un métodono devuelve ningún tipo este tipo es void.
Por ejemplo veamos el siguiente codigo:
int SumarNumeros(int num1, int num2)
{
int resultado = 0;
resultado = num1 + num2;
return resultado;
}
El nombre del metodo es SumarNumeros al cual se le pasan dos parametros de tipo entero y retorna otro tipo entero. Las variables que se pasan por parámetro actúan como varibales locales al método y son destruídas al finalizar la invocación al método.
Veremos en mayor detalle los conceptos de variables, su ámbito y alcance, como asi también invocaciones a métodos. Lo que necesitamos concoer a este nivel es la utilidad de los metodos en una clase: manipular los datos de la clase y permitir la interacción con otros objetos.
En la siguiente entrada continuaremos con el análisis de nuestro primer programa en CSharp. Veremos otros conceptos claves: comentartios, el objeto Console y namespaces.
domingo, 22 de junio de 2008
CH01-01 Arquitectura .NET y Lenguaje C#
Con esta entrada vamos a comenzar un tutorial en C# (pronunciado CSharp) y temas relacionados con el .NET Framework 2.0.
Objetivos en la creación de C# (CSharp)
Este lenguaje fue diseñado con los siguientes objetivos en mente:
- Simple: C# es un lenguaje simple con 80 palabras reservadas y nua docena de tipos
- Seguro: C# es un lenguaje type-safe (seguro en tipos) lo que significa que el compilador está preparado para asistirnos en la prevención de errores mientras desarrollamos
- Orientado a Objetos: C# fue construido sobre las lecciones aprendidas de C++ y Java en lo que se refiere a orientación a objetos. Los objetos son los elementos fundamentales de toda aplicación y representan entidades reales del dominio de la aplicación que estamos construyendo.
- Centralizado en Internet: Este objetivo está relacionado con la idea de integrar las aplicaciones de escritorio con aplicaciones de Internet aprovechando la gran propagación de entornos conectados.
- De alto rendimiento: Finalmente, C# no sacrifica las características de alto rendimiento de los lenguajes de programación de la familia de C.
El Common Language Runtime (CLR)
El CLR ofrece la plataforma orientada a objetos para el desarrollo de aplicaciones tanto Windows como Web. Es el CLR quien interpreta el código de la aplicación e interactúa con la plataforma subyacente.
El CLR además es el host para el compilador JIT (Just in Time), los tipos intrínsecos y el soporte para el manejo de excepciones.
Arquitectura .NET
El framework de .NET ha sido construido en una capa por encima del CLR, el cual a su vez reside una capa por encima de la plataforma Windows. La siguiente figura nos ayuda a entender su arquitectura.
Vamos a explicar el gráfico comenzando por la capa inferior hasta la superior.
Como ya dijimos, la plataforma Windows es la primera capa por sobre la cual se encuentra el CLR con los elementos que ya explicamos.
Por encima del CLR encontramos las clases del framework propiamente dicho. El Framework es una colección de clases que de otra forma deberíamos escribir nosotros mismos. Estas clases incluyen entre otras, clases para el manejo de hilos, streams, seguridad, trabajo con archivos, etc.
ADO.NET es la capa construida encima del .NET Framework que nos provee una abstracción de alto nivel para trabajar con tablas y sus relaciones en una base de datos. Veremos en mas detalle mas adelante.
Por encima de todas las capas anteriores, encontramos el soporte para la creación de aplicaciones Windows, Web y Web Services. Los Web Services son aplicaciones web sin interfaz de usuario y proveen funcionalidad a otras aplicaciones. Ejemplos de web services son los servicios de clima proveyendo una determinada ubicación.
MSIL
MSIL (Microsot Intermediate Language) o simplemente IL es el código que genera la compilación de nuestro código fuente (nuestros archivos .cs). Se trata de código intermedio tal como su nombre lo indica y este código intermedio es traducido por el CLR a código nativo. Este código intermedio es el que permite utilizar diferentes componentes escritos en diferentes lenguajes que soportados por .NET. Podríamos por ejemplo en una aplicación escrita en C# utilizar un componente escrito en VB.NET ya que el código IL es virtualmente idéntico.
Esto ha sido todo por hoy, en la próxima entrada vamos a comenzar con nuestro primer programa escrito en C#. Como en todo tutorial, tendremos nuestro "Hola Mundo!" y explicaremos sus partes constitutivas.
Objetivos en la creación de C# (CSharp)
Este lenguaje fue diseñado con los siguientes objetivos en mente:
- Simple: C# es un lenguaje simple con 80 palabras reservadas y nua docena de tipos
- Seguro: C# es un lenguaje type-safe (seguro en tipos) lo que significa que el compilador está preparado para asistirnos en la prevención de errores mientras desarrollamos
- Orientado a Objetos: C# fue construido sobre las lecciones aprendidas de C++ y Java en lo que se refiere a orientación a objetos. Los objetos son los elementos fundamentales de toda aplicación y representan entidades reales del dominio de la aplicación que estamos construyendo.
- Centralizado en Internet: Este objetivo está relacionado con la idea de integrar las aplicaciones de escritorio con aplicaciones de Internet aprovechando la gran propagación de entornos conectados.
- De alto rendimiento: Finalmente, C# no sacrifica las características de alto rendimiento de los lenguajes de programación de la familia de C.
El Common Language Runtime (CLR)
El CLR ofrece la plataforma orientada a objetos para el desarrollo de aplicaciones tanto Windows como Web. Es el CLR quien interpreta el código de la aplicación e interactúa con la plataforma subyacente.
El CLR además es el host para el compilador JIT (Just in Time), los tipos intrínsecos y el soporte para el manejo de excepciones.
Arquitectura .NET
El framework de .NET ha sido construido en una capa por encima del CLR, el cual a su vez reside una capa por encima de la plataforma Windows. La siguiente figura nos ayuda a entender su arquitectura.
Como ya dijimos, la plataforma Windows es la primera capa por sobre la cual se encuentra el CLR con los elementos que ya explicamos.
Por encima del CLR encontramos las clases del framework propiamente dicho. El Framework es una colección de clases que de otra forma deberíamos escribir nosotros mismos. Estas clases incluyen entre otras, clases para el manejo de hilos, streams, seguridad, trabajo con archivos, etc.
ADO.NET es la capa construida encima del .NET Framework que nos provee una abstracción de alto nivel para trabajar con tablas y sus relaciones en una base de datos. Veremos en mas detalle mas adelante.
Por encima de todas las capas anteriores, encontramos el soporte para la creación de aplicaciones Windows, Web y Web Services. Los Web Services son aplicaciones web sin interfaz de usuario y proveen funcionalidad a otras aplicaciones. Ejemplos de web services son los servicios de clima proveyendo una determinada ubicación.
MSIL
MSIL (Microsot Intermediate Language) o simplemente IL es el código que genera la compilación de nuestro código fuente (nuestros archivos .cs). Se trata de código intermedio tal como su nombre lo indica y este código intermedio es traducido por el CLR a código nativo. Este código intermedio es el que permite utilizar diferentes componentes escritos en diferentes lenguajes que soportados por .NET. Podríamos por ejemplo en una aplicación escrita en C# utilizar un componente escrito en VB.NET ya que el código IL es virtualmente idéntico.
Esto ha sido todo por hoy, en la próxima entrada vamos a comenzar con nuestro primer programa escrito en C#. Como en todo tutorial, tendremos nuestro "Hola Mundo!" y explicaremos sus partes constitutivas.
Suscribirse a:
Entradas (Atom)