121
Curso Básico .NET - SQL Febrero 2013

Curso SQL-C# Basico

  • Upload
    sertimx

  • View
    2.072

  • Download
    0

Embed Size (px)

DESCRIPTION

Ejercicios en https://trello.com/card/febrero-2013/5064bf2878d2cb3f1410d728/1

Citation preview

Page 1: Curso SQL-C# Basico

Curso Básico .NET - SQL

Febrero 2013

Page 2: Curso SQL-C# Basico

sTI_CI_v1_201302

• Programación Orientada a objetos (POO)• Lenguaje unificado de

modelado (UML)• Lenguaje SQL• Lenguaje C#

Temario

Page 3: Curso SQL-C# Basico

POO

Page 4: Curso SQL-C# Basico

sTI_CI_v1_201302

Conceptos fundamentales

• Clase• Objeto• Abstracción• Encapsulamiento• Polimorfismo • Herencia

• http://arevalomaria.wordpress.com/2010/11/24/introduccion-a-la-programacion-orientada-a-objetos/• http://msdn.microsoft.com/es-es/library/bb972232.aspx

POO

Page 5: Curso SQL-C# Basico

UML

Page 6: Curso SQL-C# Basico

sTI_CI_v1_201302

Principales diagramas

• Casos de uso• Clases• Estado• Secuencia• Componentes

• http://www.docirs.cl/uml.htm• http://www.escet.urjc.es/~smontalvo/umlToJava_v2.pdf

UML

Page 7: Curso SQL-C# Basico

sTI_CI_v1_201302

Ejercicio UML

Se requiere un sistema para el control de acceso de empleados de la empresa “X”, la empresa cuenta con acceso por medio de código de empleado y sistemas biométricos, el acceso se divide en diez puertas en dos diferentes edificios.El edificio “A” cuenta con 6 puertas de las cuales tres son de uso común (baño, comedor y acceso lugar de trabajo) y tres tienen acceso restringido (site, almacén y enfermería).El edificio “B” cuenta con 4 puertas de las cuales tres son de acceso común (idem anterior) y una de acceso restringido para el almacén.

Page 8: Curso SQL-C# Basico

sTI_CI_v1_201302

Ejercicio UML

Las puertas de acceso común se activan cuando se ingresa un código de acceso, las puertas de acceso restringido deberán ser abiertas únicamente cuando se ingrese un código valido así como la lectura de la huella digital.El sistema se alojara en el site del edificio “A”.Realizar un diagrama de casos de uso para el acceso a la empresa.Realizar un diagrama de clases para la aplicación.Realizar un diagrama de secuencia para el ingreso a la puerta “A” Baño y “B” almacén.Realizar un diagrama de estado para una puerta restringida.

Page 9: Curso SQL-C# Basico

SQL

Page 10: Curso SQL-C# Basico

sTI_CI_v1_201302

MS SQL Server

• http://www.islasoft.com/Producto/Diferencias_SQL_Server_Office.pdf

SQL

• IDE• Instancia• Conexiones• Configuración de red• Administración de usuarios

Page 11: Curso SQL-C# Basico

sTI_CI_v1_201302

Lenguaje de definición de datos (DDL)

• Create• Alter• Drop• Truncate

• http://support.microsoft.com/kb/180841/es• http://www.youtube.com/watch?v=HO5eb2wBaBk

SQL

Page 12: Curso SQL-C# Basico

sTI_CI_v1_201302

Createcreate table [nombre_tabla]( [campo_1] [tipo dato])Alteralter table [nombre_tabla] add [nombre_columna] [tipo dato]alter table [nombre_tabla] drop [nombre_columna]alter column [nombre_columna] [tipo_dato] [propiedad_especial]Dropdrop [objeto] [nombre_tabla]

• index• database• table

Truncatetruncate table [nombre_tabla]

• http://grimpidev.wordpress.com/2009/03/21/diferencias-entre-truncate-table-y-delete-from/

SQLInstrucciones fundamentales del DDL

Page 13: Curso SQL-C# Basico

sTI_CI_v1_201302

Ejercicio(DDL) SQL

• Crear por medio de código una tabla del modelo de accesos y otra por medio la herramienta de diseño.

• Crear una consulta que agregue la columna de fecha de creación y modificación además de las columnas de usuarioCreacion y usuarioUltimaModificación

• Crear una consulta para remover la columna de usaurioCreacion

• Borrar la primer tabla creada.

Page 14: Curso SQL-C# Basico

sTI_CI_v1_201302

Lenguaje de manipulación de datos (DML)

• Insert• Update• Delete• Select

SQL

• http://msdn.microsoft.com/es-es/library/ms177591(v=sql.90).aspx /

Page 15: Curso SQL-C# Basico

sTI_CI_v1_201302

Selectselect [nombre_columna],..[n] InsertInsert [nombre_tabla] values ([valor_columna],..[n])Updateupdate [nombre_tabla] set [nombre_columna] = [valor_columna]Deletedelete from [nombre_tabla]

SQL

Instrucciones fundamentales del DML

Page 16: Curso SQL-C# Basico

sTI_CI_v1_201302

Lógicos•AND•OR •NOTComparación•BETWEEN•LIKE•INAgregado•AVG•COUNT•SUM•MAX •MIN

• http://andresmtzg.wordpress.com/2012/11/15/sql/• http://laboratorio.is.escuelaing.edu.co/labinfo/doc/Manual_Basico_del_Lenguaje_SQL.pdf

SQLInstrucciones principales del DML

Clausulas•FROM•WHERE•GROUP BY•HAVING•ORDER BYRelacionales•<•>•<>•<=•>=•=

Predicado•ALL•TOP•DISTINCT•DISTINCTROW

Page 17: Curso SQL-C# Basico

sTI_CI_v1_201302

La sentencia join en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado (SQL).Habitualmente cuando necesitamos recuperar la información de las consultas combinadas o JOINS. Las consultas combinadas pueden ser de tres tipos:•Combinación interna•Combinación externa•Uniones

• http://www.devjoker.com/contenidos/articulos/17/Consultas-combinadas-JOINS.aspx

SQLJOINS

Page 18: Curso SQL-C# Basico

sTI_CI_v1_201302

Ejercicio(DML) SQL

• Insertar treinta registros en la tabla creada en el ejercicio anterior (Generar fechas de creación y modificación aleatorias no se podrá repetir ninguna)

• Generar una consulta que contenga los 5 registros con fechas de creación más antiguas y modificar su fecha de modificación por la del día de hoy

Page 19: Curso SQL-C# Basico

sTI_CI_v1_201302

Ejercicio(DML) SQL

• Crear una consulta que genere el siguiente resultado.

• Se requiere dividir la tabla de la cual se tiene información en tres periodos (estos deberán de tratar de ser equitativos en el número de registros), estos dependerán de la fecha de creación siendo los más antiguos los que formen el primer periodo y los mas recientes el último periodo.

• Extraer la fecha de creación máxima y mínima del segundo periodo.

Page 20: Curso SQL-C# Basico

sTI_CI_v1_201302

Ejercicio(DML) SQL

• Crear una consulta que enliste un conteo de cada uno de los días de fecha de creación de la tabla con la que se tiene contenido. P.e. si la base de datos contiene los siguiente registros.

Fecha creación30/1/201330/12/2012Deberá generar el siguiente registro.Día | Conteo30 | 2Nota: si un día no se encuentra este deberá

mostrar un 0

Page 21: Curso SQL-C# Basico

sTI_CI_v1_201302

Tabla virtual o consulta basada en varias tablas, vistas o consultas.

Esta tabla virtual se le asigna un nombre que se almacena permanentemente en la base de datos, generando al igual que las tablas una entrada en el diccionario de datos.

La vistas se compone de filas y columnas como una tabla real a diferencia de que estas se generan a partir de una consulta y no existen físicamente los registros

SQLVistas

SintaxisCREATE VIEW [nombre_vista]As[consulta_SQL]

Page 22: Curso SQL-C# Basico

sTI_CI_v1_201302

Un procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas. Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código.

• http://www.devjoker.com/contenidos/catss/238/Procedimientos-almacenados-en-Transact-SQL.aspx

SQL

Procedimiento almacenado

Page 23: Curso SQL-C# Basico

sTI_CI_v1_201302

Es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación

Trigger DMLSon un tipo especial de procedimiento almacenado que se ejecuta automáticamente cuando se modifican los datos de una determinada tabla. Los desencadenadores se crean a menudo para exigir integridad referencial o coherencia entre los datos lógicamente relacionados en tablas diferentes.

• http://msdn.microsoft.com/es-es/library/ms191524(v=sql.90).aspx

SQL

Desencadenador (Trigger)

Page 24: Curso SQL-C# Basico

sTI_CI_v1_201302

Trigger DDLLos desencadenadores DDL, al igual que los desencadenadores habituales, activan procedimientos almacenados como respuesta a un evento. Sin embargo, a diferencia de los desencadenadores DML, no se activan como respuesta a las instrucciones UPDATE, INSERT o DELETE de una tabla o vista. En cambio, sí se activan en respuesta a diversos eventos del lenguaje de definición de datos (DDL). Estos eventos corresponden principalmente a instrucciones Transact-SQL que comienzan por las palabras clave CREATE, ALTER y DROP. Determinados procedimientos almacenados del sistema que realizan operaciones de estilo DDL también pueden activar desencadenadores DDL.

SQL

Desencadenador (Trigger)

Page 25: Curso SQL-C# Basico

sTI_CI_v1_201302

CREATE TRIGGER [nombre_desencadenador] ON DATABASE FOR [Operación Insert/Update/Alter]

AS [Código]GO

• http://msdn.microsoft.com/es-es/library/ms191524(v=sql.90).aspx• http://msdn.microsoft.com/es-es/library/ms175941(v=sql.90).aspx

SQL

Desencadenador (Trigger)

Page 26: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

FuncionesUna función es una rutina de Transact-SQL o Common Language Runtime (CLR) que acepta parámetros, realiza una acción, como un cálculo complejo, y devuelve el resultado de esa acción como un valor. El valor devuelto puede ser un valor escalar (único) o una tabla. Utilice esta instrucción para crear una rutina reutilizable que se pueda utilizar de estas formas:•En instrucciones Transact-SQL como SELECT•En las aplicaciones que llaman a la función•En la definición de otra función definida por el usuario•Para parametrizar una vista o mejorar la funcionalidad de una vista indizada•Para definir una columna en una tabla•Para definir una restricción CHECK en una columna•Para reemplazar un procedimiento almacenado

Page 27: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Ejercicio•Generar una vista donde se muestre a las personas y los accesos de esta.•Generar un stored procedure para eliminar a una persona; Este deberá borrar todos los accesos de esta así como almacenar en una bitácora las principales operaciones que realizo.•Generar un trigger para dar de alta automáticamente los accesos generales cuando se da de alta una nueva persona.

Page 28: Curso SQL-C# Basico

sTI_CI_v1_201302

• http://msdn.microsoft.com/es-mx/library/ms177481.aspx

SQL

Tareas programadas (Jobs)El objeto de rendimiento Jobs del Agente SQL Server contiene contadores de rendimiento que proporcionan información acerca de los trabajos del Agente SQL Server.

Page 29: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Ejercicio (Jobs)•Crear un job que realice lo siguiente ejecutar un procedimiento almacenado que genere una lista con las personas que faltaron el día anterior (es decir no hay registro de fecha de ellas en ninguna puerta) así como analizar la hora de entrada y marcar con retardo a las personas que no ingresaron a tiempo (tolerancia 10 min) a la hora de entrada (9 AM) y con asistencia para las que llegaron a tiempo•Estas se deberán almacenar en una tabla de asistencia que deberá contener los siguientes estados por cada persona asistencia, retardo e inasistencia.•La tarea programada deberá correr todos los días laborales (L-V) al termino del ciclo laboral (7 PM)

Page 30: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Tablas•Físicas

create Table []•Temporales• Globales

create table ##[nombre_tabla]([nombre_columna] [tipo_dato])• Locales

create table #[nombre_tabla]([nombre_columna] [tipo_dato])•Variables declare @[nombre_tabla] TABLE( [nombre_columna] [tipo_dato]);

Page 31: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

IF...ELSE Impone condiciones en la ejecución de una instrucción Transact-SQL. La instrucción Transact-SQL que sigue a una palabra clave IF y a su condición se ejecuta si la condición se cumple: la expresión booleana devuelve TRUE. La palabra clave opcional ELSE introduce otra instrucción Transact-SQL que se ejecuta cuando la condición IF no se cumple: la expresión booleana devuelve FALSE.

Page 32: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

IF...ELSE IF [condicion_boleana]BEGIN[Codigo]ENDELSE[Codigo]END

Page 33: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

CASE Evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles

http://technet.microsoft.com/es-es/library/ms181765.aspx

Page 34: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

CASE CASE expresion WHEN [valor] THEN expresion resultado ELSE

expresion resultado END

Page 35: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Cursores y ciclosCursor Un cursor es una variable que nos permite recorrer con un conjunto de resultados obtenido a través de una sentencia SELECT fila a fila. Cuando trabajemos con cursores debemos seguir los siguientes pasos.Declarar el cursor, utilizando DECLAREAbrir el cursor, utilizando OPENLeer los datos del cursor, utilizando FETCH ... INTOCerrar el cursor, utilizando CLOSELiberar el cursor, utilizando DEALLOCATE

http://www.devjoker.com/contenidos/articulos/240/Cursores-en-Transact-SQL.aspx

Page 36: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Cursores y ciclosDECLARE <nombre_cursor> CURSOR FOR <sentencia_sql> -- apertura del cursorOPEN <nombre_cursor> -- Lectura de la primera fila del cursorFETCH <nombre_cursor> INTO <lista_variables>WHILE (@@FETCH_STATUS = 0)BEGIN -- Lectura de la siguiente fila de un cursorFETCH <nombre_cursor> INTO <lista_variables>…END -- Fin del bucle WHILE-- Cierra el cursorCLOSE <nombre_cursor>-- Libera los recursos del cursorDEALLOCATE <nombre_cursor>

Page 37: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Cursores y ciclosCicloEstablece una condición para la ejecución repetida de una instrucción o bloque de instrucciones SQL. Las instrucciones se ejecutan repetidamente siempre que la condición especificada sea verdadera. Se puede controlar la ejecución de instrucciones en el bucle WHILE con las palabras clave BREAK y CONTINUE.

http://msdn.microsoft.com/es-mx/library/ms178642.aspx

Page 38: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Cursores y ciclosWHILE [condicion]BEGIN

[Codigo]END

Page 39: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Comando ExecuteEjecuta una cadena de comandos o una cadena de caracteres dentro de un lote de Transact-SQL o uno de los siguientes módulos: procedimiento almacenado del sistema, procedimiento almacenado definido por el usuario, procedimiento almacenado CLR, función escalar definida por el usuario o procedimiento almacenado extendido.

EjemploExecute ‘Select * from [nombre tabla]’

Page 40: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

EjercicioGenerar las siguientes consultas•Generar una lista que indique por cada una de las puertas en la aplicación si esta esta asociada o no al menos a un usuario.

Puerta | AsociadaAlmacén –A SiAlmacén-B No•Generar una consulta donde muestre la lista de usuarios y los clasifique en los siguientes rubrosInvitado - Solo acceso a las áreas comunes (AC)Personal – (AC) y al área de trabajo (AT)Enfermero(a) – (AC)- Enfermería (E)Infraestructura (AC) – SiteEmpleado | AccesoPedro PersonalMaría Enfermera

http://msdn.microsoft.com/es-mx/library/ms178642.aspx

Page 41: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

EjercicioGenerar una lista de empleados por acceso y mostrarla en el sistemaComo se muestra en el siguiente ejemplo y tomando en cuanta los criterios definidos en el punto anterior.

Acceso | Nombre | NAccesos | DíaEnfermería María, Alejandra, Elena 12 11/02/2013Personal Juan, Mario, Karla, John 24 11/02/2013Infraestructura Jimena, Arturo 1

11/02/2013

Page 42: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Ejercicio finalGenerar un procedimiento almacenado para resolver el siguiente problema.Se desea que la base de datos controle de manera lógica el tiempo en que abre y se cierra una puerta (1 min) y un usuario no podrá abrir dos puertas considerando el siguiente criterio, puertas del mismo edificio deberá tener un minuto de diferencia para abrirlas y puertas de edificios diferentes cinco minutos de diferencia.•Modificar la estructura necesaria requerida para mantener el estado de las puertas dentro de un registro. •Generar un procedimiento almacenado para abrir una puerta este deberá regresar los siguientes valores.• ‘Acceso denegado’ Este mensaje se mostrara a la persona que no tenga permiso para acezar a la puerta

Page 43: Curso SQL-C# Basico

sTI_CI_v1_201302

SQL

Ejercicio final•‘Acceso temporal denegado’Este deberá mostrarse al usuario que trate de ingresar a una puerta y no cumpla con las reglas de tiempo establecidas anteriormente•‘Clave errónea’Este mensaje deberá ser enviado cuando la clave de la puerta sea invalida•‘Acceso concedido’ Este deberá mostrarse cuando cumpla con todas las condiciones de acceso requeridas en el sistema.La salida esperada es la siguiente--Acceso denegadoExec [nombre_procedimiento] [paramA], [paramB], [paramC]…-- Acceso temporal denegadoExec [nombre_procedimiento] [paramD], [paramE], [paramF]…Y así sucesivamente para los cuatro estados

Page 44: Curso SQL-C# Basico

C#

Page 45: Curso SQL-C# Basico

sTI_CI_v1_201302

C#

Temario•Framework .NET•Lenguaje C#• POO en C#• Estructuras de control

•Arquitectura serTI•DAO , ADO, LINQ,SQL Entity Framework•Active server page (ASP)•Ajax•Javascript•Prototype•Jquery•XML•JSON•CSS•Windows Communication Foundation•Redes sociales con C#•IIS

Page 46: Curso SQL-C# Basico

sTI_CI_v1_201302

C#

Framework•El Framework. NET es una plataforma de desarrollo para la creación de aplicaciones para Windows, Windows Store, Windows Phone, Windows Server y Windows Azure. •La plataforma de Marco. NET incluye el C # y Visual Basic lenguajes de programación, el tiempo de ejecución de lenguaje común, y una extensa biblioteca de clases.

http://msdn.microsoft.com/es-es/library/zw4w595w.aspx

Page 47: Curso SQL-C# Basico

sTI_CI_v1_201302

C#

Versiones de .NET

http://msdn.microsoft.com/es-es/library/bb822049.aspx

Page 48: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Versiones de .NET.NET IDE Descripción1.0 Visual Studio .NET Contenía la primera versión de CLR y la primera versión de las bibliotecas de clases

base.

1.1 Visual Studio .NET 2003

Incluía actualizaciones de ASP.NET y ADO.NET. Esta versión se actualizó dos veces posteriormente, con Service Pack 1 y (SP1) SP2.Esta versión incorporaba también la ejecución en paralelo, lo que permite que las aplicaciones de un solo equipo ejecuten varias versiones de CLR.

2.0 Visual Studio 2005 Se incorporó una nueva versión de CLR con ampliaciones de las bibliotecas de clases base, que incluían genéricos, colecciones de genéricos y ampliaciones significativas de ASP.NET. Esta versión se actualizó con el SP1 y el SP2.

3.0 Visual Studio 2005 Esta versión es esencialmente .NET Framework 2.0 con la incorporación de Windows Presentation Foundation (WPF), Windows Communications Foundation (WCF), Windows Workflow Foundation (WF) y CardSpace. Se actualizó con SP1 y SP2.

3.5 Visual Studio 2008 Se agregaron nuevas características, como los sitios web habilitados para AJAX y LINQ. La actualización SP1 incorporaba datos dinámicos y un pequeño conjunto de mejoras adicionales.

4 Visual Studio 2010 Incluye una nueva versión de CLR, bibliotecas de clases base expandidas y nuevas características, como Managed Extensibility Framework (MEF), Dynamic Language Runtime (DLR) y contratos de código.

4.5 Visual Studio 2012 Incluye una versión actualizada de CLR, compatibilidad para compilar aplicaciones Tienda Windows de Windows y las actualizaciones para WPF, WCF, WF y ASP.NET.

Page 49: Curso SQL-C# Basico

sTI_CI_v1_201302

C#

Lenguaje C#C# es un lenguaje orientado a objetos elegante y con seguridad de tipos que permite a los desarrolladores crear una amplia gama de aplicaciones sólidas y seguras que se ejecutan en .NET Framework.

Puede utilizar este lenguaje para crear aplicaciones cliente para Windows tradicionales, servicios Web XML, componentes distribuidos, aplicaciones cliente-servidor, aplicaciones de base de datos, y muchas tareas más. C# proporciona un editor de código avanzado, diseñadores de interfaz de usuario prácticos, un depurador integrado y muchas otras herramientas para facilitar un rápido desarrollo de la aplicación basado en la versión del lenguaje C# y en .NET Framework.

http://msdn.microsoft.com/es-es/library/z1zx9t92(v=vs.80).aspx

Page 50: Curso SQL-C# Basico

sTI_CI_v1_201302

C#POO• Clase • class

• Modificadores de acceso• Public [Elemento]• Internal [Elemento]• Private [Elemento]• Protected [Elemento]

• Objeto• [Clase] [nombre Objeto] = new [Clase]()• var [nombre Objeto] = new [Clase]()• var [nombre Objeto] = [Objeto]()

http://msdn.microsoft.com/es-mx/library/ms228593(v=vs.80).aspx

Page 51: Curso SQL-C# Basico

sTI_CI_v1_201302

C#POO• Abstracción• abstract class [Nombre_Base]

• Encapsulamiento• Public String [Popiedad]{get;set;}• Public String [Popiedad]{ get{return _att;} set{_att=value;};}

• Herencia• class [Nombre]: [Nombre_Base]

http://msdn.microsoft.com/es-es/library/ms173152(v=vs.90).aspx

Page 52: Curso SQL-C# Basico

sTI_CI_v1_201302

C#POO• Polimorfismo internal class Mamifero { public int Patas { get; set; } public string Nombre { get; set; } public virtual void YoSoy() { Console.WriteLine("Yo Soy:"); } } internal class Leon : Mamifero { public Leon() { this.Patas = 4; this.Nombre = "Leon"; }

Page 53: Curso SQL-C# Basico

sTI_CI_v1_201302

C#POO public override void YoSoy() { base.YoSoy(); Console.WriteLine("Un" + this.Nombre + " con " + this.Patas + " patas"); } } internal class Chimpance : Mamifero { public Chimpance() { this.Patas = 2; this.Nombre = "Chimpance"; } public override void YoSoy() { base.YoSoy(); Console.WriteLine("Un" + this.Nombre + " con " + this.Patas + " patas"); } }

Page 54: Curso SQL-C# Basico

sTI_CI_v1_201302

C#POOclass Program { static void Main(string[] args) { var oMamifero = new Mamifero(); Console.WriteLine("Mamifero"); oMamifero.YoSoy(); var oLeon = new Leon(); Console.WriteLine("Leon"); oLeon.YoSoy(); var oChimpance= new Chimpance(); Console.WriteLine("Chimpance"); oChimpance.YoSoy(); List<Mamifero> oMamiferos = new List<Mamifero>(); oMamiferos.Add(oLeon); oMamiferos.Add(oChimpance); Console.WriteLine("Polimorfismo"); foreach (var mamifero in oMamiferos) { mamifero.YoSoy(); } Console.ReadKey(); } }

Page 55: Curso SQL-C# Basico

sTI_CI_v1_201302

C#POO• Polimorfismo

internal class Mamifero { public int Patas { get; set; } public string Nombre { get; set; } public virtual void YoSoy() { Console.WriteLine("Yo Soy:"); } } internal class Leon : Mamifero { public Leon() { this.Patas = 4; this.Nombre = "Leon"; }

http://msdn.microsoft.com/es-es/library/ms173152(v=vs.90).aspx

Page 56: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Estructuras de control• IfIf([condicion_boleana]){ [codigo_If];}else{[codigo_else];}

• switchswitch{case [valor]:break;default:break;}

Page 57: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Estructuras de control• whilewhile ([condicion]){

break;continue;

}

• forfor ([tipo_dato] [varialble] [inicializador]; [condicion de paro]; [paso]) {

[codigo];}

• foreachforeach([tipo_dato] [objeto] in [Lista_Objetos] ){

[codigo];}

http://es.wikipedia.org/wiki/Estructuras_de_control

Page 58: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Arquitectura serTI

Page 59: Curso SQL-C# Basico

sTI_CI_v1_201302

C#DAO (Data Access Object)

Data Access Objects (DAO, Objetos de Acceso a Datos) es una interfaz orientada a objetos creada por Microsoft la cual permitía a las primeras versiones de Microsoft Access y Visual Basic utilizar el motor de base de datos Jet . Posteriormente (en la versión 3.5) fue capaz de realizar un bypass al motor Jet y directamente acceder a las fuentes de datos ODBC, incluyendo Microsoft SQL Server y otros sistemas de bases de datos de empresa. DAO 3.6 fue la versión final desarrollada por Microsoft. Microsoft dice que DAO no estará disponible en los futuros sistemas operativos de 64-bit.

Page 60: Curso SQL-C# Basico

sTI_CI_v1_201302

C#DAO (Data Access Object)

Page 61: Curso SQL-C# Basico

sTI_CI_v1_201302

C#ADO

(Microsoft ActiveX Data Objects - ADO). Conjunto de objetos COM para el acceso a recursos de datos. Prevé una capa entre los lenguajes de programación y las bases de datos OLE, lo que permite a los programadores escribir programas que accedan a datos, sin saber cómo está implementada la base de datos (sólo se debe tener cuidado en la conexión a la misma). Tampoco es necesario conocer sobre SQL cuando se usa ADO, aunque también pueden utilizarse comandos SQL, pero esto crearía en el programa una dependencia del tipo de base de datos usado.

Page 62: Curso SQL-C# Basico

sTI_CI_v1_201302

C#ADO

Page 63: Curso SQL-C# Basico

sTI_CI_v1_201302

C#LINQ

LINQ to SQL es una implementación de O/RM(object relational mapping, mapeador de objetos relacionales) que viene con la versión "Orcas" del .NET Framework, y nos permite modelar bases de datos relacionales con clases de .NET. Podemos consultar bases de datos con LINQ, así como actualizar/añadir/borrar datos de ellas.

Page 64: Curso SQL-C# Basico

sTI_CI_v1_201302

C#LINQ

Page 65: Curso SQL-C# Basico

sTI_CI_v1_201302

C#SQL Entity Framework

Entity Framework es un conjunto de tecnologías de ADO.NET que apoyan el desarrollo de aplicaciones de software orientadas a datos. Los arquitectos y desarrolladores de aplicaciones orientadas a datos han luchado con la necesidad de lograr dos objetivos muy diferentes. Ellos deben modelar las entidades, relaciones y lógica de los problemas de las empresas que están resolviendo, y también deben trabajar con los motores de datos utilizadas para almacenar y recuperar los datos. Los datos pueden abarcar varios sistemas de almacenamiento, cada uno con sus propios protocolos, e incluso aplicaciones que funcionan con un único sistema de almacenamiento debe equilibrar los requisitos del sistema de almacenamiento con los requisitos de la escritura de código de la aplicación eficaz y fácil de mantener.

Page 66: Curso SQL-C# Basico

sTI_CI_v1_201302

C#SQL Entity Framework

Page 67: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Lenguaje LINQ

Language Integrated Query (LINQ, pronunciado “link”) es un componente de la plataforma Microsoft .NET que agrega capacidades de consulta a datos de manera nativa a los lenguajes .NET, si bien existen implementaciones para Java, PHP, JavaScript y ActionScript.LINQ extiende el lenguaje a través de las llamadas expresiones de consulta, que son parecidas a las sentencias SQL y pueden ser usadas para extraer y procesar convenientemente datos de arrays, clases enumerables, documentos XML, bases de datos relacionales y fuentes de terceros. Otros usos, que utilizan expresiones de consulta como plataforma general para la composición de expresiones más legibles, incluyen la construcción de manejadores de eventos.LINQ además define un conjunto de nombres de métodos (llamados operadores de consulta estándar), y un conjunto de reglas de traducción, que son usadas por el compilador para traducir las expresiones de consulta en expresiones normales del lenguaje, usando estos nombres de métodos, expresiones lambda y tipos anónimos. Muchos de los conceptos que LINQ ha introducido, fueron probados inicialmente en el proyecto de investigación Microsoft Cω. LINQ fue lanzado como un componente principal de .NET Framework 3.5 el 19 de noviembre de 2007.

Page 68: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Lenguaje LINQ

•LINQ to XML•LINQ to Entities•LINQ to Objects•LINQ to DataSet

http://msdn.microsoft.com/es-es/library/bb387061.aspxhttp://msdn.microsoft.com/es-es/library/bb386964.aspxhttp://msdn.microsoft.com/es-es/library/bb397919.aspxhttp://msdn.microsoft.com/es-es/library/bb386977.aspx

Page 69: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ejercicio

Generar alas siguientes consultas:•Una consulta para alta, baja, actualización y búsqueda por clave de una tabla.•Generar una consulta que obtenga la lista de los edificio en formato Xml

Page 70: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Principales Operadores LINQ

•Where•Select•Group by•Count•SelectMany•Distinct •Union•Intersect•Except•Take•TakeWhile•OrderBy•ThenBy•Range

•Concat•Combine•Max•Average•Aggregate•Sum•Union•Min•Cross Join•Group Join

Page 71: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ejercicio

•Seleccionar 5 operadores de la cada una de las columnas anteriores y utilizarlos en consultas; Las consultas serán puntuadas al final del ejercicio dependiendo de le número de operadores que se utilizan con un valor exponencial.•1 op= 1! pto•2 op = 2! ptos•……

Page 72: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Métodos HTTP

Método Significado

GET Devuelve el recurso identificado en la URL pedida.

HEAD Funciona como el GET, pero sin que el servidor devuelva el cuerpo del mensaje. Es decir, sólo se devuelve la información de cabecera.

POST Indica al servidor que se prepare para recibir información del cliente. Suele usarse para enviar información desde formularios.

PUT Envía el recurso identificado en la URL desde el cliente hacia el servidor.

OPTIONS Pide información sobre las características de comunicación proporcionadas por el servidor. Le permite al cliente negociar los parámetros de comunicación.

TRACE Inicia un ciclo de mensajes de petición. Se usa para depuración y permite al cliente ver lo que el servidor recibe en el otro lado.

DELETE Solicita al servidor que borre el recurso identificado con el URL.

CONNECT Este método se reserva para uso con proxys. Permitirá que un proxy pueda dinámicamente convertirse en un túnel. Por ejemplo para comunicaciones con SSL.

Page 73: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Active server page (ASP)

Microsoft introdujo esta tecnología llamada Active Server Pages en diciembre de 1996, por lo que no es nada nueva. Es parte del Internet Information Server (IIS) desdela versión 3.0 y es una tecnología de páginas activas que permite el uso de diferentes scripts y componentes en conjunto con el tradicional HTML para mostrar páginas generadas dinámicamente, traduciendo la definición de Microsoft: “LasActive Server Pages son un ambiente de aplicación abierto y gratuito en el que se puede combinar código HTML, scripts y componentes ActiveX del servidor para crear soluciones dinámicas y poderosas para el web”.

Page 74: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ciclo de vida ASP

http://msdn.microsoft.com/es-mx/library/ms178473(v=vs.80).aspxhttp://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx

•PreInit•Init•InitComplete•PreLoad•Load•LoadComplete•PreRender•PreRenderComplete•SaveStateComplete•Render•Unload

Page 75: Curso SQL-C# Basico

sTI_CI_v1_201302

C#ASP MVC (Model-View-Controller)

ASP.NET MVC es, básicamente, una implementación del patrón Modelo - Vista - Controlador (MVC) para tecnología ASP.NET. El patrón MVC no es ni nuevo (data de finales de los años 70) ni está pensado para aplicaciones web, pero en realidad en aplicaciones web encaja perfectamente.Brevemente podemos decir que el patrón MVC separa la lógica (y acceso a datos) de una aplicación de su presentación, usando 3 componentes:Modelo: Representa las reglas de negocio de la aplicación (y el acceso a datos subyacente).Vistas: Representan la presentación de la aplicación.Controlador: Actúan de intermediario entre el usuario y el Modelo y las Vistas. Recogen las peticiones del usuario, interaccionan con el modelo y deciden que vista es la que debe mostrar los datos.En el contexto de ASP.NET MVC: Toda la lógica de negocio y el acceso a datos es el Modelo (en muchos casos el Modelo puede estar en uno o varios assemblies referenciados).Las vistas contienen, básicamente, el código que se envía al navegador, es decir el código HTML (y código de servidor asociado, siempre y cuando este código haga cosas de presentación, no de lógica de negocio).Los controladores reciben las peticiones del navegador y en base a esas, deciden que vista debe enviarse de vuelta al navegador y con qué datos.

Page 76: Curso SQL-C# Basico

sTI_CI_v1_201302

C#ASP MVC (Model-View-Controller)

Page 77: Curso SQL-C# Basico

sTI_CI_v1_201302

C#ASP Controles principales

ASP•Label•Textbox•HyperLink•Image•RadioButton•CheckBox•GridView•ListBox•DropDownList

HTML•Input (Button)•Input (Text)•Input (CheckBox)•Image•Select

Validadores•Compare•Custom•Range•RegularExpresion•RequieredField•ValidationSummary

Page 78: Curso SQL-C# Basico

sTI_CI_v1_201302

C#ASP Master Page

Páginas maestras ASP.NET le permiten crear un diseño coherente para las páginas de la aplicación. Una sola página maestra define el aspecto y la sensación y el comportamiento estándar que desea para todas las páginas (o un grupo de páginas) de la aplicación. A continuación, puede crear páginas individuales de contenido que contienen el contenido que desea mostrar. Cuando los usuarios solicitan las páginas de contenido, se fusionan con la página principal para producir una salida que combina el diseño de la página principal con los contenidos de la página de contenido.

Page 79: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Control de usuario (WebUserControl)

Controles de usuario Web son archivos con la extensión ascx que se pueden incluir en los formularios Web Forms, Web Forms con el padre convirtiéndose en el contenedor del control.. Controles de usuario Web le permiten reutilizar fácilmente piezas de funcionalidad en una serie de formularios Web Forms.

http://msdn.microsoft.com/en-us/library/3457w616(v=vs.71).aspx

Page 80: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Controles de navegación

•Control Menu El Menu (control) permite agregar funcionalidad de navegación a las páginas web. El control Menu admite un menú principal y submenús, y permite definir menús dinámicos (a veces denominados menús emergentes). Para obtener información acerca de la programación del control Menu, vea Menu (Clase) en MSDN Library.•Control SiteMapPath El SiteMapPath (control) muestra una ruta de navegación (también denominada árbol de navegación) que indica al usuario la ubicación de la página actual y muestra los vínculos como una ruta de retorno a la página principal. El control proporciona muchas opciones para personalizar la apariencia de los vínculos. Para obtener información acerca de la programación del control SiteMapPath, vea el artículo SiteMapPath (Clase) en MSDN Library.• Control TreeView El TreeView (control) sirve para mostrar datos jerárquicos, como una tabla de contenido o un directorio de archivos, en una estructura de árbol. Para obtener información acerca de la programación del control TreeView, vea el artículo TreeView (Clase) en MSDN Library.

Page 81: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ajax

AJAX, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

http://msdn.microsoft.com/en-us/library/3457w616(v=vs.71).aspx

Page 82: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ejercicio

•Crear una página maestra alguna de las siguientes distribuciones

Page 83: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ejercicio

Crear o modifica la estructura necesaria para realizar lo siguiente.•Generar una página de bienvenida en el sistema. Esta deberá tener un espacio para ingresar un correo electrónico y un password. El sistema deberá validar estos datos y si son correctos deberá enviarlo a una pantalla de Inicio.•Crear un mapa de navegación para el sitio así como un menú lateral.•El sistema deberá guardar en un XML el estado de cada usuario y al iniciar la aplicación esta deberá enviarlo a la ultima página donde navego. Si no existe deberá ingresar al la de inicio

Page 84: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ejercicio

Crear una página web para el registro de usuarios donde se valide lo siguiente.•Validar que la caja de texto password sea igual al de la confirmación•Generar que la fecha de nacimiento sea de un adulto (18 años mínimo)•Validar el correo electrónico tenga una estructura valida.•Validar que se ingrese el nombre•Mostrar un resumen de los datos erróneos en caso de existir

Page 85: Curso SQL-C# Basico

sTI_CI_v1_201302

C#GridView

C

Page 86: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Interface de usuario

•La interfaz de usuario es el medio con que el usuario puede comunicarse con una máquina, un equipo o una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Normalmente suelen ser fáciles de entender y fáciles de accionar.

Page 87: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Prototype (patrón de diseño)

El patrón de diseño Prototype (Prototipo), tiene como finalidad crear nuevos objetos duplicándolos, clonando una instancia creada previamente..Este patrón especifica la clase de objetos a crear mediante la clonación de un prototipo que es una instancia ya creada. La clase de los objetos que servirán de prototipo deberá incluir en su interfaz la manera de solicitar una copia, que será desarrollada luego por las clases concretas de prototipos

Page 88: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Javascript

Lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico.Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, en bases de datos locales al navegador... aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.JavaScript se diseñó con una sintaxis similar al C, aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo Java y JavaScript no están relacionados y tienen semánticas y propósitos diferentes.

https://developer.mozilla.org/es/docs/Introducci%C3%B3n_a_JavaScript_orientado_a_objetos

Page 89: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Javascript

•EventosonClick,onChange,mouseMove

•SelectoresgetElementByID, getElementByTagName

•Document Object Modeldocument.XX

•Incluir script • HTML

<script src=“[Nombre]" type="text/javascript"></script>• C#

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), “[Nombre_Script]",[ Script], true);

http://www.maestrosdelweb.com/editorial/diez-funciones-imprescindibles-en-javascript/http://www.maestrosdelweb.com/editorial/dom/

Page 90: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Cascading Style Sheets (CSS)

CSS son las siglas de Cascading Style Sheets - Hojas de Estilo en Cascada - que es un lenguaje que describe la presentación de los documentos estructurados en hojas de estilo para diferentes métodos de interpretación, es decir, describe como se va a mostrar un documento en pantalla, por impresora, por voz (cuando la información es pronunciada a través de un dispositivo de lectura) o en dispositivos táctiles basados en Braille.Dentro del diseño de páginas de Internet se presenta esta como la vanguardia en cuanto a definición de estilos dentro de las plantillas de diseño. A través de instrucciones en código HTML se definen los estándares del conjunto de páginas que conforman el proyecto. La meta es uniformizar nuestro diseño.

http://www.xsvc.com.ve/tutoriales/ManualCssHojasDeEstilos.pdf

Page 91: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Principales elementos CSS

http://www.w3c.es/Divulgacion/GuiasReferencia/CSS21/

•Selectores•Notación•Tipos de medios•Sintaxis•Unidades•Modelo de cajas• Márgenes• Relleno• Bordes

•Modelo de formato visual•Detalles del modelo de formato visual•Efectos visuales•Contenido generado, numeración automática y listas•Colores y fondo•Medios paginados•Fuentes•Texto•Tablas•Interfaz de usuario

Page 92: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Estructura de estilos CSS

•Elementohtml {border-color:red;}<html>Estilo.html {border-color:red;}<body class=“html”>•Identificador#html {border-color:red;}<div id=“html”>

Page 93: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Ejemplo CSS

<html><head>

<style>body{ background-color:gray;} /*Nivel 1*/body table { background-color:yellow;} /*Nivel

2*/body table tr {background-color:green;} /*Nivel

3*/#MiTexto{background-color:#f32;}.Elemento{color:white;}</style>

</head><body>

<span> Texto Body</span><table>

<tr class="Elemento"><td >

Texto td<span id="MiTexto">

Texto Span</span></td>

</tr></table></body>

</html>

Page 94: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery

•jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web. Fue presentada el 14 de enero de 2006 en el BarCamp NYC.•Lema

write less, do more

Page 95: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery Selectores y Eventos

•SelectoresjQuery() o $()

•Eventosdocument.ready(

function (){});

Funciones anonimasfunction (){}

•Efectos•Handlers

http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery

Page 96: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery Ejercicio

•Generar una página que contenga 4 controles que deben de llevar las siguientes características•(A)Dos deberán ser etiquetas (html) con nombres y clases diferentes•(B)Uno deberá ser un dropDownList (ASP) con el nombre de una clase igual al de una etiqueta•(C)Una caja de texto Con clases y nombres diferentes a los anteriores.•Crear botones para lo siguiente•Seleccionar todos los controles que pertenezcan a la clase estilos 2 y deberá ocultarse.

Page 97: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery Ejercicio

•Seleccionar la caja de texto y las etiquetas cambiando las siguientes propiedades •Tipo de letra Calibri•Tamaño 10 pts•Color RojoCargar una imagen que se oriente en la parte superior de la pantalla a la derecha esta deberá cambiar cuando el mouse pase sobre ella y regresar a su estado cuando este salga

Page 98: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery Ajax

A)jQuery.ajax({url: "test.html",context: document.body}).done(function() {

//código aquí});

B)jQuery.ajax({

url : "test.html",cache : false,type : this.type,dataType : "jsonp",crossDomain : true,data : {

json : this.data},success : function(data) {

//código aquí },error : function(data) { //código aquí}

});

http://api.jquery.com/jQuery.ajax/

Page 99: Curso SQL-C# Basico

sTI_CI_v1_201302

C#XML

XML proviene de eXtensible Markup Language (“Lenguaje de Marcas Extensible”). Se trata de un metalenguaje (un lenguaje que se utiliza para decir algo sobre otro lenguaje) extensible de etiquetas que fue desarrollado por el Word Wide Web Consortium (W3C), un consorcio internacional que elabora recomendaciones para la World Wide Web.El XML es una adaptación del SGML (Standard Generalized Markup Language), un lenguaje que permite la organización y el etiquetado de documentos. Esto quiere decir que el XML no es un lenguaje en sí mismo, sino un sistema que permite definir lenguajes de acuerdo a las necesidades. El XHTML, el MathML y el SVG son algunos de los lenguajes que el XML está en condiciones de definir.

Page 100: Curso SQL-C# Basico

sTI_CI_v1_201302

C#XML Estructura Básica

<?xml version="1.0"?> <Elemento>

<Elemento_Hijo [nombreAtributo]=valor>valorElemento

< /Elemento_Hijo ></Elemento>

Page 101: Curso SQL-C# Basico

sTI_CI_v1_201302

C#JSON

JSON, acrónimo de JavaScript Object Notation, es un formato ligero para el intercambio de datos. JSON es un subconjunto de la notación literal de objetos de JavaScript que no requiere el uso de XML.La simplicidad de JSON ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX. Una de las supuestas ventajas de JSON sobre XML como formato de intercambio de datos en este contexto es que es mucho más sencillo escribir un analizador sintáctico (parser) de JSON. En JavaScript, un texto JSON se puede analizar fácilmente usando la función eval(), lo cual ha sido fundamental para que JSON haya sido aceptado por parte de la comunidad de desarrolladores AJAX, debido a la ubicuidad de JavaScript en casi cualquier navegador web.

Page 102: Curso SQL-C# Basico

sTI_CI_v1_201302

C#JSON Estructura Básica

{Elemento:valorElemento:[

elementoHijo1:valor ,elementoHijo2:valor]

}

Page 103: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Comparación XML y JSON

XML<persona><nombre>juan</nombre><edad>22</edad><estudios><estudio>primario</estudio><estudio>secundario</estudio></estudios></persona>JSON{ 'nombre':'juan', 'edad':22, 'estudios':['primario','secundario']}

Page 104: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Prototype

Prototype es un framework que facilita el desarrollo de aplicaciones web con JavaScript y AJAX. Su autor original es Sam Stephenson, aunque las últimas versiones incorporan código e ideas de muchos otros programadores. A pesar de que incluye decenas de utilidades, la librería es compacta y está programada de forma muy eficiente.Prototype se ha convertido en poco tiempo en una referencia básica de AJAX y es la base de muchos otros frameworks y librerías relacionadas como script.aculo.us. Las primeras versiones de Prototype no incluían ningún tipo de documentación, lo que dificultaba su uso y provocaba que la mayoría de usuarios desconocieran su verdadero potencial.Afortunadamente, las versiones más recientes del framework disponen de una completa documentación de todas las funciones y métodos que componen su API. La documentación incluye la definición completa de cada método, sus atributos y varios ejemplos de uso: http://www.prototypejs.org/api

http://librosweb.es/ajax/capitulo_10/el_framework_prototype.html

Page 105: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Definición de un prototipo

Definiciónvar Objeto= Class.create(); Objeto. prototype = {

initialize: function(propiedad) {

propiedad= propiedad; }, metodo: function(parametro) {

return this. propiedad+ ': ' + parametro; }

};Uso var objeto= new Objeto(‘propiedad'); objeto. metodo(' parametro '); // -> " propiedad : parametro "

Page 106: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Herencia de un prototipo

Definiciónvar objetoHijo= Class.create(); objetoHijo.prototype = Object.extend(new Objeto(), {

//Redefinimos el métodometodo: function(parametro) {

return parametro; }

});Uso var hijo = new objetoHijo(‘propiedad'); hijo.metodo(‘parametro'); // -> “parametro”

Page 107: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery UI

Es una biblioteca de componentes para el framework jQuery que le añaden un conjunto de plug-ins, widgets y efectos visuales para la creación de aplicaciones web. Cada componente o módulo se desarrolla de acuerdo a la filosofía de jQuery (find something, manipulate it: encuentra algo, manipúlalo).

Page 108: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery UI Principales controles

InteractionsDraggableDroppableResizableSelectableSortable

http://jqueryui.com/demos/

WidgetsAccordionAutocompleteButtonDatepickerDialogMenuProgressbarSliderSpinnerTabsTooltip

EffectsAdd ClassColor AnimationEffectHideRemove ClassShowSwitch ClassToggleToggle ClassUtilities

PositionWidget Factory

Page 109: Curso SQL-C# Basico

sTI_CI_v1_201302

C#jQuery UI Ejercicio

•Seleccionar tres elementos de jQuery UI e implementarlos en una página•Crear un prototipo de la pantalla que se utilizo antes y generar los métodos correspondientes para guardar, actualizar, consultar y eliminar para desde jQuery.

Page 110: Curso SQL-C# Basico

sTI_CI_v1_201302

C#Windows Communication Foundation

•Windows Communication Foundation (WCF) es un marco de trabajo para la creación de aplicaciones orientadas a servicios. Con WCF, es posible enviar datos como mensajes asincrónicos de un extremo de servicio a otro. Un extremo de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicación. Un extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio. Los mensajes pueden ser tan simples como un carácter o una palabra que se envía como XML, o tan complejos como una secuencia de datos binarios

Page 111: Curso SQL-C# Basico

sTI_CI_v1_201302

C#WCF Componentes principales

•Endpoint• Address (¿Dónde?)

Dirección de la red• Binding (¿Cómo?)

Protocolo:TCP,HTTP,MSMQ etc..Codificación: Texto o BinarioSeguridad: SSL, Seguridad SOAPReferencia al servicio a exponer

• Contract (¿Qué?)• Interfaz: Contrato de servicio

Page 112: Curso SQL-C# Basico

sTI_CI_v1_201302

C#WCF Diagrama

EndpointEndpoint

AA B CBC

Mensajes

Cliente Servidor

Page 113: Curso SQL-C# Basico

sTI_CI_v1_201302

C#WCF Configuración

Services<system.serviceModel>

<services><service behaviorConfiguration="BlockBehaivior" name="Aon.Adte.Servicio.Estadistico.Folios"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BlockBinding" contract="Aon.Adte.Servicio.Estadistico.IFolios">

<identity> <dns value="10.205.4.21" /> </identity>

</endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

</service></services>

</system.serviceModel>

Page 114: Curso SQL-C# Basico

sTI_CI_v1_201302

C#WCF Configuración

Behaviors<behaviors> <serviceBehaviors>

<behavior name="BlockBehaivior"> <dataContractSerializer maxItemsInObjectGraph ="65536"/> <serviceMetadata httpGetEnabled="true" /> <serviceDebug includeExceptionDetailInFaults="true" />

</behavior></serviceBehaviors>

</behaviors>

Bindings<bindings> <basicHttpBinding> <!--Base--> <binding name="BlockBinding" closeTimeout="01:00:00" sendTimeout="01:00:00" receiveTimeout="01:00:00" openTimeout="01:00:00" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Mtom" transferMode="Streamed"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> </binding> </basicHttpBinding></bindings>

Page 115: Curso SQL-C# Basico

sTI_CI_v1_201302

C#IIS

Internet Information Services o IIS es un servidor web y un conjunto de servicios para el sistema operativo Microsoft Windows. Originalmente era parte del Option Pack para Windows NT. Luego fue integrado en otros sistemas operativos de Microsoft destinados a ofrecer servicios, como Windows 2000 o Windows Server 2003. Windows XP Profesional incluye una versión limitada de IIS. Los servicios que ofrece son: FTP, SMTP,NNTP y HTTP/HTTPS.Antiguamente se denominaba PWS (Personal Web Server), y actualmente forma parte de la distribución estándar de Windows, de modo que no se necesita una licencia extra para instalarlo.Este servicio convierte a una PC en un servidor web para Internet o una intranet, es decir que en las computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.Los servicios de Internet Information Services proporcionan las herramientas y funciones necesarias para administrar de forma sencilla un servidor web seguro.

Page 116: Curso SQL-C# Basico

sTI_CI_v1_201302

C#IIS Versiones

•IIS 1.0.- Proporciona la opción de la arquitectura cliente servidor para Windows 95.•IIS 2.0.- Soporta plugins, extensiones de Microsoft FrontPage.•IIS 3.0.- Paginas Active Server, conexiones con bases de datos de Microsoft a través de Actives Data Object y ODBC.•IIS 4.0.- Microsoft Management Console (MMC).•IIS 5.0.- Administración remota de IIS y otros servicios de Windows.•IIS 6.0.- Utilización de autenticación en Passport, Proxy y Firewall.•IIS 7.0.- Extensibilidad de .NET Y Extensiones ISAPI•IIS 7.5.- Extensiones WebDav y FTP, Filtrado de solicitudes y módulos del Administration Pack.

Page 117: Curso SQL-C# Basico

sTI_CI_v1_201302

C#IIS Tipos de canalización administrada

Canalización integrada es una canalización de procesamiento de solicitudes unificada que admite módulos de código nativo y código administrado, provoca todos los eventos que expone el objeto HttpApplication, que habilita los módulos HTTP de ASP.NET existentes para trabajar en el modo integrado de IIS 7.0, canalización unificada recibe la primera solicitud de cualquier recurso de una aplicación, se crea una instancia de la clase ApplicationManager que es el dominio de aplicación en el que se procesa la solicitud.

Page 118: Curso SQL-C# Basico

sTI_CI_v1_201302

C#IIS Pool de aplicaciones

Son creados a nivel del IIS del web server, típicamente por el administrador web para definir algunos aspectos de seguridad y performance de un conjunto de aplicaciones, se utilizan para administrar web sites y aplicaciones, desde el IIS 5.0

Page 119: Curso SQL-C# Basico

sTI_CI_v1_201302

C#IIS Instalación de Framework

Panel control>programas>Programas y características>activar o desactivar características WindowsHabilitar el IIS Habilitar Microsoft .NET 3.5 WCFRegistrar frameworkC:\Windows\Microsoft.NET\Framework64\v4.0.30319aspnet_regiis –i

Page 120: Curso SQL-C# Basico

sTI_CI_v1_201302

C#

Gracias por su asistencia

Page 121: Curso SQL-C# Basico

Servicios Estratégicos en Tecnologías deInformación S. de R.L. de C.V.

Av. de las Granjas No. 155 Int. 4 Col. Jardín Azpeitia, 02530

México, Distrito Federal.

Oficina. 55906817Twitter. @serTI_MX

linkedIn: http://linkedin.com/in/[email protected]