Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion A NET y C Sharp
Introduccion A NET y C Sharp
Framework .NET y C#
Nicols M. Paez
Algoritmos y Programacion 3
npaez@fi.uba.ar
Agenda
La plataforma .NET
.NET Framework
El lenguaje C#
Herramientas de desarrollo
Por donde empezar
La plataforma .NET
Qu es .NET?
La combinacin de:
Framework.NET
.NET Enterprise Servers
Web Services
Ambiente Integrado de desarrollo
Web Services
XML
SOAP
WSDL
HTTP
Lenguajes
Datos (XML, esquemas)
Pantallas (HTML, WinForms)
Recursos (Grficos, archivos varios)
Bases de datos
Sistema operativo (procesos, threads, event log, servicios)
Otros servicios como colas de MSMQ
Componentes Fundamentales
.NET Framework
Sistema Operativo
Visual Studio.NET
ADO.NET y XML
.NET Framework
Base Classes
Base Frame
Framework .NET
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
MSIL to Native
Compilers (JIT)
Code
Manager
Class Loader
Garbage
Collector (GC)
Puntos importantes
Garbage collector
Seguridad
Manejo de Excepciones entre lenguajes
Depuracin entre lenguajes
Multi-Threading entre lenguajes
Objetos distribuidos
Diagnstico, tracing y profiling
Cdigo manejado
Cdigo manejado
CLR
Requerimientos
Ej.: abrir un archivo
Funciones generales
Ej.: limpiar memoria
Sistema Operativo
Verificable
No depende de una plataforma en particular
Incluye construcciones de alto nivel
ILADM: IL Assembler
ILDASM: IL Disassembler
Ensamblados (Assemblies)
EXE o DLL
Simples o mltiples
Manifest
Nombre
Versin
Cultura
Nombre fuerte
Archivos
Tipos
Referencias
GAC
Assembly
Cdigo MSIL
Manifest
Interoperabilidad Inter-lenguaje
Soporte multi-lenguaje
Interoperabilidad
Lenguajes .NET
Ada
APL
Mondrian (Utrecht)
Visual Basic.NET
C#
Managed C++
J#
Oz (Univ of Saarlandes)
COBOL
Perl
Component Pascal(Queensland
Univ of Tech)
Python
Scheme(Northwestern U.)
S#
ECMAScript (JScript)
Interoperabilidad
COM
P/Invoke
Sistema operativo
DLLs nativas (no .NET)
WinForms
WebForms
Clases base
Estructuras de datos
Bases de datos
Manipulacin de documentos XML
Soporte de I/O (disco, redes, etc.)
Sistema de base
threading, sincronizacin,
Servicios de COM+ y Message Queuing con MSMQ
Librera de clases
System.Web
System.WinForms
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
Design
System.Drawing
Drawing2D
Imaging
System.Data
ADO
Design
ComponentModel
SQL
SQLTypes
Printing
Text
System.Xml
XSLT
XPath
Serialization
System
Collections
Configuration
IO
Net
Security
ServiceProcess
Diagnostics
Globalization
Reflection
Resources
Text
Threading
Runtime
InteropServices
Remoting
Serialization
Ventajas en .NET
Entorno unificado
XML
WebServices (SOAP, WSDL, etc.)
Framework de aplicacin
El lenguaje C#
C#: generalidades
(C++)+ = C+++ = C#
Sintxis tipo C
Orientado a objetos
De propsito general
Soporte de componentes
Complementamente integrado a .NET
Estndar
Estructura general
Basado en bloques
Al estilo C/C++
Bloque=Sentencia o Grupo delimitado por { }
Las sentencias terminan en ;
Sentencias
Soporta Strings
Sentencias 2
foreach
using
checked {} / unchecked {}
lock( <object> ) {}
fixed
Operadores
Algebraicos: + - * / %
Lgicos: & | ^ ! ~ && || true false
Concatenacin (de strings): +
Unarios: ++ -Desplazamiento: << >>
Relacionales: == != < > <= >=
Asignacin: = += -= *= /= %= &= |= ^= <<= >>=
Acceso a miembros: .
Indice: []
Condicional: :?
Informacin de tipos: is sizeof typeof
Type casting: ()
Creacin de objetos: new
Indireccin y direcciones: * -> [] &
Directivas de pre-compilacin
Definicin de smbolos
#line
Errores
Nmeros de lnea
#define, #undef
Compilacin condicional
No hay pre-procesador en C#
#error, #warning
Regiones
#region, #endregion
Sistema de Tipos
Boxing y unboxing
Boxing
123
System.Int32
o
j
123
123
Espacio de nombres
Clases
Interfaces
Structs
Modificadores de visibilidad
Public
Private
Protected
Internal
Metodos 1
Mtodos 2
Tipos de operadores
Propiedades
Delegates
Eventos
No son enclusivos de IU
Basados en publicacin-suscripcin
Se disparan llamando a una funcin
Vemos un ejemplo....
Anotaciones (atributos)
.NET 2.0
Clases parciales
Tipos genericos
Propiedades de lectura/escritura con distinta
visibilidad
Herramientas de desarrollo
Entornos de desarrollo
Utilitarios
NDoc
Nunit
Nant
FXCop
Analizador de cdigo
Frameworks
ORMs
Frameworks de aplicacin
SnippetCompiler
SharpDevelop
MonoDevelop
Notepad, Vi, Emacs
Elegir un lenguaje
Programar,Googling,Entender
Programa desarrollador 5 estrellas
Terrarium
Imagine CUP
Windows Forms
ADO.NET
XML
Direct X
Compact Framework
ASP.NET
Web Services
Sitios de referencia
http://www.mono-project.com
DotGNU Project
http://www.asp.net
Proyecto Mono
http://www.gotdotnet.com
http://www.dotgnu.org
Universidad .NET
http://www.microsoft.com/spanish/msdn/latam/aca
demicalliance/
Preguntas?