Sunteți pe pagina 1din 7

Programacin II

Introduccin a C#
C# (ledo en ingls C Sharp y en espaol C Almohadilla) es el nuevo lenguaje de propsito general diseado por Microsoft para su plataforma .NET. Sus principales creadores son Scott Wiltamuth y Anders Hejlsberg, ste ltimo tambin conocido por haber sido el diseador del lenguaje Turbo Pascal y la herramienta RAD Delphi. Aunque es posible escribir cdigo para la plataforma .NET en muchos otros lenguajes, C# es el nico que ha sido diseado especficamente para ser utilizado en ella, por lo que programarla usando C# es mucho ms sencillo e intuitivo que hacerlo con cualquiera de los otros lenguajes ya que C# carece de elementos heredados innecesarios en .NET. Por esta razn, se suele decir que C# es el lenguaje nativo de .NET La sintaxis y estructuracin de C# es muy parecida a la de C++ o Java, puesto que la intencin de Microsoft es facilitar la migracin de cdigos escritos en estos lenguajes a C# y facilitar su aprendizaje a los desarrolladores habituados a ellos. Sin embargo, su sencillez y el alto nivel de productividad son comparables con los de Visual Basic. En resumen, C# es un lenguaje de programacin que toma las mejores caractersticas de lenguajes preexistentes como Visual Basic, Java o C++ y las combina en uno solo. El hecho de ser relativamente reciente no implica que sea inmaduro, pues Microsoft ha escrito la mayor parte de la BCL usndolo, por lo que su compilador es el ms depurado y optimizado de los incluidos en el .NET Framework SDK

Caractersticas de C#
Es un lenguaje sencillo y de alto nivel Es muy muy parecido a Java Si sabes Java, sabes C# Es un lenguaje orientado a objetos Es un lenguaje moderno. Incluye elementos que no existen (o existan) en Java o en C++ y sin embargo se usan muy a menudo, como el bucle foreach Al igual que cualquier otro lenguaje para .NET, C# dispone de una gestin de memoria automtica, aunque tambin permite liberar memoria manualmente mediante la instruccin using

Programando en C#
Bsicamente una aplicacin en C# puede verse como un conjunto de uno o ms ficheros de cdigo fuente con las instrucciones necesarias para que la aplicacin funcione como se desea y que son pasados al compilador para que genere un ejecutable. Cada uno de estos ficheros no es ms que un fichero de texto plano escrito usando caracteres Unicode y siguiendo la sintaxis propia de C#. Como primer contacto nada mejor que el tpico programa de iniciacin Hola a todos! que lo nico que hace al ejecutarse es mostrar por pantalla el mensaje Hola a todos! Su cdigo es:

using System; 1: 2: 3: 4: 5: 6: 7: class Programa1 { static void Main(string[] args) { Console.WriteLine("Hola a todos"); } }

Desarrollo de Software I
Todo el cdigo escrito en C# se ha de escribir dentro de una definicin de clase, y lo que en la lnea 1: se dice es que se va a definir una clase ( class) de nombre saludo cuya definicin estar comprendida entre la llave de apertura de la lnea 2: y su correspondiente llave de cierre en la lnea lnea 7: Dentro de la definicin de la clase (lnea 3:) se define un mtodo de nombre Main cuyo cdigo es el indicado entre la llave de apertura de la lnea 4: y su respectiva llave de cierre (lnea 6:) Un mtodo no es ms que un conjunto de instrucciones a las que se les asocia un nombre, de modo que para posteriormente ejecutarlas baste referenciarlas por su nombre en vez de tener que rescribirlas. La partcula que antecede al nombre del mtodo indica cul es el tipo de valor que se devuelve tras la ejecucin del mtodo, y en este caso es void que significa que no se devuelve nada. Por su parte, los parntesis colocados tras el nombre del mtodo indican cules son los parmetros que ste toma, y el que estn vacos significa que el mtodo no toma ninguno. Los parmetros de un mtodo permiten modificar el resultado de su ejecucin en funcin de los valores que se les d en cada llamada. La palabra static un modificador del significado de la declaracin de mtodo que indica que el mtodo est asociado a la clase dentro de la que se define y no a los objetos que se creen a partir de ella. Main() es lo que se denomina el punto de entrada de la aplicacin, que no es ms que el mtodo por el que comenzar su ejecucin. Necesita del modificador static para evitar que para llamarlo haya que crear algn objeto de la clase donde se haya definido. Finalmente, la lnea 5: contiene la instruccin con el cdigo a ejecutar, que lo que se hace es solicitar la ejecucin del mtodo WriteLine() de la clase Console definida en el espacio de nombres System pasndole como parmetro la cadena de texto con el contenido Hola Mundo! Ntese que las cadenas de textos son secuencias de caracteres delimitadas por comillas dobles aunque dichas comillas no forman parte de la cadena. Por su parte, un espacio de nombres puede considerarse que es para las clases algo similar a lo que un directorio es para los ficheros: una forma de agruparlas. Para indicar cmo convertir cada objeto en un cadena de texto basta redefinir su mtodo ToString(). Antes de seguir es importante resaltar que C# es sensible a las maysculas, los que significa que no da igual la capitalizacin con la que se escriban los identificadores. Es decir, no es lo mismo escribir Console que COnsole o CONSOLE, y si se hace de alguna de las dos ltimas formas el compilador producir un error debido a que en el espacio de nombres System no existe ninguna clase con dichos nombres.

Puntos de entrada
Ya se ha dicho que el punto de entrada de una aplicacin es un mtodo de nombre Main que contendr el cdigo por donde se ha de iniciar la ejecucin de la misma. Hasta ahora slo se ha visto una versin de Main() que no toma parmetros y tiene como tipo de retorno void, pero en realidad todas sus posibles versiones son: static void Main() static int Main() static int Main(string[] args) static void Main(string[] args)

Archivo por defecto con el punto de entrada de la aplicacin

Desarrollo de Software I
Como se ve, hay versiones de Main() que devuelven un valor de tipo int. Un int no es ms que un tipo de datos capaz de almacenar valor enteros comprendidos entre 2.147 483.648 y 2.147 483.647, y el nmero devuelto por Main() sera interpretado como cdigo de retorno de la aplicacin. ste valor suele usarse para indicar si la aplicacin a terminado con xito (generalmente valor 0) o no (valor segn la causa de la terminacin anormal). Tambin hay versiones de Main() que toman un parmetro donde se almacenar la lista de argumentos con los que se llam a la aplicacin, por lo que slo es til usar estas versiones del punto de entrada si la aplicacin va a utilizar dichos argumentos para algo. El tipo de este parmetro es string[], lo que significa que es una tabla de cadenas de texto y su nombre -que es el que habr de usarse dentro del cdigo de Main() para hacerle referencia- es args en el ejemplo, aunque podra drsele cualquier otro

Compilacin con Visual Studio.NET


Para compilar una aplicacin en Visual Studio.NET primero hay que incluirla dentro de algn proyecto. Para ello basta pulsar el botn New Project en la pgina de inicio que se muestra nada ms arrancar dicha herramienta, tras lo que se obtendr una pantalla con el aspecto mostrado en la Ilustracin 1. En el recuadro de la ventana mostrada etiquetado como Project Types se ha de seleccionar el tipo de proyecto a crear. Obviamente, si se va a trabajar en C# la opcin que habr que escoger en la misma ser siempre Visual C# Projects. En el recuadro Templates se ha de seleccionar la plantilla correspondiente al subtipo de proyecto dentro del tipo indicado en Project Types que se va a realizar. Para realizar un ejecutable de consola, como es nuestro caso, hay que seleccionar el icono etiquetado como Console Application. Si se quisiese realizar una librera habra que seleccionar Class Library, y si se quisies realizar un ejecutable de ventanas habra que seleccionar W indows Application. Por ltimo, en el recuadro de texto Name se ha de escribir el nombre a dar al proyecto y en Location el del directorio base asociado al mismo. Ntese que bajo de Location aparecer un mensaje informando sobre cul ser el directorio donde finalmente se almacenarn los archivos del proyecto, que ser el resultante de concatenar la ruta especificada para el directorio base y el nombre del proyecto.

Ilustracin 1 : Ventana de creacin de nuevo proyecto en Visual Studio.NET


Una vez configuradas todas estas opciones, al pulsar botn OK Visual Studio crear toda la infraestructura adecuada para empezar a trabajar cmodamente en el proyecto. Como puede apreciarse en la Ilustracin 2 , esta infraestructura consistir en la generacin de un fuente que servir de plantilla para la realizacin de proyectos del tipo elegido (en nuestro caso, aplicaciones de consola en C#):

Ilustracin 2 : Plantilla para aplicaciones de consola generada por Visual Studio.NET


Para compilar y ejecutar tras ello la aplicacin slo hay que pulsar F5 o seleccionar Debug Start Without Debugging en el men principal de Visual Studio.NET. El ejecutable generado se almacenar en el subdirectorio Bin\Debug del directorio del proyecto. En el extremo derecho de la ventana principal de Visual Studio.NET puede encontrar el denominado Solution Explorer (si no lo encuentra, presione Ctrl+Alt+L), que es una herramienta que permite consultar cules son los archivos que forman el proyecto.

Desarrollo de Software I

Fundamentos de C#
Comentarios
Un comentario es texto que se incluye en el cdigo fuente para facilitar su lectura a los programadores y cuyo contenido es, por defecto, completamente ignorado por el compilador. Suelen usarse para incluir informacin sobre el autor del cdigo, para aclarar el significado o el porqu de determinadas secciones de cdigo, para describir el funcionamiento de los mtodos de las clases, etc. En C# hay dos formas de escribir comentarios. La primera consiste en encerrar todo el texto que se desee comentar entre caracteres /* y */ . Estos comentarios pueden abarcar tantas lneas como sea necesario. Por ejemplo: /* Texto */ /* Esto es un comentario que ejemplifica cmo se escribe comentarios que ocupen varias lneas*/ Ahora bien, hay que tener cuidado con el hecho de que no es posible anidar comentarios de este tipo. Es decir, no vale escribir comentarios como el siguiente: NO ES CORRECTO! /* Comentario contenedor /* Comentario contenido */

*/

Esto se debe a que como el compilador ignora todo el texto contenido en un comentario y slo busca la secuencia */ que marca su final, ignorar el segundo /* y cuando llegue al primer */ considerar que ha acabado el comentario abierto con el primer /* (no el abierto con el segundo) y pasar a buscar cdigo. Como el */ slo lo admite si ha detectado antes algn comentario abierto y an no cerrado (no mientras busca cdigo), cuando llegue al segundo */ considerar que ha habido un error ya que encontrar el */ donde esperaba encontrar cdigo Dado que muchas veces los comentarios que se escriben son muy cortos y no suelen ocupar ms de una lnea, C# ofrece una sintaxis alternativa ms compacta para la escritura este tipo de comentarios en las que se considera como indicador del comienzo del comentario la pareja de caracteres // y como indicador de su final el fin de lnea. Por tanto, la sintaxis que siguen estos comentarios es: // <texto> Y un ejemplo de su uso es: // Este comentario ejemplifica como escribir comentarios de una sola lnea Estos comentarios de una sola lnea s que pueden anidarse sin ningn problema. Por ejemplo, el siguiente comentario es perfectamente vlido:

// Comentario contenedor // Comentario contenido

Identificadores
Al igual que en cualquier lenguaje de programacin, en C# un identificador no es ms que, como su propio nombre indica, un nombre con el que identificaremos algn elemento de nuestro cdigo, ya sea una clase, una variable, un mtodo, etc. Tpicamente el nombre de un identificador ser una secuencia de cualquier nmero de caracteres alfanumricos incluidas vocales acentuadas y ees- tales que el primero de ellos no sea un nmero. Por ejemplo, identificadores vlidos seran: Arriba, caa, C3P0, , etc; pero no lo seran 3com, 127, etc.

Desarrollo de Software I
Sin embargo, y aunque por motivos de legibilidad del cdigo no se recomienda, C# tambin permite incluir dentro de un identificador caracteres especiales imprimibles tales como smbolos de diresis, subrayados, etc. siempre y cuando estos no tengan un significado especial dentro del lenguaje. Por ejemplo, tambin seran identificadores vlidos, _barco_, ck y AB; pero no C# (# indica inicio de directiva de preprocesado) o a!b (! indica operacin lgica not)

Palabras reservadas
Aunque antes se han dado una serie de restricciones sobre cules son los nombres vlidos que se pueden dar en C# a los identificadores, falta todava por dar una: los siguientes nombres no son vlidos como identificadores ya que tienen un significado especial en el lenguaje:

abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default, delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, is, lock, long, namespace, new, null, object, operator, out, override, params, private,protected, public, readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, void, while

Aparte de estas palabras reservadas, si en futuras implementaciones del lenguaje se decidiese incluir nuevas palabras reservadas, Microsoft dice que dichas palabras habran de incluir al menos dos smbolos de subrayado consecutivos ( ) Por tanto, para evitar posibles conflictos futuros no se recomienda dar a nuestros identificadores nombres que contengan dicha secuencia de smbolos.

El entorno Visual Studio .NET


VS.NET simplifica el desarrollo de aplicaciones basadas en .NET proporcionando un entorno de desarrollo simple y unificado

Caractersticas
Un solo IDE (Integrated Development Environment) Soporte para varios lenguajes .NET (VB.NET, C#,...) Desarrollo de mltiples tipos de proyectos Explorador Web integrado (basado en IE) Interfase personalizable Posee varias utilidades adicionales: Acceso a datos SQL Server, Depurador, Intellisense, Emuladores para mviles, etc.

Proyectos en Visual Studio .NET


Los proyectos son contenedores que se ubican en una solucin, para facilitar la administracin, compilacin y almacenado de los tems Plantillas de Proyectos Permiten la generacin automtica de mdulos que sern administrados fcilmente, de manera tal que el desarrollador solo tenga que ocuparse de la funcionalidad especfica. Visual Studio permite acceder a un nmero predefinido de plantillas o templates. Al agregar diferentes mdulos, estos agregan plantillas. Algunas pueden aparecer en formas de Wizards, para generar proyectos.

Desarrollo de Software I
Las plantillas de proyectos permiten a los desarrolladores concentrarse en la funcionalidad especfica que se desea implementar y es desde el proyecto donde se administra las diversas tareas referidas a la compilacin, guardado y apertura.

Archivos de definicin de proyectos


Cada proyecto contiene un archivo de definicin que contiene metadata del proyecto. La extensin de estos archivos de definicin y el contenido del archivo se determina por el tipo de proyecto que define. Generalmente el proyecto almacena la configuracin y los seteos de compilacin que se especificaron para el proyecto y su conjunto de tems. Algunos proyectos mantienen una lista de archivos asociados con el proyecto y su ubicacin. Cuando se agrega un tem a proyecto, la ubicacin fsica del tem en disco se guarda en la definicin del proyecto. Si el tem es removido del proyecto, la informacin se elimina. Contienen metadata del proyecto Ubicacin fsica de los tems Forma de compilacin Archivos asociados

Soluciones en Visual Studio .NET


Archivos o tems relacionados se agrupan, a nivel lgico, en un proyecto Una solucin puede contener varios proyectos. Se pueden abrir, cerrar y guardar todos al mismo tiempo.

Una solucin permite a los desarrolladores concentrarse en la tarea de desarrollo y distribucin de los proyectos, en lugar de resolver detalles de administracin de los archivos de proyecto y los componentes. Una solucin de Visual Studio permite: Trabajar con varios proyectos en la misma instancia de Visual Studio Trabajar con tmes utilizando seteos y opciones que se aplican a un conjunto de proyectos Utilizar el Solution Explorer para disear y compilar la solucin

Visual Studio genera automticamente una solucin cuando se crea un nuevo proyecto. Es posible agregar nuevos proyectos a una solucin a medida que se necesitan. Para administrar los proyectos y archivos de una solucin, el Solution Explorer provee una vista grfica de toda la solucin. Tambin permite agregar carpetas de tems que no pertenecen al proyecto. La definicin de la solucin se crea en dos archivos: una definicin de solucin .sln y opciones de usuario de la solucin .suo Los archivos de definicin de solucin almacenan metadata que describe la solucin: Los proyectos asociados. tems asociados

Una solucin puede contener varios proyectos que pueden ser abiertos, cerrados y salvados al mismo tiempo. Cada proyecto en una solucin puede contener varios archivos o tems. Los tipos de los tems contenidos en un proyecto dependen del lenguaje de desarrollo utilizado. Para acceder a la plantilla de proyectos desde el men: File->New Proyect

Una vez seleccionado el tipo de proyecto, se deben completar campos que determinan ubicacin e identificacin del proyecto y de la solucin que lo contiene. Name Location : Determina el nombre del proyecto. : Permite seleccionar la ubicacin fsica de la Solucin y Proyecto

Solution : Da la opcin de crear una nueva solucin contenedora del proyecto o incluirlo en una solucin preexistente Solution Name: Nombre de la solucin que se crear junto al proyecto. Por defecto es el mismo nombre que el proyect

Solution explorer
El Solution Explorer permite observar los tems y realizar las tareas de administracin de los mismos desde la solucin o desde los proyectos. Tambin permite utilizar los editores de Visual Studio para trabajar con tems fuera de la solucin. Desde el Solution Explorer es posible agregar y eliminar archivos y realizar otras tareas administrativas. Cada proyecto tiene sus propias carpetas e iconos para indicar el tipo de tems en el proyecto.

Display Jerrquico
Una solucin y sus proyectos aparecen en un formato jerrquico que provee informacin actualizada sobre el estado de la solucin, los proyectos y los tems. Esto permite al desarrollador trabajar en varios proyectos al mismo tiempo.
Muestra los archivos de/los proyectos de la solucin Permite eliminar y mover los archivos del proyecto Permite agregar nuevos elementos al proyecto Establecer referencias a asemblies y servicios web Crear carpetas

Server explorer
El Server Explorer permite crear y manipular conexiones de bases de datos, y conectarse a servidores y explorar su contenido

ToolBox
La Toolbox muestra una variedad de tems para utilizar en los proyectos de Visual Studio. Los tabs e tems disponibles para la toolbox cambian, dependiendo del diseador o editor que est siendo utilizado. Los tems disponibles pueden incluir componentes .NET, componentes COM, objetos HTML, fragmentos de cdigo y texto. Es posible acceder a la toolbox desde el men view.

S-ar putea să vă placă și