La mia app Web utilizza ASP, ma ne ha bisogno?

0

Sono relativamente nuovo allo sviluppo web e sono stupito dalla varietà di nuovi concetti nel campo. Potrei probabilmente usare qualche aiuto per sintetizzare.

Devo occuparmi di un backend scritto in Delphi, che fornisce alcuni servizi SOAP scritti male. Inizialmente ho sviluppato un'applicazione web ASP MVC 5 che utilizzava l'API SOAP. I miei controllori grassi selezionano e chiamano i servizi SOAP, usano un gruppo di Mapper per trasformare i DTO nei miei oggetti modello C # -wise ed eseguono alcune logiche di business a volte. A volte, devono utilizzare due mapper consecutivi, uno per trasformare il DTO in un "oggetto modello" e uno per trasformare l'oggetto modello nell'oggetto "modello di vista". Lo so ... sono ansioso solo a pensarci.

Inoltre, volevo fare un'app Single-page (al momento non sapevo nemmeno che esistesse questo concetto) con un mix di Razor, JQuery e una libreria di componenti MVC di terze parti (DevExpress).

Questo progetto si è rivelato estremamente ingombrante. Sono comunque riuscito a dare vita al mostro, ma le prestazioni sono ancora un problema, e qualsiasi modifica della bestia richiede una quantità eccessiva di tempo. Per inciso, circa la metà dei metodi dei miei controller restituisce PartialView e l'altra metà restituisce oggetti Json.

Recentemente ho iniziato a creare un livello "Servizio", in un progetto VS separato, il cui scopo è gestire l'endpoint SOAP, a volte eseguire alcune logiche di business, e soprattutto fare il mapping da DTO ad alcuni oggetti del modello (penso Potrei anche introdurre alcuni caching qui, questo è un altro dibattito).

Per il client web, ho iniziato a scrivere un'app AngularJs, il cui quadro mi semplifica molto la vita. Finora ho delineato una manciata di visualizzazioni e posso passare da una vista all'altra in un attimo, avendo il controllo totale sui viaggi di andata e ritorno verso il server. Ho dovuto fare un piccolo lavoro per delineare questa nuova app rispetto al mio precedente approccio.

Ora mi chiedo: ho ancora bisogno di ASP MVC? Ho persino bisogno di ASP? È possibile (è facile?) Chiamare un servizio web SOAP da un servizio angolare? Se sì, una soluzione estrema potrebbe essere quella di sbarazzarsi di ASP, e sviluppare la mia app web completamente in Javascript (Angolare).

Vedo immediatamente almeno un inconveniente qui. I miei servizi Angular potrebbero essere utilizzati solo in quel contesto specifico. Diciamo che voglio creare un'app Android nativa, che dovrebbe chiamare i servizi Web SOAP e probabilmente avrà bisogno di un altro livello di servizio, che probabilmente farebbe la maggior parte di ciò che fa già il mio livello di servizi Angular. Inoltre, l'end-point SOAP, che non ho scritto ed è attualmente disponibile solo per le applicazioni IIS sullo stesso server, dovrebbe essere esposto al mondo esterno. Non è pronto per questo in termini di sicurezza.

Una soluzione intermedia potrebbe essere quella di mantenere il mio livello di servizi scritto in C # e creare un endpoint REST su di esso, per l'uso della mia app angolare e di varie altre app che potrebbero essere scritte, nel futuro, per qualsiasi piattaforma in qualsiasi lingua.

Questa soluzione significa che non ho più bisogno del "framework MVC"? Quale sarebbe il ruolo di "ASP" in questo contesto? Solo la mappatura dei parametri di richiesta in oggetti .NET e qualche routing? Non dimentichiamo l'autenticazione. La mia app precedente utilizzava [Autentica] su tutti i controller, oltre a una gestione dei ruoli di base. Credo che avrei dovuto trattare questo "manualmente" nel contesto di un'API REST?

Mi confondo anche perché le cose cambiano così velocemente. Trovo informazioni su "Web API" che era vero per ASP MVC4 e non è più vero per MVC5. Ora, ASP.NET 5 è fuori, ma non sono riuscito a trovare un elenco chiaro e completo delle funzionalità e delle nuove funzionalità di ASP. Ho anche sentito parlare di Rails e Node.js, ma temo che attualmente utilizzi molte funzionalità ASP senza nemmeno saperlo

    
posta Yugo Amaryl 05.08.2015 - 11:25
fonte

1 risposta

1

Is it easy to call a SOAP web service from an Angular service?

No, di solito non è possibile perché i browser sono limitati a fare richieste allo stesso dominio in cui la pagina web è ospitata a meno che non applichi CORS. Non ho mai visto nessuno provare e chiamare SOAP da javascript. Se ignoriamo i limiti di sicurezza del browser, tutte le credenziali per il servizio dovrebbero essere esposte a tutti gli utenti in javascript e non c'è modo di aggirare questo problema. Anche SOAP è un protocollo molto gonfiato che non si combina bene con javascript.

Would this solution mean that I don’t need the “MVC framework” anymore?

Si

What would be the role of “ASP” in this context?

Il ruolo sarà l'API web. Il ruolo di web api è quello di esporre il tuo livello di servizio al client sul filo mappando i parametri e il risultato e, naturalmente, alcuni percorsi.

Let’s not forget about authentication.

Web Api utilizza ancora i controller e puoi ancora inserire gli attributi [Authenticate] sul metodo e sulla classe controller. Devi solo decidere se vuoi utilizzare token Bearer o Cookies per auth. L'approccio più moderno utilizza i token Bearer.

Anche REST api significa che è conforme al livello 3 di maturità di richardson che potresti o non vorresti.

    
risposta data 05.08.2015 - 12:29
fonte