2015-12-14 8 views
6

Con ASP.NET 5 tutto deve essere basato su opt-in, l'app carica solo le librerie opzionate che è sorprendente. La funzionalità ASP.NET precedente era incapsulata nello spazio dei nomi System.Web, che aveva tutto il necessario per creare un'applicazione ASP.NET. C'era un costo reale per riempire tutte le librerie inutilizzate in memoria, quindi l'approccio di ASP.NET 5 è quello di optare per quello che ti serve e non trascinarti dietro grandi librerie di codice inutilizzato.ASP.NET 5 targeting dnx451/dnx46 Prestazioni

Le mie domande:

  1. `l'opt-in approccio e alle prestazioni disponibili solo per ASP.NET 5 mira .NET base? o ASP.NET 5 che punta al framework completo su Windows ha tutte queste belle funzionalità?

  2. Quando si sceglie dnx451 o dnx46, dipendono ancora da System.web e tutte le librerie inutilizzate sono ancora caricate in memoria come le versioni precedenti di ASP.NET?

  3. ASP.NET 5 richiede circa 2kb di memoria per richiesta mentre la versione precedente di ASP.NET ha richiesto fino a 30kb per richiesta. Questo eccezionale miglioramento delle prestazioni è possibile solo quando si targetizza dnxcore50? o è questo il caso anche per dnx451/dnx46?

  4. Quando si esegue ASP.NET 5 dnx46 su IIS 7.5+, System.web non è ancora caricato? (Non sono sicuro, ma penso che IIS e System.web siano integrati, correggimi se sbaglio).

  5. Infine, qual è la differenza tra un'app ASP.NET 4.6 e un'app in esecuzione su ASP.NET 5 (dnx46)? quali miglioramenti regge quest'ultimo sull'altro?

Qualcuno PER FAVORE chiarire questo per me? Non riesco a trovare una risposta chiara a queste domande.

+0

"Tutte le librerie non utilizzate sono ancora caricate come versioni precedenti di ASP.NET?" Quali librerie _unused_ sono state caricate nelle versioni precedenti di ASP.NET? _Unused_ da chi? – sisve

+0

Quello che intendevo è che la funzionalità ASP.NET più vecchia era incapsulata nello spazio dei nomi System.Web, che aveva tutto il necessario per creare un'applicazione ASP.NET. C'è un costo reale per l'archiviazione di tutte quelle librerie inutilizzate in memoria, quindi l'approccio di ASP.NET 5 è quello di optare per quello che ti serve e non trascinarti dietro grandi librerie di codice inutilizzato. – Cindro

+0

Fuori dalla scatola dnx451/dnx46 non ha una dipendenza da System.Web – Dealdiane

risposta

6

Questo approccio opt-in e miglioramenti delle prestazioni sono disponibili solo per il targeting ASP.NET 5 .NET CORE? o ASP.NET 5 che punta al framework completo su Windows ha tutte queste belle funzionalità?

No, gran parte dei miglioramenti offerti da ASP.NET 5 sono applicabili anche a DNX451 (ovvero la versione "full framework"). È particolarmente vero con Kestrel (il nuovo server Web "universale" per ASP.NET 5), in cui i massicci miglioramenti RPS hanno un impatto su entrambe le versioni.

Quando si sceglie dnx451 o dnx46, dipendono ancora da System.web e tutte le librerie inutilizzate sono ancora caricate in memoria come le versioni precedenti di ASP.NET?

No. Con il nuovo livello di hosting, System.Web non viene mai caricato, anche se si utilizza IIS.

ASP.NET 5 richiede circa 2kb di memoria per richiesta mentre la versione precedente di ASP.NET ha richiesto fino a 30kb per richiesta. Questo eccezionale miglioramento delle prestazioni è possibile solo quando si targetizza dnxcore50? o è questo il caso anche per dnx451/dnx46?

Grazie al grande lavoro fatto dalla comunità in Kestrel, gli stanziamenti (e quindi, i "byte per richiesta") hanno massicciamente diminuito rispetto la prima beta, e questo colpisce entrambe le versioni.L'utilizzo di CoreCLR probabilmente contribuirà a ridurre la memoria necessaria per ospitare l'intera applicazione (poiché si fa riferimento a gruppi più leggeri), ma l'impatto sui "byte per richiesta" dovrebbe essere difficilmente percettibile.

Ovviamente, l'impatto di CoreCLR dipende principalmente dal numero di riferimenti presenti nel progetto: nella maggior parte dei casi, tuttavia, il guadagno di memoria dovrebbe essere marginale (si hanno assiemi più leggeri, ma a causa della natura completamente modulare di CoreCLR, sono molto più numerosi).

Quando si esegue ASP.NET 5 dnx46 su IIS 7.5+, System.web non è ancora caricato? (Non sono sicuro, ma penso che IIS e System.web siano integrati, correggimi se sbaglio).

No, grazie al nuovo livello di hosting (precedente integrazione di IIS, Helios, utilizzato per caricare System.Web, ma non è più vero con HttpPlatformHandler). Nota che IIS non "ospita" più la tua applicazione: ora funziona solo come proxy inverso. Tutto viene effettivamente gestito in un processo di lavoro DNX separato, avviato e monitorato da IIS.

Infine, qual è la differenza tra un'app ASP.NET 4.6 e un'app in esecuzione su ASP.NET 5 (dnx46)? quali miglioramenti regge quest'ultimo sull'altro?

Ospitare un "ASP.NET 4.6 applicazione" sul nuovo stack sarà una cosa complicata (se non impossibile), specialmente se si basa su System.Web e non utilizza un livello di astrazione come OWIN (ASP.NET 5 fornisce un livello di compatibilità con OWIN).