teaching microsoft ®.net an overview event programming using visual c#.net ana c. gonzalez...
TRANSCRIPT
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
• 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
Course Component
Microsoft .NET Framework Overview
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
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
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.
• 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)
• 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
• 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
Common Language Runtime
• Execution environment
• Memory management
• Garbage collection
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)
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
Common Type System
object
Common Type System
object
value types reference types
Common Type System
object
value types reference types
Common Type System
Primitive types (int, double, …)Allocated on stackAssignment copies valueDeallocated when defining block exitsUser-defined types: structs
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
• 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
Framework Class Library
• System• System.Collections• System.Drawing• System.IO• System.Data• System.Windows.Forms• System.Web.UI• System.Web.Services• . . .
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
• 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)
C#Code
C#Compiler
Visual BasicCode
Visual BasicCompiler
COBOLCode
COBOLCompiler
ILJIT
Compiler
NativeCode
C#Code
C#Compiler
Visual BasicCode
Visual BasicCompiler
COBOLCode
COBOLCompiler
ILJIT
Compiler
NativeCode
Run Time
• 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.
So What Do We Get from .NET?
• A managed execution environment
• Lots of libraries
• Application Programming Interfaces (APIs) for writing Internet-based software
So What Do We Get from .NET? (continued)
• Language interoperability
• An Integrated Development Environment (IDE) for rapid development
• An interesting new language: C#
• Standards
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
Course Component
C#
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
Operators and Expressions same as C++
Arrays 1-D, multi-D, jagged
Flow Control if/elseswitchgotocontinuebreakreturn
Iteration forforeachwhiledo/while
C#: Language Constructs
• 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
• Show examples that relate C# to languages they already know
• Command-line compiler
• Visual Studio .NET
C#: Getting Your Students Started