La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

.NET Tutorial 1 Carlo Becchi

Presentazioni simili


Presentazione sul tema: ".NET Tutorial 1 Carlo Becchi"— Transcript della presentazione:

1 .NET Tutorial 1 Carlo Becchi

2 .NET Tutorial 2 Introduzione

3 .NET Tutorial 3 Piattaforma.NET Caratteristiche –Modello Servizi Web XML –Architettura componentizzata per il Web –Interoperabilità interlinguaggio –Utilizzo di architetture fortemente e debolmente accoppiate –Standard riconosciuti per linguaggio e infrastruttura –XML-centrico –Nuovo modello di sicurezza

4 .NET Tutorial 4 Piattaforma.NET e Internet

5 .NET Tutorial 5.NET Framework

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

7 .NET Tutorial 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.

8 .NET Tutorial 8.NET Framework Le fondamenta dellarchitettura.NET –Sistema di comunicazione basato su XML e SOAP Facilità di trasporto. Modello dati unificato. Interoperabilità con altri sistemi. Possibilità di rendere persistenti dati e strutture.

9 .NET Tutorial 9 I tre componenti principali del Framework

10 .NET Tutorial 10 CLR: Common Language Runtime Aka CLI: Common Language Infrastructure

11 .NET Tutorial 11 Common Language Runtime

12 .NET Tutorial 12 Common Language Runtime Motore di esecuzione ad elevate prestazioni Strumento di Sviluppo

13 .NET Tutorial 13 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 –Gestione automatica delle dipendenze da altre componenti –Compilazione JIT di tutto il codice

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

15 .NET Tutorial 15 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

16 .NET Tutorial 16 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

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

18 .NET Tutorial 18 CTS: Common Type System

19 .NET Tutorial 19 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 Due Categorie di Tipi disponibili: –Value Type –Reference Type

20 .NET Tutorial 20 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

21 .NET Tutorial 21 Common Type System Reference Type –Entità autodefinite contententi sia metodi che variabili –Divisi in quattro sottocategorie: Self Describing Interface Pointer Built-in –Descrivono valori che sono rappresentati come la locazione di una sequenza di bit

22 .NET Tutorial 22 Common Type System Reference Type –Allocati nell Heap Gestito (Managed Heap) –Soggetti al Garbage Collector

23 .NET Tutorial 23 Common Type System Conversione tra Value e Reference (Boxing e Unboxing) gestito dal CTS Regole di Casting gestite dal CTS

24 .NET Tutorial 24 CLS: Common Language Specification

25 .NET Tutorial 25 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.

26 .NET Tutorial 26 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

27 .NET Tutorial 27 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

28 .NET Tutorial 28 MSIL: Microsoft Intermediate Language Aka CIL: Common Intermediate Language

29 .NET Tutorial 29 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

30 .NET Tutorial 30 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

31 .NET Tutorial 31 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

32 .NET Tutorial 32 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

33 .NET Tutorial 33 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

34 .NET Tutorial 34 JIT: Just In Time Compiler

35 .NET Tutorial 35 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.

36 .NET Tutorial 36 JIT Entry Point / Classe IL Metodo 3 IL Metodo 2 IL Metodo 1 IL PORTABLE EXECUTABLE

37 .NET Tutorial 37 JIT Entry Point / Classe IL Metodo 3 IL Metodo 2 IL Metodo 1 IL PORTABLE EXECUTABLE Stub LOADER

38 .NET Tutorial 38 JIT Entry Point / Classe IL Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub

39 .NET Tutorial 39 JIT Entry Point / Classe IL Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub JIT

40 .NET Tutorial 40 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub

41 .NET Tutorial 41 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub

42 .NET Tutorial 42 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub

43 .NET Tutorial 43 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub JIT

44 .NET Tutorial 44 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 2 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA

45 .NET Tutorial 45 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA

46 .NET Tutorial 46 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA

47 .NET Tutorial 47 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA

48 .NET Tutorial 48 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA

49 .NET Tutorial 49 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA JIT

50 .NET Tutorial 50 JIT Entry Point / Classe CODICE MACCHINA Metodo 3 IL Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

51 .NET Tutorial 51 JIT Entry Point / Classe CODICE MACCHINA Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

52 .NET Tutorial 52 JIT Entry Point / Classe CODICE MACCHINA Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

53 .NET Tutorial 53 JIT Entry Point / Classe CODICE MACCHINA Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

54 .NET Tutorial 54 JIT Entry Point / Classe CODICE MACCHINA Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

55 .NET Tutorial 55 JIT Entry Point / Classe CODICE MACCHINA Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

56 .NET Tutorial 56 JIT Entry Point / Classe CODICE MACCHINA Metodo 1 IL Stub Metodo 2 CODICE MACCHINA Metodo 3 CODICE MACCHINA

57 .NET Tutorial 57 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

58 .NET Tutorial 58 VES: Virtual Execution System

59 .NET Tutorial 59 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.

60 .NET Tutorial 60 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.

61 .NET Tutorial 61 Application Domain

62 .NET Tutorial 62 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

63 .NET Tutorial 63 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.

64 .NET Tutorial 64 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.

65 .NET Tutorial 65 Assembly

66 .NET Tutorial 66 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.

67 .NET Tutorial 67 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.

68 .NET Tutorial 68 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

69 .NET Tutorial 69 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

70 .NET Tutorial 70 Assembly Il CLR fornisce anche API utilizzate dai motori di scripting che creano assembly dinamici durante lesecuzione degli script; questi assembly sono eseguiti direttamente senza essere salvati su disco.

71 .NET Tutorial 71 Assembly Global Assembly Cache –Memoria per gli assembly sicuri. Gestione riservata agli amministratori Eseguiti fuori dalla Sandbox, maggiori privilegi di accesso alle risorse Downloaded Assembly Cache –Memoria per gli assembly transitori e/o insicuri. Assembly esterni, ad esempio scaricati dalla rete. Eseguiti nella Sandbox più lenti e con minor accesso alle risorse

72 .NET Tutorial 72 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)

73 .NET Tutorial 73 Per ora….

74 .NET Tutorial 74 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

75 .NET Tutorial 75 Credits Progetto eseguito nellambito del corso di Basi di Dati –Realizzato da Carlo Becchi –Tutor del progetto: Ing. Mauro Coccoli –Docente del corso: Prof. Antonio Boccalatte Laboratorio di Informatica DIST- Siemens/ORSI –http://www.lido.dist.unige.it Aprile 2002


Scaricare ppt ".NET Tutorial 1 Carlo Becchi"

Presentazioni simili


Annunci Google