Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
Selenium framework: Selenium è un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
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.
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
Kivy Python Framework - di Gioele GaggioGiuneco S.r.l
Un framework open-source per realizzare il sogno di ogni pythonista: "usare solo Python". Un'avventura nella progettazione di applicazioni cross platform e una analisi di cosa è in grado di offrirci il mondo open-source.
El deporte de_orientacion_en_el_ambito_educativoalonsocr23
El documento describe las posibilidades didácticas del uso del gimnasio para la enseñanza del deporte de orientación en el ámbito educativo. Propone una serie de actividades de iniciación que tienen como objetivo desarrollar las habilidades básicas de orientar el mapa y relacionar elementos del mapa con el terreno. Se explican consideraciones como la elaboración de un mapa del gimnasio, la simbología a utilizar y las marcas para representar salida, controles y meta. El objetivo es ofrecer al docente una estructura de
This document provides election results from Toli Toli Regency in Central Sulawesi Province. It lists the 15 political parties that participated in the elections and the top candidates from each party. The document also shows the total votes received by each party and candidate rankings. The United Development Party candidate received the most votes at 1,259 votes. In total across all parties, there were approximately 35,000 votes counted.
Este documento describe las 8 competencias básicas de la Educación Secundaria Obligatoria (ESO) en España y cómo se adquieren a través de tareas específicas en diferentes áreas, incluyendo la Educación Física. Se proporcionan ejemplos concretos de tareas que los alumnos podrían realizar en Educación Física para desarrollar cada competencia. El documento fue resumido por un grupo de 5 estudiantes.
Este documento proporciona instrucciones para instalar y configurar WordPress utilizando el servidor local XAMPP en Windows. Se instala XAMPP y se crea una base de datos y un usuario en phpMyAdmin. Luego, se descarga e instala WordPress, configurando el archivo wp-config.php para conectarse a la base de datos. Finalmente, se crean usuarios de muestra en WordPress con diferentes perfiles para probar la instalación.
La marcha del sindicato SCI Nro. 02 comenzó en Providencia y reunió a más socios de los esperados. Los manifestantes recibieron materiales de apoyo y marcharon hacia las oficinas de SCI, donde la policía y el general en jefe estuvieron presentes sin hacer comentarios.
Las redes sociales permiten la comunicación global en tiempo real de forma colaborativa pero también plantean riesgos como la exposición de datos personales y la adicción a ellas, además de que en ocasiones se falsifican personalidades.
Este documento describe los pasos para instalar PrestaShop, una tienda virtual, en un servidor local usando XAMPP. Inicialmente se explica cómo descargar e instalar XAMPP y PrestaShop, y luego cómo crear una base de datos e usuario en MySQL para PrestaShop y completar la instalación de la tienda.
La Universidad Popular de Calasparra ofrece una amplia gama de cursos y talleres durante el año 2012-2013 para promover el aprendizaje permanente de adultos. Los cursos cubren áreas como idiomas, artes, cocina, informática y educación para adultos. Los interesados pueden matricularse del 24 de septiembre al 1 de octubre para cursos que comienzan en octubre.
Ifma debat edwin de ceukelaire_integraalplannen_realty_13-05-14Muriel Walter
Debatnamiddag IFMA 13/05/14 - De toekomst van FM & Real Estate 13/05/14.
Een integraalplan is een beleidsinstrument voor een bepaalde regio, bijvoorbeeld één of meer scholengroepen. Hierin wordt een strategie geformuleerd voor het onderwijs van de toekomst, met de bijbehorende budgetten en projecten voor alle betrokken onderwijs-instellingen en schooldomeinen.
El documento presenta 10 reglas de seguridad e higiene para el uso del equipo de cómputo en una sala de clases. Estas reglas incluyen limpiar los zapatos y manos antes de ingresar, limpiar la computadora y mesa asignada con una franela, encender y apagar correctamente los equipos al inicio y final de cada turno, y mantener orden y disciplina en la sala.
El sindicato SCI Nro. 02 está comenzando una huelga. Se están siguiendo las primeras indicaciones de los directores para preparar lienzos y grupos de choque.
Este documento presenta el reglamento de un Centro Municipal de Atención a la Infancia en Calasparra (Murcia). El reglamento establece los derechos y deberes de los niños, padres y personal. También describe las normas de funcionamiento del centro, incluyendo las responsabilidades del director y educadores, así como normas de higiene. El objetivo del centro es proporcionar un ambiente estimulante para favorecer el desarrollo integral de los niños de 0 a 3 años.
El documento define una página web como un documento electrónico accesible a través de un navegador que contiene información generalmente en formato HTML. Explica que las primeras páginas web fueron creadas en 1991 por el CERN y estaban alojadas en su servidor. También menciona que los programas más utilizados para crear páginas web incluyen editores HTML, programas de diseño como Dreamweaver y programas de programación.
In questa serata cercheremo di capire perchè Blazor ha riscosso così tanto successo, e lo faremo analizzando casi presi da applicazioni reali dove questa tecnologia è stata introdotta, così da capirne meglio le potenzialità (ma anche le eventuali criticità).
Come di consuetudine, faremo poi un confronto, così da condividere i vari punti di vista.
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptxEduardCapanu
React evolve velocemente con strumenti come Vite.js, Remix, e Next.js, richiedendo aggiornamenti continui delle competenze per gestire nuovi progetti con successo.
Che tu abbia già esperienza con React o che sia alle prime armi, questo talk ti offrirà una nuova prospettiva sulle ultime tendenze di questo framework e ti mostrerà le best practice per la creazione e la configurazione di un progetto.
Esploreremo le ultime innovazioni di React e scopriremo come sfruttare efficacemente le nuove funzionalità per lanciare un nuovo progetto senza intoppi, dalla scelta del framework e della tecnologia, alla configurazione iniziale più adatta.
Vedremo tutti i passaggi chiave per realizzare un progetto React in modo efficiente e impareremo, tra le altre cose, che non sempre ‘create-react-app’ è l’opzione migliore per iniziare un nuovo progetto.
Event link: https://thecmmbay.com/eventi/impara-react-sfruttando-le-tecnologie-piu-recenti-r97r9y7l6
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
La recente affermazione in ambito web delle applicazioni rich basate su HTML5 e Javascript è diventato sorgente di una serie di librerie innovative e di strumenti che, se usati correttamente, possono semplificare enormemente lo sviluppo. In questa sessione sarà illustrato come sfruttare Typescript, in concomitanza con Angular e Bootstrap per realizzare applicazioni che sfruttino al massimo le possibilità dei browser e diano un feedback il più possibile simile alle applicazioni desktop.
Verrà illustrato un caso pratico di modifica di un sito web, su tecnologia ASP.NET 1.1, completo ma non accessibile: obiettivo del tutorial è quello di ottenere in tempi brevi una versione accessibile dello stesso sito.
ASP.NET MVC è una piattaforma aperta costruita come un puzzle di componenti. Per personalizzare il comportamento dei componenti interni del sistema è quindi sufficiente rimuovere uno dei tasselli e sostituirlo con uno scritto da noi. Un'operazione resa semplice ed immediata dall'interfaccia Dependency Resolver.
E se vi chiedessi:
Cosa lega le ultime tendenze del cloud alla programmazione degli anni 80?
Quali sono le cose realmente importanti da tenere a mente quando si realizza un'applicazione?
Qual'è la strategia migliore per "inseguire professionalmente" le novità e non diventare rapidamente "obsoleto"?
Cosa si intende per "Pensiero Analogico e Azione Digitale"?
Questo e altro nel nuovo seminario di Pasquale Camastra (che si terrà presso la nostra sede il 14/09/2017 alle ore 17:30), che, questa volta nelle vesti di Evolutionary Architect, racconterà come affrontare le nuovissime tendenze delle Architetture Applicative in Cloud con lo spirito pionieristico di chi ha conosciuto l'informatica grazie al Commodor 64
ARCHITETTURA DI UN'APPLICAZIONE SCALABILEDotNetCampus
Questa sessione tratterà delle implementazioni di architetture robuste e scalabili, in scenari di sviluppo applicativi rientranti nella tipologia dei Software as a Service. In particolare vedremo come accopiare le feature e le necessità del SaaS con servizi propri presenti su Azure; con focus su web, servizi mobili, data, e notification.
Dopo una breve introduzione dei concetti di base legati all'Internet of Things, durante questa sessione si fornirà una panoramica degli strumenti che Microsoft mette a diposizione degli sviluppatori per creare le proprie soluzioni IoT: Windows 10 for IoT e alcuni servizi di Azure quali Event Hubs e Stream Analytics. Si utilizzerà un semplice esempio di telemetria per mostrare la realizzazione pratica di uno scenario end-to-end per la trasformazione dei dati provenienti da un sensore in informazioni utili per effettuare analisi e/o prendere decisioni.
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
70-534: ARCHITECTING MICROSOFT AZURE SOLUTIONSDotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
This document outlines the topics covered in the Microsoft 70-483 exam: Programming in C#. The exam focuses on managing program flow (25%), creating and using types (24%), debugging applications and implementing security (25%), and implementing data access (26%). It provides an overview of the key concepts tested under each objective area, such as multithreading, generics, reflection, input validation, encryption, debugging tools, file I/O, LINQ, and data serialization.
DSTORIE DALLA TRINCEA: TEAM FOUNDATION SERVER IN CASI LIMITE E NON SOLO...DotNetCampus
Amministrare Team Foundation Server può diventare un lavoro a tempo pieno, viste le complessità che può raggiungere. In questa sessione vedremo una raccolta di casi reali - basati sull'esperienza diretta - spaziando dalle attività più comuni fino alle situazioni estreme di una grande infrastruttura, quali strumenti utilizzare e soprattutto quali sono le best practice da tenere in considerazione.
Cosa ci aspetta in Visual Studio 2015 e Team Foundation Server 2015? La nuova versione della piattaforma di ALM e' in arrivo, con molte nuove funzionalita' per sviluppatori e non. In questa sessione faremo una panoramica di cio' che ci arrivera'a con la nuova release, con tutte le novita' per sviluppo, metodologie e DevOps.
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
PREDICT THE FUTURE , MACHINE LEARNING & BIG DATADotNetCampus
Scopri come utilizzare Azure Machine Learning, un servizio cloud che consente alle aziende, università, centri di ricerca e sviluppatori di incorporare e sfrutturare nelle loro applicazioni funzionalità di apprendimento automatico e analisi predittiva su enormi set di dati. Tramite Azure ML Studio possiamo creare, testare, attuare e gestire soluzioni di analisi predittiva e apprendimento automatico nel cloud tramite un qualunque web browser. Durante la sessione si darà un saggio attraverso un esempio di analisi predittiva sul Flight Delay.
DESKTOP AND CLIENT VIRTUALIZATION: NEW WORKSTYLES WITH MICROSOFT VDIDotNetCampus
In questa sessione verrà mostrato in che modo la soluzione Microsoft per la VDI (Virtual Desktop Infrastructure) e la virtualizzazione delle applicazioni con App-V ci aiutano a creare una nuova modalità di lavoro, per un’impresa efficiente e al passo coi tempi! La gestione dinamica dei desktop e delle applicazioni velocizza e ottimizza l’infrastruttura IT, permettendo così di rispondere in maniera agile alle mutevoli esigenze aziendali.
FROM ON-PREMISE TO THE HYBRID CLOUD WITH MICROSOFT AZUREDotNetCampus
L’ Infrastructure as a Service è la possibilità di creare macchine virtuali nel Cloud, senza dover affrontare i costi legati all'acquisto di nuovo hardware, con il vantaggio della flessibilità e del Pay-as-Use. Durante questa sessione vedremo come creare le Virtual Machine su Microsoft Azure, come gestirle e come metterle in comunicazione con la propria infrastruttura. Creeremo quindi un Hybrid Cloud e ne valuteremo tutti i vantaggi.
SharePoint 2016 includes improvements to management, performance and reliability, and cloud accelerated experiences. Management is improved with the new MinRole system that consolidates services onto fewer servers. Performance is improved through increased thresholds for lists, libraries, and search as well as faster site creation. Cloud accelerated experiences include hybrid search capabilities. Some features like InfoPath and workflows remain unchanged, while User Profile Sync and single server farms are removed.
Di progetti fatti con Arduino se ne sono visti tanti, e tanti se ne continuano a vedere. Se ne vedono un po' meno con Netduino, il microcontrollore che gira con il .NET Micro Framework. In questa sessione vedremo come il nostro giocattolino può diventare un dispositivo di input per il nostro computer. Costruiremo un semplice circuito, e useremo Netduino per raccogliere i dati dall'ambiente esterno e inviarli ad un'applicazione Windows Store.
Microsoft Band e' uno dei piu' innovativi e cross platform smartwatch sul mercato. Recentemente sono stati rilasciati SDK per le principali piattaforme mobile. In questa sessione vedremo come interagire con lo smartwatch da applicazioni Windows Phone e Windows Store.
INTERFACCE GRAFICHE CON UNITY3D 4.6: IL GIOCO NON BASTA!DotNetCampus
This document provides an overview and demonstration of Unity's UI system and UGUI components. It begins with an introduction by Alessandro Pozone and outlines the topics to be covered, including the Canvas, Rect Transforms, pivots, slice scaling, the UIManager, and animating UI elements. Code examples and screenshots are provided to demonstrate working with buttons, images, and animations in Unity's UI system.
This document contains an agenda for a presentation on using C++ for Windows Phone development. The agenda includes sections on the Windows Phone C++ support, C++ 11 standard features, why use C++, where C++ can be used, reasons to stay on or upgrade from Silverlight, an introduction to the Windows Runtime, and a demo of sharing C++ code. The presentation will cover the C++ support and tools in Visual Studio, when and why to use C++, and how C++ code can interface with and be shared across Windows and Windows Phone applications.
This document provides an overview and demonstration of Azure Notification Hub. It discusses how Notification Hub can be used to send push notifications to multiple platforms from any backend system. It also covers how to create a notification hub in Azure, configure an app to use the hub, and send notifications. Key features highlighted include token management, scaling, tag-based routing, and support for platforms like Windows, iOS, and Android. The presentation concludes with questions and answers.
SFRUTTARE I MICROSOFT AZURE MOBILE SERVICES CON XAMARIN.FORMSDotNetCampus
I Mobile Services di Microsoft Azure rappresentano la soluzione cloud più completa e pratica per gestire diversi scenari, dal login nell'applicazione fino alla gestione dei dati in cloud. Per integrarli nelle nostre applicazioni Xamarin.Forms, però, sono necessari alcuni accorgimenti. Mostreremo come collegare applicazioni Xamarin.Forms ai Mobile Services, gestire le tabelle dati, validare e modificare i dati con gli script, gestire l'autenticazione degli utenti con i Mobile Services.
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOTDotNetCampus
Windows 10 è la piattaforma alla base di tutte le tecnologie presenti e future di Microsoft, nella quale giocano un ruolo fondamentale le Universal Windows app. Nel corso di questa sessione vedremo come sviluppare un'applicazione in grado di girare su computer, telefoni, tablet, console e nel mondo IOT e come ottimizzarle per massimizzare le similitudini e gestire le differenze.
UNIVERSAL APP IN TUTTE LE SALSE: PHONE, TABLET, PC, XBOX E IOT
Cert03 70-486 developing asp.net mvc 4 web applications
1. Template designed by
cert-path
70-486: Developing ASP.NET MVC 4
Web Applications
Template designed by
Michele Aponte
Presidente DotNetCampania - MVP ASP.NET/IIS
CEO & Co-Founder Blexin Srls
michele.aponte@dotnetcampania.org
http://dotnetcampania.org/blogs/michele
3. Template designed by
• Esame 480: Programming in HTML5 with JavaScript
and CSS3
• Esame 486: Developing ASP.NET MVC 4 Web
Applications
• Esame 487: Developing Windows Azure and Web
Services
• (ve ne parlerà Roberto Freato nella sessione delle 13.20)
MCSD: Web Applications
4. Template designed by
• Design the application architecture (15-20%)
• Design the user experience (20-25%)
• Develop the user experience (15-20%)
• Troubleshoot and debug web applications (20-25%)
• Design and implement security (20-25%)
http://www.microsoft.com/learning/en-us/exam-70-486.aspx
agenda
6. Template designed by
Asp.Net MVC vi fornisce una naturale propensione alla
separazione delle responsabilità:
• La user interface viene definita nelle VIEW
• Le richieste dell’utente vengono gestite dalle ACTION dei
CONTROLLER
• La logica business viene gestista dal MODEL dell’applicazione
A seconda dei requisiti che avete decidete se gestire il risultato
di una richiesta client-side o server-side
Plan the application layers
7. Template designed by
Se avete requisiti di scalabilità scegliete tra una soluzione on-
premise, on-cloud o ibrida
• Per gestire efficacemente un alto numero di richieste potreste
avere più macchine in load balancing a rispondere agli utenti
• La gestione della sessione, nativamente in-process, in questi casi va configurata per essere
indipendente dalla macchina che sta servendo la richiesta:
• Database
• State Server
• Cache Distribuita
• Lo stesso vale per le risorse (immagini, file, ecc.): lo storage non deve essere locale alla
singola macchina
Design a distributed application
8. Template designed by
Se decidiamo di ospitare la nostra applicazione web in un cloud
service, possiamo intervenire in alcuni punti del ciclo di vita di
tale elemento
• OnStart()
• Run()
• StartupTask
Design and implement the Azure role life cycle
9. Template designed by
Http è un protocollo stateless, sta a noi utilizzare meccanismi di gestione dello
stato:
• Cookie
• Local storage
• Query string
• ViewState
• Session
Potete configurare da web.config la vostra strategia e usare provider custom per
favorire la scalabilità.
Configure state management
10. Template designed by
Per migliorare le performance dell’applicazione è possibile
implementare varie strategie di caching
• Output caching
• Data caching
• Http caching
• Azure caching
Design a caching strategy
11. Template designed by
In alcune circostanza può essere utile stabilire una connessione bidirezionale
tra client e server, in questo caso possiamo usare le Web Socket
• Upload di grandi quantità di dati in maniera asincrona (long-running
data transfer)
• Web games
• Qualsiasi esigenza di comunicazione bidirezionale in real-time
Ovviamente Web Socket deve essere supportato sia dal browser che dal
server, in alternativa si possono utilizzare anche tecniche come il long
polling. Se si vuole utilizzare una API che astrae al programmatore la tecnica
di comunicazione utilizzata è possibile utilizzare SignalR.
Design and implement a Web Socket strategy
12. Template designed by
Quando una richiesta arriva al nostro server questa viene processata da più
moduli HTTP dopodichè affidata a un singolo HTTP Handler
• Creando un modulo HTTP possiamo inserirci nella pipeline di IIS e fornire
comportamenti personalizzati nella gestione delle richieste
• Implementiamo gli eventi Init(HttpApplication) e Dispose() di IHttpModule
• Eventualmente gestiamo gli altri eventi del ciclo di vita del modulo
• Aggiungiamo l’handler alla pipeline da web.config (sezione <HttpModules>)
• Creando un event handler possiamo fornire il codice da eseguire in
risposta ad una particolare richiesta:
• Implementiamo l’evento ProcessRequest(HttpContext) e la proprietà IsReusable di IHttpHAndler
• Aggiungiamo l’handler al web.config (sezione <HttpHandlers>)
Design HTTP modules and handlers
14. Template designed by
La definizione della user interface di un’applicazione web è costituita
da markup HTML, stili CSS e codice Javascript
• E’ possibile utilizzare media query (sia da CSS che da Javascript)
per adattare la UI allo spazio a disposizione
• L’eleborazione dinamica del DOM mediante javascript (e/o
jQuery) permette di aggiornare parti della pagina e
aggiungere/rimuovere classi CSS
• Framework come bootstrap semplificano la definizione della UI
delle applicazione web
Apply the user interface design for a web application
15. Template designed by
Per ottimizzare il traffico tra client e server ed evitare richieste
inutili al server è possibile utilizzare framework javascript e
plugin
• Validazione client side con jQuery unubontrusive validation
• Rendering parziale con Ajax
• Elaborazione del DOM con jQuery
Design and implement UI behavior
16. Template designed by
In MVC è possibile diminuire la complessità e favorire il riutilizzo
di parti di view:
• Partial View
• Layout e MasterPage
• Aspx e Razor View Engine
Compose the UI layout of an application
17. Template designed by
Garantire la compatibilità cross-browser è spesso un requisito
implicito delle applicazioni web:
• Verificare a run-time le feature disponibili del browser
• Usare proprietà CSS specifiche del vendor
• Broswer desktop e browser mobile
Enhance application behavior and style based on browser
feature detection
18. Template designed by
Per migliorare l’esperienza utente, molto diversa tra desktop e
mobile, possiamo adottare diverse strategie:
• Responsive design (Html5, CSS3, Javascript)
• Pagine diverse per dispositivi diversi (Display Modes)
• Framework per il mobile (jQuery Mobile)
Plan an adaptive UI layout
20. Template designed by
Il successo di un’applicazione web può dipendere fortemente da
come è indicizzata dai motori di ricerca:
• Usare tag semantici (HTML5) per dare significato ai contenuti
• Attributi ARIA per l’accessibilità
• Utilizzare gli strumenti di Visul Studio per verificare la
correttezza dell’HTML generato
Plan for search engine optimization and accessibility
21. Template designed by
Applicazioni che hanno un mercato internazionale (sul web è
molto frequente ) hanno necessità di essere
internazionalizzate:
• File di risorse
• Impostazione della culture corrente server side
• Impostazione della culture corrente client side
Plan and implement globalization and localization
22. Template designed by
In rispetto del principio di singola responsabilità in MVC potete
utilizzare «attributi» speciali per sollevare le action da alcune
funzionalità necessarie:
• Action Filters (Authorize, HandleError,
ValidateAntiForgeryToken, ecc.)
• Applicabili sulla singola action, sul controller o globalmente (Global Filters)
• Action Results (ViewResult, JsonResult, ecc.)
• Model Bindings
Design and implement MVC controllers and actions
23. Template designed by
Asp.Net MVC basa la sua configurazione su convenzioni. L’individuazione
del controller, la action e la view con cui rispondere ad una richiesta ad
esempio è basata sulla regola di routing di default. Il routing è un
componente importantissimo del framework e altamente personalizzabile:
• Regole di routing per specifici URL
• Route Constraints
• Custom route parameters
E’ possibile inoltre definire Aree specifiche dell’applicazione, per suddividere
una singola applicazione in più sezioni funzionali che rispondono a
particolare URL, come http://www.dominio.com/Admin/News/Details/1
Design and implement routes
24. Template designed by
Asp.Net MVC è un framework fortemente estendibile:
• Action Filters Custom
• Action Results Custom
• Controller Factory
• Model Binders Custom
• View Engines
Control application behavior by using MVC extensibility points
25. Template designed by
Lo scambio dati tra server è client è uno degli aspetti più
importanti da curare per migliorare le performance e la
responsività delle applicazioni web
• Bundles
• Minification
• Uso di CDN
Reduce network bandwidth
27. Template designed by
Avete vari strumenti a disposizione per individure problemi di
funzionamento e performance della vostra applicazione:
• Tracing
• Logging
• Debugging
• Intellitrace
• Code Contracts
• Performance Monitor
Prevent and troubleshoot runtime issues
28. Template designed by
Una applicazione ben sviluppata deve avere una buona
strategia di gestione delle eccezioni
• Gestione delle eccezioni tra layer applicativi diversi
• Pagine di errore custom
• Global.asax
• Http Handler Custom
• Web.config
Design an exception handling strategy
29. Template designed by
Asp.Net MVC favorisce la creazione di test automatici:
• Creare un progetto di unit test
• Mockare le dipendenze
• Istanziare un controller
• Invocare una action
• Fare una asserzione
• Eseguire i test
E’ inoltre possibile utilizzare i web tests e browser link
Test a web application
30. Template designed by
Quando hostiamo la nostra applicazione su Azure possiamo
debuggarla utilizzando:
• Azure Diagnostic API
• Event log, performance counter, crush dumps
• Intellitrace e RDP
• Remote debugging
• Server Explorer
Debug an Azure application
32. Template designed by
Asp.Net supporta diversi tipi di autenticazione
• Form
• Windows
• Custom
Il framework fornisce una API, chiamata Membership API, che è possibile
personalizzare per utilizzare meccanismi di autenticazione custom.
In alternativa è possibile utilizzare Asp.Net Identity, la cui implementazione
di default utilizza Entity Framework Code First
Configure authentication
33. Template designed by
Una volta autenticato l’utente è possibile utilizzare i ruoli per
gestirne le autorizzazioni:
• Creare e associare ruoli agli utenti
• Impostare la configurazione dei permessi attraverso il
web.config o da codice
• Creare role provider custom
Configure and apply authorization
34. Template designed by
In scenari distribuiti è possibile utilizzare l’autenticazione
federata:
• Azure Access Control Service
• Custom security token con Windows Identity Foundation
• oAuth, OpenID, LiveID
Design and implement claims-based authentication across
federated identity stores
35. Template designed by
E’ possibile sfruttare le funzionalità crittografiche per:
• Crittografare i dati applicativi
• Crittografare le sezioni di configurazione
• Firmare le informazioni per impedirne il tampering
Manage data integrity
36. Template designed by
Mettere in sicurezza un’applicazione web, può significare:
• Utilizzare certificati per stabilire connessioni sicure (SSL)
• Hashing delle password
• Encoding dell’HTML
• Parametrizzare le query per impedire Sql Injection
• Cross-site request forgeries (XSRF)
Implement a secure site with ASP.NET
37. Template designed by
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi
michele.aponte@dotnetcampania.org
Grazie