ASP.NET Core 2.0 è stato ufficialmente rilasciato e porta con se parecchie novità come le Razor Pages, template aggiornati e l'integrazione con Application Insights migliorata. In questa cercheremo capiremo la vera maturità di questo framework, e quanto questo rilascio sia importante per noi dev.
In questa sessione vedremo come uno sviluppatore WebForm possa essere velocemente produttivo (utilizzando le ultime versioni di ASP.NET Core) grazie a Blazor. Vedremo quindi cosa differenza un'applicazione ASP.NET Core, rispetto a quelle WebForm (.NET Framework) fino ad arrivare a comprendere perchè e come Blazor possa agevolare questa transizione.
Quindi una sessione non solo per chi è nuovo a Blazor, ma anche perchì ancora non ha migrato ad ASP.NET Core.
Non stiamo parlando di un ritorno a WebForm ma di un'evoluzione (o meglio) di un'alternativa al pattern MVC. Le Razor Pages possono essere un buon motore per smuovere le migrazioni di vecchie applicazioni, utilizzando un paradigma di pagina (vicino a quello che chi utilizza WebForm già conosce) ma con una visione e pulizia degna delle migliori applicazioni MVC .
Ecco che le Razor Pages si stanno ritagliano il loro spazio, ed in questa sessione cercheremo di affrontare i pro e contro del loro utilizzo, capendone al meglio i casi duso ideali.
In questa sessione faremo una panoramica a 360 gradi su Blazor, la nuovissima tecnologia Microsoft nata da una (geniale :-) idea di Steve Sanderson per lo sviluppo di applicazioni Web client basate su WebAssembly.
Nell'introduzione parlemermo brevemente di WebAssembly, spiegando di cosa si tratta e del perché questa tecnologia abbia tutte le premesse per portare uno dei più grandi "disruptive changes" nel modo di sviluppare applicazioni Web client. Passeremo poi a Blazor esaminandone prima gli aspetti architetturali e procedendo con un behind the scenes per svelare in che modo avviene la "magia" dell'interazione con il browser. Verranno poi presentate le feature che questa tecnologia offre (template project su VS, components, layouts, binding, dependency injection, hosting) sia attraverso slides che, di pari passo, con delle demo di un'applicazione funzionante realizzata in Blazor. Vedremo poi quali sono le problematiche legate a performance, deployment e distribuzione parlando delle possibili future ottimizzazioni. Infine chiuderemo con un confronto tra Blazor e i maggiori framework ora in uso per lo sviluppo di applicazioni Web client (Angular, Vue, Knockout, ecc.) e con alcune considerazioni sull'impatto che Blazor e tecnologie simili potrebbe avere a cascata per lo sviluppo Web futuro, in una sorta di "butterfly effect" nel mondo Web client.
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
Slide e codice lo potete trovare a questo link:
http://blog.dottor.net/post/2012/09/18/Codice-e-slide-della-sessione-Whats-New-in-ASPNET-45-and-Visual-Studio-2012.aspx
Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.
In questa sessione andremo in dettaglio sul come poter migliorare le nostre applicazioni ASP.NET dal punto delle vista delle performance: Come capire dove interventire? Cosa possiamo migliorare? A cosa dobbiamo prestare attenzione? E nel caso di un'applicazione esistente, dove possiamo intervenire per migliorarla ulteriormente?
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
Molte applicazione sono (ancora) sviluppate in WebForm e non possono essere convertite automaticamente ad ASP.NET Core. Una riscrittura completa in molti casi è impossibile o impensabile da attuare. In questa sessione vedremo come migrare in modo graduale queste tipologie di applicazioni verso ASP.NET Core, andando in dettaglio nelle varie problematiche che solitamente si possono presentare. La sessione deriva da un'esperienza reale, che ha permesso di conoscere (nel bene o nel male) le difficoltà che si nascondo in queste migrazioni.
Evento: https://www.xedotnet.org/eventi/one-day-enterprise-application/
Asp.NET MVC è un nuovo framework per lo sviluppo di applicazioni web alternativo al modello webform. Questo consente di utilizzare il pattern MVC per lo sviluppo di applicazioni Asp.NET, permettendo quindi una miglior separazione delle responsabilità che a sua volta porta ad una maggior manutenibilità, riusabilità e facilità nel testing.
La sessione illustrerà i motivi che hanno portato alla nascita di Asp.NET MVC e le sue caratteristiche fondamentali.
Agenda:
- Storia dei framework MS per lo sviluppo web
- Introduzione a Asp.NET MVC
- Vantaggi di Asp.NET MVC
- Il pattern MVC
- Hello MVC: DEMO
- Componenti di MVC: Routing, Controller, Model, View
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
Slide del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webAndrea Dottor
Una sessione alla scoperta delle grandi novità che ASP.NET 5 introduce. Questo nuovo aggiornamento del framework non porta solo un'evoluzione alla tecnologia che già conosciamo, ma porta importanti e radicali cambiamenti (una "rivoluzione" di molte cose che già conosciamo e utilizziamo) che dobbiamo essere pronti a sfruttare il prima possibile per dare una marcia in più alle nostre applicazioni. ASP.NET MVC 6, nuovo template di progetto, cross-platform.
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
Vue.js è un framework per creare interfacce utente estremamente performanti e che può essere introdotto progressivamente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk scoprirete come utilizzarlo con Delphi creando una soluzione frontend e backend ad elevate prestazioni.
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
"Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM" by Matteo Pagani.
Xamarin è una delle tecnologie più interessanti quando si parla di sviluppo cross-platform, in quanto permette di riutilizzare le proprie conoscenze di C# per realizzare applicazioni con le stesse feature e performance di un'applicazione nativa. Usare Xamarin, però, non significa solamente poter realizzare app Android e iOS in C#, ma anche e soprattutto non dover scrivere e mantenere codebase completamente diverse. In questa sessione vedremo come poter massimizzare il riutilizzo di codice tra le diverse versioni della nostra applicazioni, aiutandoci con il pattern MVVM.
Dal RenderFragment ai Generics, tips for Blazor developersAndrea Dottor
Sessione tenuta alla Blazor Conference 2021 del 13.04.2021.
(https://www.aspitalia.com/eventi/87/Blazor-Conference-2021-Online.aspx)
Una sessione dove verranno presentati una serie di tips per migliorare e facilitare la scrittura delle nostre applicazioni: da codice html dinamico, al miglioramento ed organizzazione dello stesso. Il tutto per poter sfruttare ogni bit che Blazor può dare. Dal RenderFragment ai Generics. Consigli che arrivano da esperienze reali
Codice: https://github.com/andreadottor/XE.Dottor.Demo.BlazorWebApp
Slide dell'evento Global Azure Bootcamp di Pordenone.
Il codice è disponibile su github: https://github.com/andreadottor/GlobalAzureBootcamp2016
In questo speech esploreremo le REST API più interessanti e curiose pubblicamente disponibili. Dopo una introduzione utile a fissare concetti di base e prerogative, vedremo come “consumarle” con Delphi costruendo accattivanti applicazioni client.
Il Microsoft .NET Framework è in continua evoluzione ed ha raggiunto la versione 4.0 accompagnato da moltissime novità. In questa sessione andremo in dettaglio per ciò che riguarda l'ultima versione di ASP.NET 4.0, ponendo il focus sulle nuove funzionalità e sui cambiamenti più importanti. Con esempi pratici vedremo come questa nuova versione agevolerà lo sviluppatore nel realizzare le proprie applicazioni. Maggiore controllo del codice prodotto, SEO, nuovi template project, Script Loader, Client Data Access e migliorie ai controlli esistenti, sono solo alcuni degli argomenti che verranno trattati.
What's New in ASP.NET 4.5 and Visual Studio 2012Andrea Dottor
Slide e codice lo potete trovare a questo link:
http://blog.dottor.net/post/2012/09/18/Codice-e-slide-della-sessione-Whats-New-in-ASPNET-45-and-Visual-Studio-2012.aspx
Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.
In questa sessione andremo in dettaglio sul come poter migliorare le nostre applicazioni ASP.NET dal punto delle vista delle performance: Come capire dove interventire? Cosa possiamo migliorare? A cosa dobbiamo prestare attenzione? E nel caso di un'applicazione esistente, dove possiamo intervenire per migliorarla ulteriormente?
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
Molte applicazione sono (ancora) sviluppate in WebForm e non possono essere convertite automaticamente ad ASP.NET Core. Una riscrittura completa in molti casi è impossibile o impensabile da attuare. In questa sessione vedremo come migrare in modo graduale queste tipologie di applicazioni verso ASP.NET Core, andando in dettaglio nelle varie problematiche che solitamente si possono presentare. La sessione deriva da un'esperienza reale, che ha permesso di conoscere (nel bene o nel male) le difficoltà che si nascondo in queste migrazioni.
Evento: https://www.xedotnet.org/eventi/one-day-enterprise-application/
Asp.NET MVC è un nuovo framework per lo sviluppo di applicazioni web alternativo al modello webform. Questo consente di utilizzare il pattern MVC per lo sviluppo di applicazioni Asp.NET, permettendo quindi una miglior separazione delle responsabilità che a sua volta porta ad una maggior manutenibilità, riusabilità e facilità nel testing.
La sessione illustrerà i motivi che hanno portato alla nascita di Asp.NET MVC e le sue caratteristiche fondamentali.
Agenda:
- Storia dei framework MS per lo sviluppo web
- Introduzione a Asp.NET MVC
- Vantaggi di Asp.NET MVC
- Il pattern MVC
- Hello MVC: DEMO
- Componenti di MVC: Routing, Controller, Model, View
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, PiacenzaMarco Breveglieri
Slide del seminario sull'uso di React con Delphi e confronto con altre tecnologie (es. ExtJS) per lo sviluppo Web, tenuto al Delphi Day 2016 a Piacenza.
I sorgenti sono disponibili qui:
https://github.com/marcobreveglieri/conferences/tree/master/2016/delphi_day_2016
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
ASP.NET 4.6 e ASP.NET 5...l'evoluzione del webAndrea Dottor
Una sessione alla scoperta delle grandi novità che ASP.NET 5 introduce. Questo nuovo aggiornamento del framework non porta solo un'evoluzione alla tecnologia che già conosciamo, ma porta importanti e radicali cambiamenti (una "rivoluzione" di molte cose che già conosciamo e utilizziamo) che dobbiamo essere pronti a sfruttare il prima possibile per dare una marcia in più alle nostre applicazioni. ASP.NET MVC 6, nuovo template di progetto, cross-platform.
Applicazioni Web ultra-performanti con Vue.js e DelphiMarco Breveglieri
Vue.js è un framework per creare interfacce utente estremamente performanti e che può essere introdotto progressivamente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk scoprirete come utilizzarlo con Delphi creando una soluzione frontend e backend ad elevate prestazioni.
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
"Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM" by Matteo Pagani.
Xamarin è una delle tecnologie più interessanti quando si parla di sviluppo cross-platform, in quanto permette di riutilizzare le proprie conoscenze di C# per realizzare applicazioni con le stesse feature e performance di un'applicazione nativa. Usare Xamarin, però, non significa solamente poter realizzare app Android e iOS in C#, ma anche e soprattutto non dover scrivere e mantenere codebase completamente diverse. In questa sessione vedremo come poter massimizzare il riutilizzo di codice tra le diverse versioni della nostra applicazioni, aiutandoci con il pattern MVVM.
Dal RenderFragment ai Generics, tips for Blazor developersAndrea Dottor
Sessione tenuta alla Blazor Conference 2021 del 13.04.2021.
(https://www.aspitalia.com/eventi/87/Blazor-Conference-2021-Online.aspx)
Una sessione dove verranno presentati una serie di tips per migliorare e facilitare la scrittura delle nostre applicazioni: da codice html dinamico, al miglioramento ed organizzazione dello stesso. Il tutto per poter sfruttare ogni bit che Blazor può dare. Dal RenderFragment ai Generics. Consigli che arrivano da esperienze reali
Codice: https://github.com/andreadottor/XE.Dottor.Demo.BlazorWebApp
Slide dell'evento Global Azure Bootcamp di Pordenone.
Il codice è disponibile su github: https://github.com/andreadottor/GlobalAzureBootcamp2016
In questo speech esploreremo le REST API più interessanti e curiose pubblicamente disponibili. Dopo una introduzione utile a fissare concetti di base e prerogative, vedremo come “consumarle” con Delphi costruendo accattivanti applicazioni client.
Il Microsoft .NET Framework è in continua evoluzione ed ha raggiunto la versione 4.0 accompagnato da moltissime novità. In questa sessione andremo in dettaglio per ciò che riguarda l'ultima versione di ASP.NET 4.0, ponendo il focus sulle nuove funzionalità e sui cambiamenti più importanti. Con esempi pratici vedremo come questa nuova versione agevolerà lo sviluppatore nel realizzare le proprie applicazioni. Maggiore controllo del codice prodotto, SEO, nuovi template project, Script Loader, Client Data Access e migliorie ai controlli esistenti, sono solo alcuni degli argomenti che verranno trattati.
ASP.NET MVC è un framework sviluppato da Microsoft che permette di sviluppare applicazioni web utilizzando il pattern Model-View-Controller. Questo pattern, e (in questa sessione) la sua implementazione realizzata da Microsoft, si propone di apportare alcuni benefici: Maggiore controllo del markup della pagina, URL più leggibili Facilità di integrazione con librerie AJAX, chiara separazione dei ruoli/responsabilità tra layer, facilitando i test e la manutenzione dell'applicazione, supporto per test-driven development. Nella sessione andremo in dettaglio nella versione 2 di ASP.NET MVC, e con esempi pratici daremo risposta alle domande più frequenti, e a molte altre. Quando si utilizza ASP.NET MVC? Come si utilizza ASP.NET MVC? Semplifica davvero la manutenzione dell'applicazione? E' realmente testabile? Cosa guadagno ad usare ASP.NET MVC?
We've all seen the big "macro" features in .NET, this presentation is to give praise to the "Little Wonders" of .NET -- those little items in the framework that make life as a developer that much easier!
A small presentation I developed that introduces lambda expressions and many of the common LINQ extension methods for a group of developers that were less familiar with these concepts.
Overview of ASP.NET
An ASP.NET Page
Server Controls
User Controls
Validation
Master Pages
Themes & skins
Page Cycle Events
Menu, Navigation & Sitemaps
Some cool new ASP.NET 2 Server Controls
NET Framework versione 4 include miglioramenti per ASP.NET 4 in aree mirate. Anche Visual Studio 2010 include miglioramenti e nuove funzionalità per ottimizzare lo sviluppo di risorse Web. In questa sessione verrà fornita una panoramica di numerose delle nuove funzionalità incluse nella nuova versione. Vedremo anche le novità per gli sviluppatori introdotte da Internet Explorer 9
Slide della sessione che ho tenuto alla Unconference del XE One Day:
http://www.xedotnet.org/eventi/one-day-performance-optimization/
Empower every Azure Function to achieve more!!Massimo Bonanni
The Azure Functions seem easy to use but what if our business scenario cannot be implemented using one of the "default" triggers or bindings? "Extension" is the keyword in this case! In this session, we see how to enhance our functions with custom triggers and custom bindings to make the most of the power of Serverless.
Session delivered at ServerlessDay Warsaw on 21/10/2021.
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
Hai la necessità di implementare un workflow o un integrazione tra servizi?
Ti serve scalabilità e non vuoi preoccuparti degli aspetti infrastrutturali?
Non sai da dove iniziare?
Inizia da questa sessione! Il serverless è la risposta per la scalabilità e l'astrazione infrastrutturale, ma per l'aspetto tecnologico puoi scegliere tra Durable Functions e Logic App. Questa sessione ti mostrerà pro e contro di entrambe le tecnologie fornendoti gli strumenti necessari per una scelta oculata.
Sessione del meetup #PitchOnline di #Coding del 21/07/2021
The document discusses using Durable Functions to manage state in Azure Functions. Durable Functions allow for adding state management, checkpoints, and restarts to address limitations of stateless Azure Functions. It describes Durable Function components like orchestrators and activities that can be used to build workflows. Examples are given of how Durable Functions can be used to implement patterns like function chaining, fan-out/fan-in, human interaction, and aggregation that are difficult to do with stateless functions. Durable Entities are also introduced as a way to define operations for reading and updating small pieces of state.
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
L'architettura serverless va sempre più di moda e innovative tecnologie come le Azure Functions ci consentono di implementarla facilmente. Come possiamo calare in questa realtà un prodotto consolidato come SQL Server che all'apparenza sembra non essere tagliato per questi scenari? In questa sessione vedremo come sfruttare SQL Server e l'estensibilità delle Azure Functions per costruire solutioni Serverless.
Sessione tenuta il 11/06/2021 a SQL Start 2021.
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
Sessione tenuta durante Azure Global Virtual 2021.
This document summarizes a presentation about stateful patterns in Azure Functions using Durable Functions. The presentation introduces Durable Functions as a way to add state management to Azure Functions. It discusses common stateful patterns like function chaining, fan-in/fan-out, and human interaction and how Durable Functions addresses issues with implementing these patterns with regular stateless functions through orchestrations, activities, and entities. The presentation concludes by emphasizing how Durable Functions solves concurrency issues but may not always be the right choice depending on requirements around latency.
Sessione tenuta a CodeGen 2021 il 13/02/2021
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
Session provided in community meetup #PitchOnline (SharpCoding community) on 21/01/2021.
Can I implement unit tests on my Azure Functions? How can I monitor my Azure Functions in a production environment? These are the questions that born into the head of the developer immediately after realizing that the Azure Functions can be a handy tool for designing a whole range of scenarios. In this session, you learn how to implement functions that are unit testable and which is the best approach to make them monitorable.
Empower every Azure Function to achieve more!!Massimo Bonanni
This document contains information from a presentation on Azure Functions including:
- An overview of Azure Functions and their pay-per-use model with instant scalability.
- Details on the anatomy of a function including triggers, bindings, and their associated classes.
- Explanations of the startup and runtime phases of functions and how triggers and bindings are configured.
- Recommendations to write efficient functions that avoid unnecessary resource usage.
- Links provided for additional documentation, code samples, and the speaker's contact information.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
The document discusses testing and monitoring Azure Functions. It explains that Azure Functions should be written to allow dependencies to be mocked or stubbed for testing. The document demonstrates how to make Azure Functions testable using constructor injection to substitute mock services. It also discusses using logging and custom metrics to monitor Azure Functions performance and errors when deployed, including built-in integration with Application Insights. Code samples and a live demo are provided.
Everything you always wanted to know about API Management (but were afraid to...Massimo Bonanni
Azure API Management is an Azure service that allows developers to implement a consistent and secure access layer to their APIs. It provides features like throttling to prevent DOS attacks, JWT token validation for security, and a developer portal for API documentation and testing. The key components of API Management include the API gateway, publisher portal, developer portal, and policies for pre/post processing requests. Products are used to surface APIs to developers through subscriptions.
Xmas Serverless Transformation: when the elf doesn’t scale!Massimo Bonanni
Babbo Natale è in difficoltà! E' noto che l'elfo non scala! Con l'approssimarsi del periodo natalizio, le letterine dei bimbi aumentano vertiginosamente e la gestione tradizionale presta il fianco. Babbo Natale non può pretendere che gli elfi lavorino più di quello che già fanno (il sindacato degli elfi è inflessibile) e non può delocalizzare la produzione perché si trova già in un posto sperduto! L'unica soluzione è ottimizzare e razionalizzare il processo sfruttando il cloud e l'approccio serverless: Xmas Serverless Transformation ovvero come rispondere ai picchi di carico senza sfruttare gli elfi! Slide della sessione tenuta all'evento Xmas Dev 2018.
This document discusses updates to Azure Functions runtime including .NET Core 2.1 support, new extensibility model, and tooling updates. It also describes Durable Functions going GA and improvements to consumption plans, app service plans, and DevOps integration. The document provides tips for optimizing function performance such as avoiding long running functions and writing stateless functions. It concludes by thanking the audience and providing contact information.
This document discusses the Service Fabric reliable actor model. It begins by explaining the origins of the actor model in computer science and how it relates to concurrency and message passing. It then describes how Service Fabric implements the reliable actor pattern, including how actors are represented as .NET/Java classes, have reliable state storage, and lifecycle management. The document discusses architecture details like the actor service and runtime. It also covers topics like partitioning, concurrency handling, reentrancy, reminders, and when to use the actor model.
Testing a Service Fabric solution and live happy!!Massimo Bonanni
This document discusses testing Service Fabric solutions. It emphasizes the importance of unit testing microservices to ensure reliability and stability. It identifies three main obstacles to unit testing microservices - the Service Fabric platform, external dependencies, and other microservices. It proposes solutions such as mocking the platform, abstracting proxies, and creating layers of indirection to overcome these obstacles. The document also discusses chaos testing to evaluate how solutions handle errors and complex state transitions in production-like conditions.
This document provides an introduction to the actor model in Microsoft Service Fabric. It discusses key concepts of actors like message passing, state management, and concurrency. Actors are designed for high scalability and can distribute work across a cluster of machines. The document recommends understanding if the actor model fits one's requirements before building an application with it. It also provides some best practices and limitations to keep in mind for actor development.
2. Web@Work
Agenda
Moduli ed Handler asincroni
Lazy Request validation
Anti-Cross Site Scripting
Bundling e Minification
Data Control tipizzati e Model Binding
Unobtrusive validation
…..dulcis in fundo
3. Moduli e Handler asincroni: Web@Work
perché?
Ogni chiamata ad una
risorsa Web è gestita da un
thread.
Il thread è occupato fino a
che la richiesta non è
servita.
Il numero di thread a
disposizione dell’application
pool è limitato.
Le performance possono
degradare rapidamente
all’aumentare delle richieste.
4. Web@Work
Moduli asincroni
In un modulo
asincrono il thread che
prende in carico la
richiesta non è detto
sia il thread che la
porta a compimento.
In questo modo i
thread vengono presto
rilasciati e la scalabilità
migliore
5. Web@Work
Moduli asincroni
La chiave di volta per ottenere l’asincronicità
dei moduli è l’introduzione della parola
chiave Async e dell’operatore Await.
Si realizza un normale HttpModule
ASP.NET e si utilizza la
EventHandlerAsyncHelper per la
sottoscrizione degli eventi.
6. Web@Work
Handler asincroni
Anche per gli Handler vale il
discorso fatto per i Moduli.
Se liberiamo il thread che ha
in carico la richiesta
dell’handler, otteniamo
scalabilità!!!
7. Web@Work
Handler asincroni
Per implementare un Handler asincrono si
utilizza la classe base
HttpTaskAsyncHandler anziché
implementare l’interfaccia IHttpHandler.
Eseguiamo l’override del metodo
ProcessRequestAsync (che, guarda caso
ritorna un task ) ed il gioco è fatto!
9. Web@Work
Lazy Request Validation
ASP.NET verifica header, forms, querystring e
cookie ad ogni richiesta.
Se viene trovato un contenuto potenzialmente
pericoloso…….
10. Web@Work
Lazy Request Validation
ASP.NET 4.5 introduce la Lazy Request
Validation:
• Si attiva nel web.config:
<httpRuntime requestValidationMode="4.5" />
• ASP.NET controlla i dati solo quando effettivamente li
richiediamo.
• Request.Form("ID") non fa scattare il controllo su tutti i valori della
collection Form
• Da usare con cautela, se abusato può provocare catastrofi!!!
12. Web@Work
Anti-Cross Site Scripting (AntiXSS)
ASP.NET 4.5 integra nativamente la libreria
Anti-Cross Site Scripting (AntiXSS)
Il Cross Site Scripting è una vulnerabilità
che si può riscontrare nei siti web e che
favorisce gli attacchi in cui si inietta del
codice client-side pericoloso.
La libreria AntiXSS aiuta nello scongiurare la
vulnerabilità da Cross Site Scripting
13. Web@Work
Anti-Cross Site Scripting (AntiXSS)
La libreria non è attiva di default (è attiva nei
nuovi progetti) e si può attivare con
<httpRuntime
encoderType="System.Web.Security.AntiXss.AntiXs
sEncoder" />
Mette a disposizione una serie di metodi per
encodare stringhe per diversi ambiti (HTML,
CSS, Url, XML, etc., etc.,
15. Web@Work
Bundling e Minification
Una pagina web può avere diversi file CSS
e Javascript.
Ogni file è una richiesta al server.
La pagina non può essere renderizzata fino
a che non sono disponibili tutti i file.
Il Bundling consente di combinare assieme
più files in un’unica richiesta.
16. Web@Work
Bundling e Minification
Un file CSS o Javascript, oltre che
informazioni utili allo scopo (classi di stile e
istruzioni) contiene caratteri inutili (spazi,
ritorni a capo, etc., etc.) che occupano
spazio e banda.
La funzione di Minification compatta il
contenuto di un file togliendo ciò che non
serve allo scopo.
17. Web@Work
Bundling e Minification
Bundling e Minification assieme riducono
il numero di richieste al server e la quantità
di dati che transitano rendendo più veloce la
risposta del browser
Le due funzionalità sono presenti, «di
serie», in ASP.NET 4.5 (sia Web Form che
MVC).
18. Web@Work
Bundling e Minification
Le classi deputate alle funzionalità di
Bundling e Minification sono contenute
nell’assembly Microsoft.Web.Optimization.dll
e disponibili tramite NuGet.
20. Web@Work
Data Control tipizzati
No More <%#Eval("ID")%> !!!!
Le stringhe vanno evitate come
la peste perché eventuali errori
appaiono solo a runtime!!!
21. Web@Work
Data Control tipizzati
Nuovi controlli tipizzati:
<asp:Repeater ModelType="Customer"…>
<ItemTemplate>
<%#Item.ID%>
</ItemTemplate>
</asp:Repeater>
Nel binding Two-Way usiamo BindItem
anziché Item.
22. Web@Work
Model Binding
E’ stato introdotto il concetto di Model
Binding:
• possiamo legare la nostra Web Form ad un
modello (in stile MVC).
Il model binding lavora con IQueryable(Of T)
• Ordinamento e paginazione
• Se si usa EF, viene generata ad hoc la query
24. Web@Work
Unobtrusive validation
ASP.NET 4.5 introduce i validator
unobtrusive stile MVC anche per le Web
Form.
Il javascript generato dai validatori ASP.NET
≤4.0 non è mai stato aggiornato ed è
decisamente vetusto!!
Nella nuova versione meno javascript da
scaricare!!!
25. Web@Work
Unobtrusive validation
I nuovi validator fanno uso degli attributi custom HTML
"data-".
Nei progetti ASP.NET 4.5 vengono sempre utilizzati i
nuovi validatori.
Nei progetti ASP.NET <4.5, si attivano con:
• Globalmente, nel web.config:
<add name="ValidationSettings:UnobtrusiveValidationMode" value="WebForms" />
• Sulla singola pagina impostando la proprietà
Page.UnobtrusiveValidationMode su
UnobtrusiveValidationMode.WebForm
27. Web@Work
Dulcis in fundo
I controlli nativi HTML5 (ad esempio il <video>)
hanno la controparte server
Il controllo TextBox ha una proprietà TextMode
per gestire i nuovi tipi di input HTML5:
<asp:TextBox runat="server" TextMode="Email" />
Lo schema di default di una pagina creata con
VS è quello di HTML5:
<!DOCTYPE html>