1 Introduzione. 2 Le motivazioni In.net Framework iniziato nel 2000 rappresenta una svolta nella tecnologia Microsoft per andare oltre ai linguaggi esistenti.

Slides:



Advertisements
Presentazioni simili
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Advertisements

TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
Ambiente Java.
Carlo Becchi .NET Tutorial Carlo Becchi
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Informatica e Telecomunicazioni
Corrado Cavalli Microsoft .NET MVP
ASP .NET & Web Service: Introduzione
Consumare Web Service Andrea Saltarello
Massa Laura Mela Enrica
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Frontespizio Economia Monetaria Anno Accademico
Le componenti di un calcolatore CPU CPU Intel x86, AMD Intel x86, AMD Memoria volatile Memoria volatile RAM RAM Memorie di massa Memorie di massa Hard.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Distributed Object Computing
Programmazione 1 9CFU – TANTE ore
Architettura Three Tier
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Introduzione al linguaggio Java
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
eliana minicozzi linguaggi1a.a lezione2
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
Laboratorio di Informatica
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Unità Didattica 2 I Linguaggi di Programmazione
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
WOA 2003 Una piattaforma per lo sviluppo di applicazioni multi-agente Boccalatte - Gozzi - Grosso 10/09/2003.
Introduzione ad ASP.net
C# LE BASI 2007 Prima lezione - Introduzione.
Contatore: esempio di circuito sequenziale
Ing. Enrico Lecchini BetaTre S.r.l.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
Melfi, 1 aprile 2011 – MediaShow 1 Social Network: possibilità di uso consapevole nella didattica Uso, consapevolezza, opportunità, proposte Caterina Policaro.
Introduzione a C#.
Ereditarietà e Polimorfismo
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Namespaces 1. Utilizzati per contenere tipi (classi, strutture, interfacce … ) ed altri namespaces La Class Library è organizzata gerarchicamente mediante.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Esercitazioni di Meteorologia da satellite
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Sistemi Informativi sul Web
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
-17 Aspettative economiche – Europa Settembre 2013 Indicatore > +20 Indicatore 0 a +20 Indicatore 0 a -20 Indicatore < -20 Unione Europea Totale: +6 Indicatore.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
USR-INRiM-GMEE-CE.SE.DI Formazione&Metrologia Modulo 1 1 Modulo 1 Costruzione di un linguaggio comune Preparazione liste dei termini. Condivisione.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Concetti Fondamentali sulla Programmazione
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Ingegneria del software Modulo 3 - Tecniche di implementazione Unità didattica 1 - Ingegneria dei componenti Ernesto Damiani Università degli Studi di.
Eprogram informatica V anno.
Programmazione orientata agli Oggetti Introduzione a Java.
Transcript della presentazione:

1 Introduzione

2 Le motivazioni In.net Framework iniziato nel 2000 rappresenta una svolta nella tecnologia Microsoft per andare oltre ai linguaggi esistenti supportati (VB, C++,J++) sia lato client che lato web (ASP) che presentavano dei limiti rispeto a tecnologie concorrenti Limiti del Visual Basic: compilato (non portabile) non Object Oriented (Object Based Limiti del C++ compilato non portabile, linguaggio complesso (ereditarietà multipla e puntatori espliciti) Limiti di ASP : linguaggio per il web interpretato (poco performante) e utilizzo di linguaggi di scripting (JavaScript e VBScript) deboli e non Object Oriented

3 Piattaforma.NET Caratteristiche –Modello Servizi Web XML –Architettura per il Web rinnovata (ASP.net) –Interoperabilità interlinguaggio e portabilità –Standard riconosciuti per linguaggio e infrastruttura –XML-centrico –Nuovo modello di sicurezza e di installazione

4 Piattaforma.NET e Internet

5.NET Framework

6 Le fondamenta dellarchitettura.NET –Sistema di sviluppo unificato e standard C# e CLI certificati ECMA Sviluppo in collaborazione con HP e Intel –Supporto per linguaggi di programmazione diversi Conservazione del know-how esistente. Utilizzo di linguaggi specifici orientati al campo di utilizzo Interoperabilità tra linguaggi conformi

7.NET Framework Le fondamenta dellarchitettura.NET –Architettura Multipiattaforma Accessibile a qualunque piattaforma via Web Service. Disponibile per qualunque piattaforma Windows presente e futura. Scalabile Pronto per dispositivi non strettamente informatici (cellulari,TV). Elevato supporto per le interfacce grafiche lato client (versione 3.5 Windows Presentation Foundation)

8 I componenti principali del Framework Operating System Common Language Runtime.NET Framework Class Library ADO.NET, Windows forms, ASP.NET, Globalization, Security Programming Languages

9 CLR: Common Language Runtime CLI: Common Language Infrastructure

10 Common Language Runtime

11 Common Language Runtime Motore di esecuzione ad elevate prestazioni Strumento di Sviluppo

12 Common Language Runtime Motore di esecuzione ad elevate prestazioni –Gestione della memoria e Garbage Collection –Gestione dei thread e dei servizi del sistema operativo –Gestione della sicurezza –Compilazione JIT di tutto il codice

13 Common Language Runtime Strumento di sviluppo –Controllo sui tipi –Gestione delle eccezioni interlinguaggio –Ambiente di debug unificato per tutti i linguaggi conformi –Linguaggi Microsoft inizialmente disponibili : C#, VB.NET, C++ [J#]

14 Common Language Runtime Managed Code (Codice Gestito) –Tutto il codice aderente alle specifiche del CLR del quale può sfruttare i servizi –Codice Sicuro Unmanaged Code –Tutto il resto… –Codice Insicuro perché scavalca il CLR

15 Common Language Runtime Il Common Language Runtime è composto da cinque componenti che sono: –CTS - Common Type System –CLS - Common Language Specification –CIL - Common Intermediate Language –JIT- Just In Time Compiler –VES – Virtual Execution System

16 Common Language Runtime Codice VB.NET Codice C# Codice J# Codice C++ Codice COBOL CompilatoreC#CompilatoreC++CompilatoreVB.NETCompilatoreJ#CompilatoreCOBOL IntermediateLanguage CLR Sistema Operativo

17 CTS: Common Type System

18 Common Type System Sistema di Tipi unificato ed interlinguaggio Un insieme standard di tipi di dato e di regole necessarie per la realizzazione di nuovi tipi Ad esempio in C# int a; e in VB.net Dim a as Integer rappresentano lo stesso tipo Int32 Due Categorie di Tipi disponibili: –Value Type –Reference Type

19 Common Type System Value Type –Tipi atomici come integer e char –Divisi in built-in ed user defined –Descrivono valori che sono rappresentati come sequenze di bit –Allocati nello Stack del Thread –Non soggetti al Garbage Collector

20 Common Type System Reference Type –Gestiti in C# come puntatori impliciti –Allocati nell Heap Gestito (Managed Heap) –Soggetti al Garbage Collector

21 Common Type System Conversione tra Value e Reference (Boxing e Unboxing) gestito dal CTS Regole di Casting gestite dal CTS

22 CLS: Common Language Specification

23 Common Language Specification Il CLS definisce un sottoinsieme del Common Type System al quale tutti i fornitori di librerie di classi e progettisti di linguaggi che puntano al CLR, devono aderire.

24 Common Language Specification Se un componente scritto in un linguaggio (ad esempio C#) dovrà essere utilizzato da un altro linguaggio (ad esempio VB.NET), allora chi scrive il componente dovrà aderire ai tipi e alle strutture definite dal CLS. Ad esempio, il tipo Int32 è compatibile con il CLS ed i linguaggi e gli strumenti possono aspettarsi che altri linguaggi e strumenti conformi al CLS sappiano come utilizzarlo correttamente

25 Common Language Specification CLS Framework –Una libreria costituita da codice aderente al CLS CLS Consumer –Un linguaggio o tool di sviluppo progettato per accedere a tutte le caratteristiche fornite dai CLS Framework, ma non necessariamente in grado di produrne di nuove. CLS Extender –Superset del CLS Consumer

26 MSIL: Microsoft Intermediate Language CIL: Common Intermediate Language

27 Intermediate Language CIL per ECMA,MSIL o IL per Microsoft –Tutti i compilatori che aderiscono alla struttura del CLR devono generare un rappresentazione intermedia del codice, indipendente dalla CPU, chiamata Common Intermediate Language (CIL). Il runtime utilizza questo linguaggio intermedio per generare codice nativo oppure viene eseguito al volo mediante la compilazione Just In Time

28 Intermediate Language Presenta similitudini con linguaggi ad alto livello, ma anche con il linguaggio assembly: –Istruzioni per il caricamento, la memorizzazione e linizializzazione dei dati richiamare metodi da oggetti aritmetiche e logiche gestione eccezioni di tipo Try/Catch Operazioni sui registri, ma indipendente dalla piattaforma Operazioni atomiche

29 Intermediate Language Permette al CLR controlli durante la compilazione: –Codice Type Safe –Puntatori corretti –Conversioni corrette –ecc. Di fatto rappresenta il linguaggio a livello più basso e lunico eseguibile dal CLR

30 Intermediate Language Un compilatore conforme al CLS produce –Codice IL Rappresenta il programma vero e proprio –Metadati Descrivono i tipi specifici appartenenti al Common Language Types (CLT) utilizzati nel codice, comprendente la definizione di ogni tipo, le signature per ogni membro del tipo, i membri ai quali il codice fa riferimento e gli altri dati che il runtime usa durante lesecuzione. Permettono componenti autodescrittivi

31 Intermediate Language IL e Metadati sono alla fine contenuti in uno o più file PE (Portable Executable) nella forma tradizionale: –.exe Se è codice di programma eseguibile –.dll Se è un insieme di librerie

32 JIT: Just In Time Compiler

33 Just In Time Compiler Compilatore al volo basato sul concetto JIT: –Non tutto lIL di un PE viene eseguito durante un programma, solo la parte necessaria viene compilata un istante prima della sua esecuzione. –Il codice compilato viene memorizzato per successive esecuzioni –Tutto il codice.NET è compilato JIT, anche linguaggi di scripting come VB Script, J Script, JavaScript ecc.

34 Just In Time Compiler Solo il codice usato verrà compilato Minore occupazione di memoria Facile rimozione del codice inutilizzato da tempo Controlli sullIL in fase di compilazione Dati per la compilazione contenuti nello stesso file del codice (metadati) Compilazione ottimizzante perché conosce lo stato preciso dellambiente di esecuzione

35 VES: Virtual Execution System

36 Virtual Execution System E lambiente di esecuzione (macchina virtuale) del CLR. Il VES carica, realizza i link ed esegue i programmi scritti per il Common Language Runtime contenuti nei file Portable Executable. Il VES adempie alle sue funzioni di Loader utilizzando le informazioni contenute nei metadati ed utilizza late binding per integrare moduli compilati separatamente, che possono essere anche scritti in linguaggi differenti.

37 Virtual Execution System Il VES inoltre fornisce servizi durante lesecuzione dei codici, che includono la gestione automatica della memoria, supporto per debugging, sandbox per la sicurezza analoghe a quelle Java e linteroperabilità con il codice non gestito come ad esempio componenti COM.

38 Application Domain

39 Application Domain Sono i processi leggeri del CLR –Possono essere immaginati come una fusione della Sandbox di Java e del modello a Thread –Leggeri perché più AD sono eseguiti in un unico processo Win32, ma con meccanismi di sicurezza ed isolamento

40 Application Domain Modello di sicurezza –Controllo di sicurezza in fase di compilazione –Ogni applicazione può avere application domain multipli associata con essa, ed ognuno di questi ha un file di configurazione contenente i permessi di sicurezza. Queste informazioni di configurazione sono utilizzate dal CLR per fornire un sistema di sicurezza tipo sandbox analogo a quello presente in Java.

41 Application Domain Modello di sicurezza –Nonostante più application domain possano essere eseguiti in un unico processo, nessuna chiamata diretta è permessa tra metodi di oggetti presenti in differenti application domain. In alternativa un meccanismo di tipo proxy è utilizzato per isolare lo spazio dei codici.

42 Assembly

43 Assembly È una collezione di funzionalità sviluppate e distribuite come una singola unità applicativa (uno o più file). In pratica è una raccolta di codice compilato. Completamente autodescrittivo grazie al suo manifesto. Installazione di tipo XCOPY.

44 Assembly Il manifesto è un metadato che: Stabilisce lidentità dellassembly in termini di nome, versione, livello di condivisione tra applicazioni diverse, firma digitale. Definisce quali file costituiscono limplementazione dellassembly. Specifica le dipendenze in fase di compilazione da altri assembly. Specifica i tipi e le risorse che costituiscono lassembly, inclusi quelli che vengono esportati dallassembly. Specifica linsieme dei permessi necessari al corretto funzionamento dellassembly.

45 Assembly Il manifesto è parte indissolubile dellassembly ed è compreso nello stesso file. E il CLR che si preoccupa che le dipendenze espresse nel manifesto siano verificate ed eventualmente si occupa di ripararle

46 Assembly Il runtime è in grado di eseguire due versioni diverse della stessa componente side-by-side. Il runtime è in grado di rendere disponibile due versioni diverse della stessa libreria Nessuna registrazione necessaria

47 Concludendo Sistema Operativo –Applicazione 1 (Processo Win32 Separato) Application Domain 1 Application Domain 2 –Assembly 1 –Assembly 2 –Assembly 3 –Applicazione 2 (Processo Win32 Separato) –Applicazione 3 (Processo Win32 Separato)

48 Bibliografia e Fonti: Microsoft:.NET Framework Evaluation Guide Microsoft.NET Framework SDK Documentation (Inclusa nellinstallazione dell SDK del Framework) C# Help Article MSDN Common Language Runtime overview us/cpguide/html/cpconcommonlanguageruntimeoverview.asp