Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
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.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
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.
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
La sempre maggiore diffusione di device diversificati (PC, Notebook, Tablet, Smartphone, ecc.) su piattaforme diverse, rilancia l'utilizzo delle Web Application come strumento per raggiungere il maggior numero di potenziali clienti con il minimo sforzo. Le capacità avanzate dei nuovi device e le ultime tecnologie ci consentono però di evolvere il concetto classico di applicazione Web in una declinazione più veloce, più responsiva, più accattivante: vediamo come.
Asp.Net MVC 3 - Il Model View Controller secondo MicrosoftStefano Benedetti
Il pattern architetturale MVC (Model View Controller) favorisce la manutenzione delle applicazioni web tramite una architettura elegante ed una chiara ed esplicita separazione delle competenze, l'impiego dei più diffusi pattern di software engineering, il controllo completo dell'HTML generato e degli URL, la testabilità ed estendibilità.
In questa sessione vedremo le novità principali di Asp.Net MVC in versione 3.
La sessione è stata tenuta a SMAU Business Bologna il 9 giugno 2011
by Davide Cerbo e Stefano Linguerri
La programmazione web sta facendo passi da gigante e oggi l’utente si aspetta che l’esperienza di utilizzo si avvicini sempre di più a quella a cui è abituato nei classici applicativi desktop. Il mondo degli sviluppatori ha risposto inventanto una nuova sigla: RIA, cioè Rich Internet Application. Google non è stata a guardare e ha fornito la sua risposta a questa esigenza donando alla community Google Web Toolkit. Questo nuovo framework permette di sviluppare in Java tutta l’interfaccia utente per poi ottenere un codice javascript che funzionerà su qualsiasi browser web senza l’installazione di plugin aggiuntivi. In questa presentazione vedremo:
* perchè sviluppare applicazioni RIA
* perchè usare GWT
* come GWT utilizza AJAX per comunicare con il server
* le ottimizzazione che avremo utilizzando GWT
* come uscire dal browser con Google Gear e Mozilla Prism
* e non solo…
Lo Spring Framework viene ancora una volta incontro agli sviluppatori Java semplificandone la vita, questa volta vedremo come implementare facilmente uno strato servizi stateless da rendere disponibile remotamente nei diversi formati fruibili dalle diverse tecnologie client RIA, introducendo i concetti di Exporter e Proxy di Spring Remoting. Tutto questo tramite pura configurazione, via XML o annotation a seconda dei gusti, e con un esempio specifico in Flex con Spring BlazeDS Integration.
Sempre più di frequente sentiamo parlare di nuove librerie, framework o linguaggi. Tutte queste nuove tecnologie promettono miracoli ma il nostro tempo è una risorsa finita e non abbiamo il lusso di poter approfondire ogni novità.
Le PWA si basano su tecnologie che già usiamo tutti i giorni nello sviluppo WEB quindi, senza farci intimidire, possiamo approcciare qualcosa che effettivamente rivoluzioni il nostro lavoro e che possa farlo con il minimo sforzo da parte nostra.
Slide e riferimenti al codice del Meetup del 28/02/2019 del Vue JS Milano dove parlo di creazione di componenti, passaggio di parametri, computed properties
Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Asp.Net MVC 3 - Il Model View Controller secondo MicrosoftStefano Benedetti
Il pattern architetturale MVC (Model View Controller) favorisce la manutenzione delle applicazioni web tramite una architettura elegante ed una chiara ed esplicita separazione delle competenze, l'impiego dei più diffusi pattern di software engineering, il controllo completo dell'HTML generato e degli URL, la testabilità ed estendibilità.
In questa sessione vedremo le novità principali di Asp.Net MVC in versione 3.
La sessione è stata tenuta a SMAU Business Bologna il 9 giugno 2011
by Davide Cerbo e Stefano Linguerri
La programmazione web sta facendo passi da gigante e oggi l’utente si aspetta che l’esperienza di utilizzo si avvicini sempre di più a quella a cui è abituato nei classici applicativi desktop. Il mondo degli sviluppatori ha risposto inventanto una nuova sigla: RIA, cioè Rich Internet Application. Google non è stata a guardare e ha fornito la sua risposta a questa esigenza donando alla community Google Web Toolkit. Questo nuovo framework permette di sviluppare in Java tutta l’interfaccia utente per poi ottenere un codice javascript che funzionerà su qualsiasi browser web senza l’installazione di plugin aggiuntivi. In questa presentazione vedremo:
* perchè sviluppare applicazioni RIA
* perchè usare GWT
* come GWT utilizza AJAX per comunicare con il server
* le ottimizzazione che avremo utilizzando GWT
* come uscire dal browser con Google Gear e Mozilla Prism
* e non solo…
Lo Spring Framework viene ancora una volta incontro agli sviluppatori Java semplificandone la vita, questa volta vedremo come implementare facilmente uno strato servizi stateless da rendere disponibile remotamente nei diversi formati fruibili dalle diverse tecnologie client RIA, introducendo i concetti di Exporter e Proxy di Spring Remoting. Tutto questo tramite pura configurazione, via XML o annotation a seconda dei gusti, e con un esempio specifico in Flex con Spring BlazeDS Integration.
Sempre più di frequente sentiamo parlare di nuove librerie, framework o linguaggi. Tutte queste nuove tecnologie promettono miracoli ma il nostro tempo è una risorsa finita e non abbiamo il lusso di poter approfondire ogni novità.
Le PWA si basano su tecnologie che già usiamo tutti i giorni nello sviluppo WEB quindi, senza farci intimidire, possiamo approcciare qualcosa che effettivamente rivoluzioni il nostro lavoro e che possa farlo con il minimo sforzo da parte nostra.
Slide e riferimenti al codice del Meetup del 28/02/2019 del Vue JS Milano dove parlo di creazione di componenti, passaggio di parametri, computed properties
Blazor è un framework per la creazione di Single Page Application (SPA) tramite l’utilizzo di C#.
Creato da Steve Sanderson e successivamente inserito in .NET Core come esperimento.
Visto l’enorme successo avuto sulla community è stato poi deciso di renderlo parte integrante dell’ecosistema .NET
Offre tutti i vantaggi di un framework front-end scrivendo codice interamente in C#.
Grazie al fatto che molti dei valori e dei principi del movimento DevOps sono in comune con quelli di Extreme Programming, negli ultimi siamo riusciti ad applicare anche molte dellle pratiche in un contesto più ampio di quello nel quale erano state concepite. In questa sessione mi piacerebbe condividere il percorso che ho seguito per sviluppare una nuova infrastruttura in TDD e per arrivare ad un processo automatico in grado di deployare in produzione tutti i cambiamenti con un click.
Tdd e continuous delivery sull'infrastrutturaCodemotion
by Filippo Liverani - Grazie al fatto che molti dei valori e dei principi del movimento DevOps sono in comune con quelli di Extreme Programming, negli ultimi siamo riusciti ad applicare anche molte dellle pratiche in un contesto più ampio di quello nel quale erano state concepite. In questa sessione mi piacerebbe condividere il percorso che ho seguito per sviluppare una nuova infrastruttura in TDD e per arrivare ad un processo automatico in grado di deployare in produzione tutti i cambiamenti con un click.
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
The document discusses turning Maven into a high scalable, resource efficient, cloud ready microservice for compiling business rules and processes. It describes requirements for an incremental compiler that respects the user's POM, has low latency and memory footprint, supports multiple users and threads, can execute builds locally or remotely, and returns rich data beyond just success/failure. The proposed solution is a Maven as a Service API that implements an enhanced compiler with asynchronous request-response behavior, enabling features like per-request Maven repositories, incremental compilation, and returning compiled rule and process metadata beyond just the build result.
When Old Meets New: Turning Maven into a High Scalable, Resource Efficient, C...Massimiliano Dessì
Turning Maven into a High Scalable, Resource Efficient, Cloud Ready Microservice
Embracing Microservice Architecture in a new project is something that most of developers want!
But how about the old and gold projects that are not designed and planned for it?
What about refactoring a real legacy piece of software that is stable and used by almost all Java developers out there?
Come to this talk to see how we transformed Maven builds in a Cloud Ready Microservice.
Some covered topics are:
-Live objects extracted from Maven Mojos and shared between different classloaders
-Cloud Native features, Configuration and in memory plugins
-Turn any Maven build into incremental ones
-Concurrent use of the same Maven compiler
-Turn into reusable Maven internal objects to decrease memory footprint and increase speed
-How fits in Drools and jBPM ecosystem
-Trade offs
The document discusses hacking Maven to make it more powerful. It describes embedding Maven to use it programmatically and adding decorators to add behaviors before and after compilation, such as syncing with a Git repository. A key challenge is accessing objects from Maven's internal classloaders. The solution is to use a "Charon" object to move live objects from Maven's classloaders to an external classloader, allowing these objects to be used. This makes Maven more flexible, extensible, and able to return live object models rather than just files.
The document discusses different platforms for deploying microservices using containers including Docker, Kubernetes, AWS ECS, AWS Elastic Beanstalk, OpenShift, and Fabric8. Docker allows deploying containers but does not provide orchestration capabilities. Kubernetes provides orchestration of containers across clusters and can be deployed on-premises or on cloud providers. AWS ECS and Elastic Beanstalk integrate Docker containers with AWS but lack portability. OpenShift is a distribution of Kubernetes that can be used to deploy and manage containerized applications. Fabric8 builds upon Docker and Kubernetes to provide a full Platform as a Service with DevOps capabilities.
This document provides an overview of Docker containers. It defines containers as lightweight sandboxed processes that share the same kernel as the host operating system. The key benefits of containers are that they have lower overhead than virtual machines and allow for the easy sharing and distribution of applications. The document discusses Docker images, containers, the client-server architecture, and basic Docker commands. It also covers use cases, the layered filesystem model, and security considerations when using containers.
Massimiliano Dessi discusses Docker, an open-source containerization platform. Docker allows applications to be easily deployed into containers by automating the deployment process. Containers offer greater density and efficiency than virtual machines by running at the kernel level without an extra layer of abstraction. Docker uses containers, images, and a client-server architecture to package and run applications securely isolated on the host operating system with their own filesystem, CPU, memory, and other resources.
This document discusses OpenShift, a platform as a service (PaaS) that allows users to deploy and scale applications in a cloud hosting environment. It provides an overview of OpenShift's architecture, including gears (container servers), cartridges (application components), and tools for managing applications. The presentation aims to introduce OpenShift's core concepts and demo its capabilities for hosting and scaling applications.
This document discusses reactive applications and the tools used to build them. Reactive applications are event-driven, scalable, resilient, and responsive. They react quickly to events, failures, loads, and through user interfaces. Key tools for building reactive applications include actors, agents, futures, and functional reactive programming. Actors communicate asynchronously through message passing. Agents are reactive memory cells that update asynchronously. Futures allow non-blocking composition. Functional reactive programming uses streams to model events over time.
This document provides an overview of Scalatra, a Scala web microframework, and compares it to Spring MVC. It discusses how Scalatra and Spring MVC handle REST, routing, templates, security, exceptions, and more. The speaker has over 13 years of experience in programming and manages several user groups.
This document provides an overview of Scala web frameworks Play, Scalatra, and Spray. It begins with introducing the speakers, Massimiliano Dessì and Alberto Quario. The agenda then outlines topics to be covered including REST, JSON, routing, templates, actors, sessions, deployment, hot reloading, and testing. The bulk of the document dives into specifics of each framework, focusing particularly on Scalatra with descriptions of how to implement REST, routing, filters, handlers, requests/responses, binding, Gzip, flash messages, JSON, templates including SSP, Jade, Mustache and Scaml, and using actors. It also briefly discusses authentication and security in Scalatra.
The document discusses the benefits of functional programming for concurrency. It notes that mutable state and parallel processing can lead to non-determinism, race conditions, starvation, deadlocks, and livelocks. Two examples of failures caused by data races are described: a radiation therapy machine that killed patients and a software bug that contributed to a major blackout. The document compares different models for concurrency, including shared mutable state with threads/locks, isolated mutable state with actors, and purely immutable functions. It advocates for referential transparency and immutable data to simplify reasoning about concurrency. Functional programming aims to separate computational logic from side effects through a modular, functional core with thin layers to handle effects.
This document provides an overview of a presentation titled "Three languages in thirty minutes or so...". It introduces the three presenters and their backgrounds. It explains that learning multiple languages provides different problem solving approaches and tools. The presentation will cover variables, data structures, objects, functions, flow control, and concurrency in Javascript, Clojure, and Scala in 30 minutes.
The document discusses Massimiliano Dessì's background and experience as a software architect, developer, and founder/chairman of various user groups. It then provides an overview of MongoDB including its main features such as being document-oriented, easy scalability, high performance, high availability, and rich query language. Examples of MongoDB production deployments are also listed. The rest of the document dives deeper into specific MongoDB concepts, data structures, operations, and query capabilities.
MongoDB is a document-oriented database that stores data in JSON-like documents. It features high performance, high availability, easy scalability, and a rich query language. Data is stored in flexible, schema-less documents which reduces the need for joins. MongoDB uses replication and automatic sharding for high availability and easy scalability.
RESTEasy is a framework for building RESTful web services in Java. It allows developers to write JAX-RS annotated Java classes to define resources and their representations. Resources are addressable via URIs and support standard HTTP methods like GET, PUT, POST, and DELETE. Resources return representations in formats like JSON, XML, and HTML. Communication is stateless and driven by hypermedia links between resources. RESTEasy supports features like interceptors, asynchronous jobs, caching, GZIP compression, and integration with Spring and other frameworks.
This document outlines a presentation on Spring ROO given by Massimiliano Dessì. The agenda includes a 5 minute demo for unbelievers, discussing Roo internals, Maven support, add-on anatomy, Roo domain driven design, AspectJ intertype declarations, and the SpringSurf add-on. The presentation covers how Roo uses an interactive shell and process manager, supports Maven, how add-ons are structured with commands and operations, uses domain driven design principles with entity and web layers, aspects through intertype declarations, and demonstrates the SpringSurf add-on.
Spring E Spring Web Flow Nel Progetto Jug Avis Web
1. Spring e Spring Web Flow
nel progetto Jug Avis Web
(Aka Magic Box)
Java Summer Meeting Cagliari 16 Luglio 2005
Massimiliano Dessì
desmax74@yahoo.it
massimiliano.dessi@gruppoatlantis.com
1 auth: Massimiliano Dessì desmax74@yahoo.it
2. Funzionamento
Progetto Jug Avis:
• Nato come applicazione Swing per il solo centro Avis di
Sestu
• Funzionamento come Wizard
• Importazione file contenente numeri di telefono , prodotto da
altre applicazioni in dotazione all’ Avis Sestu
• Inserimento messaggio
• Spedizione sms a tutti i numeri telefonici presenti nel file
2 auth: Massimiliano Dessì desmax74@yahoo.it
3. Pregi e difetti
1. Pro:
-Modellato sulle esigenze del centro di Sestu
Contro:
•
-Utilizzabile solo dall’ un utente sulla macchina su cui è
installato
-Necessità di installazione su più macchine in caso si renda
necessario effettuare la spedizione da pc diversi.
-Necessità del runtime java su ogni macchina.
-Non semplicemente adattabile per altri centri con richieste
simili ma non uguali (una applicazione per ogni centro…)
3 auth: Massimiliano Dessì desmax74@yahoo.it
4. Caratteristiche Magic Box
•In principio identico funzionamento e funzionalità della
applicazione swing
•Testabile (Junit)
•Controllo della qualità del codice (Code Coverage, Metrics)
•Funzionamento su server, utilizzabile da più persone (Tomcat)
• Costruita con componenti fortemente disaccopiati, in modo da
avere una veloce personalizzazione per altri centri avis. (IoC)
4 auth: Massimiliano Dessì desmax74@yahoo.it
5. •Monitorabile e gestibile (JMX)
•Documntazione file di configurazione (Spring BeanDoc)
•Possibilità di schedulazione operazioni (JMX, Quartz)
•Possibilità di reperimento dati da dispositivi legacy (JCA)
•Se necessario multilingua (l10n, i18n)
•Report eventuali (pdf, excel).
5 auth: Massimiliano Dessì desmax74@yahoo.it
6. Framework scelto
L’ unico framework che possedesse tutte le caratteristiche
richieste senza portare pesanti scelte architetturali in caso di
rapidi cambiamenti di alcune parti funzionali delle eventuali
nuove richieste di altri centri.
6 auth: Massimiliano Dessì desmax74@yahoo.it
7. Spring Web Flow
Spring fornisce nella parte MVC , per la realizzazione di wizard, un
controller (AbstractWizardFormController), oppure un
modulo che permette una configurazione ancora più elegante e
facilmente configurabile e riusabile per la gestione di flussi di
elaborazione distribuiti su più pagine:
7 auth: Massimiliano Dessì desmax74@yahoo.it
8. Design Pattern applicati in Spring Web Flow
•State
•Builder
•Abstract Factory
•Observer
•Memento
•Strategy
•Facade
•Adapter
•Chain of Responsiblity
8 auth: Massimiliano Dessì desmax74@yahoo.it
9. Descrizione Jug Avis Web (Magic Box)
versione 0.1
9 auth: Massimiliano Dessì desmax74@yahoo.it
12. Alternative
Il flusso di esecuzione poteva essere scritto anche da codice.
Si è preferito la configurazione su file essendo autoesplicativa, oltre a
permette modifiche più veloci del flusso di funzionamento.
Risulta evidente la possibilità di riutilizzo dei componenti che
formano il flusso, che sono autocontenenti, e funzionanti in base al
contratto definito nel file di configurazione.
12 auth: Massimiliano Dessì desmax74@yahoo.it
13. Struttura (vers. 0.1)
•10 classi 1 interfaccia (escluse classi
di test e mock object)
•3 Jsp/JSTL (esclusa la index.jsp)
13 auth: Massimiliano Dessì desmax74@yahoo.it
14. Qualità codice progetto
“Quello che non c’è non si rompe e non aggiunge peso”
Antico proverbio della ingegneria motociclistica
Validissimo per il software !
Non deve essere scritto codice inutile che aumenta la possibilità di errori e rallenta
anche il funzionamento.
Questo risultato si ottiene accompagnando il codice da quanti più possibili test,
meglio se scritti prima del codice (TDD).
Il codice deve essere “misurato” con strumenti di profiling e di misurazione
metrica.
Refactoring come abitudine !
14 auth: Massimiliano Dessì desmax74@yahoo.it
18. Strumenti visuali di sviluppo
Gaijin Studio for Spring Web Flow
18 auth: Massimiliano Dessì desmax74@yahoo.it
19. Evoluzione progetto Magic Box
Vers.0.1: versione minimale con soli requisiti centro Avis Sestu
Versioni successive:
Tutte le classi gestibili e monitorabili attraverso: JMX
Accesso database: Jdbc, JDO, Ibatis
Autenticazione: Acegi , AOP
Schedulazione operazioni: Quartz, JMX
Logging: AOP
Template engine per varie operazioni: Velocity
Mail
19 auth: Massimiliano Dessì desmax74@yahoo.it
20. Articoli italiani
Inversion of Control o Dependency Injection
Spring Framework
Spring Web Flow
Spring Bean Doc
Spring e Jetspeed2
Recensioni libri Spring
Disponibile lista link ai vari articoli (Jug e Mokabyte) alla pagina:
http://www.jugsardegna.org/vqwiki/jsp/Wiki?MassimilianoDessi
20 auth: Massimiliano Dessì desmax74@yahoo.it
21. Riferimenti
Spring framework: http://www.springframework.org/
Spring Web Flow:
http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Home
Spring Bean Doc:
http://opensource.atlassian.com/confluence/spring/display/BDOC/Home
Gaijin-studio:http://gaijin-studio.sourceforge.net
Spring IDE :http://springide.org/project
Clover: http://www.cenqua.com/clover/
Metrics : http://metrics.sourceforge.net/
Eclipse : http://www.eclipse.org/
21 auth: Massimiliano Dessì desmax74@yahoo.it
22. Fine
“We believe not only that J2EE development should be much
simpler than the mixture of drudgery
and complexity it’s often made out to be, but that developing
J2EE applications should be fun”
Rod Johnson
22 auth: Massimiliano Dessì desmax74@yahoo.it