introduccion a net (3 capas)

Upload: huitzoiltl

Post on 16-Oct-2015

46 views

Category:

Documents


0 download

TRANSCRIPT

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Desarrollo de Aplicaciones

    Captulo 01

    Introduccin a la plataforma

    Microsoft.NET

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Agenda

    Bibliografa y referencias Repaso sesin anterior. Arquitectura de aplicaciones

    Arquitectura de 2 capas Arquitectura de 3 capas Internet Servicios Web SOA Modelo de Capas

    Plataforma Microsoft Introduccin Arquitectura .NET Framework Lenguajes y proceso de Compilacin CLR (Common Language Runtime) Clases base (BCL) Framework Class Library (FCL) Evolucin de .NET

    Visual Studio 2005 y C# Producto VS2005 y ediciones Tipos de Proyectos Estructura bsica de un programa C# / Programacin de consola Namespaces y jerarquas Clases y Objetos: creacin y utilizacin.

    Que veremos la prxima sesin?

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Bibliografa / Referencias

    1. Separata y diapositivas del curso.

    2. Learning C# 2005. Caps 1 (C# and .Net Programming), 2 (Visual Studio 2005), 6 (OOP),

    7 (Classes).

    3. Wikibooks C# Programming. Caps 1 (Foreword), 2 (Getting started).

    4. Microsoft Visual C# 2005 Step by Step. Caps. 1 (Welcome to C#).

    5. Documento de estndares de desarrollo y consideraciones de arquitectura.

    6. Arquitectura de aplicaciones de .NET: Diseo de aplicaciones y servicios

    (http://www.microsoft.com/spanish/msdn/arquitectura/das/distapp.mspx)

    7. Smart Client Architecture and Design Guide - patterns & practices.

    8. Pro Service-Oriented Smart Clients with .NET 2.0

    9. NET Framework (http://en.wikipedia.org/wiki/.NET_Framework)

    10. NET Languages (http://en.wikipedia.org/wiki/Microsoft_.NET_Languages)

    11. Illustrated C# 2005 (Apress)

    12. C# Language Specification (documento word)

    13. Visual C# - Language Concepts (http://msdn2.microsoft.com/en-

    us/library/kx37x362(VS.80).aspx)

    14. Softsteel Tutorial: http://www.softsteel.co.uk/tutorials/cSharp/lesson1.html

    15. Meshplex Tutorial: http://www.meshplex.org/wiki/C_Sharp_Tutorial

    16. FunctionX Tutorial: http://www.functionx.com/csharp/index.htm

    17. Msdn Express Tutorials: http://msdn.microsoft.com/vstudio/express/beginner/

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Repaso sesin anterior

    Presentacin y overview del Curso.

    Ver diapositivas previas.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Arquitecturas y su evolucin

    1-Tier

    (monoltica)

    Lgica del Cliente

    Lgica del Negocio

    Almacenamiento

    3-Tier

    Thin Client

    N-Tier

    2-Tier

    Fat Client

    Internet

    XML

    Web

    service

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Arquitectura de 2 Capas

    Capa de UI / Cliente Pesado

    Interfaz de Usuario, mediante archivos EXE.

    Servicios y libreras de lgica de negocio en DLLs.

    Capa de Datos

    Motor de Base de Datos Relacional.

    Tablas, vistas, procedimientos almacenados.

    Aplicaciones:

    Visual Basic

    Power Builder

    Delphi

    Developer 2000

    Java

    Base de Datos:

    SQL Server

    Sybase SQL

    InterBase

    Oracle

    DB2

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Arquitectura de 3 a n Capas Capa de UI / Cliente Ligero

    Interfaz de usuario (web o windows) + lgica de validacin de cliente.

    Visualizacin de reportes.

    Capa de Lgica de Negocio / Servidor de Aplicaciones Libreras y componentes que encapsulan la lgica del proceso

    del negocio.

    Comunicacin con sistemas externos, interfaces. Lgica de reportes. Procesos transaccionales. Seguridad.

    Capa de Datos Motor de Base de Datos Relacional. Tablas, vistas, procedimientos almacenados.

    Aplicaciones:

    Visual Basic

    Power Builder

    Delphi

    Developer 2000

    Java

    Base de Datos:

    SQL Server

    Sybase SQL

    InterBase

    Oracle

    DB2

    Servidor de Aplicaciones:

    Win NT 4.0: MTS

    Win 2003: COM+ Server

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Arquitectura de Aplicaciones Web / Internet Capa de UI / Cliente Ligero

    Interfaz de usuario web Browser (Internet Explorer, Firefox, Opera, etc.)

    Capa de Lgica de Negocio / Servidor Web Pginas estticas (html + css + grficos) Pginas dinmicas (ASP.Net) Corren sobre IIS (Internet Information Server) Seguridad.

    Capa de Datos Motor de Base de Datos Relacional. Tablas, vistas, procedimientos almacenados.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Servicios Web Cliente: Cualquier aplicacin (windows, web, otro WS, etc.) Servidor Web

    SOAP (Simple Objects Access Protocol) XML (eXtended Markup Language) WSDL (Web Services Description Language) DISCO (Discovery) UDDI (Universal Description, Discovery And Integration)

    Servidor de Datos Motor de Base de Datos Relacional. Tablas, vistas, procedimientos almacenados.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    SOA Service-Oriented

    Architecture.

    Evolucin de las arquitecturas.

    Se puede implementar utilizando servicios Web.

    Concepto de Bus de Servicios.

    Comunicacin entre mltiples reas y departamentos.

    Comunicacin con el exterior.

    Reutilizacin de servicios.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Modelo de Capas Idea

    Separar las funcionalidades de la aplicacin en bloques independientes que se comunican entre s.

    Ventajas Reutilizacin del Software.

    Estas funcionalidades pueden estar en ubicaciones diferentes, incluso con tecnologas diferentes.

    Lenguajes diferentes de .NET.

    Posibilidad de usar Servicios Web.

    Se puede repartir el Diseo de la aplicacin entre varios equipos de desarrolladores.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Arquitectura de Aplicaciones

    Modelo de Capas

    Interfaz de Usuario Se centra en las acciones de peticiones y

    respuesta del usuario.

    Gestiona el modelado de la interfaz de usuario Contiene lgica para el formateo y lgica de

    validacin de entradas no relacionadas con el negocio

    Maneja las excepciones lanzadas por las otras capas.

    Lgica de Dominio Contiene los objetos de negocio usado a travs

    de las distintas capas.

    Contiene las relaciones entre los objetos del dominio.

    Es rica en Lgica de Negocio.

    Persistencia Se usa para comunicarse con un

    almacenamiento persistente como una base de datos SQL Sever.

    Proporciona un lenguaje de consulta. Posible capacidades de mapeo de tablas

    relacionales.

    Comunicacin con otras interfaces de acceso a bases de datos.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Que es .Net Framework? Es una infraestructura sobre la que se rene todo un conjunto de

    lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones.

    Es el entorno para crear, distribur y ejecutar las aplicaciones desarrolladas en la plataforma Microsoft.

    Tiene un conjunto de componentes: Lenguajes de programacin (VB, C#, C++, etc.) Runtime de Lenguaje Comn (CLR) Librera de Clases .NET (FCL, BCL)

    Microsoft: CSharp, VisualBasic, Win32 System: Windows, Web, Drawing, Data, XML, etc.

    Junto con Microsoft Visual Studio conforman la plataforma de desarrollo de aplicaciones de Microsoft.

    Es componente esencial de Microsoft Windows Vista y de futuros sistemas operativos de Microsoft.

    Es gratuito y se puede descargar desde la web oficial de Microsoft.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Arquitectura y Componentes de .NET Framework

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Lenguajes

    Net Framework soporta mltiples lenguajes de programacin y aunque cada lenguaje tiene sus caractersticas propias, es posible desarrollar cualquier tipo de aplicacin con cualquiera de estos lenguajes.

    Existen ms de 30 lenguajes adaptados a .Net, desde los ms conocidos como C# (C Sharp), Visual Basic o C++ hasta otros lenguajes menos conocidos como

    Perl o Cobol.

    El compilador especfico del lenguaje genera el CIL (Common Intermediate Language).

    El CIL se compila en lenguaje mquina por el CLR.

    Apoyado en el CTS para el intercambio de tipos de datos.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Proceso de Compilacin y Ejecucin

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Proceso de Compilacin y Ejecucin (otra vista)

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    CLR

    Tecnologa nuclear de la plataforma Microsoft.

    El CLR es el ncleo del Framework de .Net, ya que es el entorno de ejecucin en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios que ofrece el sistema operativo.

    Provee el Common Type System que permite unificar los tipos de datos entre mltiples lenguajes.

    Soporta varios lenguajes de programacin: VB.Net, C#, J#, C++, F#, Ruby, etc.

    Provee servicios comunes como: excepciones, depuracin, garbage collector (GC), etc.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Base Class Library (BCL)

    Provee los bloques fundamentales para cualquier tipo de aplicacin, sea windows, web, o un servicio web.

    La administra un equipo especializado de Microsoft (http://blogs.msdn.com/bclteam).

    Sirve de base para otras clases y libreras del Framework Class Library (FCL).

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    .NET Framework Class Library (FCL)

    Conjunto de clases y tipos que permiten desarrollar aplicaciones.

    Puede ser utilizado por cualquier lenguaje-CLR.

    Est organizada en un rbol jerrquico.

    System, System.Web, System.Data (ADO.NET), System.Windows.Forms,

    System.XML, etc.

    Es un superset de la Base Class Library (BCL).

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Evolucin de .NET

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Plataforma Microsoft

    Evolucin de .NET 3.0

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Microsoft Visual Studio 2005

    Entorno integrado de desarrollo de aplicaciones.

    Provee herramientas para agilizar el desarrollo. Se puede crear:

    Aplicaciones de Consola Aplicaciones Windows Aplicaciones Web Servicios Web etc.

    Utilizado ampliamente en el mundo. Provee mltiples lenguajes de programacin

    (VB,C#,C++,J#) y soporta cualquier lenguaje-CLR (python).

    Ediciones: Visual Studio 2005 Express Visual Studio 2005 Standard Visual Studio 2005 Professional Visual Studio 2005 Team System

    Para Arquitectos Para Desarrolladores Para Testers Para Profesionales de Bases de Datos (DBA) Suite (todas las ediciones de TS)

    Team Foundation Server (licenciado aparte)

    Prximamente Orcas (VS2008) !!

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Ediciones

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Tipos de Proyectos

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Tipos de Proyectos

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Estructura de un programa C# (Consola)

    1. Crear un proyecto Consola en C# (ProgramaDeConsolaEjemplo)

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Estructura de un programa C# (Consola)

    2. Crear un proyecto Consola en C# (ProgramaDeConsolaEjemplo)

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    using System;

    using System.Collections.Generic;

    using System.Text;

    namespace ProgramaDeConsolaEjemplo

    {

    class Program

    {

    static void Main(string[] args)

    {

    //Mostrar mensajes

    Console.WriteLine("Bienvenidos !!");

    Console.WriteLine("Este es un ejemplo de un programa en CSharp.");

    //Esperar que el usuario presione enter

    Console.ReadLine();

    //Terminar el programa

    return;

    }

    }

    }

    Estructura de un programa C# (Consola)

    3. Agregar el siguiente cdigo:

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Estructura de un programa C# (Consola)

    4. Ejecutar presionando F5 (Debug / Start Debugging):

    5. Presionar Enter para terminar la ejecucin.

  • Visual Studio 2005 y C#

    Estructura de un programa C#

    Desarrollo de aplicaciones .NET

    Eduardo Rivera Alva - MCTS.Net ([email protected])

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Namespaces

    Proveen una manera de organizar las clases y tipos.

    Es un agrupamiento lgico, no fsico (assemblies).

    Son utilizado en toda la jerarqua de clases del .Net Framework.

    Al agregar una clase a un namespace le da un nombre largo: Namespace.NombreClase

    namespace CustomerPhoneBookApp

    {

    using System;

    public class Subscriber

    {

    // Code for class here...

    }

    }

    CustomerPhoneBookApp.Subscriber

    Referencias

    http://www.functionx.com/csharp/fundamentals/Lesson04.htm

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Namespaces

    Se puede crear jerarquas lgicas con los namespaces:

    namespace Wrox

    {

    namespace ProCSharp

    {

    namespace Basics

    {

    class MyClass

    {

    // Code for the class here...

    }

    }

    }

    }

    Wrox.ProCSharp.Basics.MyClass

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Namespaces

    Utilizar using para disminuir el tamao del nombre al referenciar:

    using Wrox.ProCSharp;

    class Test

    {

    public static int Main()

    {

    Basics.MyClass tempObject = new Basics.MyClass();

    // Utilizar el objeto creado.

    return 0;

    }

    }

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Las dos formas de declarar la jerarqua de namespaces es equivalente:

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    Clases y Objetos

    Una clase es un estructura de datos que combina estado (atributos) y acciones (mtodos, eventos).

    Soportan el polimorfismo, encapsulamiento y herencia. Todo lo que se usa en C# es un objeto. Objeto es la instancia de una clase. Los objetos son instanciados, significa que es creado de una plantilla

    definida por una clase o estructura.

    Los objetos usan atributos y propiedades para cambiar y obtener su estado.

    Los objetos disponen de mtodos y eventos para realizar acciones. Todos los objetos derivan de la clase object (System.Object). El GC invoca automticamente los destructores. El GC limpia la memoria automticamente y elimina los objetos sin

    utilizar o referenciar.

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    public class Point{

    public int x, y;public Point(int x, int y) {

    this.x = x;this.y = y;

    }}

    Point p1 = new Point(0, 0);Point p2 = new Point(10, 20);

    public class Point{

    public int x, y;public Point(int x, int y) {

    this.x = x;this.y = y;

    }}

    public class Point3D: Point{

    public int z;public Point3D(int x, int y, int z): base(x, y) {

    this.z = z;}

    }

    Point a = new Point(10, 20);Point b = new Point3D(10, 20, 30);

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    class Point{

    public int x, y;public Point(int x, int y) {

    this.x = x;this.y = y;

    }}

    class Test{

    static void Main() {

    Point[] points = new Point[100];for (int i = 0; i < 100; i++) points[i] = new Point(i, i);

    }}

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

    using System;using System.Collections.Generic;using System.Text;

    namespace ProgramaDeConsolaEjemplo{

    class Program{

    static void Main(string[] args){

    //Crear el objeto Circulo y asignarle el valor del radioCirculo MiCirculo = new Circulo(5);

    //Mostrar el rea del circuloConsole.WriteLine("Area del Circulo = "+ MiCirculo.ObtenerArea());

    //Presionar enter para terminar la ejecucinConsole.ReadLine();return;

    }}public class Circulo{

    //Atributoprivate double _radio;

    // Constructorpublic Circulo(double radio){

    _radio = radio;}

    //Mtodopublic double ObtenerArea(){

    return 3.141592 * _radio * _radio;}

    }}

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Visual Studio 2005 y C#

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Que veremos la prxima sesin?

    Sintaxis C#

    Tipos

    Variables

    Operadores

    Constantes

    Cadenas

    Depuracin de errores

  • Desarrollo de aplicaciones .NETEduardo Rivera Alva - MCTS.Net ([email protected])

    Fin de la sesin

    Dudas, comentarios, sugerencias?

    Comunicarse por email a [email protected]

    Gracias por su atencin !!