Documente Academic
Documente Profesional
Documente Cultură
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)
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
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:
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.
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.
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.
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.