teaching microsoft ®.net an overview event programming using visual c#.net ana c. gonzalez...

32
Teaching Microsoft ® .NET An Overview Event programming using Visual C# .NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based on the presentation provided by Robert P. Plummer, Ph.D. Lecturer Department of Computer Science Stanford University

Upload: vicenta-casado-suarez

Post on 02-Feb-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Teaching Microsoft® .NETAn Overview

Event programming using Visual C# .NETAna C. Gonzalez

Departamento de MatematicasM-305

This presentation is based on the presentation provided by Robert P. Plummer, Ph.D.LecturerDepartment of Computer ScienceStanford University

Page 2: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Microsoft .NET Framework overview

• The language: C#

• Microsoft Windows® Forms (Win Forms)

• .NET event model

Second course (continuation course)• Database programming (ADO.NET)

• Internet-based programming (ASP.NET)

– XML Web services– Web Forms

Components of the Course

Page 3: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Course Component

Microsoft .NET Framework Overview

Page 4: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Microsoft .NET Framework Overview

•Vamos a mostrar un cuadro general (BIG PICTURE) antes de comenzar a discutir los detalles.

• Idea general de los componentes (partes) de .NET y como se relacionan o encajan unos con otros.

• El cuadro general ayuda a entender cuales son algunos de los problemas que .NET resuelve.

Transparencia que está donde quiera que se quiere explicar o hablar de .NET

Page 5: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Windows LINUX

Common Language Runtime

Framework Class Library

Common Language Specification

Microsoft Visual Basic®

.NET C++ C# Microsoft JScript® …

Mic

ros

oft V

isu

al S

tud

io

® .NE

T

Microsoft .NET Framework Architecture

Page 6: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Microsoft .NET Framework Architecture

• Comenzamos poniendo en perspectiva la plataforma, descansa sobre el sistema operativo.

• Recordamos que el sistema operativo es el alma de la computadora, que coordina las actividades , etc

• .NET Framework(plataforma) nos facilita o nos provee un nivel de abstracción que nos facilita la interacción de nuestro programa(software) con el sistema operativo.

• El Common Language Runtime es el que se sabe comunicar y hablar con el sistema operativo.

Page 7: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Podemos pensar que el Common Language Runtime como una caja en la cual los programas de .NET se ejecutan .

• Provee:

• servicios de memoria

• Garbage collection

• Execution engine (la caja donde se ejecutan los programas)

Page 8: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Sobre el CLR está lo que se conoce como el:

• Framework Class Library (librería de muchas clases)

• Provee las diferentes plataformas• ADO.NET se usa para acceder base

de datos• ASP.NET permite escribir

programas para la internet

Page 9: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Sobre todo esto tenemos los lenguajes de programación

• Para que pueda ser un lenguaje .NET tiene que cumplir con lo que se conoce como :

• Common Language Specification:Conjunto de reglas, si uno va a implementar un lenguaje y hace que cumpla con esas reglas entonces se considera un .NET Language.

• Esto hace que puede interactuar con código escrito en otros lenguajes

Page 10: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Common Language Runtime

• Execution environment

• Memory management

• Garbage collection

Page 11: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Common Language RuntimeAmbiente donde se ejecutan los programas• El CLR esta administrando o denegando el

acceso a la memoria.• Memory management:

Cuando se crean nuevos objetos se crean en lo que se conoce como “manager heap”

• Garbage collection:Cuando un objeto no se necesita mas (releases its memory)

Page 12: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Common Type System

• Hay dos tipos principales:Value typesReferente type

• Tenemos un sistema de Tipos-unificados donde los “value types” y “referente type” son todos objetos

• Todos comparten un comportamiento básico.• Esto es algo diferente de otros lenguajes de

programación

Page 13: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Common Type System

Page 14: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

object

Common Type System

Page 15: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

object

value types reference types

Common Type System

Page 16: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

object

value types reference types

Common Type System

Primitive types (int, double, …)Allocated on stackAssignment copies valueDeallocated when defining block exitsUser-defined types: structs

Page 17: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

object

value types reference types

Classes, arrays, ...Allocated on managed heapAssignment copies referenceGarbage collected

Common Type System

Primitive types (int, double, …)Allocated on stackAssignment copies valueDeallocated when defining block exitsUser-defined types: structs

Page 18: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• El Framework Class Llibrary provee muchas herramientas para usarla en nuestros programas.

•Está dividida en namespaces.

• El namespace System es el nivel más alto, contiene algunas definiciones y otros namespaces

• Drawing and graphing

Page 19: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Framework Class Library

• System• System.Collections• System.Drawing• System.IO• System.Data• System.Windows.Forms• System.Web.UI• System.Web.Services• . . .

Page 20: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Windows LINUX

Common Language Runtime

Framework Class Library

Common Language Specification

VisualBasic C++ C# JScript …

Visu

al Stu

dio

.NE

T

Microsoft .NET Framework Architecture

Page 21: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Ahora vamos ha hablar de cómo trabajan los lenguajes.• Proceso de Compilación• Sabemos que todos los lenguajes siguen o cumplen con

un common language specification. O sea que los lenguajes tienen las mismas reglas de juego.

• Todas están usando las mismas definiciones básicas para los tipos primitivos.

• Lo que ocurre aquí es que todos los compiladores compilan al mismo: lenguaje intermedio. (algo como si fuera assembly)

• Source code (Intermediate language)

Page 22: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

C#Code

C#Compiler

Visual BasicCode

Visual BasicCompiler

COBOLCode

COBOLCompiler

ILJIT

Compiler

NativeCode

Page 23: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

C#Code

C#Compiler

Visual BasicCode

Visual BasicCompiler

COBOLCode

COBOLCompiler

ILJIT

Compiler

NativeCode

Run Time

Page 24: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• La idea de just-in-time compiler :• El compilador solo necesita entender un

lenguaje el IL • Lo compila en código nativo en el momento de

la corrida.• Cuando el usuario finalmente corre el programa,

se compila a código nativo según sea necesario (esa es la parte del just-in-time compilation)

• El proceso es completamente automático e independiente de cualquier cosa que se haga cuando se está preparando el programa.

Page 25: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

So What Do We Get from .NET?

• A managed execution environment

• Lots of libraries

• Application Programming Interfaces (APIs) for writing Internet-based software

Page 26: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

So What Do We Get from .NET? (continued)

• Language interoperability

• An Integrated Development Environment (IDE) for rapid development

• An interesting new language: C#

• Standards

Page 27: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Windows LINUX

Common Language Runtime

Framework Class Library

Common Language Specification

VisualBasic C++ C# JScript …

Visu

al Stu

dio

.NE

T

Microsoft .NET Framework Architecture

Page 28: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Course Component

C#

Page 29: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

C#: Why It’s Important

• Designed specifically for writing .NET code

- .NET Framework–specific language constructs

- Modern language features

― foreach― Properties― Indexers― Type safety

• An improvement over existing languages

Page 30: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

Operators and Expressions same as C++

Arrays 1-D, multi-D, jagged

Flow Control if/elseswitchgotocontinuebreakreturn

Iteration forforeachwhiledo/while

C#: Language Constructs

Page 31: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Single inheritance

• Can implement multiple interfaces

• Members– Fields, methods (including

constructors), properties, indexers, events

– Access control: public, protected, internal, private

– Static and instance members– Abstract (for polymorphism)

• Nested types

C#: Classes

Page 32: Teaching Microsoft ®.NET An Overview Event programming using Visual C#.NET Ana C. Gonzalez Departamento de Matematicas M-305 This presentation is based

• Show examples that relate C# to languages they already know

• Command-line compiler

• Visual Studio .NET

C#: Getting Your Students Started