Introducción al Framework.NET y C# Nicolás M. Paez Algoritmos y Programacion 3 npaez@fi.uba.ar



Documentos relacionados
Desarrollo de Aplicaciones Distribuidas con Servicios Web

Lenguajes y herramientas de.net

Introducción a la plataforma.net. Tema I.b: Rafael Corchuelo POOHV

1: La plataforma.net (.NET Framework)

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

Introducción a la plataforma.net

Introducción a la plataforma.net

Marco Besteiro y Miguel Rodríguez Introducción al lenguaje C#

Comparativa y evaluación n de las herramientas de programación n para desarrollar aplicaciones en dispositivos Pocket PC

Programación n con Visual Basic.NET. Visual Basic.NET. Plataforma.NET. Francisco Ruiz Manuel Ángel Serrano

Programación n con Visual Basic.NET

Programación con C# Tema 2: Introducción a.net

Arquitectura.NET. César Julio Bustacara M. 2008

HERRAMIENTAS DE DESARROLLO

La máquina virtual de.net CLR, CLI y Rotor

ASP.NET PROGRAMA FORMATIVO. Modalidad: Teleformación. Duración: 56 horas. Objetivos:

Charla Microsoft.NET un mundo de posibilidades. Julio Cesar Pupo Vega CIDS

PROGRAMACIÓN EN C#.NET Introducción a la Programación en C#.NET. Ing. Bruno López Takeyas

Curso de Programación II con Visual Basic.Net

Lenguaje de Cuarta Generación de Microsoft:.NET BACHILLERATO EN CIENCIAS DE LA COMPUTACIÓN E INFORMÁTICA DE LA UNIVERSIDAD DE COSTA RICA.

Fundamentos de Programación CAPÍTULO 3 EL LENGUAJE C# Ing. Bruno López Takeyas, M.C. 1

Curso Programación Orientada a Objectos con C# y Visual Studio 2010

Syllabus.

Introducción a la plataforma.net

4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005

Introducción a Visual.Net

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET

Introducción a Java LSUB. 15 de enero de 2015 GSYC

La máquina virtual de.net CLR, CLI y Rotor

1. Introducción a la plataforma.net

FUNDAMENTOS DE PROGRAMACION CON C#

Curso: Programación con Microsoft Visual Basic 2010.

.NET Framework. Billy Reynoso

Técnico Superior en Programación con Microsoft Visual Basic 2010

Dispositivos móviles

Curso: Programación con Microsoft Visual C SHARP 2010.

Programación Web. Unidad 5. Programación del lado del servidor.

Introducción a la plataforma Microsoft.NET

Visual Studio 2008 es el conjunto de herramientas de

2524 Developing XML Web Services Using Microsoft ASP.NET

Microsoft.Net. Programación III ISBO EMT CETP Prof. L. Carámbula

Agenda..NET C# Laboratorio #1

Desarrollo de aplicaciones para dispositivos móviles con.net

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Repaso de las características más importantes de la programación Java y su adaptación a Android

Mono: mucho más que una implementación libre de.net Jordi Mas i Hernàndez, jordi@ximian.com. Septiembre 2004

TEMA 2. Agenda. Fundamentos de JAVA

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET

Introducción a ASP.NET

ESTUDIO DE LA PLATAFORMA

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Elementos léxicos del lenguaje de programación Java

Introducción a Microsoft.NET

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Ezra Federico Parra Juan José Garza Juan Antonio Vargas Omar Jasso

Introducción a Microsoft.NET

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

Concurrencia en.net David Jesús Horat Flotats

Panorámica general de.net

Generador GeneXus.NET. Última actualización: 2009

Formacion a distancia de EXPERTO EN PROGRAMACION EN VISUAL BASIC.NET

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA

Programación Orientada a Objetos con Java

Microsoft Visual Basic.NET

Panorámica actual de la Ingeniería Web

Java en 2 horas. Rodrigo Santamaría

Introducción a Microsoft.NET

Panorámica general de.net

Curso: Desarrollo de aplicaciones para escritorio y acceso de datos con.net FRAMEWORK 4.

Taller de Sistemas de Información 1

JAVA EE 5. Arquitectura, conceptos y ejemplos.

10550 Programming in Visual Basic with Microsoft Visual Studio 2010

Java Inicial (20 horas)

Desarrollo de aplicaciones distribuidas con.net: Introducción a.net

Tema 1. Introducción a JAVA

INTRODUCCIÓN A JAVA. Índice

MS_10266 Programming in C# with Microsoft Visual Studio 2010

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

WEB PARA PROGRAMADORES

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

Diplomado Programación Web con PHP, MySQL 5.0, Apache y Ajax

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Hacia donde va.net. Novedades de Visual Studio.NET Lalo Steinmann. Microsoft de Argentina

Introducción a la plataforma.net

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

Transcripción:

Introducción al Framework.NET y C# Nicolás 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 combinación de: Framework.NET.NET Enterprise Servers Web Services Ambiente Integrado de desarrollo

.NET Enterprise Servers Windows 2003 Server SQL Server Sharepoint Portal Server Content Server Exchange Server Internet Information Server Biztalk Server Commerce Server

Web Services Proveen una forma estándar de comunicación entre aplicaciones de múltiples plataformas Utilizan internet Estan basados en estándares abiertos XML SOAP WSDL HTTP

Ambiente Integrado de Desarrollo Desarrollo en cualquier lenguaje del.net Framework Múltiples Editores Lenguajes Datos (XML, esquemas) Pantallas (HTML, WinForms) Recursos (Gráficos, archivos varios) Manejo del software de base Bases de datos Sistema operativo (procesos, threads, event log, servicios) Otros servicios como colas de MSMQ

Componentes Fundamentales ASP.NET, Web Services ADO.NET y XML.NET Framework Visual Studio.NET Sistema Operativo

.NET Framework

Framework.NET Base Classes Common Language Runtime Base Frame

Common Language Runtime Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Class Loader

Common Language Runtime Ambiente de ejecución de.net Las aplicaciones corren dentro del CLR Basado en la especificación CLI Common Language Infraestructure Especificación abierta, ECMA-335 Brinda servicios básicos a los ejecutables Ejecución (threading, gestión de errores) Gestión de memoria Seguridad Diagnóstico (debugging, tracing) RTTI

Common Language Runtime Puntos importantes Herencia entre lenguajes Sistema común de tipos Compiladores Just-in-time (JIT) Compilan código intermedio (MSIL) en código nativo Garbage collector Seguridad Manejo de Excepciones entre lenguajes Depuración entre lenguajes Multi-Threading entre lenguajes Objetos distribuidos Diagnóstico, tracing y profiling

Código manejado Código manejado CLR Requerimientos Ej.: abrir un archivo Funciones generales Ej.: limpiar memoria Sistema Operativo

Microsoft Intermediate Language El código fuente es compilado a MSIL Código intermedio (no nativo) Modelo de VM MSIL tiene características especiales Verificable No depende de una plataforma en particular Incluye construcciones de alto nivel Soporte para objetos Herramientas en el.net Framework SDK ILADM: IL Assembler ILDASM: IL Disassembler

Ensamblados (Assemblies) EXE o DLL Simples o múltiples Manifest GAC Nombre Versión Cultura Nombre fuerte Archivos Tipos Referencias Assembly Código MSIL Manifest

Sistema Unificado de Tipos CTS Common Type System Establece las reglas para la descripción y manipulación de tipos de datos Reglas básicas de los tipos: Value types Reference type Establece la base para el soporte de interoperabilidad inter-lenguaje

Interoperabilidad Inter-lenguaje En.NET se pueden combinar lenguajes Para consumir y ser llamado por otras clases Para heredar y ser heredado por otras clases Soporte multi-lenguaje Basado en el sistema unificado de tipos Soportado por el CLR y los compiladores Las clases deben ser CLS-Compliant Interoperabilidad El mismo debugger puede usarse para todos los lenguajes Mecanismo uniforme de gestión de errores

Lenguajes.NET Ada APL C# J# Visual Basic.NET Managed C++ COBOL Component Pascal(Queensland Univ of Tech) ECMAScript (JScript) Eiffel (Monash University) Haskell (Utrecht University) lcc (MS Research Redmond) Mondrian (Utrecht) ML (MS Research Cambridge) Mercury (Melbourne U.) Oberon (Zurich University) Oz (Univ of Saarlandes) Perl Python Scheme(Northwestern U.) S#

Interoperabilidad COM Los componentes COM se pueden usar como clases.net Las clases.net se pueden exportar como componentes COM Todos los servicios de COM+ están disponibles P/Invoke Para llamar a funciones nativas Sistema operativo DLLs nativas (no.net)

Base Class Library WinForms Contrucción de aplicaciones Windows WebForms Contrucción de aplicaciones Web Clases base Estructuras de datos Bases de datos Manipulación de documentos XML Soporte de I/O (disco, redes, etc.) Sistema de base threading, sincronización, Servicios de COM+ y Message Queuing con MSMQ

Librería de clases System.Web System.WinForms Services Description Discovery Protocols Caching Configuration UI HtmlControls WebControls Security SessionState Design Drawing2D Imaging ComponentModel System.Drawing Printing Text System.Data System.Xml ADO SQL XSLT Serialization Design SQLTypes XPath System Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization

Ventajas en.net Entorno unificado Tanto para desarrollo y ejecución Windows, Web, Servicios, WebServices, Independencia real del lenguaje Integración con las últimas tecnologías XML WebServices (SOAP, WSDL, etc.) Framework de aplicación Amplia biblioteca de clases base Abstracción de los servicios del sistema

El lenguaje C#

C#: generalidades (C++)+ = C+++ = C# Sintáxis tipo C Orientado a objetos De propósito general Soporte de componentes Complementamente integrado a.net Estándar Aceptado por la ECMA

Estructura general Basado en bloques Al estilo C/C++ Bloque=Sentencia o Grupo delimitado por { } Las sentencias terminan en ; No hay funciones libres (fuera de clases) Sensible a mayúsculas El espacio en blanco no se considera

Sentencias if( <bool expr> ) { } else { } switch( <var> ) { case <const>: ; } Soporta Strings while( <bool expr> ) { } for( <init>; <bool test>; <mod> ) { } do { } while( <bool expr> ); try-catch-throw-finally

Sentencias 2 foreach Iteración de contenedores y arreglos using Define el ámbito de validez de un objeto lock( <object> ) { } Sincronización (sección crítica) checked { } / unchecked { } Protege contra integer overflows Puede trabajar como operador checked (expresión) fixed Para fijar objetos en áreas inseguras

Operadores Algebraicos: + - * / % Lógicos: & ^! ~ && true false Concatenación (de strings): + Unarios: ++ -- Desplazamiento: << >> Relacionales: ==!= < > <= >= Asignación: = += -= *= /= %= &= = ^= <<= >>= Acceso a miembros:. Indice: [] Condicional: :? Información de tipos: is sizeof typeof Type casting: () Creación de objetos: new Indirección y direcciones: * -> [] &

Directivas de pre-compilación Controlan el proceso de compilación Pre-procesador por razones históricas No hay pre-procesador en C# Definición de símbolos #define, #undef Compilación condicional #if, #elif, #else, #endif Números de línea #line Errores #error, #warning Regiones #region, #endregion

Sistema de Tipos Basados en el CTS de.net Tipos por valor Int, float, char, structs, enums, punteros, etc Residen en la pila Pasaje como parámetros: ref, out Tipos por referencia objetos Residen en el heap Heredan de object Boxing y unboxing

Boxing & Unboxing Boxing Crea un objeto de soporte (box) y copia el valor en él private int entero; int i = 123; public int MiEntero object o = i; Verifica el tipo { de datos int j = (int)o; y extrae el valor get { return entero; } set { entero = value; } } Unboxing i o j 123 123 123 System.Int32

Espacio de nombres Todo tipo pertenece a un espacio de nombres Pueden anidarse Permiten evitar el choque de nombres Se declaran con namespace Se referencian con using Similares a los paquetes de java, pero mapeo a directorios

Tipos Abstractos de datos Clases Object es la clase base por omisión Herencia simple Pueden denifirse como: sealed ó abstract Interfaces Implementación múltiple Pueden definir propiedades Structs Son tipos por valor Pueden tener métodos Pueden implementar interfaces

Modificadores de visibilidad Public Private Protected Internal

Metodos 1 No pueden estar sueltos Devuelven un valor Reciben cero o más parametos Parámetros variables con param Parámetros de entrada-salida con ref Parámetros de salida con out

Métodos 2 Pueden ser virtuales Hay que indicarlo explicacitamente virtual Al redefenirlos hay que usar el override new permite cortar la cadena virtual Pueden ser abstractos abstract Pueden ser de clase static Puede evitarse su redefinición sealed

Métodos 3: sobrecarga operadores Se puede definir el significado de operadores para instancias de clases y estructuras Tipos de operadores Binarios (+, -, /, etc.) Unarios (!, ~, ++, --, etc.) Conversión (typecasting) explícita e implícita

Propiedades Permiten el acceso a los atributos privados de una intancia Pueden ser de lectura, escritura o ambos Equivalentes a los getters/setters private int entero; public int MiEntero { get { return entero; } set { entero = value; } }

Delegates Punteros a funciones, pero tipados y OO Son la base para la implementación de eventos y...mejor vemos un ejemplo...

Eventos No son enclusivos de IU Basados en publicación-suscripción Se disparan llamando a una función Vemos un ejemplo...

Anotaciones (atributos) Permiten anotar el código en forma declarativa Se aplican a clases, métodos, variables, propiedades, etc. Basadas en el soporte de metadata de.net Extensibilidad sin modificar el lenguaje Ampliamente utilizados por.net Framework Definibles por el usuario Las clases de Reflection se usan para explotarlos

.NET 2.0 Clases parciales Tipos genericos Propiedades de lectura/escritura con distinta visibilidad

Herramientas de desarrollo

Entornos de desarrollo Microsoft Visual Studio Microsoft Web Matrix Borland C# Builder Borland Delphi.NET SharpDevelop MonoDevelop Snippet Compiler C# for Eclipse

Utilitarios NDoc A partir de los comentarios de en el código genera documentación en múltiples formatos Nunit Nant Framework de testing unitario Herramienta para hacer builds FXCop Analizador de código

Frameworks ORMs Nhibernate, OBJ.NET, Retina.NET Frameworks de aplicación MBI, Spring.NET, Castle.NET, EDAF PAG Enterprise Libraries

Por donde empezar

Como empezar: Paso 1 Elegir framework y SDK Microsoft.NET Framework Rotor Mono DotGNU Elegir un entorno de desarrollo SnippetCompiler SharpDevelop MonoDevelop Notepad, Vi, Emacs

Como empezar: Paso 2 Elegir un lenguaje Programar,Googling,Entender Programa desarrollador 5 estrellas Terrarium Imagine CUP

Como empezar: Paso 3 Conocer las distintas tecnologías Windows Forms ADO.NET XML Direct X Compact Framework ASP.NET Web Services

Sitios de referencia Comunidad.NET Framework http://www.gotdotnet.com ASP.NET sitio oficial http://www.asp.net Proyecto Mono http://www.mono-project.com DotGNU Project http://www.dotgnu.org Universidad.NET http://www.microsoft.com/spanish/msdn/latam/aca demicalliance/

Preguntas??

Muchas gracias por su participación Consultas, dudas y sugerencias npaez@fi.uba.ar