Framework .NET

Framework .NET

Ingegneria del software L-A Introduzione al Framework .NET Framework .NET È un ambiente di esecuzione (runtime environment) I n g Semplifica lo sviluppo e il deployment e g n e r i Aumenta l’affidabilità del codice a d e l s Unifica il modello di programmazione o f t w a r e È completamente indipendente da COM L - A (Component Object Model) È fortemente integrato con COM 2 Laboratorio di Informatica L-B 1.1 Sviluppo semplificato Ambiente object-oriented – Qualsiasi entità è un oggetto I n g – Classi ed ereditarietà pienamente supportati e g n e – Anche tra linguaggi diversi r i a d e Riduzione errori comuni di programmazione l s o f t – w Linguaggi fortemente tipizzati – Type Checker a r e – Errori non gestiti – generazione di eccezioni L - A – Meno memory leak – Garbage Collector 3 Indipendenza dalla piattaforma .NET è un’implementazione di CLI – Common Language Infrastructure I n g CLI e il linguaggio C# sono standard ECMA e g n e r – ECMA-334 (C#), ECMA-335 (CLI) i a d e l Esistono altre implementazioni di CLI: s o f t w – SSCLI (Shared Source CLI by Microsoft, per a r e Windows, FreeBSD e Macintosh) - Rotor L - A – Mono (per Linux) – DotGNU – Intel OCL (Open CLI Library) – … 4 Laboratorio di Informatica L-B 1.2 Standard ECMA-335 Defines the Common Language Infrastructure (CLI) in which applications written in multiple high level languages may be executed in different system I n g e environments without the need to rewrite the g n e r application to take into consideration the unique i a d e characteristics of those environments l s o f CLI is a , with: t runtime environment w a r – a file format e L - A – a common type system – an extensible metadata system – an intermediate language – access to the underlying platform – a factored base class library 5 Piattaforma multi-linguaggio Libertà di scelta del linguaggio – Tutte le funzionalità del framework .NET sono I n disponibili a tutti i linguaggi .NET g e g n – I componenti di un’applicazione possono essere e r i a scritti con diversi linguaggi d e l s o Impatto sui tool f t w a r – Tool disponibili per tutti i linguaggi: e L - A Debugger, Profiler, ecc. 6 Laboratorio di Informatica L-B 1.3 Framework .NET Concetti chiave: – (Microsoft) Intermediate Language - (MS)IL I n g – Common Language Runtime - CLR e g n ambiente di esecuzione runtime per le applicazioni .NET e r i il codice che viene eseguito sotto il suo controllo si dice a d e codice gestito (managed) l s o f t – Common Type System - CTS w a r tipi di dato supportati dal framework .NET e L - consente di fornire un modello di programmazione unificato A – Common Language Specification - CLS regole che i linguaggi di programmazione devono seguire per essere interoperabili all’interno del framework .NET sottoinsieme di CTS 7 Codice interpretato I n g e g n e r i a d e l Esecuzione s Sorgenti o Interprete f t w a r e L - A 8 Laboratorio di Informatica L-B 1.4 Codice nativo I n Sorgenti g Compilatore e g n e r i a d e l s o f t w a r e L - A Codice nativo Esecuzione (.EXE) 9 Codice IL Codice Compilatore IL I n Sorgenti g e .NET g (Assembly) n e .EXE/.DLL r i a d e l s o f t w a r e L - A Compilatore Codice Esecuzione JIT nativo 10 Laboratorio di Informatica L-B 1.5 Codice IL Codice Compilatore IL I n Sorgenti g e .NET (Assembly) g n e .EXE/.DLL r i a d Codice + e l s o metadati f t w a r e L - A Compilatore Codice Esecuzione JIT nativo 11 Codice IL Ambiente di Codice Sorgenti Compilatoerseecuzione IL I n g .NET.NET Runtime (Assembly) e g n .EXE/.DLL e r i a d e l s o f t w a r e L - A Compilatore Codice Esecuzione JIT nativo 12 Laboratorio di Informatica L-B 1.6 Assembly Unità minima per la distribuzione, il versioning e la security – 1+ file I n g e g Manifest n e r i – Metadati che descrivono l’assembly stesso a d e l Type metadata s o f t – w Metadati che descrivono completamente tutti i tipi contenuti a r e nell’assembly L - A Codice in Intermediate Language – Ottenuto da un qualsiasi linguaggio di programmazione Risorse – Immagini, icone, … 13 Assembly Single-File Assembly Multi-File Assembly Util.dll I n g e Calc.dll g Calc.dll Type Metadata n e r i Manifest a Manifest d e l s o Type Metadata IL Code f t Type Metadata w a r e L - A IL Code IL Code Pict.gif Resource Resources 14 Laboratorio di Informatica L-B 1.7 Assembly .assembly Hello { } .assembly extern mscorlib { } .method public static void main() I n g { e g n e .entrypoint r i a d ldstr "Hello IL World!" e l s o call void [mscorlib]System.Console::WriteLine f t w (class System.String) a r e ret L - A } ilasm helloil.il 15 Assembly Assembly privati – Utilizzati da un’applicazione specifica – Directory applicazione (e sub-directory) I n g e g Assembly condivisi n e r i – Utilizzati da più applicazioni a d e – Global Assembly Cache (GAC) l s o f – c:\windows\assembly t w a r e Assembly scaricati da URL L - A – Download cache – c:\windows\assembly\download GACUTIL.EXE – Tool per esaminare GAC e download cache 16 Laboratorio di Informatica L-B 1.8 Deployment semplificato Installazione senza effetti collaterali – Applicazioni e componenti possono essere I n condivisi o g e g n privati e r i a d Esecuzione side-by-side e l s o – Diverse versioni dello stesso componente possono f t w a coesistere, anche nello stesso processo r e L - A 17 Metadati Descrizione dell’assembly - Manifest – Identità: nome, versione, cultura [, public key] I n – Lista dei file che compongono l’assembly g e g – n Riferimenti ad altri assembly da cui si dipende e r i a – Permessi necessari per l’esecuzione d e l s o Descrizione dei tipi contenuti nell’assembly f t w a – Nome, visibilità, classe base, interfacce r e L – - Campi, metodi, proprietà, eventi, … A Attributi – Definiti dal compilatore – Definiti dal framework – Definiti dall’utente 18 Laboratorio di Informatica L-B 1.9 Tool che usano i metadati Compilatori – Compilazione condizionale I n g Ambienti RAD e g n e r – Informazioni sulle proprietà dei componenti i a d e Categoria l s o Descrizione f t w a r – Editor personalizzati di tipi di proprietà e L - A Analisi dei tipi e del codice – Intellisense – ILDASM – Anakrino, Reflector 19 Common Language Runtime VB C++ C# JScript … I n Common Language Specification g e g n e r i a Web User d e Services Interface l s o f t w a r Data and XML e L - A Base Class Library Common Language Runtime 20 Laboratorio di Informatica L-B 1.10 Common Language Runtime IL CLR offre vari servizi alle applicazioni Managedcode (MSIL) I n g e g n e r i Common Language a d e Runtime(CLR) l s o f t w a Funzionalità specifiche di CLR Funzionalità esistenti (es. I/O r e L (es. Garbage Collector) su file) mediate da CLR - A Sistema operativo (Win32, …) 21 Common Language Runtime Base Class Library Support I n Thread Support COM Marshaler g e g n e r i a Type Checker Exception Manager d e l s o f t w Security Engine Debug Engine a r e L - A MSIL to Native Code Garbage Compilers (JIT) Manager Collector (GC) Class Loader 22 Laboratorio di Informatica L-B 1.11 Sicurezza e affidabilità del codice Separazione spazi di memoria in un processo con AppDomain I n g Controllo del codice e sicurezza dei tipi e g n e – r Cast non sicuri i a d e – Variabili non inizializzate l s o f t – Accessi ad array oltre i limiti di allocazione w a r e L - A 23 Garbage Collector Garbage Collector per tutti gli oggetti .NET Gestione del ciclo di vita degli oggetti I n g e Gli oggetti vengono distrutti automaticamente g n e r i quando non sono più referenziati a d e l s A differenza di COM, non ci si basa sul o f t w Reference Counting a r e L – - Maggiore velocità di allocazione A – Consentiti i riferimenti circolari – Perdita della distruzione deterministica Algoritmo Mark-and-Compact 24 Laboratorio di Informatica L-B 1.12 Garbage Collector e distruzione deterministica In alcuni casi serve un comportamento di finalizzazione deterministica I n – g Riferimenti a oggetti non gestiti e g n e – Utilizzo di risorse che devono essere rilasciate r i a d appena termina il loro utilizzo e l s o f Non è possibile utilizzare il metodo Finalize t w a r e (in C# il distruttore), in quanto non è L - A richiamabile direttamente È necessario implementare l’interfaccia IDisposable 25 Gestione delle eccezioni Un’eccezione è – Una condizione di errore – Un comportamento inaspettato I n g e incontrato durante l’esecuzione del programma g n e r Un’eccezione può essere generata dal i a d – Codice del programma in esecuzione e l s – o Ambiente di runtime f t w a In CLR, un’eccezione è un oggetto che eredita dalla r e L classe System.Exception - A Gestione uniforme - elimina – Codici HRESULT di COM – Codici di errore Win32 – … 26 Laboratorio di Informatica L-B 1.13 Gestione delle eccezioni Concetti universali – Lanciare un’eccezione (throw) I n – g Catturare un’eccezione (catch) e g n e – Eseguire codice di uscita da un blocco controllato r i a d (finally) e l s o f Disponibile in tutti i linguaggi .NET t w a r e con sintassi diverse L - A 27 Altri servizi del CLR Reflection – Analisi dei metadati di un assembly I n g – Generazione di un assembly dinamico e g n e r Remoting i a d e – Chiamata di componenti remoti (.NET) l s o f t w Interoperabilità (COM, Platform Invoke) a r e L - A 28 Laboratorio di Informatica L-B 1.14 Reflection È possibile interrogare un assembly caricato in memoria I n – g Tipi (classi, interfacce, enumeratori, etc.) e g n e – Membri (attributi, proprietà, metodi, etc.) r i a d – Parametri e l s o f t È possibile forzare il caricamento in memoria di w a r e un assembly con i

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    25 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us