Carlo Becchi carlo.becchi@iol.it .NET Tutorial Carlo Becchi carlo.becchi@iol.it.

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Numeri a 100 Electronic flashcard. 1 uno ritorno.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
1 Tutto su liceoclassicojesi.it 1° Incontro sulla gestione di liceoclassicojesi.it.
Presente e futuro della religiosità nel nord est DIFFERENZE TRA GENERAZIONI figli e padri italo de sandre 1ids.
Valutazione d’Istituto A.S. 2008/2009
MONITORAGGIO MATEMATICA V A Alunni 26 Presenti 23 Quesiti 44 Risposte totali 650 Risultato medio 28,3 media 64,2%
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
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.
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.
Corrado Cavalli Microsoft .NET MVP
Consumare Web Service Andrea Saltarello
Massa Laura Mela Enrica
Frontespizio Economia Monetaria Anno Accademico
1 Innovazione dal punto di vista strategico Francesco Berri Medical Director ASTELLAS PHARMA SpA Bologna 10 Giugno 2011.
Distributed Object Computing
Programmazione 1 9CFU – TANTE ore
ELEZIONI REGIONALI 2010 PRIMI RISULTATI E SCENARI 14 aprile 2010.
Architettura Three Tier
Canale A. Prof.Ciapetti AA2003/04
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
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
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.
MP/RU 1 Dicembre 2011 ALLEGATO TECNICO Evoluzioni organizzative: organico a tendere - ricollocazioni - Orari TSC.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Cos’è un problema?.
Gli italiani e il marketing di relazione: promozioni, direct marketing, digital marketing UNA RICERCA QUANTITATIVA SVOLTA DA ASTRA RICERCHE PER ASSOCOMUNICAZIONE.
Lezione 2 La progettazione degli esperimenti
STILI DI APPRENDIMENTO ED EVOLUZIONE INTERFACCE
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
OO _60-59_ OI_53-54 _ OL _ OR_52-47_ OO= Orientamento allOBIETTIVO OI= Orientamento all'INNOVAZIONE OL= Orientamento alla LEADERSHIPOR= Orientamento.
CHARGE PUMP Principio di Funzionamento
Settimana: 3-7 marzo Orariolunedimartedi Mercoledi 5 Giovedi 6 Venerdi lezione intro alla fis mod DR lezione intro alla fis mod DR.
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#.
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
ISTITUTO COMPRENSIVO TORREGROTTA REPORT DATI QUESTIONARIO Alunni Scuola Primaria Classe V A.S.2012/2013.
Q UESTIONI ETICHE E BIOETICHE DELLA DIFESA DELLA VITA NELL AGIRE SANITARIO 1 Casa di Cura Villa San Giuseppe Ascoli Piceno 12 e 13 dicembre 2011.
1 Introduzione. 2 Le motivazioni In.net Framework iniziato nel 2000 rappresenta una svolta nella tecnologia Microsoft per andare oltre ai linguaggi esistenti.
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.
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
ISTITUTO COMPRENSIVO “G. BATTAGLINI” MARTINA FRANCA (TA)
1)Completa la seguente successione: C4, B7, E10, D13, G16,. A. G19 B
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
LE SAI LE TABELLINE? Mettiti alla prova!.
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
Un trucchetto di Moltiplicazione per il calcolo mentale
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
Sistemi Informativi sul Web
Esempi risolti mediante immagini (e con excel)
NO WASTE Progetto continuità scuola primaria scuola secondaria Salorno a.s. 2013_
I chicchi di riso e la sfida al Bramino
1. PRESENTAZIONE DEI PROGRAMMI UTILIZZATI Per registrare un video, editarlo o montare più video insieme si utilizza il programma AVS Video Editor. Il.
Mercato del lavoro e condizione giovanile: la crisi si acuisce
Il numero più grande Accademia dei Lincei
© 2014 KDM S.p.A. 1. Dematerializzare per Semplificare Dematerializzare non vuol dire solo semplificare. La semplificazione investe tutta la sfera della.
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.
Ingegneria del software Modulo 3 - Tecniche di implementazione Unità didattica 1 - Ingegneria dei componenti Ernesto Damiani Università degli Studi di.
Transcript della presentazione:

Carlo Becchi carlo.becchi@iol.it .NET Tutorial Carlo Becchi carlo.becchi@iol.it

Introduzione

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

Piattaforma .NET e Internet

.NET Framework

.NET Framework Le fondamenta dell’architettura .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

.NET Framework Le fondamenta dell’architettura .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.

.NET Framework Le fondamenta dell’architettura .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.

I tre componenti principali del Framework

CLR: Common Language Runtime Aka CLI: Common Language Infrastructure

Common Language Runtime

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

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

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#]

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

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

Common Language Runtime Codice C# Codice VB.NET Codice C++ Codice J# Codice COBOL Compilatore C# Compilatore VB.NET Compilatore C++ Compilatore J# Compilatore COBOL Intermediate Language CLR Sistema Operativo

CTS: Common Type System

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

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

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

Common Type System Reference Type Allocati nell’ Heap Gestito (Managed Heap) Soggetti al Garbage Collector

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

CLS: Common Language Specification

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.

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

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

MSIL: Microsoft Intermediate Language Aka CIL: Common Intermediate Language

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

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

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 l’unico “eseguibile” dal CLR

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 l’esecuzione. Permettono componenti autodescrittivi

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

JIT: Just In Time Compiler

Just In Time Compiler Compilatore al volo basato sul concetto JIT: Non tutto l’IL 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.

JIT Entry Point / Classe IL Metodo 1 IL Metodo 2 IL Metodo 3 IL PORTABLE EXECUTABLE

JIT Entry Point / Classe IL LOADER Stub Metodo 1 IL Metodo 2 IL PORTABLE EXECUTABLE

JIT Esecuzione Entry Point / Classe IL Stub Metodo 1 IL Metodo 2 IL

JIT Esecuzione Entry Point / Classe IL JIT Stub Metodo 1 IL Metodo 2

JIT Esecuzione Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL

JIT Esecuzione Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 3 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 3 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 3 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 3 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 3 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 3 IL

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2

JIT Entry Point / Classe CODICE MACCHINA Stub Metodo 1 IL Metodo 2

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

VES: Virtual Execution System

Virtual Execution System E’ l’ambiente 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.

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

Application Domain

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

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.

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.

Assembly

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.

Assembly Il manifesto è un metadato che: Stabilisce l’identità dell’assembly in termini di nome, versione, livello di condivisione tra applicazioni diverse, firma digitale. Definisce quali file costituiscono l’implementazione dell’assembly. Specifica le dipendenze in fase di compilazione da altri assembly. Specifica i tipi e le risorse che costituiscono l’assembly, inclusi quelli che vengono esportati dall’assembly. Specifica l’insieme dei permessi necessari al corretto funzionamento dell’assembly.

Assembly Il manifesto è parte indissolubile dell’assembly 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”

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

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

Assembly Global Assembly Cache Downloaded 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

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)

The End Per ora….

Bibliografia e Fonti: Microsoft: .NET Framework Evaluation Guide http://msdn.microsoft.com/netframework/prodinfo/frameworkevalguide.asp Microsoft .NET Framework SDK Documentation (Inclusa nell’installazione dell’ SDK del Framework) C# Help Article http://www.csharphelp.com/archives/archive10.html MSDN Common Language Runtime overview http://msdn.microsoft.com/library/default.asp?url=/library/en- us/cpguide/html/cpconcommonlanguageruntimeoverview.asp

Credits Progetto eseguito nell’ambito 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