+ All Categories
Home > Documents > Curso de Sistemas Información - CSharp ITLM

Curso de Sistemas Información - CSharp ITLM

Date post: 16-Oct-2015
Category:
Upload: sethnevarez
View: 86 times
Download: 0 times
Share this document with a friend

of 241

Transcript
  • INSTITUTO TECNOLOGICO DE LOS MOCHISDIPLOMADO EN SISTEMAS DE INFORMACIN I - C#La plataforma .NET y el lenguaje de programacin C#

  • La plataforma .NET

  • Qu NO es .NET?.NET no es un Sistema Operativo.NET no es un Lenguaje de Programacin.NET no es un Entorno de Desarrollo

  • Qu es .NET?Es una plataforma de desarrollo de ejecucin intermedia compuesta de:

    Entorno de Ejecucin (Runtime)Bibliotecas de Clases (Class Library)Lenguajes de ProgramacinCompiladoresHerramientas de Desarrollo (IDE & Tools)

  • Caractersticas de .NET (1/2)Plataforma de ejecucin intermedia

    Se distribuye en forma libre y gratuitaMultilenguaje100% Orientada a ObjetosOfrece un modelo de programacin nico para diversos tipos de aplicaciones y dispositivos de hardware

  • Qu es el .NET Framework?Paquete de software fundamental de la plataforma .NET que incluye:Entorno de Ejecucin (Runtime)Bibliotecas de Clases (Class Library)Existen tres variantes principales:.NET Framework SDK (contiene herramientas de desarrollo).NET Framework Redistributable Package (entornos productivos).NET Compact Framework

  • .NET Compact Framework**AplicacinMvilAplicacin de ConsolaAplicacin WebAplicacin de EscritorioDnde instalar el .NET Framework?ServidorCliente* Slo si la aplicacin es distribuda

  • WindowsCOM+ ServicesCommon Language Runtime (CLR)Base Class LibraryADO.NET y XMLASP.NETWindows FormsCommon Language Specification (CLS)VBC++C#J#Arquitectura del .NET Framework.NET Framework Redistributable.NET Framework SDK.NET Framework Class Library

  • Common Language Runtime (CLR)El CLR es un entorno de ejecucin que corre sobre el sistema operativo (maquina virtual de .NET) y es el encargado de ejecutar las aplicaciones y proveerles servicios en tiempo de ejecucin.CaractersticasCompilacin Just-In-Time (JIT)Gestin automtica de memoria (Garbage Collector)Gestin de errores consistente (Excepciones)Ejecucin basada en componentes (Assemblies)Multithreading

  • Common Language Specification (CLS)Uno de los objetivos de diseo de la plataforma .NET fue el ser independiente del lenguaje de programacin elegido para el desarrollo de aplicaciones. Para lograr esto es que se cre la Especificacin de Lenguaje Comn (o CLS, por sus siglas en ingls), que define y estandariza un subconjunto de todas las caractersticas soportadas por el CLR y que son necesarias en la mayora de las aplicaciones.VS2010 provee implementaciones de 5 lenguajes, todos compatibles con CLSMicrosoft Visual Basic .NETMicrosoft Visual C# .NETMicrosoft Visual J#.NETMicrosoft Visual C++.NETMicrosoft Visual F# .NET

  • Common Language Specification (CLS)El resto de la industria y el sector acadmico han desarrollado ms de 20 lenguajes compatibles con la especificacin CLS.No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft.El lenguaje a utilizar depender de la experiencia previa con otros lenguajes o de gustos personales

    CobolEiffelFortranPascalPerlC++.NETC#HaskellJavaJavaScriptVisual Basic.NETMercuryMLPHPObjective CamlOberonSmalltalkSchemeJ#RPGMondrianAPLDelphiPythonLISPPrologF#

  • Common Type System (CTS)Todo tipo hereda directa o indirectamente del tipo System.ObjectEl sistema comn de tipos, conocido como CTS, provee una definicin comn de los tipos de datos bsicos que utiliza el CLR. El CTS posibilita, entre otras cosas, que todos los lenguajes de alto nivel (del CLS) que compilan en .NET compartan el mismo sistema de tipos de datos, permitiendo lograr una mejor interoperabilidad.

  • .NET Framework Class LibrarySystem System.DataSystem.XmlSystem.WebGlobalizationDiagnosticsConfigurationCollectionsResourcesReflectionNetIOThreadingTextServiceProcessSecurityCommonOleDbSqlClientOdbcXPathXSLTRuntimeInteropServicesRemotingSerializationSerializationConfigurationSessionStateCachingSecurityServicesDescriptionDiscoveryProtocolsUIHtmlControlsWebControlsSystem.DrawingImagingDrawing2DTextPrintingSystem.Windows.FormsDesignComponentModel

  • .NET Framework Class Library - Windows FormsSystem.DrawingDrawing2DImagingPrintingTextSystem.WinFormsDesignComponentModel

  • .NET Framework Class Library - ASP.NETSystem.WebCachingConfigurationServicesUISessionStateHtmlControlsWebControlsDescriptionDiscoverySecurityProtocols

  • .NET Framework Class Library - ADO.NETSystem.DataOleDbSqlClientOracleClientCommonOdbcSqlTypesSystem.XmlSerializationXPathXSLTSchema

  • Ventajas de .NETUnifica los modelos de programacinSimplifica el desarrollo de aplicacionesProvee un entorno de ejecucin robusto y seguroEs independiente del lenguaje de programacinSimplifica la instalacin y administracin de las aplicaciones

  • Unificacin de modelos de programacinUna de las principales ventajas de .NET es que unifica los modelos de programacin, bibliotecas de clases y entornos de ejecucin que existan anteriormente para distintos tipos de aplicaciones y distintos dispositivos.

  • Desarrollo simplificadoAlto nivel de abstraccinNo mas accesos COM a bajo nivelOrientado a Objetos desde el NcleoComponentes de SoftwarePropiedades, mtodos, eventos, y atributos incluidos en la construccin de clasesSistema de tipos unificado (CTS)Todo es un objeto, no mas variants

  • Entorno de ejecucin robusto y seguroGestin automtica de la memoriaTodos los objetos son administrados por el Garbage CollectorFuertemente tipadoInicializacin de variables obligatoriaSolo casteos segurosManejo de excepciones

  • Independencia del lenguajeLibertad en la eleccin del lenguajeTodas las facilidades de la plataforma .NET estn disponibles a todos los lenguajes de programacin .NETLos componentes de una aplicacin .NET pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataformaHerramientas compartidasDebuggers, profilers, analizadores de cdigo, y otras trabajan para todos los lenguajes

  • Instalacin y administracin ms simplesUnidades de Ensamblado (Assemblies)Mnima unidad de distribucin, versionado y administracin de seguridad de aplicaciones .NETAuto-descriptas a travs de unmanifiesto (manifest)Instalaciones Cero-impactoAplicaciones y componentes pueden ser compartidas o privadasVersioningMltiples versiones del mismo componente pueden co-existir, an en el mismo proceso

  • Visual Studio 2010 y C#

  • El lenguaje C#

    El ltimo en una lnea de evolucin de los lenguajes derivados de C, que incluye C++ y JavaUsado por Microsoft para desarrollar la mayora del cdigo de .NETCreado con .NET en mente, por tanto es el lenguaje ideal para el desarrollo en .NET

  • Estructura de un programa C# - Iusing system;namespace N1 {class C1 {// ...}struct S1 {// ...}interface I1 {// ...}delegate int D1();enum E1 {// ...}}

    Una aplicacin en C# esta conformada de:Uno o ms archivos (assembly) los cuales contienen:Uno o ms namespace que contienen:Una o mas clases, estructuras, interfaces, enumeraciones y/o delegates

    La palabra clave using tiene dos usos principales:Como directiva, cuando se utiliza para crear un alias para un espacio de nombres o para importar tipos definidos en otros espacios de nombres. Como instruccin, cuando define un mbito al final del cual el objeto se destruye.

    La palabra clave namespace se utiliza para declarar un mbito. Este mbito permite organizar el cdigo y proporciona una forma de crear tipos globalmente nicos. Un namespace es un contenedor de clases, estructuras, interfaces, enumeraciones y delegates

  • Aplicaciones de consola - ISe puede definir una aplicacin de consola como aquella que se ejecuta en una ventana del smbolo del sistema, es decir, en lnea de comandos.

    Los desarollos mas comunes bajo la plataforma .Net son las aplicaciones de ventana, web y mviles. Sin embargo la mejor forma de sentar bases sobre el manejo de los diferentes elementos del lenguaje de programacin C# es comenzar construyendo aplicaciones sencillas de consola.

  • Aplicaciones de consola - IIusing System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace ConsoleApplication{ class Program { static void Main(string[] args) { } }}Un programa ejecutable en c# (de consola o de ventana) consta al menos de una clase, la cual debe contener obligatoriamente un mtodo Main como punto de entrada.

  • Aplicaciones de consola - IIILa clase Console

    La clase Console proporciona una compatibilidad bsica para las aplicaciones que leen y escriben caracteres en la consola.

    El mtodo WriteLine() Este mtodo es el que se usa para mostrar texto en la consola, el mtodo escribe en la pantalla el valor que le pasemos como parmetro. El parmetro que recibe el mtodo puede ser de varios tipos, ya sea una cadena de caracteres, un nmero entero, una lnea en blanco, etc... using System;

    namespace ConsoleApplication2{ class Class1 { static void Main(string[] args) { //Escribimos una cadena de caracteres. Console.WriteLine("Escribiendo una lnea en la consola"); //Escribimos un numero entero Console.WriteLine(23); //Escribimos una comparacin lgica Console.WriteLine(3 > 1); Console.ReadLine(); } }}

  • Aplicaciones de consola - IVEl mtodo ReadLine() Este mtodo de la clase Console se usa para recoger la informacin que el usuario introduce por el teclado. using System;

    namespace ConsoleApplication2{ class Class1 { static void Main(string[] args) { //Declaramos una variable de tipo cadena string cadena; //Mostramos un mensaje al usuario Console.WriteLine("Por favor, introduzca su nombre:"); //Capturamos el dato introducido por el usuario cadena = Console.ReadLine(); //Operamos con el dato cadena = "El nombre introducido es: " + cadena; //Mostramos la cadena Console.WriteLine(cadena); Console.ReadLine(); } }}

  • Tipos de datosClase Convert Se utiliza para llevar a cabo conversiones entre tipos de datos. Contiene mtodos como ToInt32() y ToDouble().Mtodos Parse() Se utilizan en las diferentes clases de tipos de datos para llevar a cabo conversiones entre los mismos.

  • IdentificadoresLos identificadores se utilizan para dar nombres a elementos de un programa como variables, constantes y mtodosConstan de caracteres alfanumricos y _, es sensible a maysculas y minsculas, debe comenzar con letra o _

  • Variables y ConstantesUna variable en C# representa la localizacin en memoria donde una instancia de un tipo de dato es guardada. Son una capa encima del CTS.

    bool bln = true;byte byt1 = 22;char ch1=x; double dbl1=1.23;short sh = 22;int i = 22;long lng1 =22; sbyte sb = 22;float f=1.23F;string s = "Hola";object o = new System.Object();Button bts = new Button();Constantes:

    const int min = 1;const int max = 100;Const int range = max min;

  • Conformacin de un proyecto en VS 2010Archivo .sln: Archivo de la solucin. Contiene uno o mas proyectos relacionados.Archivo .csproj: Archivo de proyecto. Contiene todas las unidades de cdigo, formularios y otros elementos que constituyen un proyecto.Archivos .cs: Archivos de cdigo fuente. Contienen el cdigo fuente de el programa en texto claro.Archivos .Designer.cs: Archivos de diseo de formularios. Contienen la distribucin visual de los componentes en los formularios.Archivos .resx: Archivos de recursos de formulario. Contiene imgenes, sonidos y demas objetos incrustados.Carpetas obj y bin: Contienen los archivos de cdigo intermedio, obj y ejecutables generados por el proyecto.

  • Utilizando los mtodos Console.WriteLine() y Console.ReadLine().

    1.1 Abrir una nueva aplicacin de consola y escribir un programa que capture el nombre del usuario y su ao de nacimiento. El programa debe calcular su edad en aos y desplegarla pantalla.1.2 Abrir una nueva aplicacin de consola y escribir un programa que sume, reste, multiplique y divida dos nmeros proporcionados por el usuario. El programa debe desplegar el resultado en pantalla.

    Conjunto de prcticas 115 minutos

  • OperadoresOperadores en C#

    Operadores aritmticos:Suma: a+bResta: a-bMultiplicacin: a*bDivisin: a/bResto: a%b Incremento: ++a o a++Decremento: --a o a--Operadores relacionales:Igualdad: a==bDiferencia: a!=bMenor que: a=bOperadores lgicos:Negacin: !aAnd lgico: a&&bOr lgico: a||bOr exclusivo: a^bOperadores de asignacin (si a=3 y b=7):Asignacin: a=b; //Resultado a=7Suma: a+=b; // Resultado a=10Resta: a-=b; Resultado b=-4Multiplicacin: a*=b; //Resultado a=21Divisin: a/=b; //Resultado: a= 0Resto: a%=b; //Resultado a= 3

  • Conjunto de prcticas 22.1 Abrir una nueva aplicacin de consola y escribir un programa que capture un nmero, lo incremente y decremente usando los operadores aritmticos ++ y -- e imprima el resultado de cada operacin en pantalla.2.2 Abrir una nueva aplicacin de consola y escribir un programa que capture un nmero proporcionado por el usuario y a este le sume 100, le reste 50, lo multiplique por 3 y divida entre 2 utilizando los operadores de asignacin (estilo c) correspondientes e imprima el resultado de cada operacin en consola.15 minutos

  • Sentencias en C# - ILas sentencias pueden ocupar ms de una lnea y deben terminarse con un ;Los grupos o bloques de sentencias relacionadas se deben agrupar con { y }E.j:

    int i, j; //Declaracin de variablesi=1; // Asignacin// un bloque de sentencias{j=2;i=i+j;}

  • Condicional if - IEs la instruccin condicional mas usada en los diversos lenguajes de programacin, su formato completo y de trabajo en C Sharp es: bool flagCheck = true;if (flagCheck == true){ Console.WriteLine(El valor de la variable es verdadero."); Console.WriteLine(");}else { Console.WriteLine(El valor de la variable es falso."); Console.WriteLine(");}if (condicin){ grupo cierto de instrucciones;}else{ grupo falso de instrucciones; }

  • Condicional if - IIEjemplos:

    if (i

  • Conjunto de prcticas 33.1 Escribir un programa que calcule el salario semanal de un trabajador en base a las horas trabajadas y el pago por hora trabajada:Horas ordinarias (40 primeras horas de trabajo) : 200 pesos por horaHoras extra (despus de las primeras 40):1.5 veces el precio hora ordinaria3.2 Escribir un programa en que calcule el salario neto semanal de un trabajador en funcin del nmero de horas trabajadas y la tasa de impuestos de acuerdo a lo siguiente:La tarifa por hora es de 5 dlaresLas primeras 35 horas se pagan a tarifa normalLas horas que pasen de 35 se pagan 1.5 veces la tarifa normalLas tasas de impuestos son:a: Los primeros 500 dlares son libres de impuestosb: Los siguientes 400 dlares tienen un 25% de impuestosc: Los restantes de 45% de impuestos60 minutos

  • Condicional switch - ILa instruccin switch es una instruccin de control que controla mltiples selecciones y enumeraciones pasando el control a una de las instrucciones case de su cuerpo, como se muestra en el ejemplo siguiente:int caseSwitch = 1;switch (caseSwitch){ case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; default: Console.WriteLine("Default case"); break;}switch (){ case : break; case : break; default: break;}

  • Conjunto de prcticas 44.1 Construir una aplicacin que reciba el nmero de un mes del ao como el parmetro y proporcione su nombre correspondiente. 4.2 Elaborar un programa que permita introducir dos nmeros por el teclado y permita al usuario seleccionar desde un men la operacin que desea llevar a cabo: suma, resta, multiplicacin, divisin o mdulo.4.3 Elaborar un programa que muestre al usuario un men como el que se indica a continuacin y lleve a cabo la operacin correspondiente:rea de tringulorea de Cuadradorea de Circulorea de Rectngulo60 minutos

  • Operador condicional ternarioEl operador condicional ?: devuelve uno de dos valores segn el valor de una expresin booleana. El operador condicional tiene el formato:

    condicion ? Primera_expresion : Segunda_expresion;

    Si la condicin es true, se evala la primera expresin y se convierte en el resultado; si es false, se evala la segunda expresin y se convierte en el resultado. Slo se evala una de las dos expresiones.

    String s = (x != 0) ? Diferente de cero : Igual a cero;

  • Ciclo For - IEn C# este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o compuesta. Su formato general es:

    for (inicializacin; condicin; incremento){ instruccin(es); };

    Inicializacin: Es una instruccin de asignacin que carga una variable de control de ciclo con un valor inicial.Condicin: Es una expresin relacional que evala la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.Incremento: Define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.for (int i=1; i

  • 5.1 Elaborar un programa que despliegue la tabla de multiplicar (1 al 10) de un nmero proporcionado por el usuario.Conjunto de prcticas 530 minutos

  • Ciclo do..while - IEl ciclo do-while ejecuta una instruccin o un conjunto de instrucciones entre {} repetidamente hasta que una expresin especificada se evale como false. El ciclo do-while, sirve para repetir una instruccin o un grupo de instrucciones que deben ejecutarse al menos una vez.

    int i=1;do{Console.WriteLine(Valor de i: + i); i++;}while (i

  • Conjunto de prcticas 66.1 Elaborar un programa que permita leer una serie de nmeros mayores que 10 y muestre la suma acumulada de ellos a medida que se van capturando. La salida del programa se dar cuando el usuario proporcione el nmero -1.30 minutos

  • Ciclo while - IEl ciclo while ejecuta una instruccin o un conjunto de instrucciones repetidamente mientras que una expresin especificada se evala como verdadera.. El ciclo while, sirve para repetir una instruccin o un grupo de instrucciones que pueden no ejecutarse ni una sola vez.

    int i=1;while (i

  • Conjunto de prcticas 77.1 Elaborar un programa que permita generar la tabla de multiplicar de un nmero dado hasta un hasta un lmite capturado por el usuario. Ejemplo :5 x 1 = 55 x 2 = 105 x 3 = 155 x 4 = 20: : :: : :5 x 20= 10030 minutos

  • continue y breakcontinue, se usa para saltar el resto de la iteracin y comenzar la siguiente

    for (int i=1; i

  • Conjunto de prcticas 8Escribir un programa que escriba en consola los nmeros comprendidos entre 1 y 100. El programa escribir en la pantalla los nmeros en grupos de 20, solicitando al usuario si quiere o no continuar visualizando el siguiente grupo de nmeros.

    15 minutos

  • StructsUn tipo struct es un tipo de valor que se suele utilizar para encapsular pequeos grupos de variables relacionadas, como las coordenadas de un rectngulo o las caractersticas de un elemento de un inventario. En el ejemplo siguiente se muestra una declaracin de estructura sencilla.

    public struct Libro{ public decimal precio; public string titulo; public string autor;}

    Las estructuras tambin pueden contener constructores, constantes, campos, mtodos, propiedades, indizadores, operadores, eventos y tipos anidados, aunque si se requieren estos miembros, se debe considerar la posibilidad de crear una clase en vez de un tipo.

  • Conjunto de prcticas 9Definir una struct llamado Citas que incluya los campos:DaHoraNombrePosteriormente declarar la variable correspondiente y leer desde el teclado los valores que sern asignados a cada campo de la estructura.30 minutos

  • ArreglosUn arreglo es un conjunto de elementos del mismo tipo dispuestos uno a continuacin del otro, que nos permite conservar datos en la memoria de la computadora. Caractersticas:

    Todos los arreglos tienen un tipo de dato asociado.El acceso es por medio de un ndice que empieza en 0.El arreglo tiene un nombre.El tipo de dato ser igual para todos los elementos del arreglo, pero cada elemento puede tener diferentes valores.

  • Para crear un arreglo string de 100 elementos se usara:

    string[] a = new string[100];a[2] = "Hola"; //Tercer elemento (Inician en cero)

    Para crear un arreglo bidimensional de 3X3 elementos se usara:

    int[,] b = new string[3,3];b[0,1] = 5; //Primera fila, segunda columna

    Los arrays se pueden inicializar directamente:string[] a1 = {"gato", "perro", "caballo"}int[] a2 = {1, 2, 3};

    Arreglos

  • Conjunto de prcticas 11Escribir un programa que rellene un array con los nmeros enteros. Los valores deben leerse desde el teclado. Posteriormente, imprimir en pantalla la posicin y valor de cada elemento del arreglo.Escribir un programa en que solicite cinco nmeros, los almacene en un array y luego calcule la media aritmtica de esos nmeros. Desplegar el resultado correspondiente en consola.Escribir un programa que determine la posicin de la siguiente matriz en la que se encuentra el valor mximo:

    23 45 6834 99 1225 78 89

    60 minutos

  • Manipulacin de Cadenas en C#Caracteres de escape

    Los caracteres de escape como "\n" y (nueva lnea) y "\t" (tabulador) se pueden incluir en cadenas.

    string hello = "Hello\nWorld!"; equivale a:HelloWorld!

    Si desea incluir una \ en una cadena, sta debe estar precedida de otra \. La cadena siguiente:

    string filePath = "\\\\My Documents\\"; equivale a: \\My Documents\

    El smbolo @ indica que se deben omitir caracteres de escape y saltos de lnea. Las dos cadenas siguientes son, por consiguiente, idnticas:string p1 = "\\\\My Documents\\My Files\\"; string p2 = @"\\My Documents\My Files\";

  • Manipulacin de Cadenas en C#Cambiar maysculas y minsculas

    Para cambiar las letras en una cadena a maysculas o minsculas, se utiliza ToUpper() o ToLower(), de la siguiente forma:

    string s6 = "Battle of Hastings, 1066"; System.Console.WriteLine(s6.ToUpper()); // outputs "BATTLE OF HASTINGS 1066" System.Console.WriteLine(s6.ToLower()); // outputs "battle of hastings 1066"

  • Manipulacin de Cadenas en C#Acceso a caracteres individuales

    Se obtiene acceso a los caracteres individuales contenidos en una cadena utilizando mtodos como SubString(), Replace(), Split() y Trim().

    string s3 = "Visual C# Express";System.Console.WriteLine(s3.Substring(7, 2)); // outputs "C#"System.Console.WriteLine(s3.Replace("C#", "Basic")); // outputs "Visual Basic Express"

    Tambin es posible acceder utilizando los ndices del arreglo de caracteres:

    string s5 = "Printing backwards"; for (int i = 0; i < s5.Length; i++) { System.Console.Write(s5[s5.Length - i - 1]); // Imprime: sdrawkcab gnitnirP" }

  • Manipulacin de Cadenas en C#Comparaciones

    Los operadores == y != realizan una comparacin con distincin entre maysculas y minsculas.

    string color1 = "red, color2 = "green, color3 = "red"; if (color1 == color3) Console.WriteLine("Equal"); if (color1 != color2) Console.WriteLine("Not equal");

    El mtodo Equals (String) determina si el objeto String que llama al mtodo es igual al objeto String pasado como parametro.

    string c="Hola";If (c.Equals("Hola")) Console.WriteLine("Las cadenas son iguales");

    Equals (String, StringComparison)

    El parametro StringComparison permite especificar si la comparacin ser sensible a maysculas y minsculas.

  • Manipulacin de Cadenas en C#Bsqueda de cadenas

    Para buscar una cadena dentro de otra se utilice IndexOf(). IndexOf() devuelve -1 si la cadena de bsqueda no se encuentra; en caso contrario devuelve el ndice de la primera posicin de la cadena, con base cero.

    string s9 = "Battle of Hastings, 1066";System.Console.WriteLine(s9.IndexOf("Hastings")); // outputs 10 System.Console.WriteLine(s9.IndexOf("1967")); // outputs -1

  • Conjunto de prcticas 19Escribir un programa en c# que devuelva una cadena tecleada por el usuario en orden inverso y con los caracteres convertidos a mayusculas. La cadena proporcionada no debe tener mas de 10 caracteres, en caso contrario el usuario deber proporcionar otra cadena.Escribir una funcin en c# que devuelva cada palabra en una oracin proporcionada por el usuario con el primer carcter convertido a mayuscula. Ejemplo: el caballo blanco debera devolver El Caballo Blanco

    30 minutos

  • Colecciones: ArrayListImplementa la interfaz IList mediante una matriz cuyo tamao aumenta dinmicamente segn se requiera. Se puede obtener acceso a los elementos de esta coleccin utilizando un ndice de tipo entero.

    // Crear e inicializar el arraylist ArrayList al = new ArrayList(); al.Add("Hola"); al.Add("Mundo"); al.Add("!"); // Desplegar propiedades y valores del ArrayList Console.WriteLine( "No. Elementos:{0}", al.Count ); Console.WriteLine( "Valores en el ArrayList:" ); for (int x = 0; x < al.Count;x++) Console.WriteLine(al[x]); Console.ReadKey();Salida:No. Elementos:3Valores en el ArrayList:HolaMundo!

  • Colecciones - StackRepresenta una coleccin LIFO de objetos ("ltimo en entrar, primero en salir").

    // Crea e inicializa una nueva pila Stack pila = new Stack(); pila.Push("Hola"); pila.Push("Mundo"); pila.Push("!"); // Despliega los valores y propiedades de la pila Console.WriteLine("No elementos:{0}", pila.Count); Console.WriteLine("Tope de pila:" + pila.Pop()); //Pop: Obtiene elemento en cima de pila y lo borra Console.WriteLine("Tope de pila:" + pila.Peek()); //Peek: Obtiene elemento en cima de pila sin borrarlo Console.ReadKey();Salida:No elementos:3Tope de pila:!Tope de pila:Mundo

  • Colecciones - QueueRepresenta una coleccin FIFO de objetos ("primero en entrar, primero en salir")

    // Crea e inicializa una nueva cola Queue cola = new Queue(); cola.Enqueue("Hola"); cola.Enqueue("Mundo"); cola.Enqueue("!"); // Despliega los valores y propiedades de la cola Console.WriteLine("No elementos:{0}", cola.Count); Console.WriteLine("Inicio de cola:" + cola.Dequeue()); //Dequeue: Obtiene elemento al inicio de cola y lo borra Console.WriteLine("Inicio de cola:" + cola.Peek()); //Peek: Obtiene elemento al inicio de cola sin borrarlo Console.ReadKey();Salida:No elementos:3Inicio de cola:HolaInicio de cola:Mundo

  • Colecciones - HashTableRepresenta una coleccin de pares de clave y valor organizados en funcin del cdigo hash de la clave.

    //Crear un hashtableprivate Hashtable hshTable = new Hashtable();

    //Agregar elementos al hashtablehshTable .Add("Author1", "Mahesh Chand");hshTable .Add("Author2", "James Brand");hshTable .Add("Author3", "Mike Gold");

    //Obtener un elemento del hashtablestring name = hshTable["Author1"].ToString(); //Asigna el valor Mahesh Chand a la variable name

    //Remover un elemento del hashtablehshTable.Remove("Author1");

  • Conjunto de prcticas 20Elaborar un programa que almacene una agenda telefnica de personas en memoria utilizando un Hashtable. El programa debe permitir insertar, borrar y modificar los datos de una persona en particular, as como consultarlos en pantalla. Capturar Nombre, apellidos, telfono y correo electrnico.60 minutos

  • Mtodos - IUn mtodo es un conjunto de instrucciones a las que se les da un determinado nombre de tal manera que sea posible ejecutarlas en cualquier momento sin tenerlas que rescribir sino usando slo su nombre. A estas instrucciones se les denomina cuerpo del mtodo, y a su ejecucin a travs de su nombre se le denomina llamada al mtodo. (){ } //void: No regresa valor (procedimiento)void MostrarMenu(){ Console.WriteLine("Opcin 1"); Console.WriteLine("Opcin 2");}//int: Regresa valor (funcin)int Suma(int par1, int par2){ return par1+par2;}

  • Mtodos - IILa forma en que se puede llamar a un mtodo depende del tipo de mtodo del que se trate.

    Si es un mtodo de objeto (mtodo no esttico) se ha de usar la notacin:

    .()Ejemplo:Operaciones op = new Operaciones();Op.Sumar(1,2); //Llamada a mtodo de objeto

    En caso de que sea un mtodo de tipo (mtodo esttico), entones se ha de usar:

    .()Ejemplo:Convert.ToInt32("500"); //Llamada a mtodo de tipo de la clase Convert

  • Conjunto de prcticas 1212.1 Elaborar un programa que genere y despliegue la tabla de multiplicar de un numero dado utilizando mtodos de la siguiente manera: Solicitar el numero en un mtodo "CapturarNumero"Generar y mostrar resultados en pantalla en otro mtodo "GenerarTabla"

    12.2 Elaborar un programa que utilizando un mtodo CalcularTemperaturaMedia" vaya pidiendo la temperatura mxima y mnima de diferentes das de la semana y vaya mostrando la media. El programa pedir el nmero de das que se van a introducir.

    60 minutos

  • Parmetros por valor y referencia - IEn C# es posible pasar variables a los mtodos de dos maneras: por valor y por referencia. La diferencia entre el uno y el otro es bsicamente que:

    Cuando una variable es pasada por valor, el mtodo recibe una copia del valor de la variable. Por lo tanto, los cambios realizados a esa variable dentro del contexto de la funcin, NO afecta a la variable original. Cuando es pasada por referencia, el mtodo recibe la referencia a la variable original. Por tanto los cambios realizados a esa variable dentro del contexto de la funcin, AFECTA a la variable original.

  • Ejemplo 1: Paso de parmetros por valor

    class PasoValor{ static void ElevarCuadrado(int x) // El parametro X es pasado por valor // Cambios a x no afectaran el valor original. { x *= x; Console.WriteLine("El valor de x dentro del mtodo es: {0}", x); } static void Main() { int n = 5; Console.WriteLine("El valor de n antes de llamar al mtodo es: {0}", n); ElevarCuadrado(n); // Paso de la variable por valor Console.WriteLine("El valor de n despus de llamar al mtodo es: {0}", n); }}

    Parmetros por valor y referencia - IIEl valor de n antes de llamar al mtodo es : 5El valor de x dentro del mtodo es : 25El valor de n despus de llamar al mtodo es : 5

  • Parmetros por valor y referencia - IIIEjemplo 2: Paso de parmetros por referencia

    class PasoReferencia{ static void ElevarCuadrado(ref int x) // El parametro X es pasado por valor // Cambios a x afectan valor original { x *= x; Console.WriteLine("El valor de x dentro del mtodo es: {0}", x); } static void Main() { int n = 5; Console.WriteLine("El valor de n antes de llamar al mtodo es: {0}", n); ElevarCuadrado(ref n); // Paso de la variable por referencia Console.WriteLine("El valor de n despus de llamar al mtodo es: {0}", n); }}

    El valor de n antes de llamar al mtodo es : 5El valor de x dentro del mtodo es : 25El valor de n despus de llamar al mtodo es : 25

  • Conjunto de prcticas 13Hacer un programa que capture el nombre del trabajador, fecha de nacimiento, sueldo diario, das trabajados y % de impuesto. Crear un mtodo para capturar los datos del trabajador y dos funciones una que calcule el sueldo del trabajador y otra su impuesto. El programa debe capturar repetidamente trabajadores hasta que el usuario teclee la letra x en el nombre del trabajador.Escribir un programa que muestre un men con 4 opciones: calcular distancia, calcular velocidad, calcular tiempo y salir. El men debe ser desplegado usando un procedimiento. La distancia y la velocidad deben ser calculadas dentro de una funcin.

    60 minutos

  • Excepciones - IEl control de excepciones en C# proporciona una manera de afrontar cualquier situacin inesperada o excepcional que se presente mientras se ejecuta un programa. El control de excepciones utiliza las palabras clave try, catch y finally para intentar acciones que podran no realizarse correctamente, controlar errores y/o limpiar los recursos despus al final de su ejecucin.try{ }catch (){ }finally{ } MailMessage Email = new MailMessage(Origen, Destino, Asunto, Mensaje); SmtpClient smtp = new SmtpClient(); try { smtp.Send(Email); } catch (Exception ex) { Console.WriteLine("Se produjo un error" + ex.Message); } finally { smtp.Dispose(); //Libera recursos }

  • Conjunto de prcticas 14Hacer un programa que calcule el promedio de dos nmeros, controlando las excepciones. Los nmeros deben leerse desde el teclado y desplegar el promedio en caso de que la operacin sea vlida. Si no, debe desplegar el mensaje de error correspondiente y continuar su ejecucin.15 minutos

  • Leer/Escribir archivos en disco

    Los archivos de texto proporcionan un formato comn que tanto las personas como los programas pueden leer y entender. .NET incluye clases que hacen que la lectura y escritura de archivos de texto muy sea muy sencilla. La secuencia siguiente describe los pasos bsicos necesarios para trabajar con archivos de texto: abrir el archivo, leer / escribir al archivo y cerrar el archivo.// Abrir archivoTextWriter tw = new StreamWriter("date.txt");// Escribir en archivotw.WriteLine(DateTime.Now);// Cerrar archivotw.Close();Escribir en archivo de texto // Abrir archivoTextreader tr = new StreamReader("date.txt");// Leer linea de textoConsole.WriteLine(tr.ReadLine());// Cerrar archivotr.Close();Leer de archivo de texto

  • Depuracin de aplicacionesLos puntos de interrupcin permiten detener la ejecucin de un programa en una lnea en particular y continuar con la depuracin del mismo a partir de dicha lnea.BreakPoints

  • Depuracin de aplicacionesStep Over (F10). La depuracin paso a paso permite ejecutar el programa lnea por lnea mientras se depura, si la lnea a depurar es la llamada a un mtodo, step over toma toda la ejecucin del mismo como una sola lnea.Step Over - F10

  • Depuracin de aplicacionesStep Into (F11). La depuracin paso a paso permite ejecutar el programa lnea por lnea mientras se depura, si la lnea a depurar es la llamada a un mtodo, step into entra al mtodo para continuar la depuracin paso a paso dentro del mismo.Step Into - F11

  • La ventana Watches (inspeccin), permite visualizar el valor que toman las variables a medida que se depura un programa paso a paso.WatchesDepuracin de aplicaciones

  • Solution ExplorerIntroduccin al entornoEl Solution Explorer muestra un rbol con todos los archivos que componen el proyecto en tiempo de diseo.

  • Inspector de objetosIntroduccin al entornoEl inspector de objetos permite establecer las propiedades y eventos de los componentes usados para elaborar una pantalla en tiempo de diseo.

  • ToolBoxIntroduccin al entornoEl ToolBox o paleta de componentes contiene todos los componentes disponibles en el entorno para disear una pantalla de un tipo de aplicacin especifico.

  • Formularios, controles y eventos.Formulario.Propiedades comunes:ControlBoxIconLocationMaximizeBoxMinimizeBoxStartPositionWindowStateEventos comunes:LoadFormClosed

  • Formularios, controles y eventos.Propiedades y eventos compartidos en diversos controles y de uso frecuente

    Propiedades:NameBackColorForeColorEnabledFontTabIndexVisibleEventos:ClickKeyPressKeyUpKeyDownEnterLeave

  • Formularios, controles y eventos.Clase MessageBox

    Muestra un cuadro de mensaje que puede contener texto, botones y smbolos que informan e instruyen al usuario. MessageBox.Show("Debe ingresar nombre", "Informacin", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);MessageBox.Show("Debe ingresar nombre");

  • Formularios, controles y eventos.Panel.Propiedades frecuentes:DockEventos frecuentes :No usados con frecuencia.

  • Formularios, controles y eventos.Label.Propiedades frecuentes: :TextEventos frecuentes:Click

  • Formularios, controles y eventos.TextBoxPropiedades frecuentes:CharacterCasingMultiLinePasswordCharReadOnlyTextTextAlignEventos frecuentes:ClickKeyPressKeyUpKeyDown

  • Formularios, controles y eventos.Button.Propiedades frecuentes:FlatStyleImageTextTextAlignEventos frecuentes:Click

  • Formularios, controles y eventos.MenuStrip.Propiedades frecuentes:No tieneEventos comunes:No tiene

    ToolStripMenuItem.Propiedades frecuentes :ImageTextEventos frecuentes:Click

  • Formularios, controles y eventos.ToolStrip.Propiedades frecuentes :NameEventos comunes:No tiene

    ToolStripButton.Propiedades frecuentes:DisplayStyleImageTextEventos frecuentes:Click

  • Formularios, controles y eventos.ImageList.Propiedades frecuentes:ImagesTransparentColorEventos frecuentes:No tiene

  • Formularios, controles y eventos.Statustrip.Propiedades frecuentes:Name

    ToolStripStatusLabelPropiedades frecuentes:TextEventos comunes:No tiene

  • Formularios, controles y eventos.ContextMenuStrip.Propiedades frecuentes:NameEventos comunes:No tiene

    ToolStripMenuItem.Propiedades frecuentes:ImageTextEventos comunes:Click

  • Conjunto de prcticas 16Crear una aplicacin Windows con un diseo similar al de la calculadora de Windows en su versin estndar.Crear una aplicacin Windows con un diseo similar al del bloc de notas de Windows.

    30 minutos

  • Formularios, controles y eventos.CheckBox.Propiedades frecuentes:CheckedCheckStateTextEventos frecuentes:CheckedChanged

  • Formularios, controles y eventos.RadioButtonPropiedades frecuentes:CheckedTextEventos frecuentes:CheckedChanged

  • Formularios, controles y eventos.ListBox.Propiedades frecuentes:ItemsSelectionModeEventos frecuentes:SelectedIndexChanged

  • Formularios, controles y eventos.ComboBox.Propiedades frecuentes:DropDownStyleItemsSelectedIndex(RT)Eventos frecuentes:SelectedIndexChanged

  • Formularios, controles y eventos.MaskedTextBox.Propiedades frecuentes:MaskTextTextAlignEventos frecuentes:ClickKeyPressKeyUpKeyDown

  • Conjunto de prcticas 17Crear una aplicacin windows que permita gestionar prestamos de libros de la biblioteca de la unidad regional norte de la UAS. La aplicacin debe tener las siguientes caractersticas.

    La aplicacin debe controlar lo siguiente:Nmero de cuenta, nombre del alumno y fecha de prstamo del libro, El men principal de la aplicacin debe ser como el siguientePrestar librosMostrar libros prestadosSalir

    El prstamo y muestra de libros debe hacerse usando procedimientos.120 minutos

  • Formularios, controles y eventos.PictureBox.Propiedades frecuentes:ImageSizeModeEventos frecuentes:Click

  • Formularios, controles y eventos.TabControl.Propiedades frecuentes:ImageListTabPagesEventos frecuentes:SelectedIndexChange

    TabPage.Propiedades frecuentes:ImageIndexTextEventos frecuentes:No tiene

  • Formularios, controles y eventos.ProgressBar.Propiedades frecuentes:MaximunMinimunValueStepStyleEventos frecuentes:No tiene

  • Formularios, controles y eventos.DateTimePicker.Propiedades frecuentes:FormatMaxDateMinDateValueEventos frecuentes:ValueChanged

  • Formularios, controles y eventos.Timer.Propiedades frecuentes:IntervalEventos frecuentes:Tick

  • Formularios, controles y eventos.OpenDialog.Propiedades comunes:FilterFilterIndexInitialDirectoryTitleEventos comunes:No tiene

  • Formularios, controles y eventos.SaveDialog.Propiedades comunes:FilenameFilterFilterIndexInitialDirectoryTitleEventos comunes:No tiene

  • Formularios, controles y eventos.DataGridView.Propiedades comunes:ColumnsDataSourceEnabledReadOnlyTabIndexEventos comunes:ClickEnterLeaveCellEnterCellLeave

  • Conjunto de prcticas 18Crear una aplicacin windows que permita gestionar los diplomados de la facultad de ingeniera Mochis. La aplicacin debe tener las siguientes caractersticas.

    La aplicacin debe permitir ingresar un mximo de 20 alumnos.La aplicacin debe controlar lo siguiente:Id, nombre, telfono, direccin y foto, Si el alumno es externo a la uas pagar una cuota de 800 pesos por modulo, Si el alumno estudia en la uas y paga el modulo antes de que inicie se le cobrara una cuota de 600 por modulo.Si el alumno es de la uas y paga el modulo una vez iniciado, la cuota ser de 800 pesos por moduloEl men principal de la aplicacin debe ser como el siguienteInscribir alumnoMostrar alumnos inscritosSalir

    Los alumnos deben ser inscritos y mostrados usando un procedimiento.La cuota a pagar debe ser determinada usando una funcin.

    Ejercitar las opciones de busqueda, reemplazo y code folding revisadas en la seccin anterior.60 minutos

  • Controles dinmicos en C#Un control dinmico en C # es un control que se crea en tiempo de ejecucin en lugar de en tiempo de diseo. Pueden ser creados en respuesta a cmo el usuario interacta con la aplicacin y no estn accesibles desde que la aplicacin es ejecutada. Algunos de los controles que mas comnmente se agregan en tiempo de ejecucin son los controles Label Button y TextBox. //Crear un textbox TextBox dynamicTextbox = new TextBox(); dynamicTextbox.Name = "dynamicTextbox" ; dynamicTextbox.Width = 290; dynamicTextbox.Height = 20; dynamicTextbox.Left = 9; dynamicTextbox.Top = 10; dynamicTextbox.Text = "TextBox Dinamico ";

    //Crear un botn Button dynamicButton = new Button(); dynamicButton.Name = "dynamicButton"; dynamicButton.Width = 75; dynamicButton.Height = 23; dynamicButton.Left = 9; dynamicButton.Top = 20; dynamicButton.Text = "Boton dinamico"; dynamicButton.Click += new EventHandler(Button_Click);

    //Agregar al contenedor pContainer.Controls.Add(dynamicTextbox); pContainer.Controls.Add(dynamicButton);

    //Manejador de evento del boton private void Button_Click(object sender, EventArgs e){}

  • Conjunto de prcticas 21Elaborar un programa que cree una minicalculadora con las operaciones bsicas de suma, resta, multiplicacin y divisin utilizando solo controles dinmicos.30 minutos

  • Introduccin a SQL Server 2008

  • Sql Server Management StudioPara ejecutar cualquier query desde SSMS ya sea del tipo DDL (Data Definition Language-Lenguaje de Definicin de Datos) o DML (Data Manipulation Language-Lenguaje de Manipulacin de Datos) haga click sobre el cono desde la barra de herramientas.

  • Al ejecutar el query, este se ejecutar sobre la BD que estaba seleccionada en el nodo databases al abrir el query o de lo contrario se ejecutar sobre la base de datos que tenga establecida como default. Si no tiene ninguna BD establecida como default ocurrirn errores al ejecutar el query ya que no encontrar los objetos.

    Si desea establecer una base de datos default siga estos pasos:

    Desconctese de la instancia actual haciendo clic sobre el cono del explorador de objetos.

    Haga clic sobre el cono del explorador de objetos

    Sql Server Management Studio

  • Al aparecer la ventana de login haga clic en .

    En la pestaa Connection Properties expanda la lista Connect to database y elija la opcin

    Sql Server Management Studio

  • Al aparecer la ventana Browse Server for Database expanda el nodo User Databases y elija la base de datos que desea establecer como default, finalmente haga clic en

    Sql Server Management Studio

  • A partir de este momento cada vez que abra un nuevo query sin seleccionar ninguna base de datos, el query ser ejecutado sobre la base de datos default.

    Para mayor seguridad a la hora de estar trabajando con mltiples bases de datos utilice el comando :USE

    Por ejemplo: USE NOMINA

    De esta manera est indicando que desea que el query se ejecute especficamente sobre la base de datos NOMINA sin importar si dicha base de datos est seleccionada o sea default.

    Sql Server Management Studio

  • Por default, SSMS est configurado para prevenir que se realicen cambios a la estructura de una tabla una vez que esta ya fue creada con lo cual no podr modificar la estructura la tabla despus de creada.

    Para desactivar esta opcin siga estos pasos:

    En el men Tools elija la opcin Options

    En el cuadro de dilogo que aparece, expanda el nodo Designers en el panel de la izquierda y a continuacin seleccione el sub-nodo Table and Database Designers.

    En el panel de la derecha desactive la casilla Prevent saving changes that requiere table re-creation.

    Sql Server Management Studio

  • Haga clic en .

    Sql Server Management Studio

  • Creacin de tablas desde SSMSAbra SSMS.Expanda el nodo databases Expanda el nodo de la base de datos en la que desea crear la tablaHaga clic derecho sobre el nodo Tables y elija la opcin New TableIntroduzca la siguiente informacin en el diseador de tablas:

    Haga clic en el icono de la barra de herramientas y ponga el nombre: PRODUCTOS.

    CAMPOTIPONULLCLAVEintNoNOMBREvarchar(60)SiPRECIOfloatSiLINEAIntSi

  • Creacin de tablas desde SSMSDe igual forma cree la tabla LINEAS con la siguiente informacin

    CAMPOTIPONULLCLAVEintNoNOMBREvarchar(60)Si

  • Creacin de tablas desde SSMSCrear la tabla de PRODUCTOS mediante T-Sql:

    CREATE TABLE PRODUCTOS(CLAVE int NOT NULL,NOMBRE varchar(60) NULL,PRECIO float NULL,LINEA int NULL) Crear la tabla de LINEAS mediante T-SqlCREATE TABLE LINEAS(CLAVE int NOT NULL,NOMBRE varchar(60) NULL)

  • Definicin de llave primariaHaga clic derecho sobre la tabla a la que desea agregar una llave primaria y elija la opcin Design.En el diseador seleccione el campo o campos que desea utilizar como llave primaria.Haga clic derecho sobre los campos seleccionados y elija la opcion Set Primary Key.

  • Definicin de llave primariaDefina la llave primaria para la tabla de PRODUCTOS sobre el campo CLAVE.

    Defina la llave primara para la tabla de LINEAS sobre el campo CLAVE

  • Definicin de llave primariaDefina la llave primaria para la tabla PRODUCTOS sobre el campo CLAVE mediante T-Sql:ALTER TABLE LINEAS ADD CONSTRAINTPK_LINEAS PRIMARY KEY CLUSTERED (CLAVE) GODefina la llave primaria para la tabla LINEAS sobre el campo CLAVE mediante T-SqlALTER TABLE PRODUCTOS ADD CONSTRAINTPK_PRODUCTOS PRIMARY KEY CLUSTERED (CLAVE) GO

  • Definicin de llave forneaUn campo que no es clave primaria en una tabla y sirve para enlazar sus valores con otra tabla en la cual es clave primaria se denomina clave fornea, externa o ajena.

    Las claves forneas y las claves primarias deben ser del mismo tipo para poder enlazarse.

    Entonces, una clave fornea es un campo (o varios) empleados para enlazar datos de 2 tablas, para establecer un "join" con otra tabla en la cual es clave primaria

  • Definicin de llave forneaHaga clic derecho sobre la tabla a la que desea agregar una llave fornea y elija la opcin Design.En el diseador seleccione el campo o campos que desea utilizar como llave secundaria.Haga clic derecho sobre los campos seleccionados y elija la opcion Relationship

  • Definicin de llave forneaHaga clic en para agregar una llave fornea

    En el panel de la derecha seleccione la opcin Tables and Colums Specification y haga clic en

  • Definicin de llave forneaEn esta ventana seleccione la tabla referenciada en el panel de la izquierda (LINEAS) y elija la llave primaria de dicha tabla.

    En el panel de la derecha aparece por default la tabla a la que le queremos agregar la llave fornea, simplemente seleccione el campo por el cual se enlazar.

    Clic en .

  • Definicin de llave forneaRegresamos a la ventana Foreign Key Relationships.

    Puede cambiar el nombre de la llave fornea si lo desea en Identity

    Para establecer las restricciones de la llave fornea expanda el nodo Table Disigner y posteriormente INSERT and UPDATE Specification

    Puede definir las restricciones para las reglas de borrado y/o para las reglas de actualizacin.

    Para ambas puede especificar: No Action, Cascade, Set Null, Set Default

  • Definicin de llave forneaNo action: Indica que si intentamos eliminar o actualizar un valor de la clave primaria de la tabla referenciada (LINEAS) que tengan referencia en la tabla principal (PRODUCTOS), se genere un error y la accin no se realice; es la opcin predeterminada.

    Cascade: Indica que si eliminamos o actualizamos un valor de la clave primaria en la tabla referenciada (LINEAS), los registros coincidentes en la tabla principal (PRODUCTOS), tambin se eliminen o modifiquen; es decir, si eliminamos o modificamos un valor de campo definido con una restriccin "primary key" o "unique", dicho cambio se extiende al valor de clave externa de la otra tabla (integridad referencial en cascada).

  • Definicin de llave forneaSet NULL: Indica que si intentamos eliminar o actualizar un valor de la clave primaria de la tabla referenciada (LINEAS) que tengan referencia en la tabla principal (PRODUCTOS), se establecer el valor NULL en la tabla principal, esto es siempre y cuando el campo permita valores nulos en caso contrario marcar un error.

    Set DEFAULT: Indica que si eliminamos o actualizamos un valor de la clave primaria en la tabla referenciada (LINEAS), los registros coincidentes en la tabla principal (PRODUCTOS), se establecern a su valor predeterminado siempre y cuando se haya especificado uno.

  • Definicin de llave forneaCree la llave fornea para la tabla PRODUCTOS sobre el campo LINEA ligado a la tabla LINEAS mediante T-Sql.

    ALTER TABLE PRODUCTOS ADD CONSTRAINTFK_PRODUCTOS_LINEAS FOREIGN KEY(LINEA) REFERENCES LINEAS(CLAVE) ON UPDATE CASCADE ON DELETE NO ACTION GO

  • Insercin de registrosHaga clic derecho sobre la tabla a la que desea agregar registros y elija la opcin Edit top 200 rows.En el editor de tabla introduzca algunos valores para la tabla de LINEAS.Por cada registro que vaya introduciendo se va almacenando automticamenteUn cono el forma de lpiz indica que se est editando cierto campo

  • Insercin de registrosUsando el mismo procedimiento inserte algunos registros en la tabla de PRODUCTOS.

    Ya podr poner valores a la columna LINEA porque ya existen en la tabla LINEAS.

  • Insercin de registrosInserte algunos registros en la tabla LINEAS mediante T-Sql.

    INSERT INTO LINEAS(CLAVE, NOMBRE)VALUES (4, 'LINEA 4');

    INSERT INTO LINEAS(CLAVE, NOMBRE)VALUES (5, 'LINEA 5');

    INSERT INTO LINEAS(CLAVE, NOMBRE)VALUES (6, 'LINEA 6')

  • Insercin de registrosInserte algunos registros en la tabla PRODUCTOS mediante T-Sql.

    INSERT INTO PRODUCTOS(CLAVE, NOMBRE, PRECIO, LINEA)VALUES (4, 'PRODUCTO 4', 12, 1);

    INSERT INTO PRODUCTOS(CLAVE, NOMBRE, PRECIO, LINEA)VALUES (5, 'PRODUCTO 5', 13, 2);

    INSERT INTO PRODUCTOS(CLAVE, NOMBRE, PRECIO, LINEA)VALUES (6, 'PRODUCTO 6', 18, 3);

  • Actualizacin de registrosHaga clic derecho sobre la tabla a la que desea actualizar registros y elija la opcin Edit top 200 rows.En el editor de tabla posicinese sobre el campo que desea actualizar.Introduzca el nuevo valor para la columna y simplemente cambie de registro para que el cambio surta efecto.

  • Actualizacin de registrosModifique el nombre del producto con clave 1 de PRODUCTO 1 a Escritorio para computadora mediante T-Sql.

    UPDATE PRODUCTOSSET NOMBRE = 'Escritorio para computadora'WHERE CLAVE = 1

    Si no se especifica la clusula WHERE el cambio se realiza para todos los registros, es decir, todos los registros de la tabla PRODUCTOS tendran la misma descripcin Escritorio para computadora.

  • Eliminacin de registrosHaga clic derecho sobre la tabla a la que desea eliminar registros y elija la opcin Edit top 200 rows.En el editor de tabla posicinese sobre el registro que desea eliminar.Seleccione el registro haciendo clic en la celda de la izquierda y presione la tecla .

  • Eliminacin de registrosElimine los productos con la clave mayor que 4 mediante T-Sql.

    DELETE FROM PRODUCTOSWHERE CLAVE > 4

    Si no especifica la clusula WHERE se borran todos los registros de la tabla.

  • Seleccin de registrosHaga clic derecho sobre la tabla a la que desea seleccionar registros y elija la opcin Select Top 1000 Rows.

  • Seleccin de registrosSeleccione todos los registros de la tabla PRODUCTOS mediante T-Sql.SELECT * FROM PRODUCTOS

    Seleccione todos los productos que pertenecen a la lnea 1 mediante T-Sql:

    SELECT * FROM PRODUCTOSWHERE LINEA = 1

  • Desarrollo de aplicaciones Windows con ADO .NET, SQL Server y Crystal Reports

  • Que es ADO.NET?ADO.NET es un conjunto de componentes software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que est incluida en el Microsoft .NET Framework. Es comnmente usado por los programadores para acceder y para modificar los datos almacenados en un Sistema Gestor de Bases de Datos Relacionales.

  • Mtodos de acceso a datos en Visual Studio Ambiente VisualCuando accedemos a la base de datos en ambiente visual lo que hacemos es simplemente arrastrar las tablas desde el Explorador de Servidor del Visual Studio hacia el diseo de nuestro formulario. Al hacer esto Visual Studio automticamente crea los objetos necesarios para acceder a la base de datos.Ventajas:Se acelera el proceso de desarrolloDesventajas:Menos flexibilidadMenos rendimiento en cuanto a velocidad.

  • Mtodos de acceso a datos en Visual Studio Por cdigoAl acceder la base de datos por medio de cdigo lo que hacemos es crear los objetos para acceder a los datos manualmente, es decir, los declaramos y creamos en el cdigo de nuestra aplicacin.Ventajas:Mayor flexibilidad para hacer lo que se quiereMejor rendimiento ya que se pueden crear y destruir los objetos cuando uno quieraDesventajas:Desarrollo mas lento

  • Proveedores de datos (Dataproviders)Un proveedor de datos .NET es un conjunto de componentes que proporcionan acceso a una fuente de datos como Microsoft SQL Server u Oracle. Cada fuente de datos tiene su propio proveedor, pero en cada uno de estos proveedores se tiene un conjunto comn de clases que incluye, entre otras, a las clases Connection, Command, DataReader y DataAdapter.

  • Tipos de proveedores de datosProveedor administrado OLEDBProveedor administrado ODBCProveedor administrado SQLProveedor administrado OracleProveedor administrado MySQLProveedor administrado FirebirdEtc

  • Proveedor OLEDB (System.Data.OleDb)El proveedor de datos de .NET Framework para OLE DB describe una coleccin de clases que se utiliza para obtener acceso a un origen de datos OLE DB en el espacio administrado. Utiliza proveedores OLE DB originales a travs de la interoperabilidad COM para habilitar el acceso a origenes de datos. Algunos proveedores OLE DB compatibles con ADO.NET son los siguientes:

    Proveedor OLE DB de Microsoft para SQL ServerProveedor OLE DB de Microsoft para OracleProveedor OLE DB Microsoft.Jet.OLEDB. para Jet

  • Proveedor ODBC (System.Data.Odbc)El proveedor de datos ODBC .NET ofrece acceso a controladores ODBC originales del mismo modo que el proveedor de datos OLE DB .NET ofrece acceso a proveedores OLE DB originales. El proveedor de datos ODBC .NET est pensado para funcionar con todos los controladores que cumplan las especificaciones ODBC.Algunos controladores ODBC compatibles con ADO.NET son los siguientes:

    Controlador ODBC para Microsoft SQLControlador ODBC de Microsoft para OracleControlador ODBC para Microsoft Jet

  • Proveedor SQLUtiliza su propio protocolo para comunicarse con la base de datos de Microsoft SQL Server. El proveedor de datos de .NET Framework para SQL Server describe una coleccin de clases utilizadas para obtener acceso a una base de datos de SQL Server en el espacio administrado.

    Estas clases se encuentran en el espacio de nombres System.Data.SqlClient.

  • Clases Principales del Proveedor SQLSqlConnectionSqlCommandSqlDataReader

    DataTableDataSet SqlDataAdapterSqlCommandBuilder

  • SqlConnectionEsta clase se utiliza para establecer una conexin con el servidor de base de datos Microsoft SQL Server. Representa una conexin abierta con el servidor de base de datos y representa una nica sesin abierta con dicho origen de datos.

  • ConnectionStringEs una cadena que provee la informacin que define una conexin a un almacn de datos usando un conjunto de parmetros. Los siguientes son los parmetros mas usuales de una cadena de conexin para conectarse a un origen de datos SQL Server.

    Data Source - El nombre del servidor.Initial Catalog - El nombre de la base de datos, si se omite se utiliza la predeterminada del usuario.Password - El password del usuario.User ID - El login del usuario.Integrated Security - Establece el mecanismo de autenticacin con el servidor, los valores posibles son TRUE y FALSE.

  • Ejemplo SqlConnectionprivate static void OpenSqlConnection(){ SqlConnection connection = new SqlConnection(Data Source=FIM-CC1- 043\SQLEXPRESS;Initial Catalog=AdventureWorks; Integrated Security=SSPI;)) connection.Open(); Console.WriteLine("ServerVersion: {0}", connection.ServerVersion); Console.WriteLine("State: {0}", connection.State); }

  • SqlCommandRepresenta un procedimiento almacenado o una instruccin de Transact-SQL que se ejecuta en una base de datos de SQL Server.Se encuentra en lenguaje DML (Data Definition Language), es decir, puede ser una consulta, para insertar datos, borrar o actualizar.Ejemplos de comandos DML son:SELECT telefono_cliente FROM clientesINSERT INTO clientes(telefono_cliente) VALUES(22746207) DELETE FROM clientes WHERE telefono_cliente=22746207 UPDATE clientes SET telefono_cliente=22746207 WHERE id_cliente=1

  • Ejemplo SqlCommandprivate static void ReadOrderData(string connectionString){ string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; SqlConnection connection = new SqlConnection( connectionString)) SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } } finally { // Always call Close when done reading. reader.Close(); connection.Close(); } }

  • SqlDataReaderEs un lector de datos de slo avance. Proporciona una forma de leer una secuencia de filas slo hacia delante en una base de datos de SQL Server. Para crear un SqlDataReader, se debe llamar al mtodo ExecuteReader del objeto SqlCommand.

  • Ejemplo SqlDataReaderprivate static void ReadOrderData(string connectionString){ string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; SqlConnection connection = new SqlConnection( connectionString)) SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } } finally { // Always call Close when done reading. reader.Close(); } }

  • DEMOConstruccin de un ABC bsico utilizando SqlConnection, SqlCommand y SqlDataReader

  • PrcticaElaborar un prototipo aplicacin windows utilizando SqlConnection, SqlCommand y SqlDataReader que contenga los siguientes catlogos:

    Paises (Clave, Nombre)Estados (Clave, Nombre, Pais)Proveedores (Clave, Nombre, Domicilio, Telfono)Productos (Clave, Descripcin, Precio, Proveedor)

    Cada catlogo debe estar en formularios independientes, con opciones de insertar, modificar, borrar y buscar registros. 120 minutos

  • DataSetRepresenta un componente fundamental de la arquitectura de ADO.NET. Un DataSet est compuesto por una coleccin de objetos DataTable en memoria y asemeja en su estructura a una base de datos.Un DataSet puede leer y escribir datos como documentos XML. De este modo los datos y esquemas pueden transportarse, a travs de HTTP y cualquier aplicacin puede utilizarlos en cualquier plataforma que sea compatible con XML.DataSet dsProductos = new DataSet(); // Contenedor de datatables

  • DataTableRepresenta un componente fundamental de la biblioteca de ADO .Net. Un datatable es una representacin en memoria de una tabla de una base de datos. Es decir, cuando nosotros ejecutamos una consulta, nuestra consulta regresa una serie de filas identificadas por una columna cada una. Este serie de filas y columnas es almacenada en un DataTable exactamente como las regreso la consulta que hicimos a la base de datos.

    SqlDataAdapter daProductos = new SqlDataAdapter("select * from Productos", conexion); //Se utiliza para llenar un datatabledaProductos.Fill(dsProductos, "Productos"); //Llena una tabla llamada "productos" dentro del dataset

  • SqlDataAdapterRepresenta un conjunto de comandos de datos y una conexin de base de datos que se utilizan para rellenar un DataSet y actualizar una base de datos de SQL Server. SqlDataAdapter, se utiliza como un puente entre DataSet y SQL Server para recuperar y guardar datos.

    SqlDataAdapter daProductos = new SqlDataAdapter("select * from Productos", conexion); //Se utiliza para llenar un datatabledaProductos.Fill(dsProductos, "Productos"); //Llena una tabla llamada "productos" dentro del dataset

  • SqlCommandBuilderGenera automticamente comandos de tabla nica que se utilizan para conciliar los cambios realizados en un objeto DataSet con la base de datos de SQL Server asociada. SqlDataAdapter no genera automticamente las instrucciones de Transact-SQL requeridas para reconciliar los cambios realizados en un DataSet con la instancia asociada de SQL Server. No obstante, se puede crear un objeto SqlCommandBuilder que genere automticamente instrucciones de Transact-SQL para las actualizaciones de una sola tabla si se establece el valor de la propiedad SelectCommand de SqlDataAdapter. A continuacin, cualquier instruccin de Transact-SQL adicional que no se establezca se genera mediante SqlCommandBuilder.

    daProductos = new SqlDataAdapter("select * from Productos", conexion);SqlCommandBuilder cmdBldr = new SqlCommandBuilder(daProductos);

  • DataGridViewMuestra los datos en una cuadrcula personalizable. El control DataGridView proporciona una tabla personalizable para mostrar datos. La clase DataGridView permite personalizar celdas, filas, columnas y bordes mediante propiedades como DefaultCellStyle, ColumnHeadersDefaultCellStyle, CellBorderStyle y GridColor.

    dataGridView1.DataSource = dsProductos; dataGridView1.DataMember = "Productos";

  • Ejemplo SqlDataAdapter, DataSet, DataTable y SqlCommandBuilder SqlConnection conexion;

    private SqlDataAdapter daProductos; private DataSet dsProductos;

    public Form1() { InitializeComponent(); }

    private void Form1_Load(object sender, EventArgs e) { conexion = new SqlConnection("Data Source=localhost;Initial Catalog=Inventario;Integrated Security=SSPI"); conexion.Open(); //3.- Abrir la conexin dsProductos = new DataSet(); // Contenedor de datatables daProductos = new SqlDataAdapter("select * from Productos", conexion); SqlCommandBuilder cmdBldr = new SqlCommandBuilder(daProductos); daProductos.FillSchema(dsDia2, SchemaType.Mapped, Productos"); daProductos.Fill(dsProductos, "Productos"); dataGridView1.DataSource = dsProductos; dataGridView1.DataMember = "Productos"; }

    private void btnGuardar_Click(object sender, EventArgs e) { daProductos.Update(dsProductos, "Productos"); }

  • DataRowRepresenta una fila de datos en un DataTable. Se utiliza el objeto DataRow y sus propiedades y mtodos para recuperar, evaluar, insertar, eliminar y actualizar los valores de DataTable.

    DataRow drProducto = dsProductos.Tables["productos"].NewRow(); drProducto["Clave"] = txtClave.Text; drProducto["Descripcion"] = txtDescripcion.Text; dsProductos.Tables["productos"].Rows.Add(drProducto);

  • SqlParameterRepresenta un parmetro de un objeto SqlCommand y, de manera opcional, su asignacin a columnas de DataSet.

    // Sentencia sql a ejecutar SqlCommand cmdConsultar = new SqlCommand("insert into productos(clave,descripcion) values (@Clave,@Descripcion)", conexion);//Agregar parametroscmdConsultar.Parameters.Add("@Clave", SqlDbType.VarChar, 10).Value = txtClave.Text;cmdConsultar.Parameters.Add("@Descripcion", SqlDbType.VarChar, 50).Value = txtDescripcion.Text;// 2. Ejecutar sentencia sql contra base de datoscmdConsultar.ExecuteNonQuery();

  • SqlTransactionRepresenta una transaccin de Transact-SQL que se realiza en una base de datos de SQL Server. Para utilizar un objeto SqlTransaction la aplicacin crea un objeto SqlTransaction mediante una llamada a BeginTransaction en el objeto SqlConnection. Todas las operaciones siguientes asociadas a la transaccin (por ejemplo, la confirmacin o la interrupcin de la transaccin) se realizan en el objeto SqlTransaction.

  • Ejemplo SqlTransactionprivate static void ExecuteSqlTransaction(string connectionString){ SqlConnection connection = new SqlConnection(connectionString) connection.Open(); SqlCommand command = connection.CreateCommand(); SqlTransaction transaction; transaction = connection.BeginTransaction("SampleTransaction"); command.Connection = connection; command.Transaction = transaction; try { command.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; command.ExecuteNonQuery(); command.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"; command.ExecuteNonQuery(); transaction.Commit(); Console.WriteLine("Both records are written to database."); } catch (Exception ex) { Console.WriteLine("Commit Exception Type: {0}", ex.GetType()); Console.WriteLine(" Message: {0}", ex.Message); transaction.Rollback(); } }}

  • DEMOConstruccin de un ABC bsico utilizando DataSet, DataTable, SqlDataAdapter y SqlCommandBuilder

  • PrcticaElaborar un prototipo aplicacin Windows utilizando DataSet, DataTable, SqlDataAdapter y SqlCommandBuilder que contenga los siguientes catlogos:

    Paises (Clave, Nombre)Estados (Clave, Nombre, Estado)Proveedores (Clave, Nombre, Domicilio, Telfono)Productos (Clave, Descripcin, Precio, Proveedor)

    Cada catlogo debe estar en formularios independientes, con opciones de insertar, modificar, borrar y buscar registros. 120 minutos

  • Introduccin al DatabindingEl databinding (enlace de datos) una tcnica para mostrar datos en los controles escribiendo poco o ningn cdigo.En el pasado el databinding a sufrido de una mala reputacin, ya que las nicas aplicaciones que podan utilizarlo con xito eran simples herramientas de generacin de informes o envolturas de base de datos escritas en lenguajes como Microsoft Access Basic. Estas aplicaciones eran muy fciles de programar, pero notablemente limitadas, inflexibles, y con un pobre desempeo.

  • Introduccin al DatabindingLos principales problemas que ha presentado el databinding en el pasado son:

    Necesidad de conexin continua con el origen de datos: Con el databinding tradicional, las conexiones con el origen de datos deben estar abiertas por largos perodos de tiempo, por lo general, siempre que una ventana se est mostrando. Esto podra ser aceptable para una pequea aplicacin, pero no funciona en un entorno distribuido o con una aplicacin basada en web.

    Poco personalizacin. El desarrollador no puede controlar parte del proceso de enlace de datos, tiene poca capacidad para aplicar la lgica de validacin, y no se puede personalizar el despliegue de la mayora de los controles que admiten el enlace de datos.

  • Databinding en .NETADO.NET se ocupa de estas cuestiones con un framework adaptable y reutilizable de enlace de datos que se centra en dos clases: DataView DataViewManager. Estas clases proporcionan una importante capa de vinculacin indirecta entre los datos y su formato de visualizacin, lo que permite aplicar ordenamientos y filtros en los registros sin modificar la informacin base, es decir, se tienen dos diferentes vistas de los mismos datos. El databinding en ADO.NET siempre se lleva a cabo por uno de estos objetos.

  • DataViewLa clase DataView acta como una vista en un nico DataTable. Cuando se crea un objeto DataView, se puede especificar el DataTable subyacente en el constructor:

    // Crear un DataView para la tabla Customers.DataView view = new DataView(ds.Tables["Customers"]);

    Cada DataTable proporciona tambin un DataView predeterminado a travs de la propiedad DefaultView:

    // Obtener una referencia a la default DataView de la tabla Customers.DataView view = ds.Tables["Customers"].DefaultView;

  • DataViewManagerEl DataViewManager representa una vista de un DataSet completo. Al igual que con la DataView, es posible crear un DataViewManager manualmente, pasando una referencia a un DataSet como argumento del constructor, o se puede utilizar el DataViewManager predeterminado que se proporciona a travs de la propiedad DataSet.DefaultViewManager.

  • Ejemplo de DataViewAl parecer se esta asociando el datagrid directamente al datatable, pero en realidad .NET asocia por default el datagrid a la propiedad DefaultView del DataTable, de este modo es posible utilizar la siguientes sintaxis equivalentes:

  • Ejemplo DataViewManager

  • Ordenar un DataViewPara aplicar un ordenamiento a los datos en un DataView se utiliza la propiedad DataView.Sort. Para ordenar los datos ADO.NET utiliza la misma sintaxis que la clausula order by de SQL.SQLEl equivalente en ADO .NET esOrdenar por mltiples columnas

  • Filtrado de un DataViewPara aplicar un filtrado a los datos en un DataView se utiliza la propiedad DataView.RowFilter. Para filtrar los datos ADO.NET utiliza la misma sintaxis que la clausula where de SQL.SQLEl equivalente en ADO .NET esEs posible tambin aplicar filtrado por el estado del registro del siguiente modo:

  • Multiples DataViewsUno de los aspectos ms tiles de los DataView es la capacidad de crear mltiples objetos DataView para proporcionar diferentes representaciones de los mismos datos. Esta tcnica es bastante sencilla y se muestra en el siguiente ejemplo:

  • Acceder datos en DataViewUn DataView no es slo para hacer databinding. Tambin se puede utilizar para hacer cambios programticos. Por ejemplo, se puede crear un objeto DataView que contengalos registros que coinciden con determinados criterios y luego aplicarles un cambio global. Por ejemplo:

  • Buscar datos en DataViewUna vez que se ha definido un criterio de ordenacin de un DataView, es posible utilizar criterios de bsqueda de registros. El DataView proporciona dos mtodos para esta tarea: Find () y FindRows ().Buscar un registroBuscar varios registrosBuscar por varios campos

  • Databinding en Windows FormsHasta ahora, los ejemplos mostrados se han concentrado en un solo control diseado especficamente para el enlace de datos: el control DataGrid de Windows. Pero la plataforma de Windows Forms tambin es compatible con el enlace de datos con casi cualquier control y automticamente puede sincronizar mltiples controles enlazados a datos.

  • CurrencyManager y BindingContextCurrencyManager

    Cuando se enlaza un objeto de datos a un control, a este se le asigna automticamente un objeto CurrencyManager. El CurrencyManager realiza un seguimiento de la posicin actual en el origen de datos. Si se va a enlazar a ms de un origen de datos, cada uno tiene su CurrencyManager por separado. Si varios controles son enlazados al mismo origen de datos, estos comparten el mismo objeto CurrencyManager.

  • CurrencyManager y BindingContextBindingContext

    Cada formulario tiene un objeto BindingContext. El objeto BindingContext realiza un seguimiento de todos los objetos CurrencyManager en el formulario. Es posible crear y utilizar ms de un objeto BindingContext, pero, por defecto, cada formulario tiene un nico BindingContext.

  • CurrencyManager y BindingContext

  • Single-Value Binding (TextBox, Label, etc)Conectar a un TextBox al campo ContactName de la tabla

  • List Binding (Combobox, ListBox, etc)Enlazar el combobox a la tabla customers y mostrar el campo CustomerId (DisplayMember) Enlazar el combobox a la tabla customers, mostrar el campo ContactName (DisplayMember) y guardar el campo ValueMemberDesplegar el CustomerId del registro actual

  • NavegacinHasta ahora, hemos considerado slo una forma de control de la navegacin: el uso de un control de navegacin como un control ListBox o DataGrid. Sin embargo, tambin es posible controlar la navegacin mediante programacin interactuando directamente con el CurrencyManager. Cuando uno de estos botones se hace clic, un nuevo registro est seleccionado, y todos los controles vinculados se actualizan automticamente.

  • Elaboracin de reportes con Crystal Reports

  • Qu es Crystal Reports?Crystal Reports es una aplicacin de inteligencia empresarial utilizada para disear y generar informes desde una amplia gama de fuentes de datos (bases de datos).

    Crystal Reports fue originalmente creado por Crystal Services Inc., la cual produjo las versiones 1.0 hasta la 3.0.

    La compaa fue subsecuentemente adquirida por Seagate Software, la que luego fue renombrada como Crystal Decisions, y produjo las versiones 4.0 hasta la 9.0.

    Crystal Decisions fue adquirida en diciembre de 2003 por Business Objects, la cual ha producido las versiones 10 y 11 (XI).

  • Qu es Crystal Reports?Business Objects fue adquirida el 8 de Octubre de 2007 por SAP.

    Varias aplicaciones, como Microsoft Visual Studio, incluyen una versin OEM (Original Equipment Manufacturer - Fabricante de Equipamiento Original) de Crystal Reports como una herramienta de propsito general para informes.

    Crystal Reports ha sido parte de Visual Basic desde 1993, y una parte de Visual Studio desde su primer lanzamiento en 2002. Crystal Reports ha sido un componente muy exitoso de estos productos.

  • Qu es un informe?Un informe es otra modalidad de presentacin de los datos, que puede enviarse a la pantalla o imprimirse. Los informes resultan ms adecuados para presentar informacin agrupada, ofreciendo la posibilidad de agrupar y subagrupar, permitiendo obtener subtotales de distintos niveles.

    Los informes son herramientas de administracin. Sirven para facilitar una rpida compresin de los elementos bsicos y las relaciones entre los datos sin formato y ayudarle a tomar las decisiones correctas.

    Dentro de los informes pueden incluirse textos, grficos, lneas y diversos elementos visuales.

  • Partes de un informeEncabezado del informe: Los objetos que se coloquen en esta seccin se imprimirn una sola vez al principio del informe. Esta seccin se usa para poner el ttulo del informe (si se quiere que salga solamente en la primer pgina), o para grficas o mapas que representan a todos los datos del informe.

    Encabezado de pgina: Esta seccin imprime los objetos al principio de cada pgina del informe. Esta es una buena localizacin para fechas, nmeros de pgina, o cualquier otra informacin que el usuario quiera que aparezca en cada pgina.

    Encabezado de grupo: Si se decide dividir la informacin en el informe, esto se hace creando grupos. Los objetos en esta seccin aparecen al inicio de cada nuevo grupo. Comnmente esta seccin contiene el nombre del grupo o algn otro texto identificador que representa los datos del grupo.

  • Partes de un informeDetalles: Esta seccin contiene el detalle de los registros del informe y se repite por cada registro recuperado de la base de datos. Aqu es donde se colocan los objetos que representan los datos en el informe.

    Pie de grupo: Esta seccin imprime al final de cada grupo y solo se despliega cuando el informe se ha dividido en grupos. Aqu es donde se colocan los subtotales y sumarios por grupo y cualquier otra informacin que se quiera incluir al final de cada grupo.

    Pie del informe: Los objetos colocados en esta seccin se imprimen solo una vez al final del informe. Es un lugar perfecto para colocar el gran total y otros sumarios para el informe entero.

  • Partes de un informePie de pgina: Como en el encabezado de pgina, esta seccin aparece en cada pgina del informe, solo que sta se despliega al final de la pgina. Se puede usar para nmeros de pgina, fecha de impresin, o cualquier otra informacin que el usuario necesite que se vea en cada pgina del informe.

    Cabe destacar que puede incluir tantos Encabezados y Pies de grupo como lo desee.

    Todas las reas mencionadas anteriormente tienen un tamao fijo (establecido en tiempo de diseo) excepto el rea de detalles la cual crece de acuerdo al nmero de registros que presenta sobre ella.

  • Encabezado del InformeEncabezado del PginaEncabezado de grupo 1Encabezado de grupo 2Encabezado de grupo 3DETALLESPie del grupo 2Pie de pgina

  • Crear un informe mediante el asistenteCon Crystal Reports puede iniciar diseando sus informes a partir de cero creando un informe en blanco o puede comenzar utilizando el asistente el cual lo guiar paso a paso en generar un informe.

    Por el momento crearemos un informe haciendo uso del asistente.

    Siga los siguientes pasos para crear un informe bsico mediante el asistente de Crystal Reports.

  • Preparacin del entornoSe indican los pasos necesarios para crear un ejemplo bsico de informes, puede seleccionar configuraciones distintas a las presentadas aqu si as lo desea pero se recomienda que de inicio los siga al pie de la letra y una vez que ya tenga soltura en el uso de Crystal Reports cree sus propias configuraciones.

    Cree la siguiente estructura de carpetas en la unidad C:C:\AppInformesC:\AppInformes\BD

  • Crear la BDCon Crystal Reports puede utilizar una gran variedad de fuentes de datos. Utilizaremos el motor de base de datos Sql Server.

    Cree una base de datos con Sql Server con la siguiente informacin:

    Nombre: REFACCIONARIAPath: C:\AppInformes\BD

  • Crear la BDCree una tabla con la siguiente informacin:

    Introduzca informacin aleatoria a esta tabla

    PRODUCTOSLLAVECAMPOTIPONULOSPKCLAVEINTNODESCRIPCIONVARCHAR(100)SIPRECIOFLOATSI

  • Crear la aplicacinAbra Visual Studio 2010 y cree una aplicacin de tipo Windows Form: File-New-Project. Pngale el nombre AppInformes y lo guarda en la ruta C:\AppInformes

  • Crear la aplicacinLucir as:

  • Crear el informeUna vez creado el proyecto, agregue un informe al proyecto siguiendo estos pasos:

    Seleccione la opcin Project-Add New Item

    En la ventana emergente extienda el nodo Visual C# Items del panel de la izquierda y luego el subnodo Reporting.

    En el panel del medio elija la opcin Crystal Reports.

    Escriba un nombre para el informe, por ejemplo RepProductos

    Clic

  • Crear el informeSeleccin de un informe

  • Iniciar el asistenteElija la opcin Using the Report Wizard

    Seleccione el informe Standard

    Clic

  • Establecer conexin con la BDEn la ventana Standard expanda el nodo Create New Connection y posteriormente expanda el subnodo OLE DB (ADO)

  • Establecer conexin con la BDSe abrir una nueva ventana para establecer la cadena de conexin.

    En la lista de Providers seleccione Sql Server Native Client 10.0

    Clic

  • Establecer conexin con la BDSeleccione el servidor Sql Server en la lista Server

    Si active la casilla Integrated Security

    Finalmente elija la base de datos de la listadatabase.

    Clic

  • Establecer conexin con la BDSi lo desea puede hacer ajustes a ciertas propiedades.

    Clic

  • Crear el informe mediante el asistenteUna vez establecida la conexin a la BD, se le mostrarn los objetos de dicha BD.

    Seleccione la tabla Productos y arrstrela al panel de la derecha.

    Clic

  • Crear el informe mediante el asistente

    Seleccione los campos con los que desee trabajar en el informe y arrstrelos al panel de la derecha.

    Clic

  • Crear el informe mediante el asistenteEn la siguiente pantalla podr establecer un campo para agrupacin, por el momento no utilizaremos esta opcin.

    Clic

  • Crear el informe mediante el asistenteEn la siguiente pantalla podr establecer un filtro para reducir los registros devueltos, por el momento no utilizaremos esta opcin.

    Clic

  • Crear el informe mediante el asistenteSeleccione un diseo de informe de su preferencia.

    Clic

  • Crear el informe mediante el asistente

    El resultado ser similar a este:

  • Crear un informe mediante el asistenteDescribe los pasos a seguir para crear un informe bsico.Si le da clic en Main Report Preview se mostrar lo siguiente:

  • Ver el informe en un formularioPara mostrar el informe en un formulario de su aplicacin siga estos pasos:

    Primeramente cambie el framework utilizado por su aplicacin. Por default est establecido como .NET Framework 4 Client Profile, cmbielo a .NET Framework 4.

    Seleccione la opcin Project-AppInformes Properties

    Despliegue la lista Target Frameword y elija la opcin .NET Framework 4

    Clic

  • Ver el informe en un formularioPropiedades del proyecto.

  • Ver el informe en un formularioAbra el formulario donde desee visualizar su informe.

    Arrastre el componente CrystalReportViewer desde el toolbox en la pestaa Reporting y colquelo en el formulario.

    Establezca la propiedad ReportSource, seleccione el reporte que acaba de disear.

    Establezca la propiedad Dock= Fill

  • Crear un informe mediante el asistenteDescribe los pasos a seguir para crear un informe bsico..

  • IDE de Crystal Reports

  • Barra de herramientasLa barra de herramientas nos sirve para acceder de manera ms rpida a las opciones que tenemos en el men. Crystal Reports tiene cuatro barras de herramientas bsicas:

  • Barra de herramientasBarra de herramientas estndar: Esta barra contiene botones para comandos bsicos de edicin, tales como guardar, abrir, cortar, copiar, pegar, deshacer, etc.

  • Barra de herramientasBarra de herramientas formato: Esta barra contiene botones de comandos para dar formato, como negrita, itlica, subrayado, alineacin, formato de nmeros, etc. Muchos de estos botones no se activan hasta que se tiene seleccionado algn objeto.

  • Barra de herramientasBarra de herramientas insertar: Esta barra contiene botones para aadir varios objetos al reporte. Estos botones generalmente estn activos para todos los reportes.

  • Barra de herramientasBarra de herramientas experto: Esta barra contiene botones para modificar y formatear objetos como grficas de barras y mapas. Estos botones pueden estar activos o no, dependiendo del tipo de objeto que representen.

  • Barra de herramientasBarra de herramientas alineacin: Esta barra contiene botones que le ayudan a alinear ciertos objetos con otros.

  • Explorador de camposEl Explorador de campos se usa para insertar todos los tipos de campos dentro del reporte.

    Se listan los ocho tipos de campos que se pueden insertar:- De base de datos- Frmulas - Expresiones de SQL- Parmetros- Totales - Grupos - Especiales- Unbound Fields

  • rea de trabajoEsta rea ocupa el mayor espacio del IDE de Crystal Reports y es con la que trabajar la mayor parte del tiempo al disear un informe.

    Se divide en dos reas:

    - rea de diseo- rea de previsualizacin

  • rea de trabajoEl rea de diseo: Es la representacin esquemtica del reporte que contiene los campos y el texto ubicados y ordenados en la forma como aparecern en el reporte.

  • rea de trabajoEl rea de diseo est dividida en cinco secciones. Cada seccin corresponde a una parte especfica del reporte ya impreso.

    Estas secciones corresponden a las partes de un informe (visto en el punto 4-Partes de un informe).

    Cada seccin tiene sus propias caractersticas que determinan dnde se imprimirn los objetos

    Cada seccin tiene una barra al final de la seccin que define el tamao de la seccin. Usando el mouse se puede jalar la barra hasta hacer que la seccin se haga ms pequea o ms grande, y as tener ms o menos espacio en la seccin para colocar objetos.

  • rea de trabajoEl rea de previsualizacin: Esta rea nos sirve para ver de manera preliminar el diseo de nuestro informe a como va a quedar su aspecto final.

  • Preguntas

    **Antes de decir qu es .NET, es conveniente aclarar qu NO es .NET:.NET no es un sistema operativo, como si lo es Microsoft Windows en sus distintas versiones..NET no es un Lenguaje de Programacin: si bien la plataforma Microsoft .NET incluye lenguajes de programacin de aplicaciones, su concepto es ms amplio y va ms all de stos..NET no es un Entorno de Desarrollo: si bien la plataforma Microsoft .NET incluye entornos de desarrollo integrados (IDEs), su concepto es ms amplio y va ms all de stos..NET no es un servidor de aplicaciones (Application Server).NET no es un producto empaquetado que se pueda comprar como tal, sino que es una plataforma que engloba distintas aplicaciones, servicios y conceptos y que en conjunto permiten el desarrollo y la ejecucin de aplicaciones.

    *Microsoft .NET es una plataforma de desarrollo y ejecucin de aplicaciones. Esto quiere decir que no slo nos brinda todas las herramientas y servicios que se necesitan para desarrollar modernas aplicaciones empresariales y de misin crtica, sino que tambin nos provee de mecanismos robustos, seguros y eficientes para asegurar que la ejecucin de las mismas sea ptima. Los componentes principales de la plataforma .NET son:Un entorno de ejecucin de aplicaciones, tambin llamado Runtime, que es un componente de software cuya funcin es la de ejecutar las aplicaciones .NET e interactuar con el sistema operativo ofreciendo sus servicios y recursos.Un conjunto de bibliotecas de funcionalidades y controles reutilizables, con una enorme cantidad de componentes ya programados listos para ser consumidos por otras aplicaciones.Un conjunto de lenguajes de programacin de alto nivel, junto con sus compiladores y linkers, que permitirn el desarrollo de aplicaciones sobre la plataforma .NET.Un conjunto de utilitarios y herramientas de desarrollo para simplificar las tareas ms comunes del proceso de desarrollo de aplicacionesDocumentacin y guas de arquitectura, que describen las mejores prcticas de diseo, organizacin, desarrollo, prueba e instalacin de aplicaciones .NET

    A lo largo de esta presentacin se analizar cada uno de estos puntos con mayor detalle.

    Por otra parte, .NET representa la evolucin COM (Component Object Model), la plataforma de desarrollo de Microsoft anterior a .NET y sobre la cual se basaba el desarrollo de aplicaciones Visual Basic 6 (entre otros tantos lenguajes y versiones).**El .NET Framework (traducido como Marco de Trabajo) es el componente fundamental de la plataforma Microsoft .NET, necesario tanto para poder desarrollar ap


Recommended