SlideShare a Scribd company logo
1 of 42
andreabalducci {ecosystem} V UGI ALT.NetConference Milano :: 23 Gennaio 2010
andreabalducci Chi è costui? Andrea Balducci Job: Sviluppatore per passione (da un quarto di secolo…) Mercato: Applicazioni client / server in c++ per la PMI Asp.Net: Catasto Termico, MES http://www.dotnetmarche.org/blogs/andreabalducci mtb.snowboard@gmail.com
Agenda jQuery intro jQuery UI QUnit jQuery Lint TestSwarm Profiling
jQuery jQuery              è unalibreria                           JavaScript http://www.gracesmith.co.uk/86-jquery-resources-to-spice-up-your-website/
jQuery Creatada John Resignel 2006 http://ejohn.org
jQuery
jQuery
jQuery jQuery è presente nel 37% dei siti web che utilizzano Javascript http://trends.builtwith.com/javascript
jQuery 1.4 http://jquery14.com
jQuery Cross browser Suite di 3060 test (Safari 3.2, Safari 4, Firefox 2, Firefox 3, Firefox 3.5, IE 6, IE 7, IE 8, Opera 10.10 and Chrome).50 browser su 11 piattaforme. Modello ad eventi .click() .mouseenter() .keydown() etc.. Leggera Solo 23kb per la versione minified (gzipped).Disponibile sulle CDN Google e Microsoft
jQuery Centinaia di plug-in già pronti Forms, validation, autocomplete, grid, jQuery.UI, gameshttp://plugins.jquery.com/ Documentata http://api.jquery.com/<method>http://forum.jquery.com/ Visual jQuery http://visualjquery.com/ Deliciousbookmarks 1.123k+ http://delicious.com/tag/jquery
jQuery Google ha 12.900.000 risultati per il termine “jQuery” 10 volte più famosa della D’Addario e del Lettone di Putin
Come funziona? $(document).ready(function() { 	$(‘li’).css(‘color’, ‘red’); )};
Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )}; jQuery
Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )}; jQuery findthings
Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )}; jQuery findthings do stuff
Categorie Selettori Eventi Manipolazione del DOM Ajax Data Navigazione del DOM
jQuery(document).ready(..); L’entry point di jQuery Vieneeseguitoappenail DOM è completo e prima cheilcontenutodellapaginasiacaricato. E’ possibileregistrarel’evento $(document).ready() più volte Versionebreve: $(..);
Selettori Attribute :: Basic :: Basic Filter :: Child Filter :: Content FilterForm :: Hierarchy:: Visibility Filter Live test: http://codylindley.com/jqueryselectors/ http://api.jquery.com/category/selectors/
Eventi jQuery introduce il modello ad eventi in modo non intrusivo; il binding degli eventi avviene fuori dal markup dell’elemento. <html> <head><title>Modello ad eventi - click</title>     <script src="jquery-1.4.min.js" type="text/javascript">     </script>     <script type="text/javascript"> 	$(document).ready(function() { 		$('#clickme').click(function(){ 			$(this).remove(); 		}); 	});     </script> </head> <body>     <a id="clickme" href="#">click me</a> </body> </html> http://api.jquery.com/category/events/
Manipolazione DOM Attributi     $(‘.clickMe’).addClass(‘clicked’);     $(‘.clickMe’).attr(‘id’, ‘theone’); Struttura     $(‘<div>’)     $(‘.clickMe’).remove();     $(‘.clickMe’).clone();     $(‘<div>’).appendTo($(‘#box’)); Stile     $(‘.clickMe’).css(‘color’, ‘red’); Lettura / scrittura     $(‘#title’).text(‘jQuery @Ugi.Alt’); var title = $(‘#title’).text(); http://api.jquery.com/category/manipulation/
$.ajax() Low level jQuery.ajax( settings )  // http://api.jquery.com/jQuery.ajax/ ShorthandMethods jQuery.get()     esegue una richiesta tramite HTTP GET jQuery.getJSON()     esegue una richiesta di dati in formato JSON tramite HTTP GET  jQuery.getScript()     carica uno script tramite una GET e lo esegue .load()     esegue la richiesta al server e inserire la risposta nell’elemento jQuery.post()     esegue la richiesta tramite una POST http://api.jquery.com/category/ajax/
.data() .data() permette di associare dei valori agli elementi del DOM senza sporcare il markup. .data(key, value)     $(‘#contact-1’).data(‘name’, ‘Andrea’);     $(‘#contact-1’).data(‘age’, 35); .data(key) varname = $(‘#contact-1’).data(‘name’); .data() varcontact = $(‘#contact-1’).data(); // { name: ‘Andrea’, age: 35} http://api.jquery.com/data/
Effects {demo} http://api.jquery.com/category/effects/
Navigazione del DOM .add() .andSelf() .children() .closest() .contents() .end() .eq() .filter() .find() .first() .has() .is() .last() .map() .next() .nextAll() .nextUntil() .not() .offsetParent() .parent() .parents() .parentsUntil() .prev() .prevAll() .prevUntil() .siblings() .slice() http://api.jquery.com/category/traversing/
“jQuery UI provides a comprehensive set ofcoreinteraction plugins, UI widgets and visualeffectsthatuse a jQuery-style, event-drivenarchitecture and a focus on web standards, accessiblity, flexible styling, and user-friendly design.All plugins are testedforcompatibility in IE 6.0+, FF 2+, Safari 3.1+, Opera 9.0+, and Google Chrome.”
In fase di rilascio la versione 1.8
Interactions Draggable Droppable Resizable Selectable Sortable Widgets Accordion Autocomplete     Button Datepicker Dialog Progressbar Slider Tabs Effects Addclass Removeclass Switchclass Toggleclass     Show Hide Toggle     Animate Effect Roadmap su http://wiki.jqueryui.com/
{demo}
Case Study – Catasto termico SostiuzionediAsp.Net AJAX Control Toolkit Aumentatal’interattivitàlato client Dimezzatoil peso dellepagine
Ovvero… Prima Dopo
ThemeRoller ThemeRoller permette di configurare a proprio piacimento i temi di jQuery.ui jQuery.UI = js + css http://jqueryui.com/themeroller/
QUnit “QUnit is a powerful, easy-to-use, JavaScript test suite. It's used by the jQuery project to test its code and plugins but is capable of testing any generic JavaScript code” http://docs.jquery.com/QUnit
QUnit {demo} http://docs.jquery.com/QUnit
jQuery.Lint “jQuery Lint is a simple script you can download and use with jQuery. It works over the top of jQuery and diligently reports errors and any incorrect usage of jQuery. It will also, to some extent, offer guidance on best practices and performance concerns”. http://github.com/jamespadolsey/jQuery-Lint
jQuery.Lint {demo} http://github.com/jamespadolsey/jQuery-Lint
TestSwarm “The primary goal of TestSwarm is to take the complicated, and time-consuming, process of running JavaScript test suites in multiple browsers and to grossly simplify it. It achieves this goal by providing all the tools necessary for creating a continuous integration workflow for your JavaScript project.” http://testswarm.com/
I Want U
Performance Analysis {demo} http://developer.yahoo.com/yui/theater/video.php?v=resig-testing
{spot :: comingsoon} Dexter, jQuery, Castle Windsor, Asp.Net MVC, NHibernate & co…
andreabalducci {grazie}

More Related Content

What's hot

JS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJSJS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJSYuriy Silvestrov
 
Passo a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel HíbridaPasso a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel HíbridaJuliano Martins
 
Langkah-langkah Instalasi software untuk develop aplikasi android
Langkah-langkah Instalasi software untuk develop aplikasi androidLangkah-langkah Instalasi software untuk develop aplikasi android
Langkah-langkah Instalasi software untuk develop aplikasi androidAgus Haryanto
 
Angular.js interview questions
Angular.js interview questionsAngular.js interview questions
Angular.js interview questionscodeandyou forums
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular UJoonas Lehtinen
 
AngularJS for Beginners
AngularJS for BeginnersAngularJS for Beginners
AngularJS for BeginnersEdureka!
 
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017Matt Raible
 
Desenvolvimento Mobile Híbrido
Desenvolvimento Mobile HíbridoDesenvolvimento Mobile Híbrido
Desenvolvimento Mobile HíbridoJuliano Martins
 
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter BootstrapFast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter BootstrapYuriy Silvestrov
 
The Art of AngularJS in 2015
The Art of AngularJS in 2015The Art of AngularJS in 2015
The Art of AngularJS in 2015Matt Raible
 
Angular js interview question answer for fresher
Angular js interview question answer for fresherAngular js interview question answer for fresher
Angular js interview question answer for fresherRavi Bhadauria
 
WebGL: The Next Generation
WebGL:  The Next GenerationWebGL:  The Next Generation
WebGL: The Next GenerationTony Parisi
 
Windows 8 app template feedback
Windows 8 app template feedbackWindows 8 app template feedback
Windows 8 app template feedbackSteren Giannini
 
AngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW FrameworkAngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW FrameworkEdureka!
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery PluginsMarc Grabanski
 
J Query Presentation
J Query PresentationJ Query Presentation
J Query PresentationVishal Kumar
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JSScalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JSGalih Pratama
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)Nicholas Zakas
 

What's hot (20)

JS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJSJS FAST Prototyping with AngularJS & RequireJS
JS FAST Prototyping with AngularJS & RequireJS
 
Passo a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel HíbridaPasso a Passo para criar uma aplicação Móvel Híbrida
Passo a Passo para criar uma aplicação Móvel Híbrida
 
Langkah-langkah Instalasi software untuk develop aplikasi android
Langkah-langkah Instalasi software untuk develop aplikasi androidLangkah-langkah Instalasi software untuk develop aplikasi android
Langkah-langkah Instalasi software untuk develop aplikasi android
 
Angular.js interview questions
Angular.js interview questionsAngular.js interview questions
Angular.js interview questions
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 
Vaadin Components @ Angular U
Vaadin Components @ Angular UVaadin Components @ Angular U
Vaadin Components @ Angular U
 
AngularJS for Beginners
AngularJS for BeginnersAngularJS for Beginners
AngularJS for Beginners
 
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017 Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
 
Desenvolvimento Mobile Híbrido
Desenvolvimento Mobile HíbridoDesenvolvimento Mobile Híbrido
Desenvolvimento Mobile Híbrido
 
Vodafone Widget Camp
Vodafone Widget CampVodafone Widget Camp
Vodafone Widget Camp
 
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter BootstrapFast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
Fast prototyping apps using AngularJS, RequireJS and Twitter Bootstrap
 
The Art of AngularJS in 2015
The Art of AngularJS in 2015The Art of AngularJS in 2015
The Art of AngularJS in 2015
 
Angular js interview question answer for fresher
Angular js interview question answer for fresherAngular js interview question answer for fresher
Angular js interview question answer for fresher
 
WebGL: The Next Generation
WebGL:  The Next GenerationWebGL:  The Next Generation
WebGL: The Next Generation
 
Windows 8 app template feedback
Windows 8 app template feedbackWindows 8 app template feedback
Windows 8 app template feedback
 
AngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW FrameworkAngularJS : Superheroic JavaScript MVW Framework
AngularJS : Superheroic JavaScript MVW Framework
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery Plugins
 
J Query Presentation
J Query PresentationJ Query Presentation
J Query Presentation
 
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JSScalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
 
High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)High Performance JavaScript (CapitolJS 2011)
High Performance JavaScript (CapitolJS 2011)
 

Similar to jQuery Ecosystem

jQuery and_drupal
jQuery and_drupaljQuery and_drupal
jQuery and_drupalBlackCatWeb
 
The State of jQuery 2013
The State of jQuery 2013The State of jQuery 2013
The State of jQuery 2013Richard Worth
 
Building Smart Workflows - Dan Diebolt
Building Smart Workflows - Dan DieboltBuilding Smart Workflows - Dan Diebolt
Building Smart Workflows - Dan DieboltQuickBase, Inc.
 
WebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
WebTest - Efficient Functional Web Testing with HtmlUnit and BeyondWebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
WebTest - Efficient Functional Web Testing with HtmlUnit and Beyondmguillem
 
JavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern ImplementationJavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern Implementationdavejohnson
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Matt Raible
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshellLennart Schoors
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Matt Raible
 
JavaScript and jQuery Basics
JavaScript and jQuery BasicsJavaScript and jQuery Basics
JavaScript and jQuery BasicsKaloyan Kosev
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...Matt Raible
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
Starting with jQuery
Starting with jQueryStarting with jQuery
Starting with jQueryAnil Kumar
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks TriviaCognizant
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadRuss Fustino
 

Similar to jQuery Ecosystem (20)

jQuery and_drupal
jQuery and_drupaljQuery and_drupal
jQuery and_drupal
 
Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
jQuery for web development
jQuery for web developmentjQuery for web development
jQuery for web development
 
The State of jQuery 2013
The State of jQuery 2013The State of jQuery 2013
The State of jQuery 2013
 
Building Smart Workflows - Dan Diebolt
Building Smart Workflows - Dan DieboltBuilding Smart Workflows - Dan Diebolt
Building Smart Workflows - Dan Diebolt
 
WebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
WebTest - Efficient Functional Web Testing with HtmlUnit and BeyondWebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
WebTest - Efficient Functional Web Testing with HtmlUnit and Beyond
 
JavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern ImplementationJavaScript and DOM Pattern Implementation
JavaScript and DOM Pattern Implementation
 
J query
J queryJ query
J query
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
 
JavaScript and jQuery Basics
JavaScript and jQuery BasicsJavaScript and jQuery Basics
JavaScript and jQuery Basics
 
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
 
Introduction to jQuery
Introduction to jQueryIntroduction to jQuery
Introduction to jQuery
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
Starting with jQuery
Starting with jQueryStarting with jQuery
Starting with jQuery
 
dJango
dJangodJango
dJango
 
jQuery Tips Tricks Trivia
jQuery Tips Tricks TriviajQuery Tips Tricks Trivia
jQuery Tips Tricks Trivia
 
jQuery Fundamentals
jQuery FundamentalsjQuery Fundamentals
jQuery Fundamentals
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 

More from Andrea Balducci

Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019Andrea Balducci
 
Stranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarcheStranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarcheAndrea Balducci
 
Event based modelling and prototyping
Event based modelling and prototypingEvent based modelling and prototyping
Event based modelling and prototypingAndrea Balducci
 
Storage dei dati con MongoDB
Storage dei dati con MongoDBStorage dei dati con MongoDB
Storage dei dati con MongoDBAndrea Balducci
 
Italian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - ModellathonItalian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - ModellathonAndrea Balducci
 
TypeScript intro / mobile dev camp
TypeScript intro / mobile dev campTypeScript intro / mobile dev camp
TypeScript intro / mobile dev campAndrea Balducci
 
Mongo db halloween party
Mongo db halloween partyMongo db halloween party
Mongo db halloween partyAndrea Balducci
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...Andrea Balducci
 
Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStoreAndrea Balducci
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAndrea Balducci
 
Introduzione ai framework ioc
Introduzione ai framework iocIntroduzione ai framework ioc
Introduzione ai framework iocAndrea Balducci
 

More from Andrea Balducci (17)

Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019
 
Inception
InceptionInception
Inception
 
Stranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarcheStranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarche
 
Event based modelling and prototyping
Event based modelling and prototypingEvent based modelling and prototyping
Event based modelling and prototyping
 
Storage dei dati con MongoDB
Storage dei dati con MongoDBStorage dei dati con MongoDB
Storage dei dati con MongoDB
 
Italian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - ModellathonItalian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - Modellathon
 
Open domus 2016
Open domus 2016Open domus 2016
Open domus 2016
 
Oktober webfest
Oktober webfestOktober webfest
Oktober webfest
 
TypeScript intro / mobile dev camp
TypeScript intro / mobile dev campTypeScript intro / mobile dev camp
TypeScript intro / mobile dev camp
 
Typescript intro
Typescript introTypescript intro
Typescript intro
 
Alam aeki 2015
Alam aeki 2015Alam aeki 2015
Alam aeki 2015
 
Mongo db halloween party
Mongo db halloween partyMongo db halloween party
Mongo db halloween party
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
 
Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStore
 
Intel AppUp Day Bologna
Intel AppUp Day BolognaIntel AppUp Day Bologna
Intel AppUp Day Bologna
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community Tour
 
Introduzione ai framework ioc
Introduzione ai framework iocIntroduzione ai framework ioc
Introduzione ai framework ioc
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

jQuery Ecosystem

  • 1. andreabalducci {ecosystem} V UGI ALT.NetConference Milano :: 23 Gennaio 2010
  • 2. andreabalducci Chi è costui? Andrea Balducci Job: Sviluppatore per passione (da un quarto di secolo…) Mercato: Applicazioni client / server in c++ per la PMI Asp.Net: Catasto Termico, MES http://www.dotnetmarche.org/blogs/andreabalducci mtb.snowboard@gmail.com
  • 3. Agenda jQuery intro jQuery UI QUnit jQuery Lint TestSwarm Profiling
  • 4. jQuery jQuery è unalibreria JavaScript http://www.gracesmith.co.uk/86-jquery-resources-to-spice-up-your-website/
  • 5. jQuery Creatada John Resignel 2006 http://ejohn.org
  • 8. jQuery jQuery è presente nel 37% dei siti web che utilizzano Javascript http://trends.builtwith.com/javascript
  • 10. jQuery Cross browser Suite di 3060 test (Safari 3.2, Safari 4, Firefox 2, Firefox 3, Firefox 3.5, IE 6, IE 7, IE 8, Opera 10.10 and Chrome).50 browser su 11 piattaforme. Modello ad eventi .click() .mouseenter() .keydown() etc.. Leggera Solo 23kb per la versione minified (gzipped).Disponibile sulle CDN Google e Microsoft
  • 11. jQuery Centinaia di plug-in già pronti Forms, validation, autocomplete, grid, jQuery.UI, gameshttp://plugins.jquery.com/ Documentata http://api.jquery.com/<method>http://forum.jquery.com/ Visual jQuery http://visualjquery.com/ Deliciousbookmarks 1.123k+ http://delicious.com/tag/jquery
  • 12. jQuery Google ha 12.900.000 risultati per il termine “jQuery” 10 volte più famosa della D’Addario e del Lettone di Putin
  • 13. Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )};
  • 14. Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )}; jQuery
  • 15. Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )}; jQuery findthings
  • 16. Come funziona? $(document).ready(function() { $(‘li’).css(‘color’, ‘red’); )}; jQuery findthings do stuff
  • 17. Categorie Selettori Eventi Manipolazione del DOM Ajax Data Navigazione del DOM
  • 18. jQuery(document).ready(..); L’entry point di jQuery Vieneeseguitoappenail DOM è completo e prima cheilcontenutodellapaginasiacaricato. E’ possibileregistrarel’evento $(document).ready() più volte Versionebreve: $(..);
  • 19. Selettori Attribute :: Basic :: Basic Filter :: Child Filter :: Content FilterForm :: Hierarchy:: Visibility Filter Live test: http://codylindley.com/jqueryselectors/ http://api.jquery.com/category/selectors/
  • 20. Eventi jQuery introduce il modello ad eventi in modo non intrusivo; il binding degli eventi avviene fuori dal markup dell’elemento. <html> <head><title>Modello ad eventi - click</title> <script src="jquery-1.4.min.js" type="text/javascript"> </script> <script type="text/javascript"> $(document).ready(function() { $('#clickme').click(function(){ $(this).remove(); }); }); </script> </head> <body> <a id="clickme" href="#">click me</a> </body> </html> http://api.jquery.com/category/events/
  • 21. Manipolazione DOM Attributi $(‘.clickMe’).addClass(‘clicked’); $(‘.clickMe’).attr(‘id’, ‘theone’); Struttura $(‘<div>’) $(‘.clickMe’).remove(); $(‘.clickMe’).clone(); $(‘<div>’).appendTo($(‘#box’)); Stile $(‘.clickMe’).css(‘color’, ‘red’); Lettura / scrittura $(‘#title’).text(‘jQuery @Ugi.Alt’); var title = $(‘#title’).text(); http://api.jquery.com/category/manipulation/
  • 22. $.ajax() Low level jQuery.ajax( settings ) // http://api.jquery.com/jQuery.ajax/ ShorthandMethods jQuery.get() esegue una richiesta tramite HTTP GET jQuery.getJSON() esegue una richiesta di dati in formato JSON tramite HTTP GET jQuery.getScript() carica uno script tramite una GET e lo esegue .load() esegue la richiesta al server e inserire la risposta nell’elemento jQuery.post() esegue la richiesta tramite una POST http://api.jquery.com/category/ajax/
  • 23. .data() .data() permette di associare dei valori agli elementi del DOM senza sporcare il markup. .data(key, value) $(‘#contact-1’).data(‘name’, ‘Andrea’); $(‘#contact-1’).data(‘age’, 35); .data(key) varname = $(‘#contact-1’).data(‘name’); .data() varcontact = $(‘#contact-1’).data(); // { name: ‘Andrea’, age: 35} http://api.jquery.com/data/
  • 25. Navigazione del DOM .add() .andSelf() .children() .closest() .contents() .end() .eq() .filter() .find() .first() .has() .is() .last() .map() .next() .nextAll() .nextUntil() .not() .offsetParent() .parent() .parents() .parentsUntil() .prev() .prevAll() .prevUntil() .siblings() .slice() http://api.jquery.com/category/traversing/
  • 26.
  • 27. “jQuery UI provides a comprehensive set ofcoreinteraction plugins, UI widgets and visualeffectsthatuse a jQuery-style, event-drivenarchitecture and a focus on web standards, accessiblity, flexible styling, and user-friendly design.All plugins are testedforcompatibility in IE 6.0+, FF 2+, Safari 3.1+, Opera 9.0+, and Google Chrome.”
  • 28. In fase di rilascio la versione 1.8
  • 29. Interactions Draggable Droppable Resizable Selectable Sortable Widgets Accordion Autocomplete Button Datepicker Dialog Progressbar Slider Tabs Effects Addclass Removeclass Switchclass Toggleclass Show Hide Toggle Animate Effect Roadmap su http://wiki.jqueryui.com/
  • 31. Case Study – Catasto termico SostiuzionediAsp.Net AJAX Control Toolkit Aumentatal’interattivitàlato client Dimezzatoil peso dellepagine
  • 33. ThemeRoller ThemeRoller permette di configurare a proprio piacimento i temi di jQuery.ui jQuery.UI = js + css http://jqueryui.com/themeroller/
  • 34. QUnit “QUnit is a powerful, easy-to-use, JavaScript test suite. It's used by the jQuery project to test its code and plugins but is capable of testing any generic JavaScript code” http://docs.jquery.com/QUnit
  • 36. jQuery.Lint “jQuery Lint is a simple script you can download and use with jQuery. It works over the top of jQuery and diligently reports errors and any incorrect usage of jQuery. It will also, to some extent, offer guidance on best practices and performance concerns”. http://github.com/jamespadolsey/jQuery-Lint
  • 38. TestSwarm “The primary goal of TestSwarm is to take the complicated, and time-consuming, process of running JavaScript test suites in multiple browsers and to grossly simplify it. It achieves this goal by providing all the tools necessary for creating a continuous integration workflow for your JavaScript project.” http://testswarm.com/
  • 40. Performance Analysis {demo} http://developer.yahoo.com/yui/theater/video.php?v=resig-testing
  • 41. {spot :: comingsoon} Dexter, jQuery, Castle Windsor, Asp.Net MVC, NHibernate & co…