Otto motivi per cui Microsoft Stack è ancora una scelta praticabile

Pubblicato: 2022-03-11

La vita era fantastica per gli sviluppatori Microsoft 10 anni fa. Le aziende erano felici di scegliere al 100% Microsoft per i loro progetti di sviluppo. Con ASP.NET sul front-end, .NET di livello intermedio e SQL Server sul back-end, le cose hanno funzionato molto bene per la maggior parte. Quando non l'hanno fatto, gli sviluppatori lo hanno semplicemente accettato come qualcosa che arrivava con il territorio. Microsoft era tutto tranne che dirigere lo spettacolo. Poi, alla fine dell'ultimo decennio, lo status di gorilla di 800 libbre di Microsoft ha iniziato a sgretolarsi. Forse è stato a causa dell'introduzione di iPhone e Microsoft che ha mancato il passaggio al mobile, o forse è stato a causa della proliferazione di progetti open source, ma le cose sono cambiate e oggi quelle stesse aziende devono essere persuase che andare con Microsoft Stack è una buona idea. Questo articolo presenta otto motivi a favore del mantenimento dello stack di software Microsoft.

Motivo n. 1: .NET è ancora uno dei migliori

Introdotto più di 10 anni fa, .NET Framework è ricco di funzionalità e ampiamente testato. Sebbene fosse un luogo comune dover combinare lo sviluppo nativo con il codice gestito all'inizio di .NET, la stragrande maggioranza delle attività di sviluppo è oggi supportata immediatamente. Anche aziende come Oracle hanno rilasciato componenti costituiti al 100% da codice gestito .NET (ovvero driver gestito ODP.NET) per interfacciarsi con i propri prodotti. L'API .NET è coerente, ben documentata e utilizzata da milioni di persone.

La knowledge base disponibile tramite MSDN, StackOverflow e migliaia di forum e blog è enorme. Nei miei anni di sviluppo in .NET, non riesco a ricordare un'istanza in cui sarei rimasto bloccato a lungo su un bug del framework; ogni volta, qualcuno aveva già sperimentato, ricercato e pubblicato una risposta, non sempre la risposta che speravo, ma comunque qualcosa che mi ha fatto andare avanti. Con la prossima versione del 2015, .NET Core sarà open source e disponibile su sistemi non Windows.

Motivo n. 2: ASP.NET si è evoluto

pila di Microsoft

Guardando indietro al tradizionale stack Microsoft da Web a database di 10 anni fa, è interessante vedere quali parti sono sopravvissute alla prova del tempo e quali parti sono svanite. Mentre il back-end dello stack Microsoft è rimasto praticamente invariato (usiamo ancora lo stesso set di modelli e componenti, come Dependency Injection, Tasks, Linq, EF o ADO), il front-end, il pezzo ASP.NET, ha visto un passaggio fondamentale da "fallo alla maniera di Microsoft" (es. Web Forms) a "fai a modo tuo e usa ASP.NET come piattaforma". Oggi, ASP.NET è un framework basato su MVC caratterizzato da una solida infrastruttura per l'autenticazione, il raggruppamento e il routing che si integra con molte tecnologie non Microsoft come Bootstrap e AngularJS. I siti ASP.NET hanno un bell'aspetto su un'ampia gamma di fattori di forma, dai telefoni ai desktop, e le sue funzionalità API Web rendono l'esposizione dei servizi Web un gioco da ragazzi. Il framework è open-source da diversi anni, quindi se rimani bloccato su un problema, il sorgente è disponibile su GitHub. ASP.NET è cambiato ed è cambiato in meglio.

Motivo n. 3: semplicità dell'API Web e potenza di WCF

stack web e microsoft

La mia citazione preferita di tutti i tempi è di Alan Kay che ha detto: “Le cose semplici dovrebbero essere semplici; le cose complesse dovrebbero essere possibili”. Quando Windows Communication Foundation (WCF) è uscito per la prima volta nel 2006, era tutt'altro che semplice; comportamenti, endpoint e associazioni erano schiaccianti. Quindi, Microsoft ha rilasciato Web API, un framework facile da usare che rende l'esposizione dei servizi Web HTTP un gioco da ragazzi. Con poche righe di configurazione, la tua API si trasforma in un servizio web sicuro e "standard di settore".

Se il tuo caso d'uso non si adatta allo stampo "standard" e hai bisogno del pieno controllo su come la tua API è esposta sul cavo, puoi sempre ricorrere a WCF. Con la miriade di opzioni di configurazione e hook, WCF ti consente di serializzare i tuoi dati, registrare, intercettare, instradare messaggi, utilizzare peer-to-peer e accodamento e molto altro ancora. L'API Web, insieme a WCF, soddisfa entrambi i principi della citazione di Kay: se hai bisogno di un semplice servizio Web, hai finito in pochi minuti con l'API Web; se i tuoi requisiti di servizio sono complessi, con WCF è possibile "tutto". Queste due tecnologie forniscono una copertura completa degli scenari di servizio e sono preconfezionate con il framework .NET.

Motivo n. 4: SQL Server è solido come sempre

Per molti anni, è sembrato che l'ondata di nuovi linguaggi di sviluppo, framework e modelli arrivasse attraverso i livelli anteriore e intermedio e risparmiasse il back-end del database. Dopotutto, il buon vecchio "SELECT" è ancora in uso oggi come lo era 20 anni fa. Suppongo che ciò sia dovuto al fatto che molte aziende considerano i propri dati il ​​fulcro della propria attività e mantenere l'integrità di tale core supera di gran lunga l'entusiasmo di provare "qualcosa di nuovo" a livello di database.

SQL Server eccelle nel suo ruolo principale di data keeper con una miriade di funzionalità per transazioni, integrità referenziale, backup, mirroring e replica, ma ciò che distingue SQL Server dalla concorrenza è la sua perfetta integrazione con il resto dello stack Microsoft. Per un rapido sviluppo, c'è Entity Framework, attualmente nella versione 6, ha superato l'adolescenza e mantiene bene la sua promessa di snellire l'accesso ai dati. Se hai bisogno di potenza di calcolo, .NET Framework viene caricato in-process con SQL Server, il che significa che puoi incorporare codice .NET come stored procedure, funzioni o aggregati senza sacrificare le prestazioni. Abbinalo al fatto che SQL Server 2014 viene fornito con tabelle in memoria e puoi trovare alcune soluzioni in tempo reale piuttosto sofisticate che non potrebbero essere realizzate abbastanza velocemente solo con SQL e tabelle normali. Dopo anni nel settore, SQL Server è ancora in cima alla mia lista di RDBMS.

Motivo n. 5: è facilmente verificabile

Tante volte, lavorando nell'IT aziendale, ho visto il software trasformarsi in queste intoccabili scatole nere perché non c'erano test e nessuno voleva pasticciare con il codice per paura di "rompere qualcos'altro". Poi, ho lavorato su sistemi che avevano migliaia di test ed è stata una bella sensazione poter dire alle aziende che "sì, possiamo apportare queste modifiche", anni dopo il rilascio del software. Lo stack Microsoft è progettato pensando alla testabilità. ASP.NET MVC dispone di hook per l'inserimento delle dipendenze e nella versione 5, l'inserimento delle dipendenze sarà incluso nel framework stesso. Nel livello intermedio, è una storia simile: utilizziamo l'iniezione di dipendenza per dissociare l'implementazione dall'interfaccia, che ci consente di scambiare i tipi di produzione con i mock al momento del test. Anche sul lato database, sono disponibili SQL Server Data Tools con modelli per il test rispetto al livello di stored procedure. I test sono oggi una parte inseparabile del processo di sviluppo del software e lo stack Microsoft è ben attrezzato per questa nuova realtà.

Motivo n. 6: Ecosistema di supporto elaborato

Quando si tratta di supporto, è bello avere una gamma di opzioni, a partire dai forum della community e termina con un vero essere umano che lavora in loco sul tuo server. L'ecosistema online per i prodotti Microsoft è uno dei più grandi del settore. Dopotutto, Microsoft è stata fondata da Bill Gates, uno sviluppatore di software egli stesso, che ha visto l'ampia adozione da parte degli sviluppatori come la chiave per la proliferazione dei prodotti Microsoft. Ciò significava fornire a questi sviluppatori molto, molto supporto.

Microsoft è stata tra le prime a incoraggiare i propri dipendenti a bloggare sulla tecnologia su cui stavano lavorando e, mentre il resto del settore ha sicuramente recuperato terreno, la quantità e la qualità di video didattici, guide e articoli provenienti direttamente da Microsoft oggi è ancora molto impressionante. Questo livello di contenuti online di qualità è integrato da un gran numero di ecosistemi di supporto basati sulla comunità come StackOverflow, che non sono così coerenti quando si tratta di qualità dei contenuti, ma sono, tuttavia, molto più utili che no.

Infine, c'è sempre un'opzione per alzare il telefono e chiamare il supporto Microsoft. Raramente ho dovuto usarlo, ma ci sono state alcune emergenze di produzione quando gli sviluppatori Microsoft hanno analizzato i core dump ha salvato la giornata. La gamma di opzioni di supporto è chiaramente un fattore a favore per andare con lo stack Microsoft.

Motivo n. 7: Microsoft si attiene ai propri prodotti

Qualche anno fa, scegliere Microsoft Silverlight come front-end di un'applicazione sembrava una scelta valida, ma non è più così. Con la tendenza mobile in pieno svolgimento e i framework JavaScript che dominano lo spazio front-end, Silverlight non è più un'opzione fattibile; tuttavia, è ancora supportato da Microsoft fino al 2021. Microsoft si attiene alle sue armi, il che è positivo per quelli di noi che devono fare scelte tecnologiche senza avere una palla magica per dirci quale tendenza tecnologica dominerà il panorama del software in futuro. L'utilizzo dello stack Microsoft garantisce che tempo e denaro vengano investiti in una tecnologia che sarà supportata anche se perde il favore del settore.

Motivo n. 8: ombrello di Visual Studio

Dieci anni fa, trascorrevo circa il 50% del mio tempo lavorando in Visual Studio e circa il 50% in altri strumenti. Oggi, la divisione è in gran parte a favore di Visual Studio. La visione di Microsoft che Visual Studio sia una soluzione completa per l'hosting di IDE si sta concretizzando con molti prodotti Microsoft e non Microsoft che offrono un certo livello di integrazione con Visual Studio. Dallo sviluppo di database con SQL Server Data Tools alla scrittura di app per iPad e Android con Xamarin, Visual Studio offre un'esperienza di sviluppo familiare con un'interfaccia utente coerente. Lo stesso si può dire di lavorare con Microsoft Azure, una piattaforma cloud che comprende una varietà di servizi dall'hosting di database ai servizi mobili.

Visual Studio ha offuscato le complessità dell'infrastruttura cloud distribuita rendendo l'esperienza di sviluppo di applicazioni cloud coerente con quella di sviluppo di applicazioni non ospitate nel cloud. Tutti i pezzi sembrano combaciare bene sotto l'ombrello di Visual Studio, rendendo il processo di sviluppo complessivo molto efficiente.

Microsoft Stack - Il meglio di entrambi i mondi

Oggi ci sono molte più scelte per scrivere software di qualità rispetto a 10 anni fa. Questa è sicuramente una buona cosa perché la concorrenza costringe i grandi attori, come Google, Apple, Amazon e Microsoft, a continuare a innovare e a non accontentarsi. Mentre Microsoft è stata spinta dalla cima della montagna dall'evoluzione tecnologica dell'ultimo decennio, l'azienda ha dimostrato di essere disposta ad adattarsi ed è in sintonia con le realtà delle attuali tendenze tecnologiche. ASP.NET ha abbracciato altre tecnologie e metodologie, molte delle quali open source, con i Web Form originali che svaniscono nella storia. Il framework .NET continua ad evolversi, rompendo nuove frontiere con librerie per il multi-threading e l'elaborazione multi-core. Con l'imminente rilascio del 2015, il nucleo del framework sarà open source e portabile su piattaforme non Windows, il che rappresenta un passo avanti nella direzione dell'inclusività e della trasparenza.

Questi graditi miglioramenti provengono da un'azienda che dispone di processi consolidati per il rilascio di software testati, documentati e supportati. L'utilizzo dello stack Microsoft porta l'entusiasmo di lavorare con linguaggi e framework moderni, oltre alla stabilità di essere supportato da un gigante del software con decenni di esperienza nel settore dello sviluppo. Questo è il motivo per cui oggi raccomando lo stack Microsoft.