Posso dire che ASP.NET è compilato?

6

Sai che C # è una lingua compilata. Ma quando sviluppiamo applicazioni web usiamo ASP.NET + C #, in questo caso possiamo dire che ASP.NET è compilato?

Se ASP.NET non è compilato influisce sulle prestazioni di C # quando ASP.NET e C # lavorano l'uno accanto all'altro per sviluppare applicazioni web?

    
posta Goma 16.06.2011 - 18:05
fonte

3 risposte

10

Sì, l'applicazione ASP.NET viene compilata in IL e viene eseguita con questo. La compilazione avviene alla prima richiesta (ecco perché la prima richiesta tende a richiedere più tempo rispetto alla richiesta successiva) o può essere precompilata al momento della distribuzione.

Vedi, ad esempio, link

    
risposta data 16.06.2011 - 18:12
fonte
5

Se utilizzi la precompilazione di ASP.NET del tuo File ASPX / ASCX, quindi sì: possiamo dire che l'applicazione è compilata.

Tuttavia, se non viene utilizzata la precompilazione di ASP.NET, si verificherà un impatto sulle prestazioni quando la pagina viene caricata per la prima volta poiché ASP.NET dovrà compilarlo al volo. Inoltre, la mancanza di precompilazione significa che potresti non rilevare un errore nel markup fino a quando non viene chiamato un componente specifico dell'app web.

Per prestazioni massime e rilevamento tempestivo degli errori, è sempre necessario precompilare le applicazioni Web ASP.NET.

Ci sono componenti nel mark-up che si legano in fase di esecuzione (anziché in fase di compilazione), come Controlli ObjectDataSource , ma questo non è diverso dalla scrittura del codice C # per eseguire la reflection.

Il risultato compilato sarà solo statisticamente verificabile in quanto il codice (o il framework ASP.NET) utilizza le funzionalità del sistema di tipi. Il codice che interrompe il sistema di tipi (ad esempio tramite associazione tardiva con riflessione) verrà eseguito più lentamente e introdurrà errori che il compilatore non può rilevare.

    
risposta data 16.06.2011 - 18:12
fonte
3

Suppongo che tu ti stia riferendo al contenuto della pagina .aspx che contiene il markup?

La pagina .aspx non è compilata direttamente. Invece, durante il runtime, il motore ASP.NET genera codice C # basato su questo file, lo inserisce in una cartella chiamata "File temporanei ASP.NET" e quindi compila il codice C #. Quindi sì, è compilato.

Ne esiste un po 'in questo post: link

Puoi anche abilitare la precompilazione per creare questa compilation già al momento della compilazione. Ma è ancora in fase di compilazione se non abiliti la precompilazione. Si sta compilando molto più tardi.

    
risposta data 06.06.2012 - 00:33
fonte

Leggi altre domande sui tag