SlideShare une entreprise Scribd logo
1  sur  121
Curso Básico
.NET - SQL


               Febrero 2013
Temario

   • Programación Orientada a
     objetos (POO)
   • Lenguaje unificado de
     modelado (UML)
   • Lenguaje SQL
   • Lenguaje C#



            sTI_CI_v1_201302
POO
Conceptos fundamentales                                                                         POO




                     • 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
                                      sTI_CI_v1_201302
UML
Principales diagramas                                      UML




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




•   http://www.docirs.cl/uml.htm
•   http://www.escet.urjc.es/~smontalvo/umlToJava_v2.pdf
                                     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.

                  sTI_CI_v1_201302
UML
Ejercicio
     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.
                   sTI_CI_v1_201302
SQL
MS SQL Server                                                            SQL




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




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

                                     sTI_CI_v1_201302
Lenguaje de definición de datos                          SQL


 (DDL)
                    •    Create
                    •    Alter
                    •    Drop
                    •    Truncate




•   http://support.microsoft.com/kb/180841/es
•   http://www.youtube.com/watch?v=HO5eb2wBaBk
                                      sTI_CI_v1_201302
Instrucciones fundamentales del DDL                                                             SQL



            Create
            create table [nombre_tabla]( [campo_1] [tipo dato])
            Alter
            alter table [nombre_tabla] add [nombre_columna] [tipo
            dato]
            alter table [nombre_tabla] drop [nombre_columna]
            alter column [nombre_columna] [tipo_dato]
            [propiedad_especial]
            Drop
            drop [objeto] [nombre_tabla]
                     • index
                     • database
                     • table
            Truncate
            truncate table [nombre_tabla]


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

                                      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.




                sTI_CI_v1_201302
Lenguaje de manipulación de datos                                       SQL


 (DML)

                     • Insert
                     • Update
                     • Delete
                     • Select




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

                                      sTI_CI_v1_201302
SQL




Instrucciones fundamentales del
  DML
    Select
    select [nombre_columna],..[n]

    Insert
    Insert [nombre_tabla] values ([valor_columna],..[n])
    Update
    update [nombre_tabla] set [nombre_columna] =
    [valor_columna]
    Delete
    delete from [nombre_tabla]




                    sTI_CI_v1_201302
Instrucciones principales del DML                                                            SQL




             Lógicos                            Clausulas
             •AND                               •FROM                               Predicado
             •OR                                •WHERE                              •ALL
             •NOT                               •GROUP BY                           •TOP
             Comparación                        •HAVING                             •DISTINCT
             •BETWEEN                           •ORDER BY                           •DISTINCTROW
             •LIKE                              Relacionales
             •IN                                •<
             Agregado                           •>
             •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
                                      sTI_CI_v1_201302
JOINS                                                                                 SQL




             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

                                     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




                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.




               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ón
        30/1/2013
        30/12/2012
        Deberá generar el siguiente registro.
        Día | Conteo
        30 | 2
        Nota: si un día no se encuentra este deberá
          mostrar un 0


               sTI_CI_v1_201302
Vistas                                                             SQL



     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


     Sintaxis
     CREATE VIEW [nombre_vista]
     As
     [consulta_SQL]




                       sTI_CI_v1_201302
SQL




Procedimiento almacenado
              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

                                     sTI_CI_v1_201302
SQL




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

             Trigger DML
             Son 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

                                      sTI_CI_v1_201302
SQL




Desencadenador (Trigger)
    Trigger DDL
    Los 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.




                     sTI_CI_v1_201302
SQL




Desencadenador (Trigger)
             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
                                      sTI_CI_v1_201302
SQL




Funciones
    Una 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




                      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.




                      sTI_CI_v1_201302
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.




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

                                     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)




                      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]);




                       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.




                   sTI_CI_v1_201302
SQL




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




                  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


                     sTI_CI_v1_201302
SQL




CASE
   CASE expresion
    WHEN [valor] THEN
     expresion resultado
    ELSE
      expresion resultado
   END




                sTI_CI_v1_201302
SQL




   Cursores y ciclos
             Cursor
             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 DECLARE
             Abrir el cursor, utilizando OPEN
             Leer los datos del cursor, utilizando FETCH ... INTO
             Cerrar el cursor, utilizando CLOSE
             Liberar el cursor, utilizando DEALLOCATE

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


                                    sTI_CI_v1_201302
SQL




Cursores y ciclos
    DECLARE <nombre_cursor> CURSOR
    FOR <sentencia_sql>
     -- apertura del cursor
    OPEN <nombre_cursor>
    -- Lectura de la primera fila del cursor
    FETCH <nombre_cursor> INTO <lista_variables>
    WHILE (@@FETCH_STATUS = 0)
    BEGIN
    -- Lectura de la siguiente fila de un cursor
    FETCH <nombre_cursor> INTO <lista_variables>…
    END -- Fin del bucle WHILE
    -- Cierra el cursor
    CLOSE <nombre_cursor>
    -- Libera los recursos del cursor
    DEALLOCATE <nombre_cursor>



                     sTI_CI_v1_201302
SQL




   Cursores y ciclos
             Ciclo
             Establece 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


                                    sTI_CI_v1_201302
SQL




Cursores y ciclos
    WHILE [condicion]
    BEGIN
       [Codigo]
    END




                 sTI_CI_v1_201302
SQL




Comando Execute
   Ejecuta 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.

   Ejemplo
   Execute ‘Select * from [nombre tabla]’




                     sTI_CI_v1_201302
SQL




   Ejercicio
             Generar 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               | Asociada
             Almacén –A                Si
             Almacén-B                 No
             •Generar una consulta donde muestre la lista de usuarios y los
             clasifique en los siguientes rubros
             Invitado - Solo acceso a las áreas comunes (AC)
             Personal – (AC) y al área de trabajo (AT)
             Enfermero(a) – (AC)- Enfermería (E)
             Infraestructura (AC) – Site
             Empleado | Acceso
             Pedro           Personal
             María           Enfermera

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




Ejercicio
    Generar una lista de empleados por acceso y mostrarla en el sistema
    Como se muestra en el siguiente ejemplo y tomando en cuanta los
    criterios definidos en el punto anterior.

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




                      sTI_CI_v1_201302
SQL




Ejercicio final
     Generar 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




                       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 denegado
     Exec [nombre_procedimiento] [paramA], [paramB], [paramC]…
     -- Acceso temporal denegado
     Exec [nombre_procedimiento] [paramD], [paramE], [paramF]…
     Y así sucesivamente para los cuatro estados



                       sTI_CI_v1_201302
C#
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

                    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
                                    sTI_CI_v1_201302
C#




   Versiones de .NET




http://msdn.microsoft.com/es-es/library/bb822049.aspx
                                    sTI_CI_v1_201302
Versiones de .NET                                                                          C#


.NET   IDE                Descripción
1.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 Incluía actualizaciones de ASP.NET y ADO.NET. Esta versión se actualizó dos veces
       2003               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.



                                          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
                                     sTI_CI_v1_201302
POO                                                           C#




                   • 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
                                    sTI_CI_v1_201302
POO                                                                        C#




                   • 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
                                    sTI_CI_v1_201302
POO                                                             C#




      • 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";
           }




                    sTI_CI_v1_201302
POO                                                                    C#



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");
     }
  }



                          sTI_CI_v1_201302
POO                                                      C#

class 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();
     }
   }
                            sTI_CI_v1_201302
POO                                                                  C#


                   • 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
                                    sTI_CI_v1_201302
Estructuras de control                   C#


      • If
      If([condicion_boleana]){
        [codigo_If];
      }
      else{
      [codigo_else];
      }
      • switch
      switch{
      case [valor]:
      break;
      default:
      break;
      }




                      sTI_CI_v1_201302
Estructuras de control                                                       C#


             • while
             while ([condicion])
             {
                  break;
                  continue;
             }
             • for
             for ([tipo_dato] [varialble] [inicializador]; [condicion de paro]; [paso]) {
                [codigo];
             }
             • foreach
             foreach([tipo_dato] [objeto] in [Lista_Objetos] ){
                  [codigo];
             }




http://es.wikipedia.org/wiki/Estructuras_de_control
                                      sTI_CI_v1_201302
Arquitectura serTI              C#




             sTI_CI_v1_201302
DAO (Data Access Object)                                      C#




    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.




                      sTI_CI_v1_201302
DAO (Data Access Object)        C#




             sTI_CI_v1_201302
ADO                                                               C#


      (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.




                       sTI_CI_v1_201302
ADO                      C#




      sTI_CI_v1_201302
LINQ                                                            C#




  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.




                     sTI_CI_v1_201302
LINQ                      C#




       sTI_CI_v1_201302
SQL Entity Framework                                                     C#




   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.




                         sTI_CI_v1_201302
SQL Entity Framework           C#




            sTI_CI_v1_201302
Lenguaje LINQ                                                                      C#




    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.




                            sTI_CI_v1_201302
Lenguaje LINQ                                               C#




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




    http://msdn.microsoft.com/es-es/library/bb387061.aspx
    http://msdn.microsoft.com/es-es/library/bb386964.aspx
    http://msdn.microsoft.com/es-es/library/bb397919.aspx
    http://msdn.microsoft.com/es-es/library/bb386977.aspx
                          sTI_CI_v1_201302
Ejercicio                                                           C#


    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




                       sTI_CI_v1_201302
Principales Operadores LINQ                      C#


      •Where                       •Concat
      •Select                      •Combine
      •Group by                    •Max
      •Count                       •Average
      •SelectMany                  •Aggregate
      •Distinct                    •Sum
      •Union                       •Union
      •Intersect                   •Min
      •Except                      •Cross Join
      •Take                        •Group Join
      •TakeWhile
      •OrderBy
      •ThenBy
      •Range




                    sTI_CI_v1_201302
Ejercicio                                                      C#


      •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
      •……




                    sTI_CI_v1_201302
Métodos HTTP                                                                       C#


   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.


                           sTI_CI_v1_201302
Active server page (ASP)                                               C#




   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) desde
   la 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: “Las
   Active 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”.




                        sTI_CI_v1_201302
Ciclo de vida ASP                                                  C#




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




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

                              sTI_CI_v1_201302
ASP MVC (Model-View-Controller)                                                  C#




    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.




                         sTI_CI_v1_201302
ASP MVC (Model-View-Controller)   C#




            sTI_CI_v1_201302
ASP Controles principales                                     C#




 ASP             HTML                    Validadores
 •Label          •Input (Button)         •Compare
 •Textbox        •Input (Text)           •Custom
 •HyperLink      •Input (CheckBox)       •Range
 •Image          •Image                  •RegularExpresion
 •RadioButton    •Select                 •RequieredField
 •CheckBox                               •ValidationSummary
 •GridView
 •ListBox
 •DropDownList




                      sTI_CI_v1_201302
ASP Master Page                                                     C#



    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.




                     sTI_CI_v1_201302
Control de usuario (WebUserControl)                              C#




      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

                      sTI_CI_v1_201302
Controles de navegación                                                           C#




     •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.




                          sTI_CI_v1_201302
Ajax                                                                                     C#




         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

                              sTI_CI_v1_201302
Ejercicio                                                C#




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




                      sTI_CI_v1_201302
Ejercicio                                                            C#




    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




                        sTI_CI_v1_201302
Ejercicio                                                       C#




      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




                     sTI_CI_v1_201302
GridView                      C#




     C




           sTI_CI_v1_201302
Interface de usuario                                           C#




     •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.




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




     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




                     sTI_CI_v1_201302
Javascript                                                                       C#




          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
                             sTI_CI_v1_201302
Javascript                                                                         C#




           •Eventos
                onClick,onChange,mouseMove
           •Selectores
                getElementByID, getElementByTagName
           •Document Object Model
                document.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/
                              sTI_CI_v1_201302
Cascading Style Sheets (CSS)                                            C#



     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
                        sTI_CI_v1_201302
Principales elementos CSS                                  C#



     •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




   http://www.w3c.es/Divulgacion/GuiasReferencia/CSS21/
                            sTI_CI_v1_201302
Estructura de estilos CSS              C#



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




                    sTI_CI_v1_201302
Ejemplo CSS                                                          C#




    <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>



                          sTI_CI_v1_201302
jQuery                                                              C#




     •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




                     sTI_CI_v1_201302
jQuery Selectores y Eventos                                     C#




           •Selectores
                jQuery() o $()
           •Eventos
                document.ready(
                     function (){}
                );
           Funciones anonimas
                function (){}
           •Efectos
           •Handlers




 http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery
                               sTI_CI_v1_201302
jQuery Ejercicio                                               C#




      •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.




                     sTI_CI_v1_201302
jQuery Ejercicio                                                    C#




      •Seleccionar la caja de texto y las etiquetas cambiando las
      siguientes propiedades
      •Tipo de letra Calibri
      •Tamaño 10 pts
      •Color Rojo
      Cargar 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




                      sTI_CI_v1_201302
jQuery Ajax                                          C#


     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/
                          sTI_CI_v1_201302
XML                                                            C#


      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.




                     sTI_CI_v1_201302
XML Estructura Básica                              C#


     <?xml version="1.0"?>
     <Elemento>
          <Elemento_Hijo [nombreAtributo]=valor>
               valorElemento
          < /Elemento_Hijo >
     </Elemento>




                    sTI_CI_v1_201302
JSON                                                               C#




       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.




                       sTI_CI_v1_201302
JSON Estructura Básica                  C#




     {
     Elemento:valor
     Elemento:[
                elementoHijo1:valor
                ,elementoHijo2:valor]
     }




                    sTI_CI_v1_201302
Comparación XML y JSON                        C#




     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']
     }




                      sTI_CI_v1_201302
Prototype                                                               C#


     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

                        sTI_CI_v1_201302
Definición de un prototipo                                          C#


     Definición
     var 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 "




                      sTI_CI_v1_201302
Herencia de un prototipo                                 C#


     Definición
     var objetoHijo= Class.create();
     objetoHijo.prototype = Object.extend(new Objeto()
     ,{
           //Redefinimos el método
           metodo: function(parametro)
           {
                return parametro;
            }
     }
     );
     Uso
      var hijo = new objetoHijo(‘propiedad');
     hijo.metodo(‘parametro');
      // -> “parametro”




                    sTI_CI_v1_201302
jQuery UI                                                         C#




     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).




                     sTI_CI_v1_201302
jQuery UI Principales controles                                   C#




      Interactions               Widgets        Effects
      Draggable                  Accordion      Add Class
      Droppable                  Autocomplete   Color Animation
      Resizable                  Button         Effect
      Selectable                 Datepicker     Hide
      Sortable                   Dialog         Remove Class
                                 Menu           Show
                                 Progressbar    Switch Class
                                 Slider         Toggle
      Utilities                  Spinner        Toggle Class
      Position                   Tabs
      Widget Factory             Tooltip




    http://jqueryui.com/demos/


                          sTI_CI_v1_201302
jQuery UI Ejercicio                                                 C#


    •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.




                       sTI_CI_v1_201302
Windows Communication Foundation                                 C#




       •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




                      sTI_CI_v1_201302
WCF Componentes principales                         C#




        •Endpoint
            •Address (¿Dónde?)
                 Dirección de la red
            •Binding (¿Cómo?)
                 Protocolo:TCP,HTTP,MSMQ etc..
                 Codificación: Texto o Binario
                 Seguridad: SSL, Seguridad SOAP
                 Referencia al servicio a exponer
            •Contract (¿Qué?)
                 •Interfaz: Contrato de servicio




                        sTI_CI_v1_201302
WCF Diagrama                                                      C#




Cliente                                                            Servidor
              Endpoint          Mensajes            Endpoint

          C     B        A                      A     B        C




                             sTI_CI_v1_201302
WCF Configuración                                                                               C#




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>




                                                sTI_CI_v1_201302
WCF Configuración                                                                 C#




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>
                                              sTI_CI_v1_201302
</bindings>
IIS                                                                 C#




      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.
                      sTI_CI_v1_201302
IIS Versiones                                                        C#


         •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.




                         sTI_CI_v1_201302
IIS Tipos de canalización administrada                                 C#


       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.




                         sTI_CI_v1_201302
IIS Pool de aplicaciones                                                 C#


        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




                          sTI_CI_v1_201302
IIS Instalación de Framework                                         C#


       Panel control>programas>Programas y características>activar
       o desactivar características Windows
       Habilitar el IIS
       Habilitar Microsoft .NET 3.5 WCF
       Registrar framework
       C:WindowsMicrosoft.NETFramework64v4.0.30319
       aspnet_regiis –i




                         sTI_CI_v1_201302
C#




Gracias por su asistencia




       sTI_CI_v1_201302
Servicios Estratégicos en Tecnologías de
           Informació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. 55906817
                                         Twitter. @serTI_MX
                      linkedIn: http://linkedin.com/in/serti
                                          info@serti.com.mx
                                          www.serti.com.mx

Contenu connexe

Tendances

Visual basic
Visual basicVisual basic
Visual basic
josser96
 
Aplica los fundamentos de programacion web
Aplica los fundamentos de programacion webAplica los fundamentos de programacion web
Aplica los fundamentos de programacion web
miguel9728
 

Tendances (19)

Apuntes sql
Apuntes sql Apuntes sql
Apuntes sql
 
Programación III
Programación IIIProgramación III
Programación III
 
Sql developer. manual de usuario v1.2
Sql developer. manual de usuario v1.2Sql developer. manual de usuario v1.2
Sql developer. manual de usuario v1.2
 
informe
informeinforme
informe
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datos
 
Visual Basic 6.0
Visual Basic 6.0Visual Basic 6.0
Visual Basic 6.0
 
Bases de datos_angelina_monetti
Bases de datos_angelina_monettiBases de datos_angelina_monetti
Bases de datos_angelina_monetti
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basic
 
Access 2007 Y Visual 2008
Access 2007 Y Visual 2008Access 2007 Y Visual 2008
Access 2007 Y Visual 2008
 
desarrollo en 3 capas VB
desarrollo en 3 capas VBdesarrollo en 3 capas VB
desarrollo en 3 capas VB
 
Manual de Oracle Sql
Manual de Oracle SqlManual de Oracle Sql
Manual de Oracle Sql
 
Ejercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICKEjercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICK
 
manual visual_studio_2010_
manual visual_studio_2010_manual visual_studio_2010_
manual visual_studio_2010_
 
Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!
 
Apuntes sqldeveloper v2
Apuntes sqldeveloper v2Apuntes sqldeveloper v2
Apuntes sqldeveloper v2
 
TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENO
 
Visual basic
Visual basicVisual basic
Visual basic
 
Aplica los fundamentos de programacion web
Aplica los fundamentos de programacion webAplica los fundamentos de programacion web
Aplica los fundamentos de programacion web
 
Dce2 ejercicios asp.net
Dce2 ejercicios asp.netDce2 ejercicios asp.net
Dce2 ejercicios asp.net
 

En vedette

Características de c sharp
Características de c sharpCaracterísticas de c sharp
Características de c sharp
uccvirtual
 
Diapositivos ,unidades y perifericos
Diapositivos ,unidades y perifericosDiapositivos ,unidades y perifericos
Diapositivos ,unidades y perifericos
Chenny3
 
Presentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scam
Presentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scamPresentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scam
Presentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scam
José David Mendoza
 
C# DidáCtico
C# DidáCticoC# DidáCtico
C# DidáCtico
semuvi
 
9.1 security attacks
9.1 security attacks9.1 security attacks
9.1 security attacks
Edwin Vargas
 
Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
William Suárez
 
Firewall - IPCop
Firewall - IPCopFirewall - IPCop
Firewall - IPCop
FaniMR
 
Dce2 Introduccion Win Forms
Dce2 Introduccion Win FormsDce2 Introduccion Win Forms
Dce2 Introduccion Win Forms
Esteban Soraire
 

En vedette (20)

Descargar proyecto en c#
Descargar proyecto en c#Descargar proyecto en c#
Descargar proyecto en c#
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Conexión c# sql server
Conexión c# sql serverConexión c# sql server
Conexión c# sql server
 
Programación desde cero en C# en español
Programación desde cero en C# en españolProgramación desde cero en C# en español
Programación desde cero en C# en español
 
Que es visual c# eduardo sorto
Que es visual c# eduardo sortoQue es visual c# eduardo sorto
Que es visual c# eduardo sorto
 
Características de c sharp
Características de c sharpCaracterísticas de c sharp
Características de c sharp
 
Diapositivos ,unidades y perifericos
Diapositivos ,unidades y perifericosDiapositivos ,unidades y perifericos
Diapositivos ,unidades y perifericos
 
Ups Y Regulador De Voltaje
Ups Y Regulador De VoltajeUps Y Regulador De Voltaje
Ups Y Regulador De Voltaje
 
Regulador de corriente
Regulador de corrienteRegulador de corriente
Regulador de corriente
 
Presentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scam
Presentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scamPresentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scam
Presentación pc zombie, phishing, spim, spear phishing, ransomware, spam, scam
 
Topología de UPS
Topología de UPSTopología de UPS
Topología de UPS
 
Wpf
WpfWpf
Wpf
 
C# DidáCtico
C# DidáCticoC# DidáCtico
C# DidáCtico
 
Los atacantes y sus herramientas
Los atacantes y sus herramientasLos atacantes y sus herramientas
Los atacantes y sus herramientas
 
9.1 security attacks
9.1 security attacks9.1 security attacks
9.1 security attacks
 
Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
 
SAI. Sistema de Alimentación Ininterrumpida
SAI. Sistema de Alimentación IninterrumpidaSAI. Sistema de Alimentación Ininterrumpida
SAI. Sistema de Alimentación Ininterrumpida
 
Firewall - IPCop
Firewall - IPCopFirewall - IPCop
Firewall - IPCop
 
Dce2 Introduccion Win Forms
Dce2 Introduccion Win FormsDce2 Introduccion Win Forms
Dce2 Introduccion Win Forms
 
SAI (Sistema de alimentacion ininterrumpida) - SEIN - SMR2
SAI (Sistema de alimentacion ininterrumpida) - SEIN - SMR2SAI (Sistema de alimentacion ininterrumpida) - SEIN - SMR2
SAI (Sistema de alimentacion ininterrumpida) - SEIN - SMR2
 

Similaire à Curso SQL-C# Basico

Lenguaje de defincion de datos
Lenguaje   de  defincion de datosLenguaje   de  defincion de datos
Lenguaje de defincion de datos
IrisMTF16
 

Similaire à Curso SQL-C# Basico (20)

S ti ci_v1_201302
S ti ci_v1_201302S ti ci_v1_201302
S ti ci_v1_201302
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 
Conexion
ConexionConexion
Conexion
 
Lenguaje de defincion de datos
Lenguaje   de  defincion de datosLenguaje   de  defincion de datos
Lenguaje de defincion de datos
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Ddl
DdlDdl
Ddl
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Semana 01.pdf
Semana 01.pdfSemana 01.pdf
Semana 01.pdf
 
ANDROID CON CONEXIÓN A BASE DE DATOS SQLITE
ANDROID CON CONEXIÓN A BASE DE DATOS SQLITEANDROID CON CONEXIÓN A BASE DE DATOS SQLITE
ANDROID CON CONEXIÓN A BASE DE DATOS SQLITE
 
Curso online-programacion-sql-server-2005-lw
Curso online-programacion-sql-server-2005-lwCurso online-programacion-sql-server-2005-lw
Curso online-programacion-sql-server-2005-lw
 
Sql plus temario
Sql plus temarioSql plus temario
Sql plus temario
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 
Sqlite
SqliteSqlite
Sqlite
 
Sq lite
Sq liteSq lite
Sq lite
 
Android con conexión a base de datos sq lite
Android con conexión a base de datos sq liteAndroid con conexión a base de datos sq lite
Android con conexión a base de datos sq lite
 
Unidad4 sql
Unidad4 sqlUnidad4 sql
Unidad4 sql
 
Presentación: Administración y programación de bases de datos relacionales.
Presentación: Administración y programación de bases de datos relacionales.Presentación: Administración y programación de bases de datos relacionales.
Presentación: Administración y programación de bases de datos relacionales.
 
Caracteristicas de dbms_SQL SERVER 2008
Caracteristicas de dbms_SQL SERVER 2008Caracteristicas de dbms_SQL SERVER 2008
Caracteristicas de dbms_SQL SERVER 2008
 
Características Generales de SQL Server.pdf
Características Generales de SQL Server.pdfCaracterísticas Generales de SQL Server.pdf
Características Generales de SQL Server.pdf
 
SQL Server rápido y furioso
SQL Server rápido y furiosoSQL Server rápido y furioso
SQL Server rápido y furioso
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Curso SQL-C# Basico

  • 1. Curso Básico .NET - SQL Febrero 2013
  • 2. Temario • Programación Orientada a objetos (POO) • Lenguaje unificado de modelado (UML) • Lenguaje SQL • Lenguaje C# sTI_CI_v1_201302
  • 3. POO
  • 4. Conceptos fundamentales POO • 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 sTI_CI_v1_201302
  • 5. UML
  • 6. Principales diagramas UML • Casos de uso • Clases • Estado • Secuencia • Componentes • http://www.docirs.cl/uml.htm • http://www.escet.urjc.es/~smontalvo/umlToJava_v2.pdf sTI_CI_v1_201302
  • 7. 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. sTI_CI_v1_201302
  • 8. UML Ejercicio 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. sTI_CI_v1_201302
  • 9. SQL
  • 10. MS SQL Server SQL • IDE • Instancia • Conexiones • Configuración de red • Administración de usuarios • http://www.islasoft.com/Producto/Diferencias_SQL_Server_Office.pdf sTI_CI_v1_201302
  • 11. Lenguaje de definición de datos SQL (DDL) • Create • Alter • Drop • Truncate • http://support.microsoft.com/kb/180841/es • http://www.youtube.com/watch?v=HO5eb2wBaBk sTI_CI_v1_201302
  • 12. Instrucciones fundamentales del DDL SQL Create create table [nombre_tabla]( [campo_1] [tipo dato]) Alter alter table [nombre_tabla] add [nombre_columna] [tipo dato] alter table [nombre_tabla] drop [nombre_columna] alter column [nombre_columna] [tipo_dato] [propiedad_especial] Drop drop [objeto] [nombre_tabla] • index • database • table Truncate truncate table [nombre_tabla] • http://grimpidev.wordpress.com/2009/03/21/diferencias-entre-truncate-table-y-delete-from/ sTI_CI_v1_201302
  • 13. 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. sTI_CI_v1_201302
  • 14. Lenguaje de manipulación de datos SQL (DML) • Insert • Update • Delete • Select • http://msdn.microsoft.com/es-es/library/ms177591(v=sql.90).aspx / sTI_CI_v1_201302
  • 15. SQL Instrucciones fundamentales del DML Select select [nombre_columna],..[n] Insert Insert [nombre_tabla] values ([valor_columna],..[n]) Update update [nombre_tabla] set [nombre_columna] = [valor_columna] Delete delete from [nombre_tabla] sTI_CI_v1_201302
  • 16. Instrucciones principales del DML SQL Lógicos Clausulas •AND •FROM Predicado •OR •WHERE •ALL •NOT •GROUP BY •TOP Comparación •HAVING •DISTINCT •BETWEEN •ORDER BY •DISTINCTROW •LIKE Relacionales •IN •< Agregado •> •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 sTI_CI_v1_201302
  • 17. JOINS SQL 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 sTI_CI_v1_201302
  • 18. 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 sTI_CI_v1_201302
  • 19. 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. sTI_CI_v1_201302
  • 20. 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ón 30/1/2013 30/12/2012 Deberá generar el siguiente registro. Día | Conteo 30 | 2 Nota: si un día no se encuentra este deberá mostrar un 0 sTI_CI_v1_201302
  • 21. Vistas SQL 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 Sintaxis CREATE VIEW [nombre_vista] As [consulta_SQL] sTI_CI_v1_201302
  • 22. SQL Procedimiento almacenado 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 sTI_CI_v1_201302
  • 23. SQL Desencadenador (Trigger) Es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación Trigger DML Son 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 sTI_CI_v1_201302
  • 24. SQL Desencadenador (Trigger) Trigger DDL Los 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. sTI_CI_v1_201302
  • 25. SQL Desencadenador (Trigger) 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 sTI_CI_v1_201302
  • 26. SQL Funciones Una 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 sTI_CI_v1_201302
  • 27. 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. sTI_CI_v1_201302
  • 28. 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. • http://msdn.microsoft.com/es-mx/library/ms177481.aspx sTI_CI_v1_201302
  • 29. 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) sTI_CI_v1_201302
  • 30. 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]); sTI_CI_v1_201302
  • 31. 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. sTI_CI_v1_201302
  • 32. SQL IF...ELSE IF [condicion_boleana] BEGIN [Codigo] END ELSE [Codigo] END sTI_CI_v1_201302
  • 33. 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 sTI_CI_v1_201302
  • 34. SQL CASE CASE expresion WHEN [valor] THEN expresion resultado ELSE expresion resultado END sTI_CI_v1_201302
  • 35. SQL Cursores y ciclos Cursor 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 DECLARE Abrir el cursor, utilizando OPEN Leer los datos del cursor, utilizando FETCH ... INTO Cerrar el cursor, utilizando CLOSE Liberar el cursor, utilizando DEALLOCATE http://www.devjoker.com/contenidos/articulos/240/Cursores-en-Transact-SQL.aspx sTI_CI_v1_201302
  • 36. SQL Cursores y ciclos DECLARE <nombre_cursor> CURSOR FOR <sentencia_sql> -- apertura del cursor OPEN <nombre_cursor> -- Lectura de la primera fila del cursor FETCH <nombre_cursor> INTO <lista_variables> WHILE (@@FETCH_STATUS = 0) BEGIN -- Lectura de la siguiente fila de un cursor FETCH <nombre_cursor> INTO <lista_variables>… END -- Fin del bucle WHILE -- Cierra el cursor CLOSE <nombre_cursor> -- Libera los recursos del cursor DEALLOCATE <nombre_cursor> sTI_CI_v1_201302
  • 37. SQL Cursores y ciclos Ciclo Establece 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 sTI_CI_v1_201302
  • 38. SQL Cursores y ciclos WHILE [condicion] BEGIN [Codigo] END sTI_CI_v1_201302
  • 39. SQL Comando Execute Ejecuta 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. Ejemplo Execute ‘Select * from [nombre tabla]’ sTI_CI_v1_201302
  • 40. SQL Ejercicio Generar 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 | Asociada Almacén –A Si Almacén-B No •Generar una consulta donde muestre la lista de usuarios y los clasifique en los siguientes rubros Invitado - Solo acceso a las áreas comunes (AC) Personal – (AC) y al área de trabajo (AT) Enfermero(a) – (AC)- Enfermería (E) Infraestructura (AC) – Site Empleado | Acceso Pedro Personal María Enfermera http://msdn.microsoft.com/es-mx/library/ms178642.aspx sTI_CI_v1_201302
  • 41. SQL Ejercicio Generar una lista de empleados por acceso y mostrarla en el sistema Como se muestra en el siguiente ejemplo y tomando en cuanta los criterios definidos en el punto anterior. Acceso | Nombre | NAccesos | Día Enfermería María, Alejandra, Elena 12 11/02/2013 Personal Juan, Mario, Karla, John 24 11/02/2013 Infraestructura Jimena, Arturo 1 11/02/2013 sTI_CI_v1_201302
  • 42. SQL Ejercicio final Generar 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 sTI_CI_v1_201302
  • 43. 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 denegado Exec [nombre_procedimiento] [paramA], [paramB], [paramC]… -- Acceso temporal denegado Exec [nombre_procedimiento] [paramD], [paramE], [paramF]… Y así sucesivamente para los cuatro estados sTI_CI_v1_201302
  • 44. C#
  • 45. 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 sTI_CI_v1_201302
  • 46. 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 sTI_CI_v1_201302
  • 47. C# Versiones de .NET http://msdn.microsoft.com/es-es/library/bb822049.aspx sTI_CI_v1_201302
  • 48. Versiones de .NET C# .NET IDE Descripción 1.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 Incluía actualizaciones de ASP.NET y ADO.NET. Esta versión se actualizó dos veces 2003 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. sTI_CI_v1_201302
  • 49. 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 sTI_CI_v1_201302
  • 50. POO C# • 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 sTI_CI_v1_201302
  • 51. POO C# • 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 sTI_CI_v1_201302
  • 52. POO C# • 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"; } sTI_CI_v1_201302
  • 53. POO C# 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"); } } sTI_CI_v1_201302
  • 54. POO C# class 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(); } } sTI_CI_v1_201302
  • 55. POO C# • 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 sTI_CI_v1_201302
  • 56. Estructuras de control C# • If If([condicion_boleana]){ [codigo_If]; } else{ [codigo_else]; } • switch switch{ case [valor]: break; default: break; } sTI_CI_v1_201302
  • 57. Estructuras de control C# • while while ([condicion]) { break; continue; } • for for ([tipo_dato] [varialble] [inicializador]; [condicion de paro]; [paso]) { [codigo]; } • foreach foreach([tipo_dato] [objeto] in [Lista_Objetos] ){ [codigo]; } http://es.wikipedia.org/wiki/Estructuras_de_control sTI_CI_v1_201302
  • 58. Arquitectura serTI C# sTI_CI_v1_201302
  • 59. DAO (Data Access Object) C# 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. sTI_CI_v1_201302
  • 60. DAO (Data Access Object) C# sTI_CI_v1_201302
  • 61. ADO C# (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. sTI_CI_v1_201302
  • 62. ADO C# sTI_CI_v1_201302
  • 63. LINQ C# 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. sTI_CI_v1_201302
  • 64. LINQ C# sTI_CI_v1_201302
  • 65. SQL Entity Framework C# 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. sTI_CI_v1_201302
  • 66. SQL Entity Framework C# sTI_CI_v1_201302
  • 67. Lenguaje LINQ C# 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. sTI_CI_v1_201302
  • 68. Lenguaje LINQ C# •LINQ to XML •LINQ to Entities •LINQ to Objects •LINQ to DataSet http://msdn.microsoft.com/es-es/library/bb387061.aspx http://msdn.microsoft.com/es-es/library/bb386964.aspx http://msdn.microsoft.com/es-es/library/bb397919.aspx http://msdn.microsoft.com/es-es/library/bb386977.aspx sTI_CI_v1_201302
  • 69. Ejercicio C# 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 sTI_CI_v1_201302
  • 70. Principales Operadores LINQ C# •Where •Concat •Select •Combine •Group by •Max •Count •Average •SelectMany •Aggregate •Distinct •Sum •Union •Union •Intersect •Min •Except •Cross Join •Take •Group Join •TakeWhile •OrderBy •ThenBy •Range sTI_CI_v1_201302
  • 71. Ejercicio C# •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 •…… sTI_CI_v1_201302
  • 72. Métodos HTTP C# 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. sTI_CI_v1_201302
  • 73. Active server page (ASP) C# 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) desde la 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: “Las Active 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”. sTI_CI_v1_201302
  • 74. Ciclo de vida ASP C# •PreInit •Init •InitComplete •PreLoad •Load •LoadComplete •PreRender •PreRenderComplete •SaveStateComplete •Render •Unload http://msdn.microsoft.com/es-mx/library/ms178473(v=vs.80).aspx http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx sTI_CI_v1_201302
  • 75. ASP MVC (Model-View-Controller) C# 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. sTI_CI_v1_201302
  • 76. ASP MVC (Model-View-Controller) C# sTI_CI_v1_201302
  • 77. ASP Controles principales C# ASP HTML Validadores •Label •Input (Button) •Compare •Textbox •Input (Text) •Custom •HyperLink •Input (CheckBox) •Range •Image •Image •RegularExpresion •RadioButton •Select •RequieredField •CheckBox •ValidationSummary •GridView •ListBox •DropDownList sTI_CI_v1_201302
  • 78. ASP Master Page C# 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. sTI_CI_v1_201302
  • 79. Control de usuario (WebUserControl) C# 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 sTI_CI_v1_201302
  • 80. Controles de navegación C# •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. sTI_CI_v1_201302
  • 81. Ajax C# 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 sTI_CI_v1_201302
  • 82. Ejercicio C# •Crear una página maestra alguna de las siguientes distribuciones sTI_CI_v1_201302
  • 83. Ejercicio C# 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 sTI_CI_v1_201302
  • 84. Ejercicio C# 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 sTI_CI_v1_201302
  • 85. GridView C# C sTI_CI_v1_201302
  • 86. Interface de usuario C# •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. sTI_CI_v1_201302
  • 87. Prototype (patrón de diseño) C# 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 sTI_CI_v1_201302
  • 88. Javascript C# 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 sTI_CI_v1_201302
  • 89. Javascript C# •Eventos onClick,onChange,mouseMove •Selectores getElementByID, getElementByTagName •Document Object Model document.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/ sTI_CI_v1_201302
  • 90. Cascading Style Sheets (CSS) C# 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 sTI_CI_v1_201302
  • 91. Principales elementos CSS C# •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 http://www.w3c.es/Divulgacion/GuiasReferencia/CSS21/ sTI_CI_v1_201302
  • 92. Estructura de estilos CSS C# •Elemento html { border-color:red; } <html> Estilo .html { border-color:red; } <body class=“html”> •Identificador #html { border-color:red; } <div id=“html”> sTI_CI_v1_201302
  • 93. Ejemplo CSS C# <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> sTI_CI_v1_201302
  • 94. jQuery C# •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 sTI_CI_v1_201302
  • 95. jQuery Selectores y Eventos C# •Selectores jQuery() o $() •Eventos document.ready( function (){} ); Funciones anonimas function (){} •Efectos •Handlers http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery sTI_CI_v1_201302
  • 96. jQuery Ejercicio C# •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. sTI_CI_v1_201302
  • 97. jQuery Ejercicio C# •Seleccionar la caja de texto y las etiquetas cambiando las siguientes propiedades •Tipo de letra Calibri •Tamaño 10 pts •Color Rojo Cargar 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 sTI_CI_v1_201302
  • 98. jQuery Ajax C# 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/ sTI_CI_v1_201302
  • 99. XML C# 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. sTI_CI_v1_201302
  • 100. XML Estructura Básica C# <?xml version="1.0"?> <Elemento> <Elemento_Hijo [nombreAtributo]=valor> valorElemento < /Elemento_Hijo > </Elemento> sTI_CI_v1_201302
  • 101. JSON C# 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. sTI_CI_v1_201302
  • 102. JSON Estructura Básica C# { Elemento:valor Elemento:[ elementoHijo1:valor ,elementoHijo2:valor] } sTI_CI_v1_201302
  • 103. Comparación XML y JSON C# 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'] } sTI_CI_v1_201302
  • 104. Prototype C# 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 sTI_CI_v1_201302
  • 105. Definición de un prototipo C# Definición var 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 " sTI_CI_v1_201302
  • 106. Herencia de un prototipo C# Definición var objetoHijo= Class.create(); objetoHijo.prototype = Object.extend(new Objeto() ,{ //Redefinimos el método metodo: function(parametro) { return parametro; } } ); Uso var hijo = new objetoHijo(‘propiedad'); hijo.metodo(‘parametro'); // -> “parametro” sTI_CI_v1_201302
  • 107. jQuery UI C# 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). sTI_CI_v1_201302
  • 108. jQuery UI Principales controles C# Interactions Widgets Effects Draggable Accordion Add Class Droppable Autocomplete Color Animation Resizable Button Effect Selectable Datepicker Hide Sortable Dialog Remove Class Menu Show Progressbar Switch Class Slider Toggle Utilities Spinner Toggle Class Position Tabs Widget Factory Tooltip http://jqueryui.com/demos/ sTI_CI_v1_201302
  • 109. jQuery UI Ejercicio C# •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. sTI_CI_v1_201302
  • 110. Windows Communication Foundation C# •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 sTI_CI_v1_201302
  • 111. WCF Componentes principales C# •Endpoint •Address (¿Dónde?) Dirección de la red •Binding (¿Cómo?) Protocolo:TCP,HTTP,MSMQ etc.. Codificación: Texto o Binario Seguridad: SSL, Seguridad SOAP Referencia al servicio a exponer •Contract (¿Qué?) •Interfaz: Contrato de servicio sTI_CI_v1_201302
  • 112. WCF Diagrama C# Cliente Servidor Endpoint Mensajes Endpoint C B A A B C sTI_CI_v1_201302
  • 113. WCF Configuración C# 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> sTI_CI_v1_201302
  • 114. WCF Configuración C# 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> sTI_CI_v1_201302 </bindings>
  • 115. IIS C# 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. sTI_CI_v1_201302
  • 116. IIS Versiones C# •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. sTI_CI_v1_201302
  • 117. IIS Tipos de canalización administrada C# 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. sTI_CI_v1_201302
  • 118. IIS Pool de aplicaciones C# 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 sTI_CI_v1_201302
  • 119. IIS Instalación de Framework C# Panel control>programas>Programas y características>activar o desactivar características Windows Habilitar el IIS Habilitar Microsoft .NET 3.5 WCF Registrar framework C:WindowsMicrosoft.NETFramework64v4.0.30319 aspnet_regiis –i sTI_CI_v1_201302
  • 120. C# Gracias por su asistencia sTI_CI_v1_201302
  • 121. Servicios Estratégicos en Tecnologías de Informació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. 55906817 Twitter. @serTI_MX linkedIn: http://linkedin.com/in/serti info@serti.com.mx www.serti.com.mx