Curiosita' piattaforma .NET

di il
9 risposte

Curiosita' piattaforma .NET

Salve a tutti e buona domenica, è da poco che mi sono affacciato alla piattaforma .NET e molte volte ho sentito, e anche letto, che essa ha una specie di codice assembly della piattaforma .NET.
Ecco cosa sarebbe il codice assembly(quello con le mov ecc) o ho detto una stupidaggine, mi potreste chiarire questo concetto

9 Risposte

  • Re: Curiosita' piattaforma .NET

    Coraggio non è mai troppo tardi, saranno 10 anni che scrivo codice per piattaforma .NET.

    A grandi linee il processo di esecuzione è questo:
    1. Si sviluppa con un linguaggio di alto livello come C#, VB.NET, C++.NET, ecc
    2. Il compilatore genera un Portable Executable (PE) composto dalla trasformazione del programma in istruzioni CIL (Common Intermediate Language) ai tempi Microsoft Intermediate Language e da un insieme di meta dati.
    Lo stai confondendo con Assembly ma non è la stessa cosa di quello a cui ti riferisci, concettualmente è più simile al Bytecode di JAVA.
    3. il codice PE viene trasformato in codice nativo dal compilatore JIT (Just In Time)
    4. viene eseguito il codice nativo
  • Re: Curiosita' piattaforma .NET

    Ok Toki grazie mille per la curiosita'
  • Re: Curiosita' piattaforma .NET

    Quoto Toki!
    Se hai sentito parlare di assembly riferito a .NET non ha nulla a che vedere col linguaggio, semplicemente i file di output generati dal compilatore .NET (le dll) sono chiamati assembly (un pò come i class JAVA), e possono essere firmati e messi nella cosiddetta GAC (Global Assembly Cache) che è il punto dal quale vengono caricati a runtime (lì ci sono tutti gli Assembly del framework .NET)
  • Re: Curiosita' piattaforma .NET

    Ok jam, grazie pure a te, però questa GAC e' una cartella che ho sul computer? No perché se lo e', se sposto il programma(l'eseguibile) su un altro computer come fa a ritrovare i file?
  • Re: Curiosita' piattaforma .NET

    Ciao se sviluppi un programma in Microsoft .Net, lo puoi spostare su un altro PC che abbia anche esso il framework installato altrimenti non puoi eseguire un bel niente.
  • Re: Curiosita' piattaforma .NET

    dna_programmer ha scritto:


    Ok jam, grazie pure a te, però questa GAC e' una cartella che ho sul computer? No perché se lo e', se sposto il programma(l'eseguibile) su un altro computer come fa a ritrovare i file?
    Sì, è una cartella che puoi vedere digitando da run assembly ma non è necessario mettere gli assembly lì; in quella cartella ci sono gli assembly del framework e in più ci puoi mettere le tue librerie .NET; se invece fai un eseguibile che non usa librerie custom puoi portarlo ovunque a patto che ci sia installato il framework .NET

    So che c'è anche un progetto per far girare applicazioni .NET su linux:
    http://www.mono-project.com/Main_Pag

    Una sorta di framework .NET per linux (dove lavoro lo hanno anche utilizzato, ma non ci ho lavorato direttamente)
  • Re: Curiosita' piattaforma .NET

    E in pratica perché su tutti i computer che eseguono un programma fatto con visual studio deve essere per forza installato il framework.net, non ho capito questo
  • Re: Curiosita' piattaforma .NET

    Ciao dna_programmer,

    dna_programmer ha scritto:


    E in pratica perché su tutti i computer che eseguono un programma fatto con visual studio deve essere per forza installato il framework.net, non ho capito questo
    Perchè non viene generato un eseguibile per una certa piattaforma, ma qualcosa che richiede una ulteriore elaborazione.

    È lo stesso approccio di Java, ed ha diversi vantaggi, quando crei un eseguibile in C++ lo fai per un certo microprocessore e per un certo sistema operativo e funziona solo li.

    Invece un programma Java o C# gira su qualsiasi pc con qualsiasi microprocessore e qualsiasi sistema operativo a patto che sia installato il Runtime appropriato. Il supporto per C# è decisamente inferiore a quello di Java ma il principio è lo stesso.

    Un altro vantaggio è che il programma non deve incorporare tutte le librerie che gli servono perchè sono già installate sul pc di destinazione, per cui hai programmi molto piccoli.
  • Re: Curiosita' piattaforma .NET

    Ok grazie a tutti per le risposte!
Devi accedere o registrarti per scrivere nel forum
9 risposte