{"id":24,"date":"2011-05-14T18:06:28","date_gmt":"2011-05-14T16:06:28","guid":{"rendered":"http:\/\/localhost\/blog\/?p=24"},"modified":"2012-12-29T22:28:37","modified_gmt":"2012-12-29T21:28:37","slug":"24","status":"publish","type":"post","link":"https:\/\/www.ilbytecidio.it\/?p=24","title":{"rendered":"Il Framework .NET"},"content":{"rendered":"<p>Quando ho parlato del progetto Mono, non tutti hanno capito di cosa si stava parlando con esattezza, quindi dedico un thread a spiegare cos&#8217;\u00e8 il Microsoft Framework .NET, che Mono mira a reimplementare utilizzando codice libero. <!--more--><\/p>\n<p>Il Framework .NET \u00e8 l&#8217;ambiente di creazione, distribuzione ed esecuzione software della piattaforma di sviluppo .NET di Microsoft. \u00e8 composto da:<br \/>\n1) I compilatori per i linguaggi supportati da Microsoft (Visual Basic, C#, ecc)<br \/>\n2) Ambiente di esecuzione (Common Language Runtime, CLR)<br \/>\n3) Librerie<\/p>\n<p>I programmi scritti con linguaggi .NET vengono compilati in un linguaggio intermedio, simile al bytecode di Java, chiamato Common Intermediate Language, che per essere eseguito, deve girare su una Macchina Virtuale (il CLR) come avviene in Java. La differenza con Java \u00e8 che la JVM interpreta il bytecode, mentre in .NET prima dell&#8217;esecuzione avviene una compilazione in linguaggio macchina, con notevole incremento delle prestazioni. Tale compilazione \u00e8 detta Just-In-Time. Inoltre dal punto di vista dell&#8221;utente finale non cambia nulla rispetto al passato, poich\u00e9 vede i programmi esattamente come una volta, cio\u00e8 un eseguibile .EXE su cui fare il doppio click! Il Framework si integra nel sistema operativo e agisce in modo trasparente.<br \/>\nLa piattaforma .NET \u00e8 destinata ad essere in futuro l&#8217;unica piattaforma di sviluppo per i sistemi Microsoft, in sostituzione della vecchia COM. Molti linguaggi di terze parti (come ad esempio Delphi) si sono gi\u00e0 adattati a basare i propri programmi su .NET<\/p>\n<p>Non so bene il perch\u00e9 di tutto ci\u00f2, che da a molti l&#8217;impressione di essere una copia di Java! Qualcuno non \u00e8 entusiasta delle prestazioni dei programmi .NET ed altri non sono stati felici di dover studiare da capo il Visual Basic che rispetto alla Versione 6 \u00e8 stato modificato per adattarsi alla nuova piattaforma. Tuttavia ci sono anche dei vantaggi. Uno di questi \u00e8 il fatto che tutti i linguaggi condividono la ricca libreria di classi messa a disposizione dal Framework, rendendo pi\u00f9 semplice la migrazione dall&#8217;uno all&#8217;altro secondo i vantaggi di quello scelto. Inoltre il fatto di essere compilato in un linguaggio intermedio, cosa comune con Java e Python, rende i programmi eseguibili su piattaforme completamente diverse, a patto che esistano le relative macchine virtuali. Questo vantaggio \u00e8 poco visibile, dato che gli utenti medi vedono Windows solo su processori delle famiglie x86 e x64, tuttavia esiste il Framework .NET anche per FreeBSD e implementazioni libere come Mono o DotGNU possono essere affiancate a progetti come Wine per eseguire ovunque applicazioni scritte per Windows. Ancora, diventa possibile portare le applicazioni dal PC ad altri dispositivi come PDA o XBox senza doverle ricompilare.<\/p>\n<p>Sull&#8217;argomento ci sarebbe da parlare per giorni, quindi non mi dilungo oltre.. Se posso soddisfare qualche curiosit\u00e0, sono qui.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando ho parlato del progetto Mono, non tutti hanno capito di cosa si stava parlando con esattezza, quindi dedico un thread a spiegare cos&#8217;\u00e8 il Microsoft Framework .NET, che Mono mira a reimplementare utilizzando codice libero.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-24","post","type-post","status-publish","format-standard","hentry","category-software-windows"],"views":122,"_links":{"self":[{"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=\/wp\/v2\/posts\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=24"}],"version-history":[{"count":4,"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":297,"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=\/wp\/v2\/posts\/24\/revisions\/297"}],"wp:attachment":[{"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ilbytecidio.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}