ITA | ENG
BLOG AND EMILI / Sviluppo web e hosting serverless. Quali opzioni per una digital agency?

Sviluppo web e hosting serverless. Quali opzioni per una digital agency?

Web development and hosting serverless

A developer journey: tra tecnologie e hosting

Il software ha bisogno di performance, sicurezza e un supporto tecnologico evoluto, librerie e utility per semplificare lo sviluppo, serve un IDE e i developer che ci possano lavorare. Molte tecnologie possono essere valide da questi punti di vista: Node.js e Python le prime che vengono in mente.

Linux, Docker, AWS serverless, open source, .NET, C#. Per alcuni può sembrare una contraddizione, per altri (noi?) è stata la soluzione ad un problema.

Linux e Docker

Non credo occorrano presentazioni. Sono il sistema operativo server più usato e il container engine più noto e trending tech nella developer survey Stack Overflow. Di fatto due standard del settore. 

AWS serverless

L’abbinamento Microsoft .NET e AWS può sembrare un po’ ardito, viene più facile pensare ad Azure. Se guardiamo all’andamento del mercato la scelta AWS non è così controcorrente. AWS ha innumerevoli servizi utili e nell’ampia scelta questi sicuramente meritano una menzione:

Tutti questi servizi combinati costruiscono una infrastruttura di hosting managed, scalabile e distribuita in grado di adattarsi alle più diverse esigenze a livello di performance, sicurezza e budget. 


Ti piacerebbe far parte di un team affiatato?

In AND EMILI stiamo cercando un WEB DEVELOPER

INVIACI IL TUO CV


 

Cosa ha a che fare con tutto questo .NET?

Riprendiamo l’elenco precedente:

  • Performance: è uno dei framework più veloci presenti sul mercato secondo il benchmark TechEmpower Web Framework. Come si posiziona il framework che usi adesso?

composite-framework-scores

  • Sicurezza: quante volte vi è capitato che un pacchetto NPM non fosse più supportato o presentasse delle vulnerabilità e vi costringesse ad un aggiornamento massivo del grafo delle dipendenze? A chi scrive, spesso. Molto spesso. .NET è un framework non una libreria. Il codice è realizzato, testato e manutenuto da Microsoft, una delle più importanti aziende tecnologiche del settore. Il supporto e il bug fixing è garantito sul lungo periodo così come la sua compatibilità in fase di aggiornamento.

  • Supporto tecnologico evoluto:
    - È multi-piattaforma: si lo è davvero, dal 2016 esegue nativamente su praticamente tutti i sistemi operativi
    - È feature rich: integra un numero elevato di funzionalità senza la necessità di usare librerie o framework esterni
    - Si integra nativamente e a livello di IDE con i più diffusi framework frontend (Javascript e WebAssembly)
    - È progettato per l’utilizzo a container e serverless

Più alcuni bonus:

  • È tra i framework più usati secondo la developer survey di Stack Overflow
  • I pattern di programmazione e le best practice sono parte fondamentale della sua struttura
  • Ha un IDE avanzato (Visual Studio) e uno più leggero e performante (Visual Studio Code) entrambi integrati con GitHub Copilot
  • È open source: dall’uscita di .NET Core 1, .NET è open source 
  • Nell’ambiente enterprise è molto utilizzato

Forse è una scelta controcorrente, ma se iniziate a usarlo ve ne potreste innamorare. Come abbiamo fatto noi.


Ti piacerebbe far parte di un team affiatato?

In AND EMILI stiamo cercando un WEB DEVELOPER

INVIACI IL TUO CV


 

Funziona per una digital agency?

Se puoi realizzare un sito web multipiattaforma, performante, scalabile, sicuro e gestirlo con una infrastruttura server moderna e agile la risposta probabilmente è sì.

E’ vero, non hai WordPress, ma esistono valide alternative, magari sottovalutate, e altre di livello enterprise. Nei prossimi articoli approfondiremo questo aspetto per chi da profano si affaccia al mondo dei CMS .NET.

Tanti siti, tante piattaforme magari complesse. 

Funzionano gli aggiornamenti? 
Per quanto riguarda l’aggiornamento (per fortuna) la tecnologia in questo caso ci aiuta e non ci ostacola. Ho un framework, la consistenza dell’aggiornamento è garantita dal fornitore del framework stesso e i breaking change sono documentati (udite udite, tutti assieme!). Noi abbiamo attraversato la migrazione di siti .NET Framework a .NET Core 2, poi 2.1, 2.2, 3, 3.1, 5, 6 e ora 7 senza incontrare problemi degni di nota (a parte il cambio di funzionamento di Entity Framework Core da 2.2 a 3, ma è stato un cambio positivo).

E per la produttività come faccio? Senza npm mi sento orfano
Sfruttando le capacità specifiche del framework è possibile realizzare una suite di strumenti di supporto allo sviluppo:

  • Architettura: applicazioni a layer, clean architecture
  • Infrastruttura: logging, monitoring, security, utility e estensioni
  • Gestione dell’accesso ai dati: pattern unit of work, repository, CQRS
  • Gestione dell’autenticazione e dei flussi di login e registrazione web e API: supporto agli standard OAuth, SAML2 e alla creazione e gestione di utenti locali con eventuali autenticazioni personalizzate
  • Sistema di generazione di immagini ottimizzate con distribuzione CDN (S3 e CloudFront)

Esistono anche ottime librerie open source come Entity Framwork Core, Dapper, ASP.NET Core Identity e OpenIddict e posso integrare strumenti affermati come Redis, RabbitMQ, MongoDB e altri.

Noi ci siamo spinti un po’ oltre:

  • Data editor UI: sistema di gestione anagrafica codeless. L’interfaccia utente, le query di creazione, aggiornamento ed eliminazione sono auto generate partendo da una configurazione. Hook vari, callback e personalizzazione la fanno da padrone. Come gestire 50 tabelle anagrafiche in pochi minuti con la giusta flessibilità. Può sembrare eccessivo detto così, però noi lo usiamo ogni giorno    
  • Landing Receiver: sistema a microservizi di generazione codeless per form embedded. Lo fanno anche altri ma spesso sono CRM, sono lenti e pesanti a livello di performance Google PageSpeed Insights e costano, anche tanto

Data editor UI e Landing Receiver credo meritino un approfondimento dedicato perché sono software dalle potenzialità non comuni.

Qual era il problema?

Se non era chiaro all’inizio, il problema è quello che tutti noi dev abbiamo prima o tardi affrontato. Devo realizzare un certo numero di progetti, devono essere veloci, sicuri, aggiornabili e devo poterli distribuire in modo agile per rispettare il time to market e le aspettative del cliente. 

In AND EMILI abbiamo trovato una risposta efficace, se vuoi approfondire altri dettagli dello sviluppo .NET e dell’integrazione con AWS, contattaci.


Ti piacerebbe far parte di un team affiatato?

In AND EMILI stiamo cercando un WEB DEVELOPER

INVIACI IL TUO CV