DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
Sessione per NetCampus 2015. La diffusione sempre più ampia di applicazioni sviluppate interamente in HTML5 e JS richiede l'adozione di processi di automazione per la fase di build, testing e rilascio. In questa sessione vedremo quali sono i principali strumenti a nostra disposizione per semplificare queste fasi dello sviluppo.
Xamarin.Forms is a framework for building cross-platform applications that share most of the UI codebase among the UWP, iOS and Android platforms. Due to the higher level of abstraction compared to Xamarin.Native, Xamarin.Forms applications may suffer from memory leaks and slow rendering times at the expense of the final user experience. In the session, we will explore the mechanisms used by Xamarin.Forms to translate abstract UI components into native ones, highlight with demos what are the main bottlenecks met by developer, how to solve them and get close to native performances.
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Dependency injection questa sconosciutaAndrea Dottor
L'uscita di ASP.NET Core ha portato a una maggiore diffusione dell'utilizzo della DI (Dependency Injection) ma spesso senza che lo sviluppatore sappia la sua reale utilità o potenzialità.
Dependency Injection, uno dei design pattern della programmazione OOP. Una best-practice dello sviluppo che può portare alla semplificazione del codice scritto, facilitare il disacoppiamento, e migliorare la testabilità.
In questa sessione vedremo cos'è la DI e come utilizzarla intelligentemente all'interno dei nostri progetti.
Slide dell'evento "XE One Day - Good code" tenuto il 15.09.2018.
Il codice è disponibile alla pagina dell'evento https://www.xedotnet.org/eventi/one-day-good-code/
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
Sessione per NetCampus 2015. La diffusione sempre più ampia di applicazioni sviluppate interamente in HTML5 e JS richiede l'adozione di processi di automazione per la fase di build, testing e rilascio. In questa sessione vedremo quali sono i principali strumenti a nostra disposizione per semplificare queste fasi dello sviluppo.
Xamarin.Forms is a framework for building cross-platform applications that share most of the UI codebase among the UWP, iOS and Android platforms. Due to the higher level of abstraction compared to Xamarin.Native, Xamarin.Forms applications may suffer from memory leaks and slow rendering times at the expense of the final user experience. In the session, we will explore the mechanisms used by Xamarin.Forms to translate abstract UI components into native ones, highlight with demos what are the main bottlenecks met by developer, how to solve them and get close to native performances.
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Dependency injection questa sconosciutaAndrea Dottor
L'uscita di ASP.NET Core ha portato a una maggiore diffusione dell'utilizzo della DI (Dependency Injection) ma spesso senza che lo sviluppatore sappia la sua reale utilità o potenzialità.
Dependency Injection, uno dei design pattern della programmazione OOP. Una best-practice dello sviluppo che può portare alla semplificazione del codice scritto, facilitare il disacoppiamento, e migliorare la testabilità.
In questa sessione vedremo cos'è la DI e come utilizzarla intelligentemente all'interno dei nostri progetti.
Slide dell'evento "XE One Day - Good code" tenuto il 15.09.2018.
Il codice è disponibile alla pagina dell'evento https://www.xedotnet.org/eventi/one-day-good-code/
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
Per ottenere applicazioni scalabili con un consumo minimo di risorse e una UI sempre reattiva,
dobbiamo scrivere software che opera in maniera asincrona.
In questa sessione vedremo perchè è importante sfruttare questo tipo di programmazione e
quali strumenti mette a disposizione il .NET Framework.
http://www.communitydays.it/events/communitydays-2013/misc04/
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
In ASP.NET Core 3.0 è stato introdotto il supporto a gRPC, una framework altamente performante per fare Remote Procedure Call (RPC). Leggero e molto efficiente, supportato da molti linguaggi, supporto ad una comunicazione bidirezionale, riduzione del consumo di banda...solo questi solo alcuni dei vantaggi che descrivono gRPC, e che durante la sessione cercheremo di capire se siano reali o meno.
Fatto sta che è una tecnologia assolutamente da conoscere e sfruttare nello sviluppo di app moderno, e non solamente in ambito web.
Codice: https://github.com/andreadottor/XE.Dottor.gRPC
Evento: https://www.xedotnet.org/eventi/grpc-and-c-optimising-night/
Actions on Google e Alexa skills per .NET loversLorenzo Giudici
Evento #Aperitech 05/11/2019 organizzato da Codemotion.
Ospite: la community di Milano Chatbots con 5 talk per illustrare lo stato dell'arte dei chatbot e dei voicebot.
1° Talk tecnico:
"Google Home", "Alexa", "Skills", "Smart speaker"… ne sentiremo parlare (tanto) anche nel 2020 e noi sviluppatori .NET possiamo cavalcare l'onda perchè abbiamo tutti gli strumenti e le competenze necessarie.
VIDEO: https://youtu.be/tboHO_mj2uM
Async: scalabilità e responsiveness senza pari! @ CDaysMatteo Baglini
Per ottenere applicazioni scalabili con un consumo minimo di risorse e una UI sempre reattiva,
dobbiamo scrivere software che opera in maniera asincrona.
In questa sessione vedremo perchè è importante sfruttare questo tipo di programmazione e
quali strumenti mette a disposizione il .NET Framework.
http://www.communitydays.it/events/communitydays-2013/misc04/
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
In ASP.NET Core 3.0 è stato introdotto il supporto a gRPC, una framework altamente performante per fare Remote Procedure Call (RPC). Leggero e molto efficiente, supportato da molti linguaggi, supporto ad una comunicazione bidirezionale, riduzione del consumo di banda...solo questi solo alcuni dei vantaggi che descrivono gRPC, e che durante la sessione cercheremo di capire se siano reali o meno.
Fatto sta che è una tecnologia assolutamente da conoscere e sfruttare nello sviluppo di app moderno, e non solamente in ambito web.
Codice: https://github.com/andreadottor/XE.Dottor.gRPC
Evento: https://www.xedotnet.org/eventi/grpc-and-c-optimising-night/
Actions on Google e Alexa skills per .NET loversLorenzo Giudici
Evento #Aperitech 05/11/2019 organizzato da Codemotion.
Ospite: la community di Milano Chatbots con 5 talk per illustrare lo stato dell'arte dei chatbot e dei voicebot.
1° Talk tecnico:
"Google Home", "Alexa", "Skills", "Smart speaker"… ne sentiremo parlare (tanto) anche nel 2020 e noi sviluppatori .NET possiamo cavalcare l'onda perchè abbiamo tutti gli strumenti e le competenze necessarie.
VIDEO: https://youtu.be/tboHO_mj2uM
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
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.
This set of design patterns are related to Enterprise Patterns. In it you can find, J2EE, Presentation, Business & Integration Patterns (such as: ApplicaCon Controller, Data Transfer Object (DTO), Business Object (BO) & Data Access Object (DAO) among others ...)
Programmazione web libera dai frameworkFrancesca1980
Un nuovo progetto web parte quasi sempre con la domanda "che framework usiamo?" Diamo per scontato che non si possa sviluppare per il web senza fare uso di framework. Ma che succederebbe se decidessimo di sviluppare senza framework? Potremmo ottenere maggiore controllo e qualità, meno rischi e meno costi. Serve "solo" la volontà di imparare a programmare bene. Darò alcune dritte con Java e TDD.
Utilizziamo il Bot Framework per realizzare il nostro primo Bot utilizzabile sulle maggiori piattaforme di Messaging e con la potenza dei cognitive rendiamo in grado di analizzare e reagire alle immagini che invieremo
3. Background
• Laurea e Dottorato in Fisica delle Particelle Elementari
• Fortran 77, C, C++
• Simulazione Montecarlo
• Passaggio al Mondo Microsoft: 1999
• Uso di Visual Studio: dal 1999 (senza interruzioni)
• Adozione del .NET Framework (dalla versione 2.0)
• Lavoratore Autonomo dal 2009 (consulenze in rock e serie tv!)
• Socio DotNetCampania dal 2011
4. Indice
• Odata (Motivazioni e definizione)
• Costruzione di un WCF Data Service in vs
• Pubblicazione di un servizio
• Consumo di un servizio (Tante demo!)
15. There is a vast amount of data
available today and data is now
being collected and stored at a rate
never seen before. Much, if not
most, of this data however is locked
into specific applications or formats
and difficult to access or to integrate
into new uses.”
17. Una possibile soluzione è usare un’architettura orientata
ai servizi (SOA)
Windows Communication Foundation (WCF) è un framework
maturo, ideale nella realizzazione di soluzioni Enterprise ma....
non è il prodotto ideale per realizzare il nostro sogno.
18. WCF non è la soluzione
• Può essere complicato per certe tecnologie client
consumare correttamente un servizio WCF
• Manca uno standard nella definizione dei metodi/
funzioni / operazioni del servizio
InserisciLibroPerCategoriaPerSezionePesoEFaseLunare(
int parametro1, int parametro2,
int parametro3, string parametro4)
19. WCF non è la soluzione (Parte 2)
Non esiste in WCF uno standard per la nomenclatura
Delle operazioni CRUD.
Il servizio fornisce un .wsdl e si aspetta che il client
crei oggetti proxy in grado di interpretare tutte le
bizzarrie usate nella costruzione del servizio
20. REST (Roy Fielding, 2000)
REST (Representational State Transfer) è uno stile
architetturale per sistemi distribuiti come il World Wide Web
Esistono risorse (fonti di informazione) a cui si può accedere
tramite un identificatore globale (URI)
Per utilizzare le risorse, le componenti di una rete comunicano
attraverso un’interfaccia standard (ad esempio HTTP) e si scambiano
RAPPRESENTAZIONI di queste risorse (documenti)
22. Servizi Web REST
Un servizio Web REST è un servizio web implementato usando
HTTP e i principi di REST. L’insieme di operazioni supportate dal
servizio utilizza i metodi HTTP (GET, PUT , POST, DELETE)
Con REST garantiamo l’uniformità del protocollo riguardo le
operazioni CRUD
23. REST non basta
Quando eseguiamo un GET, che cosa ci viene restituito? Un xml
nudo e crudo? Un xml più strutturato? Un testo ASCII?
Concordare un formato è un grande passo avanti per arrivare
all’interoperabilità dei sistemi.
Microsoft, nella definizione del protocollo Odata, ha adottato l’uso
di AtomPub e Json come content types trasmessi in rete.
25. Json (application/json)
JSON (Javascript Object Notation è uno standard text-based per
lo scambio di dati. Nasce da Javascript per rappresentare strutture
dati semplici e array, chiamati objects.
26. REST + AtomPub + Json non bastano
AtomPub è un bel passo avanti ma ha un problema: non si
interessa per nulla di quali dati siano contenuti nei suoi campi.
Un’applicazione client potrebbe avere difficoltà a trattare in maniera
uniforme un documento AtomPub. Ossia...
Capire che un documento AtomPub rappresenta una entità!!
27. Modellazione di un Servizio
Così come usiamo un ORM per mappare oggetti a tabelle di un
database, vogliamo che una chiamata REST possa restituirci una
rappresentazione delle nostre entità business.
http://www.squadredicalcio.it/squadre
Dove il formato AtomPub ci restituisca i campi che costituiscono
L’entità squadre
http://odatatoto.azurewebsites.net/totodataservice.svc/$metadata
28. Cosa manca???
Non vogliamo solo il CRUD e la modellazione. Un client ha bisogno
di manipolare un modello sotto forma di collezioni, filtraggio e
collegamenti tra entità.
In WCF avremmo scritto uno o, meglio, tanti metodi per filtrare i
dati.
La manipolazione dei dati deve essere anch’essa standardizzata.
Il protocollo Odata quindi estende Rest + Atom Pub adottando la
semantica URI
$filter, $orderby, $skip, $top
29. Open Data
Protocol
Accesso alle entità
Entity-Set /films
Entità Singola /films(1)
Accesso alle proprietà /films(1)/titolo
Entità collegate /films(1)/attori
Entità collegata singola /films(1)/attori(1)
Accesso alle proprietà /films(1)/attori(1)/nome
30. Semantica URI
Ordinamento /films?$orderby=titolo
Filtraggio /films?$filter=anno gt 2007
Paging /films?$top=10
Selezione Proprietà /films?$select=titolo,anno
Count /films?$count
Formato (xml, json) /films?$format=json
41. Demo: Consumo
in pagine web
con Jquery,
DataJs
• Accesso via Jquery http://odatatoto.azurewebsites.net/Indice.html
• Accesso via DataJs http://odatatoto.azurewebsites.net/LeggiDati.html
• Aggiunta Record http://odatatoto.azurewebsites.net/aggiungi.html
• Master Details http://odatatoto.azurewebsites.net/Masterdetails.html
47. Conclusioni
• OData e WCF Data Services ci aiutano a consumare i
nostri dati su un gran numero di dispositivi (mobili e non)
• Il protocollo Odata ha vinto una grande battaglia nel
momento in cui è stato completamente supportato nelle
Web Api di ASP.NET
• Liberate i vostri dati!
Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
Un “Information Silo“ è un Sistema le cui particostituentisonoincapaci di comunicare e scambiarsiinformazioni.
Dal concetto di Information Silo deriviamoquello di Data Silo. Reparti, compartimenti ma ancheapplicazioni diverse sviluppate in unastessaaziendacheutilizzanociascunoilproprio database al costo di creareripetizioni e causareinconsistenzepur di non comunicare.
La difesa estrema del dato!E’ un atteggiamento comprensibile: i dati sono la più grande ricchezza di un’azienda (soprattutto se privata!)
L’invasione dei dispositivi!!!
Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, 2011–2016