1. Unidad 1: Introducción a la
Plataforma .NET
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Plataformas de Desarrollo 1
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
2. No permitas que los pensamientos de los
demás dominen los tuyos
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Plataformas de Desarrollo 1
3. Resultado de Aprendizaje
• Analizar metodologías y herramientas tecnológicas, que
mejor se ajusten a las necesidades de las organizaciones..
5. 1.2 Componentes del Framework .Net
Base Classes
Data & XML
User
Interface
Common Language Runtime
Web
Services
BaseFrame
6. Objetivos
• Adquirir los conceptos básicos relacionados con NET.
• Reconocer las características de .NET.
• Conocer la historia de .NET.
7. Por qué C#? (1999)
• Lenguaje orientado a componentes
o Desarrollado sobre la experiencia de COM+
o Soporte nativo para
Espacios de nombres
Versionado
Desarrollado manejado por atributos
8. • Potencia de C con la facilidad de uso de
Microsoft Visual Basic®
• Curva de aprendizaje mínima
• Código mucho mas claro que C++
• Más estructurado que Visual Basic
• Mas potente que Java
Por qué C#?
9. Elementos de C#
• Estructura y forma
• Sistema de tipos de C#
• Entendiendo el lenguaje C#
10. Forma y estructura
• No posee ficheros de cabecera “header”
• C# emplea el modelo "definición junto a
declaración"
o Visual Basic, Pascal, Modula, Java
• Similar a la implementación “inline” de
C++
o Sin implicación en la generación de código
• Compilación condicional pero sin soporte
para macros
11. Sistema de tipos 1/2
• Desarrollado directamente sobre el
Common Type System de .NET
Framework
• Acceso nativo al CTS .NET
o C# fue concebido sobre .NET
12. • Conceptos principales:
o Todo es objeto
Absolutamente todos los tipos heredan
implicitamente del System.Object
o Distinción clara entre tipos por valor y por referencia
Por Valor: Tipos Simples, Enumerados,
Estructuras
Por referencia: Interfaces, Clases, Arreglos
Sistema de tipos 2/2
13. Tipos Simples
•Tipos enteros
o byte, sbyte (8bit), short, ushort (16bit)
o int, uint (32bit), long, ulong (64bit)
•Tipos flotantes IEEE
o float (precisión de 7 dígitos)
o double (precisión de 15–16 dígitos)
14. • Tipo numéricos exactos
o decimal (28 dígitos significativos)
• Tipos Caracter
o char (un único caracter)
o string (cadena de caracteres, tipo por referencia)
• Tipo Boolean
o bool (tipo distintivo, no es equivalente al int)
Tipos Simples
15. Enumerados
• Nombrar elementos usando nombre en
vez de números
• Mejor usar "Color.Azul" que "3"
o Más legible, de más fácil mantenimiento
o Tipo por valor por lo que es tan ligero como un
int
• Ejemplo:
enum Color
{
Rojo,
Verde,
Azul,
};
16. Arreglos 1/2
• Indexados a partir de Cero
• Desarrollados a partir de la clase
System.Array
• Declarados con tipo y formas, pero sin
tamaño límite
o int[] SingleDim;
o int[,] TwoDim;
o int [][] Jagged; (dentados)
17. Arreglos 2/2
• Creados usando new con límites o
inicializadores
o SingleDim = new int[20];
o TwoDim = new int[,]{{1,2,3},{4,5,6}};
o Jagged = new int[1][];
Jagged[0] = new int[]{1,2,3};
18. Clases 1/2
• Implementación de código y datos
o Representa una unidad semántica
• Implementa interfaces
• No herencia múltiple
19. Clases 2/2
• Clases pueden contener:
o Campos: variables miembros
o Propiedades: valores
accesibles a través de los
pares de métodos get/set
o Métodos: funcionalidad de los
objetos o clases
o Especiales: eventos, indexers,
delegados
public class Person :
IPersonAge
{
private int YOB;
public Person()
{
}
public int YearOfBirth
{
get { return YOB; };
set { YOB = value; };
}
}
20. Estructuras
• Grupos de código y datos
o Similar a las clases, sin embargo:
No se permite la herencia
Siempre se almacenan por valor
• Desarrolladores de C++
o Estructuras no son una clase con todos sus
miembros públicos
• Ejemplo:
struct Point
{
double X;
double Y;
void MoveBy(double dX, double dY)
{ X+=dX; Y+=dY; }
}
21. Propiedades
• Unión entre campos y métodos
• Se recomienda su uso en:
o Implementación de miembros de solo lectura
(omitiendo la claúsula set)
o Validación durante la asignación
o Valores calculados o compuestos
• Ejemplo:
string Name
{
get { return name; }
set { name = value; }
}
22. Recolección de basura
• Creación nuevos objetos y arreglos de datos
o Todos son creados mediante el uso de new
• El .NET runtime mantiene un registro
automatico de todo el uso de la memoria
• El recolector de basura automaticamente
remueve todos los objetos que esten sin uso
• Un uso más eficiente de la memoria
• Fácil de usar y “cero escapes de memoria”
23. Manipulación de Excepciones
• Similar a C++
• Ejemplo:
o try ejecuta este código
o ...si ocurre un error, catch que
puedo hacer en ese caso ...
o ...finally me permite realizar
algun trabajo manual de
rescate
try
{
//... run code
}
catch(SomeException
e)
{
//... handle
}
finally
{
//...end
gracefully
}
24. Espacios de nombres 1/2
• Toda definición debe estar contenida en
un espacio de nombres
o Impide colisiones de nombres
o Organiza el código
• Pueden y deben ser anidados
25. Espacios de nombres 2/2
• Agrupa clases y tipos por semántica
• Declarados con la palabra clave namespace
• Referenciados con using
26. Herramientas disponibles
• .NET Framework SDK—todo lo
necesario para construir aplicaciones
o Compilador C#
o Debugger Visual
• Visual Studio.NET—the productivity
rocket
o Ambiente de desarrollo optimizado para C#
o “Code wizards” y templates
o Ayuda inteligente
27. Hello World
namespace Sample
{
using System;
public class HelloWorld
{
public HelloWorld()
{
}
public static int Main(string[] args)
{
Console.WriteLine("Hello World!");
return 0;
}
}
}