Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA...
-
Upload
renata-vinas -
Category
Documents
-
view
11 -
download
0
Transcript of Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA...
![Page 1: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/1.jpg)
Fundamentos Fundamentos básicos del básicos del lenguajelenguaje C# C#
Daniel A. SearaDaniel A. Seara
Director Regional MSDNDirector Regional MSDN
Buenos Aires - ARGENTINABuenos Aires - ARGENTINA
NDSoftNDSoft
![Page 2: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/2.jpg)
Parte 1Introducción a C#
![Page 3: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/3.jpg)
Sistemas Orientados a Componentes
• ComModelo de componentes exitosoPlataforma comercial de componentes
viablePermite la integración y el “re uso” de
componentes en una organización
![Page 4: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/4.jpg)
Sistemas Orientados a Componentes
• Sin embargo:COM está mostrando signos de envejecimiento
DCOM no funciona como se espera en InternetMayor uso de componentes = mayor “infierno de DLLs”Aún con herramientas maduras las implementaciones no
son fácilesCOM no es totalmente “agnóstico” del lenguaje
Hace algunas asunciones respecto del formato binarioSoporta el menor común denominador
![Page 5: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/5.jpg)
Concepto de Componentes en .NET
• Se tomo lo mejor de COM+ Interfaces como contratos abstractos Los componentes implementan y exponen
interfaces Exploración dinámica de las capacidades de los
componentes Comportamiento según atributos (transacciones,
“Pooling”, ...)
• Y le agrega Verdadera orientación a objetos Modelo de eventos nativos Re uso de componentes entre lenguajes Extensible a todo nivel
![Page 6: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/6.jpg)
Porque C# ?• Primer lenguaje orientado a
componentesBasado en la experiencia de COM+Soporte nativo para
NamespacesVersionamientoDesarrollo basado en atributos
• El poder de C con la facilidad de VB• Curva de aprendizaje mínima• Mucho más limpio que C++• Más estructurado que VB
![Page 7: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/7.jpg)
Sección 2: Elementos de C#
• Forma y estructura• Entendiendo los tipos del sistema• Entendiendo el lenguaje C#
![Page 8: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/8.jpg)
Forma y Estructura • No hay archivos de encabezamiento (.H)
No es necesario “declarar” las clases y los tipos
• La declaración y el código están en un solo lugarHace que el código sea más consistente y
mantenibleFacilita la colaboración a nivel equipo de
desarrolloDeclaraciones accesibles: Metadata
• Compilación condicional pero sin macros
![Page 9: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/9.jpg)
Tipos definidos por el Sistema
• Construido sobre el Common Type System• Conceptos básicos:
Todo es un objeto
Todo tiene herencia implícita de System.Object
Distinción entre valores y referencias
Por valor: tipos simples, enumeradores, estructuras
Por referencia: interfaces, clases, vectores
![Page 10: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/10.jpg)
Tipos Simples• Enteros
byte, sbyte (8bit), short, ushort (16bit) int, uint (32bit), long, ulong (64bit)
• IEEE Floating Point double (precisión de 15-16 dígitos) float (precisión de 7 dígitos)
• Numéricos exactos Decimal (28 dígitos significativos)
• Cadenas de caracteres char string (referencia)
• Boolean bool (no es intercambiable con int)
![Page 11: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/11.jpg)
Enums• Colección de elementos nombrados• Fuertemente tipeados• Mejor usar "color.Azul" que "3"
Mas legibilidad del código Tan liviano cómo un int
• Ejemplo:
enum Color { Rojo, Verde, Azul, Amarillo};
![Page 12: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/12.jpg)
Vectores• Inician en cero, vinculados por tipo• Basadas en la clase System.Array de .NET• Declaración con tipo y forma, pero sin límite
int[] SingleDim; int[,] TwoDim; int [][] Jagged;
• Creación utilizando new con límites o inicializadores SingleDim = new int[20]; TwoDim = new int[,]{{1,2,3},{4,5,6}}; Jagged = new int[1][]; Jagged[0] = new int[]{1,2,3}
![Page 13: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/13.jpg)
Interfaces• Declaración del contrato semántico entre partes
Permite la orientación a componentes
• Define la estructura y la semántica para propósitos específicos
• Definición de métodos y propiedades abstractos• Soporta herencia (múltiple)• Ejemplo:
interface IPersonaEdad{ int AnioDeNacimiento {get; set;} int Edad(); }
![Page 14: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/14.jpg)
public class Persona : IPersonaEdad{ private int iAnio;
public Persona() { }
public int AnioDeNacimiento
{ get { return iAnio;}; set { iAnio = value;}; }
public int Edad() { return Today()- AnioDeNacimiento }; }
public class Persona : IPersonaEdad{ private int iAnio;
public Persona() { }
public int AnioDeNacimiento
{ get { return iAnio;}; set { iAnio = value;}; }
public int Edad() { return Today()- AnioDeNacimiento }; }
Clases• Implementación de
código y datos• Implementa interfaces• Herencia simple• Las clases contienen:
Campos: variables miembro Propiedades: valores
accedidos a través de get/set
Métodos: funcionalidad Especiales: eventos,
Indexadores, Delegates
![Page 15: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/15.jpg)
Estructuras• Un grupo de código y datos
Similar a las clases pero:No permite herenciaSiempre son pasadas por valor
Clases vs. EstructurasEstructuras Contenedor de datos liviano, por valorClases objetos, tipo referenciados
• Desarrolladores C++! struct no es un class donde todo es público
• Ejemplo: struct Point{ double X; double Y; void MoveBy(double dX, double dY) { X+=dX; Y+=dY; }}
![Page 16: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/16.jpg)
Propiedades• Mezcla entre campos y métodos• Uso de propiedades para:
Implementación de miembros sólo lectura (omitiendo set)
Validación en asignaciónValores calculados o compuestosExposición de valores en las interfaces
• Ejemplo: string Name { get { return name; } set { name = value; } }
![Page 17: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/17.jpg)
Indexadores• Forma consistente de construir
contenedores• Basados en las propiedades• Permite el acceso indexado a objetos
contenidos• El índice puede ser de cualquier tipo• Ejemplo:object this[string index]
{ get { return Dict.Item(index); } set { Dict.Add(index,value); } }
![Page 18: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/18.jpg)
Delegates y Eventos• Delegate
Similar a los punteros a funciones de C, C++ Fuertemente tipeados delegate void Clicked(Element e, Point p);
• Eventos Modelo de eventos intrínseco al lenguaje (por fin) Declaración y llamada en la clase fuente del
eventoButton.OnClick += MyClickHandler;event Click OnClick;...
OnClick(this,PointerLocation);
![Page 19: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/19.jpg)
Atributos• Similar a los atributos existentes de IDL• Acceso declarativo a funcionalidad• Extensible: atributos “Custom”
[Transaction(TransactionOption.Required)]class MyBusinessComponent { ... }
[PersonFirstName] String Vorname;[PersonFirstName] String PrimarioNome;
![Page 20: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/20.jpg)
Instrucciones
• Muy “C”: control de flujo if (<bool expr>) { ... } else { ... }; switch(<var>) { case <const>: ...; }; while (<bool expr>) { ... }; for (<init>;<bool test>;<modify>) { ... }; Do { ... } while (<bool expr>);
• No muy “C”: lock(<object>){ ... };
Secciones críticas checked {...}; unchecked { ...};
Protección de sobrecarga de enteros
![Page 21: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/21.jpg)
Foreach• Iteración de colecciones y vectores• Pueden ser utilizados en clases propias• Acceso sólo lectura• Ejemplo:
Point[] Points = GetPoints();foreach( Point p in Points ){ MyPen.MoveTo(Point.x,Point.y);}
![Page 22: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/22.jpg)
Sobrecarga de Operadores• Casi todos los operadores pueden ser
sobrecargados• No hay sobrecarga para
AsignacionesOperadores especiales
(sizeof, new, is, typeof)• Ejemplo:
Total operator +(int Amount, Total t){ t.total += a;}
![Page 23: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/23.jpg)
Acceso a los miembros
• Adopción del modelo C++public todos pueden accederprotected sólo miembros de la herenciaprivate sólo miembros de la clase
• Expande el modelo C++:sealed no puede ser utilizado como clase
baseinternal acceso público solamente en el
assembly
![Page 24: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/24.jpg)
Punteros, necesito punteros• C# soporta
Tipo string intrínseco Modelo rico de colecciones Parámetros por referencia
void increment(ref int value, int by)
Parámetros de salidabool add(int a, int b, out int c)
• Eliminación de la mayoría de las causas• Pero, aún disponible: unsafe
unsafe void crypt(byte[] arr) { byte * b = arr; ... }
![Page 25: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/25.jpg)
Manejo de Excepciones• Muy similar a C++, SEH• Se debe leer así:
try ejecutando este código ... ... Si se genera un error, catch lo que puedo llegar a
manejar ... ...finally permítame hacer alguna limpieza manual
• Ejemplo:try { //... código}catch(SomeException e){ //... Control de error}finally{ //...salida “correcta”}
![Page 26: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/26.jpg)
Namespaces
• Forma de agrupar LÓGICAMENTE clasesUn namespace puede contener a clases y
a otros namespaceSimilar al concepto de COMPONENTE COMPero desacoplado de la definición física
• Se declaran con namespace• Referenciados con using
![Page 27: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/27.jpg)
Comentarios XML• Forma consistente de crear
documentación en el código• ///: Todo lo comentado así va a
parar a la metadata• Ejemplo:///<summary>/// Esta función permite calular el monto /// final incluyendo todos los impuestos /// </summary>public decimal GetTotalValue(){}
![Page 28: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/28.jpg)
Sección 3: Las Herramientas
• Framework SDK – herramientas básicasC# CompilerVisual DebuggerNMake
• VisualStudio.NET agregaAmbiente visual Asistentes y plantillasAyuda “Inteligente”
![Page 29: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/29.jpg)
Framework SDK• Contiene al compilador C# (y VB, C++,
JScript)Se ejecuta desde la línea de comando
• Visual Debugger – GuiDebugAcceso completo al runtime y los
metadatos• Herramientas
NMake, Security, Configuration, IL Disassembler, ...
• Gratis para todos
![Page 30: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/30.jpg)
Ejemplos
• “Hola mundo”
namespace Consola{ using System;public class Class1 { public Class1() {}
public static int Main(string[] args) {
Console.WriteLine("Hola, mundo");Console.Read();
return 0; } }}
namespace Consola{ using System;public class Class1 { public Class1() {}
public static int Main(string[] args) {
Console.WriteLine("Hola, mundo");Console.Read();
return 0; } }}
![Page 31: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/31.jpg)
Ejemplos – Comentarios XML
using System;
/// <summary> /// Muestra en pantalla la frase "hola, mundo" /// </summary>
![Page 32: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/32.jpg)
Parte 2Desarrollo de Componentes• Contenido
Introducción a componentes .NETInteroperabilidad con COM+
![Page 33: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/33.jpg)
1. Introducción a Componentes .NET
• Grupo de clases que están típicamente bajo un Namespace común
• Las clases que sean públicas se expondrán hacia fuera del componente
• Todo elemento “público” de cada clase se ve fuera de ella
• No se registra el componente en ningún lado
![Page 34: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/34.jpg)
Ejemplo de Componente .NET en C#
![Page 35: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/35.jpg)
Ejemplo de Componente .NET en C#
namespace Componente1{ using System;
/// <summary> /// MiCOmponente. /// </summary> public class MiComp1 { public MiComp1() { } public System.String MiFunc() /// <summary> /// Devuelve la hora actual. /// </summary> { return(System.DateTime.Now.ToString()); } }}
namespace Componente1{ using System;
/// <summary> /// MiCOmponente. /// </summary> public class MiComp1 { public MiComp1() { } public System.String MiFunc() /// <summary> /// Devuelve la hora actual. /// </summary> { return(System.DateTime.Now.ToString()); } }}
![Page 36: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/36.jpg)
Componentes .NET
• Jerarquía de herencia• Definición de Namespaces• Implementación física• Implementación de interfaces
![Page 37: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/37.jpg)
Jerarquía de Herencia
• Independiente de los Namespaces• Independiente de la
implementación física
![Page 38: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/38.jpg)
Definición de NameSpaces
• Sirve para ordenar las clases (repaso)
• Es una agrupación lógica
![Page 39: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/39.jpg)
Ejemplo de Definición de Namespaces
• MSDNLatam• MSDNLatam.Nucleo• MSDNLatam.Nucleo.Datos• MSDNLatam.Nucleo.Datos.SQL• MSDNLatam.Nucleo.Datos.ADO• MSDNLatam.Aplicacion• MSDNLatam.Aplicacion.Interfaz• MSDNLatam.Aplicacion.Reglas• MSDNLatam.Aplicacion.Datos
![Page 40: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/40.jpg)
Implementación Física
• DLLs• Una DLL puede implementar uno
o más Namespaces• Varias DLLs pueden implementar
un Namespace• Nada que ver con COM• Las DLLs no se bloquean• Puedo tener varias versiones en
una máquina
![Page 41: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/41.jpg)
Implementación Física - Assembly
• Unidad de instalación y versionamiento
• Colección de archivos físicos• Tiene un número de versión con
formato XX.YY.Xx.yy• XX e YY tienen que ser
exactamente los mismos que tenga registrados los clientes
![Page 42: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/42.jpg)
Servicio de Componentes - (Framework .NET)
Provee: Transacciones (DTC, TIP, XA, COMTI) Auto Completion Activación “Just in time” Pooling de objetos Colas Eventos Seguridad basada en roles
![Page 43: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/43.jpg)
Servicio de Componentes
• Basados en COM+• Componentes .NET se “hostean”
dentro de aplicaciones COM+• Tienen la capacidad de auto
registrarse en COM y dentro de una aplicación
![Page 44: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/44.jpg)
¿Cómo seguimos?
• Encontrará varios “ejercicios” de código junto a esta presentación
• Cuando los haya realizado, podrá acceder a la siguiente presentación de C#
• No olvide, los grupos de noticias están allí... Para que compartamos información
![Page 45: Fundamentos básicos del lenguaje C# Daniel A. Seara Director Regional MSDN Buenos Aires - ARGENTINA NDSoft.](https://reader033.fdocumento.com/reader033/viewer/2022061300/54d00a7b497959a0198b45b0/html5/thumbnails/45.jpg)
Finalmente...
• Muchas gracias
Daniel A. SearaDirector Regional MSDN Buenos Aires - ARGENTINA