sesion 01 - introduccion a net framework

42
Desarrollo de aplicaciones .NET Eduardo Rivera Alva - MCTS.Net ([email protected]) Desarrollo de Aplicaciones Capítulo 01 Introducción a la plataforma Microsoft.NET

Upload: eriveraa

Post on 13-Jun-2015

10.054 views

Category:

Technology


0 download

DESCRIPTION

Sesión 01 del Curso Desarrollo de Aplicaciones.NET de la Universidad San Ignacio de Loyola (USIL)

TRANSCRIPT

Page 1: Sesion 01 - Introduccion a Net Framework

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

Desarrollo de Aplicaciones

Capítulo 01Introducción a la plataforma

Microsoft.NET

Page 2: Sesion 01 - Introduccion a Net Framework

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

Agenda

• Bibliografía y referencias• Repaso sesión anterior.• Arquitectura de aplicaciones

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

• Plataforma Microsoft– Introducción– Arquitectura .NET Framework– Lenguajes y proceso de Compilación– CLR (Common Language Runtime) – Clases base (BCL)– Framework Class Library (FCL)– Evolución de .NET

• Visual Studio 2005 y C#– Producto VS2005 y ediciones– Tipos de Proyectos– Estructura básica de un programa C# / Programación de consola– Namespaces y jerarquías– Clases y Objetos: creación y utilización.

• Que veremos la próxima sesión?

Page 3: Sesion 01 - Introduccion a Net Framework

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

Bibliografía / 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 estándares de desarrollo y consideraciones de arquitectura.6. Arquitectura de aplicaciones de .NET: Diseño 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.09. 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.Visual C# - Language Concepts (http://msdn2.microsoft.com/en-

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

Page 4: Sesion 01 - Introduccion a Net Framework

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

Repaso sesión anterior

• Presentación y overview del Curso.• Ver diapositivas previas.

Page 5: Sesion 01 - Introduccion a Net Framework

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

Arquitectura de Aplicaciones

• Arquitecturas y su evolución

1-Tier

(monolítica)

Lógica del Cliente

Lógica del Negocio

Almacenamiento

3-Tier

“Thin” Client

N-Tier

2-Tier

“Fat” Client

Internet

XML Web

service

XML Web

service

Page 6: Sesion 01 - Introduccion a Net Framework

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 librerías de lógica de negocio en DLLs.

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

Aplicaciones:Visual BasicPower BuilderDelphiDeveloper 2000Java

Base de Datos:SQL ServerSybase SQLInterBaseOracleDB2

Page 7: Sesion 01 - Introduccion a Net Framework

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) + lógica de validación de cliente.

• Visualización de reportes.– Capa de Lógica de Negocio / Servidor de Aplicaciones

• Librerías y componentes que encapsulan la lógica del proceso del negocio.

• Comunicación con sistemas externos, interfaces.• Lógica de reportes.• Procesos transaccionales.• Seguridad.

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

Aplicaciones:Visual BasicPower BuilderDelphiDeveloper 2000Java

Base de Datos:SQL ServerSybase SQLInterBaseOracleDB2

Servidor de Aplicaciones:Win NT 4.0: MTSWin 2003: COM+ Server

Page 8: Sesion 01 - Introduccion a Net Framework

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 Lógica de Negocio / Servidor Web• Páginas estáticas (html + css + gráficos)• Páginas dinámicas (ASP.Net)• Corren sobre IIS (Internet Information Server)• Seguridad.

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

Page 9: Sesion 01 - Introduccion a Net Framework

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

Arquitectura de Aplicaciones

• Servicios Web– Cliente: Cualquier aplicación (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.

Page 10: Sesion 01 - Introduccion a Net Framework

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

Arquitectura de Aplicaciones

• SOA– Service-Oriented

Architecture.– Evolución de las

arquitecturas.– Se puede implementar

utilizando servicios Web.– Concepto de Bus de

Servicios.– Comunicación entre

múltiples áreas y departamentos.

– Comunicación con el exterior.

– Reutilización de servicios.

Page 11: Sesion 01 - Introduccion a Net Framework

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

Arquitectura de Aplicaciones

• Modelo de Capas– Idea

• Separar las funcionalidades de la aplicación en bloques independientes que se comunican entre sí.

– Ventajas• Reutilización del Software.• Estas funcionalidades pueden estar en ubicaciones diferentes,

incluso con tecnologías diferentes.• Lenguajes diferentes de .NET.• Posibilidad de usar Servicios Web.• Se puede repartir el Diseño de la aplicación entre varios equipos

de desarrolladores.

Page 12: Sesion 01 - Introduccion a Net Framework

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 lógica para el formateo y lógica de

validación de entradas no relacionadas con el negocio

– Maneja las excepciones lanzadas por las otras capas.

• Lógica de Dominio– Contiene los objetos de negocio usado a través

de las distintas capas.– Contiene las relaciones entre los objetos del

dominio.– Es rica en Lógica 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.– Comunicación con otras interfaces de acceso a

bases de datos.

Page 13: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Que es .Net Framework?• Es una infraestructura sobre la que se reúne todo un conjunto de

lenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones.

• Es el entorno para crear, distribuír y ejecutar las aplicacionesdesarrolladas en la plataforma Microsoft.

• Tiene un conjunto de componentes:– Lenguajes de programación (VB, C#, C++, etc.)– Runtime de Lenguaje Común (CLR)– Librería 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 desarrollode aplicaciones de Microsoft.

• Es componente esencial de Microsoft Windows Vista y de futurossistemas operativos de Microsoft.

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

Page 14: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Arquitectura y Componentes de .NET Framework

Page 15: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Lenguajes• Net Framework soporta múltiples

lenguajes de programación y aunque cada lenguaje tiene sus características propias, es posible desarrollar cualquier tipo de aplicación con cualquiera de estos lenguajes.

• Existen más de 30 lenguajes adaptados a .Net, desde los más conocidos como C# (C Sharp), Visual Basic o C++ hasta otros lenguajes menos conocidos como Perl o Cobol.

• El compilador específico del lenguaje genera el CIL (Common IntermediateLanguage).

• El CIL se compila en lenguaje máquina por el CLR.

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

Page 16: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Proceso de Compilación y Ejecución

Page 17: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Proceso de Compilación y Ejecución (otra vista)

Page 18: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

CLR• Tecnología nuclear de la plataforma

Microsoft.• El CLR es el núcleo del Framework de

.Net, ya que es el entorno de ejecución 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 múltiples lenguajes.

• Soporta varios lenguajes de programación: VB.Net, C#, J#, C++, F#, Ruby, etc.

• Provee servicios comunes como: excepciones, depuración, garbagecollector (GC), etc.

Page 19: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Base Class Library (BCL)• Provee los bloques fundamentales para cualquier tipo de aplicación, 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 librerías del Framework Class Library (FCL).

Page 20: Sesion 01 - Introduccion a Net Framework

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 jerárquico.

• System, System.Web, System.Data(ADO.NET), System.Windows.Forms, System.XML, etc.

• Es un superset de la Base ClassLibrary (BCL).

Page 21: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Evolución de .NET

Page 22: Sesion 01 - Introduccion a Net Framework

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

Plataforma Microsoft

Evolución de .NET 3.0

Page 23: Sesion 01 - Introduccion a Net Framework

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 múltiples lenguajes de programación

(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)• Próximamente Orcas (VS2008) !!

Page 24: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Ediciones

Page 25: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Page 26: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Tipos de Proyectos

Page 27: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Tipos de Proyectos

Page 28: Sesion 01 - Introduccion a Net Framework

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)

Page 29: Sesion 01 - Introduccion a Net Framework

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)

Page 30: Sesion 01 - Introduccion a Net Framework

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 mensajesConsole.WriteLine("Bienvenidos !!");Console.WriteLine("Este es un ejemplo de un programa en CSharp.");

//Esperar que el usuario presione enterConsole.ReadLine();

//Terminar el programareturn;

}}

}

Estructura de un programa C# (Consola)3. Agregar el siguiente código:

Page 31: Sesion 01 - Introduccion a Net Framework

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 ejecución.

Page 32: Sesion 01 - Introduccion a Net Framework

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 lógico, no físico (assemblies).• Son utilizado en toda la jerarquía 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

Page 33: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Namespaces• Se puede crear jerarquías lógicas con los namespaces:

namespace Wrox

{

namespace ProCSharp

{

namespace Basics

{

class MyClass

{

// Code for the class here...

}

}

}

}

Wrox.ProCSharp.Basics.MyClass

Page 34: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Namespaces• Utilizar “using” para disminuir el tamaño 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;

}

}

Page 35: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Page 36: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Las dos formas de declarar la jerarquía de namespaces es equivalente:

Page 37: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Clases y Objetos• Objeto es la instancia de una clase.• Todo lo que se usa en C# es un objeto.• Los objetos son instanciados, significa que es

creado de una plantilla definida por una clase o estructura.

• La clase define su comportamiento y estado.• Los objetos usan atributos y propiedades para

cambiar y obtener su estado.• Los objetos disponen de métodos y eventos para

realizar acciones.• Todos los objetos derivan de la clase “object”

(System.Object).

Page 38: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Page 39: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Clases• Definición de una clase e

instanciación:

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 ejecuciónConsole.ReadLine();return;

}}

public class Circulo{

//Atributoprivate double _radio;

// Constructorpublic Circulo(double radio){

_radio = radio;}

//Métodopublic double ObtenerArea(){

return 3.141592 * _radio * _radio;}

}}

Page 40: Sesion 01 - Introduccion a Net Framework

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

Visual Studio 2005 y C#

Otro ejemplo de clase:

Page 41: Sesion 01 - Introduccion a Net Framework

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

Que veremos la próxima sesión?

• Sintaxis C#– Tipos– Variables– Operadores– Constantes– Cadenas

• Depuración de errores

Page 42: Sesion 01 - Introduccion a Net Framework

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

Fin de la sesión

• Dudas, comentarios, sugerencias?• Comunicarse por email a [email protected]• Gracias por su atención !!