In questo nuovo mondo ASP.NET 5 ci sono due aspetti principali dello sviluppo di app.
- Iniezione di dipendenza. Aka quali servizi saranno necessari per eseguire la nostra applicazione?
- La pipeline dell'applicazione/richiesta. In sostanza, il modo in cui rispondiamo alla domanda "Cosa fare quando una richiesta colpisce il server".
A causa di questi due problemi principali, ci sono due meccanismi che collegano il sistema.
Innanzitutto, UseMVC
è il modo in cui la tua applicazione può dire che voglio che MVC partecipi alla fase di gestione delle richieste in "questo" punto. È essenzialmente un collegamento a un middleware specifico MVC.
Secondo, AddMvc
è il modo in cui l'applicazione dice che si desidera che i servizi MVC disponibili per il sistema (necessari per il UseMvc
) funzionino correttamente. Pertanto, se si provasse a fare UseMvc
senza aggiungere i servizi MVC corrispondenti, la chiamata verrebbe generata. Notare che ciò aggiunge i servizi MVC appropriati al contenitore DI.
Speriamo che questo risponda alle vostre domande, per ulteriori informazioni su di esso è possibile controllare http://www.asp.net/vnext per ulteriori informazioni generali. Per qualcosa di più specifico/video che ho fatto un discorso un po 'indietro alla conferenza frutteto dove vado su più dei pezzi fondamentali https://www.youtube.com/watch?v=kqgIByKn9Wk
Nota: ho dato il parlare un po' indietro, alcuni concetti sono obsoleti/potrebbe avere modificato ma i concetti chiave sono gli stessi.
fonte
2015-02-20 20:56:07
Buona risposta, ma ad esempio, NancyFX non ha bisogno di aggiungere nulla al metodo ConfigureService, solo l'useNancy nel metodo Configure, che è quello che mi confonde. – user2070369
Alla fine spetta al framework per come vorrebbero incorporare le loro chiamate "add me". Come vedrai nel video, finisco per fare app.UseServices (services => ....) per registrare i servizi. Questo è stato un modo rapido per registrare i servizi per una demo. L'approccio migliore consiste nell'utilizzare il metodo ConfigureServices nella classe di avvio. Abbiamo deciso di tenere separati i due poiché sono veramente due concetti diversi, con i due separati che ti permettono di mettere tutto il tuo codice DI in un posto e il tuo codice 'Use' in un altro. –
@ user2070369 Non proprio corretto, NancyFX richiede di sovrascrivere GetApplicationContainer se si desidera un DI-framework non cablato all'interno di un NancyBootstrapper. Quindi, ad esempio in ASP.NET 5 - Funzione di configurazione in cui si inserisce UseNancy, è necessario anche prima creare un contenitore DI e quindi restituirlo da GetApplicationContainer – Janus007