Professional Documents
Culture Documents
Capítulo 01
Introducción a la plataforma
Microsoft.NET
• Arquitecturas y su evolución
“Thin” Client
XML
Web
Lógica del Cliente
service
Lógica del Negocio “Fat” Client
Almacenamiento
1-Tier
(monolítica) 2-Tier
3-Tier
N-Tier
Internet
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
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.
• 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.
• 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.
• 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.
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.
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 Intermediate
Language).
• El CIL se compila en lenguaje máquina
por el CLR.
• Apoyado en el CTS para el intercambio
de tipos de datos.
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, garbage
collector (GC), etc.
Evolución de .NET
Ediciones
Tipos de Proyectos
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.");
//Terminar el programa
return;
}
}
}
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Visual Studio 2005 y C#
Estructura de un programa C# (Consola)
4. Ejecutar presionando F5 (Debug / Start Debugging):
Estructura de un programa 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;
CustomerPhoneBookApp.Subscriber
public class Subscriber
{
// Code for class here...
}
}
Referencias
• http://www.functionx.com/csharp/fundamentals/Lesson04.htm
Desarrollo de aplicaciones .NET
Eduardo Rivera Alva - MCTS.Net (eriveraa@gmail.com)
Visual Studio 2005 y C#
Namespaces
• Se puede crear jerarquías lógicas con los namespaces:
namespace Wrox
{
namespace ProCSharp
{
namespace Basics Wrox.ProCSharp.Basics.MyClass
{
class MyClass
{
// Code for the class here...
}
}
}
}
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;
}
}
Clases y Objetos
• Una clase es un estructura de datos que combina estado (atributos) y
acciones (métodos, 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 métodos y eventos para realizar acciones.
• Todos los objetos derivan de la clase “object” (System.Object).
• El GC invoca automáticamente los “destructores”.
• El GC limpia la memoria automáticamente y elimina los objetos sin
utilizar o referenciar.
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);
}
}
namespace ProgramaDeConsolaEjemplo
{
class Program
{
static void Main(string[] args)
{
//Crear el objeto Circulo y asignarle el valor del radio
Circulo MiCirculo = new Circulo(5);
// Constructor
public Circulo(double radio)
{
_radio = radio;
}
//Método
public double ObtenerArea()
{
return 3.141592 * _radio * _radio;
}
}
}
• Sintaxis C#
– Tipos
– Variables
– Operadores
– Constantes
– Cadenas
• Depuración de errores