SlideShare a Scribd company logo
 Value Lab is a management consulting and
IT solutions company specialized in
Marketing, Sales and Retailing
 Our goal is to help Manufactures, Retailers
and Service company to improve their
commercial performance and strengthen
their competitive positioning, supporting
their stratiegic decisions and operational
management
 Founded in 1990 we have two offices in
Milan and Rome and we operate in Italy and
abroad
 As IT system integrator and italian ESRI
Business Partner company we use and
customize a wide range of software
solutions including ESRI ArcGIS platform
 We provide geomarketing and geo-BI
solutions to our customers, based on our
micro-geographical data (at census and
street number level)
 We had a geomarketing solution based
on ESRI Silverlight API
› No browser vendor issues
› Great developer experience in terms of
technology and productivity
› Great third parties support in terms of tools
and UI widgets
 Then Steve Jobs "invented" a new
technology user experience: the mobile
touch
› iPhone started the smartphone era
› iPad started the tablet era
 Our customers, the old ones and the
new ones, started to ask us to play with
our web solution also on that devices
 We tried first to support iPad users
developing a prototype with ESRI ArcGIS
iOS API, but we realized that wasn't
possible for us to maintain several
different applications, one for every SDK
 We decided to try to embrace the "new-
wave" and its "write once, run
everywhere" promise: HTML5
 We know our end user scenario is very
particular:
› End user is usually a business analyst, he's
not a classical GIS user so our solutions are
not GIS centric: the map is only another
way to show performance KPIs
› Our end users usually are not particularly
interested in technology, but they ask for
usability and high customizations
 Yes you're right: "5" stands for HTML5
 We decided to develop a web solution
with specific features both server side
and client side:
› Maintainable
› Configurable and composable based on
user account
› Secure
› User friendly
 Server side GeoIntelligence5 is built on:
› Microsoft ASP.NET MVC 3
› Microsoft Enterprise Library 5.0
› Microsoft Entity Framework 4.x
› Microsoft WCF REST Services
› Managed Extensibility Framework (MEF)
› Combres
 Client side GeoIntelligence5 is built on:
› ArcGIS Javascript API
› jQuery
› jQuery UI
› Knockout JS
› Linq JS
 But most of all Javascript Design Patterns
› Inheritance, Namespace, Module, M-V-VM
 GeoIntelligence 5 shares and extends
the ArcGIS Server user accountability
system based on Microsoft SQL Server
 We use Microsoft Entity Framework to
access basic membership informations
and the extended user configuration
settings
 GeoIntelligence5 is fully based on Microsoft
Enterprise Library at infrastructure level to
manage cross-cutting concerns:
› Dependency Injection & Interception
› Logging
› Security
› Caching
› Validation
› Exception handling
 We decided to expose application
services in the same way ArcGIS Server
do: HTTP REST services
 Client-Side we can use the same
paradigm to access both ArcGIS services
and application services
 We decided to use Microsoft WCF REST
Services because of its no-configuration
capability and integration with ASP.NET
 GeoIntelligence5 is a plug-in based
system: user account configuration
contains the plug-in list available for that
user
 Managed Extensibility Framework is the
key factor technology in our plug-in
architecture in terms of single plug-in
deployment, runtime registration and
loading
 HTML5 client-side richness means we
have to face a large number of CSS and
Javascript files
 GeoIntelligence5 integrates Combres to
streamline client-side resources
optimization:
› Runtime minification
› Caching
› Reduced number of client requests
 We decided to use jQuery as main
Javascript support framework because
of:
› Wide adoption and documentation
› Great third parties plug-in avalaibility
› Simplicity
› Customization
 Linq is one of the most important
innovation in software development
 Querying arrays and objects (such as the
complex user configuration graph) is
very easy using Linq JS
 One of the most productive UI
presentation patterns is Model-View-
ViewModel
 Knockout JS is a complete M-V-VM
implementation in Javascript:
› Clean HTML markup
› Clear separation between UI and business
code
› Simple databinding mechanism
Roberto Messora
Marco Brugna

More Related Content

What's hot

Exposing Lambda Functions as Managed APIs
Exposing Lambda Functions as Managed APIsExposing Lambda Functions as Managed APIs
Exposing Lambda Functions as Managed APIs
WSO2
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
Steven Willmott
 
APIs: The Gateway to Digital Transformation
APIs: The Gateway to Digital TransformationAPIs: The Gateway to Digital Transformation
APIs: The Gateway to Digital Transformation
WSO2
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
WSO2
 
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
WSO2
 
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
Solving Enteprise Mobility Considerations with Telerik Mobile PlatformSolving Enteprise Mobility Considerations with Telerik Mobile Platform
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
Lohith Goudagere Nagaraj
 
[WSO2 Integration Summit London 2019] The Composable Enterprise
[WSO2 Integration Summit London 2019] The Composable Enterprise[WSO2 Integration Summit London 2019] The Composable Enterprise
[WSO2 Integration Summit London 2019] The Composable Enterprise
WSO2
 
WSO2 Product Release Webinar Introducing WSO2 API Manager for Complete API ...
WSO2 Product Release Webinar   Introducing WSO2 API Manager for Complete API ...WSO2 Product Release Webinar   Introducing WSO2 API Manager for Complete API ...
WSO2 Product Release Webinar Introducing WSO2 API Manager for Complete API ...WSO2
 
[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...
[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...
[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...
WSO2
 
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
WSO2
 
Cloud Native Application Development-build fast, low TCO, scalable & agile so...
Cloud Native Application Development-build fast, low TCO, scalable & agile so...Cloud Native Application Development-build fast, low TCO, scalable & agile so...
Cloud Native Application Development-build fast, low TCO, scalable & agile so...
Lucas Jellema
 
[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...
[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...
[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...
WSO2
 
Online Meetup - MuleSoft - June 2020
 Online Meetup - MuleSoft - June 2020  Online Meetup - MuleSoft - June 2020
Online Meetup - MuleSoft - June 2020
Royston Lobo
 
WSO2 User Group Bangalore Meetup
WSO2 User Group Bangalore MeetupWSO2 User Group Bangalore Meetup
WSO2 User Group Bangalore Meetup
WSO2
 
WSO2 Product Release Webinar - WSO2 API Manager 1.9
WSO2 Product Release Webinar - WSO2 API Manager 1.9WSO2 Product Release Webinar - WSO2 API Manager 1.9
WSO2 Product Release Webinar - WSO2 API Manager 1.9
WSO2
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
WSO2
 
[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World
WSO2
 
Using SignalR with Kendo UI
Using SignalR with Kendo UIUsing SignalR with Kendo UI
Using SignalR with Kendo UI
Abhishek Kant
 
[apidays Live Australia] - Quantum Duality of “API as a business and a techno...
[apidays Live Australia] - Quantum Duality of “API as a business and a techno...[apidays Live Australia] - Quantum Duality of “API as a business and a techno...
[apidays Live Australia] - Quantum Duality of “API as a business and a techno...
WSO2
 
[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...
WSO2
 

What's hot (20)

Exposing Lambda Functions as Managed APIs
Exposing Lambda Functions as Managed APIsExposing Lambda Functions as Managed APIs
Exposing Lambda Functions as Managed APIs
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices EditionA Connector, A Container and an API Walk into a Bar… Microservices Edition
A Connector, A Container and an API Walk into a Bar… Microservices Edition
 
APIs: The Gateway to Digital Transformation
APIs: The Gateway to Digital TransformationAPIs: The Gateway to Digital Transformation
APIs: The Gateway to Digital Transformation
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Toronto 2019] Cloud-native Integration for the Enterprise
 
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
Solving Enteprise Mobility Considerations with Telerik Mobile PlatformSolving Enteprise Mobility Considerations with Telerik Mobile Platform
Solving Enteprise Mobility Considerations with Telerik Mobile Platform
 
[WSO2 Integration Summit London 2019] The Composable Enterprise
[WSO2 Integration Summit London 2019] The Composable Enterprise[WSO2 Integration Summit London 2019] The Composable Enterprise
[WSO2 Integration Summit London 2019] The Composable Enterprise
 
WSO2 Product Release Webinar Introducing WSO2 API Manager for Complete API ...
WSO2 Product Release Webinar   Introducing WSO2 API Manager for Complete API ...WSO2 Product Release Webinar   Introducing WSO2 API Manager for Complete API ...
WSO2 Product Release Webinar Introducing WSO2 API Manager for Complete API ...
 
[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...
[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...
[WSO2 Summit New York 2018] Digital Impact In the Real World: Integration Lif...
 
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
 
Cloud Native Application Development-build fast, low TCO, scalable & agile so...
Cloud Native Application Development-build fast, low TCO, scalable & agile so...Cloud Native Application Development-build fast, low TCO, scalable & agile so...
Cloud Native Application Development-build fast, low TCO, scalable & agile so...
 
[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...
[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...
[WSO2Con EU 2018] APIs - Technology That Can Transform Your Business Into a P...
 
Online Meetup - MuleSoft - June 2020
 Online Meetup - MuleSoft - June 2020  Online Meetup - MuleSoft - June 2020
Online Meetup - MuleSoft - June 2020
 
WSO2 User Group Bangalore Meetup
WSO2 User Group Bangalore MeetupWSO2 User Group Bangalore Meetup
WSO2 User Group Bangalore Meetup
 
WSO2 Product Release Webinar - WSO2 API Manager 1.9
WSO2 Product Release Webinar - WSO2 API Manager 1.9WSO2 Product Release Webinar - WSO2 API Manager 1.9
WSO2 Product Release Webinar - WSO2 API Manager 1.9
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World
 
Using SignalR with Kendo UI
Using SignalR with Kendo UIUsing SignalR with Kendo UI
Using SignalR with Kendo UI
 
[apidays Live Australia] - Quantum Duality of “API as a business and a techno...
[apidays Live Australia] - Quantum Duality of “API as a business and a techno...[apidays Live Australia] - Quantum Duality of “API as a business and a techno...
[apidays Live Australia] - Quantum Duality of “API as a business and a techno...
 
[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...
 

Similar to Web technologies and patterns in HTML5 mapping

Self-adaptive geospatial web applications
Self-adaptive geospatial web applicationsSelf-adaptive geospatial web applications
Self-adaptive geospatial web applicationsRoberto Messora
 
Company presentation (+portfolio)
Company presentation (+portfolio)Company presentation (+portfolio)
Company presentation (+portfolio)
Maria Padaliak
 
Company Presentation (+Portfolio)
Company Presentation (+Portfolio)Company Presentation (+Portfolio)
Company Presentation (+Portfolio)Joseph McKay
 
Startups without Servers
Startups without ServersStartups without Servers
Startups without Servers
Amazon Web Services
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Vidyasagar Machupalli
 
ZiniosEdge Company Overview
ZiniosEdge Company OverviewZiniosEdge Company Overview
ZiniosEdge Company Overview
Vijay Kumar
 
Mobile-Enabling Enterprise APIs: A Case Study with MasterCard
Mobile-Enabling Enterprise APIs: A Case Study with MasterCardMobile-Enabling Enterprise APIs: A Case Study with MasterCard
Mobile-Enabling Enterprise APIs: A Case Study with MasterCard
AnyPresence
 
Zapbuild Portfolio
Zapbuild PortfolioZapbuild Portfolio
Zapbuild Portfolio
Zapbuild
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
Dev_Events
 
Top MEAN Stack Development Services Company
Top MEAN Stack Development Services CompanyTop MEAN Stack Development Services Company
Top MEAN Stack Development Services Company
Surekha Technologies
 
NewStar Software Services Service+Offerings
NewStar Software Services Service+OfferingsNewStar Software Services Service+Offerings
NewStar Software Services Service+Offeringsguest7f7cc9d
 
Bluegrass digital creds 2015
Bluegrass digital creds 2015Bluegrass digital creds 2015
Bluegrass digital creds 2015
Bluegrass Digital
 
Imaginea Introduction
Imaginea IntroductionImaginea Introduction
Imaginea Introduction
arun_imaginea
 
usi_portfolio
usi_portfoliousi_portfolio
usi_portfolioOleh Leha
 
New Star+Software+Services+Service+Offerings
New Star+Software+Services+Service+OfferingsNew Star+Software+Services+Service+Offerings
New Star+Software+Services+Service+OfferingsPraveen_Annubhukta
 
R-Style Lab Web Development Portfolio
R-Style Lab Web Development PortfolioR-Style Lab Web Development Portfolio
R-Style Lab Web Development Portfolio
R-Style Lab
 
The App Evolution
The App Evolution The App Evolution
The App Evolution
Dev_Events
 

Similar to Web technologies and patterns in HTML5 mapping (20)

Self-adaptive geospatial web applications
Self-adaptive geospatial web applicationsSelf-adaptive geospatial web applications
Self-adaptive geospatial web applications
 
Company presentation (+portfolio)
Company presentation (+portfolio)Company presentation (+portfolio)
Company presentation (+portfolio)
 
Company Presentation (+Portfolio)
Company Presentation (+Portfolio)Company Presentation (+Portfolio)
Company Presentation (+Portfolio)
 
Startups without Servers
Startups without ServersStartups without Servers
Startups without Servers
 
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17Go Cloud Native with IBM Bluemix Developer Console - GIDS17
Go Cloud Native with IBM Bluemix Developer Console - GIDS17
 
Vivek
VivekVivek
Vivek
 
ZiniosEdge Company Overview
ZiniosEdge Company OverviewZiniosEdge Company Overview
ZiniosEdge Company Overview
 
Mobile-Enabling Enterprise APIs: A Case Study with MasterCard
Mobile-Enabling Enterprise APIs: A Case Study with MasterCardMobile-Enabling Enterprise APIs: A Case Study with MasterCard
Mobile-Enabling Enterprise APIs: A Case Study with MasterCard
 
Zapbuild Portfolio
Zapbuild PortfolioZapbuild Portfolio
Zapbuild Portfolio
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
Top MEAN Stack Development Services Company
Top MEAN Stack Development Services CompanyTop MEAN Stack Development Services Company
Top MEAN Stack Development Services Company
 
Rashmi_TL
Rashmi_TLRashmi_TL
Rashmi_TL
 
NewStar Software Services Service+Offerings
NewStar Software Services Service+OfferingsNewStar Software Services Service+Offerings
NewStar Software Services Service+Offerings
 
Bluegrass digital creds 2015
Bluegrass digital creds 2015Bluegrass digital creds 2015
Bluegrass digital creds 2015
 
Gayathri Sundaram - Resume
Gayathri Sundaram - ResumeGayathri Sundaram - Resume
Gayathri Sundaram - Resume
 
Imaginea Introduction
Imaginea IntroductionImaginea Introduction
Imaginea Introduction
 
usi_portfolio
usi_portfoliousi_portfolio
usi_portfolio
 
New Star+Software+Services+Service+Offerings
New Star+Software+Services+Service+OfferingsNew Star+Software+Services+Service+Offerings
New Star+Software+Services+Service+Offerings
 
R-Style Lab Web Development Portfolio
R-Style Lab Web Development PortfolioR-Style Lab Web Development Portfolio
R-Style Lab Web Development Portfolio
 
The App Evolution
The App Evolution The App Evolution
The App Evolution
 

More from Roberto Messora

Azure Synapse: data lake & modern data warehouse dalla A alla Z
Azure Synapse: data lake &  modern data warehouse dalla A alla ZAzure Synapse: data lake &  modern data warehouse dalla A alla Z
Azure Synapse: data lake & modern data warehouse dalla A alla Z
Roberto Messora
 
Azure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationAzure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integration
Roberto Messora
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
Roberto Messora
 
Seminario Big Data
Seminario Big DataSeminario Big Data
Seminario Big Data
Roberto Messora
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
Roberto Messora
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
Roberto Messora
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora
 
Docker as a hosting target
Docker as a hosting targetDocker as a hosting target
Docker as a hosting target
Roberto Messora
 
Da imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JSDa imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JS
Roberto Messora
 
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extensionEvent streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Roberto Messora
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
Roberto Messora
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
Roberto Messora
 
Javascript Unit Testing
Javascript Unit TestingJavascript Unit Testing
Javascript Unit Testing
Roberto Messora
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
Roberto Messora
 
Javascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il webJavascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il web
Roberto Messora
 
Usare Knockout JS
Usare Knockout JSUsare Knockout JS
Usare Knockout JS
Roberto Messora
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
Roberto Messora
 

More from Roberto Messora (17)

Azure Synapse: data lake & modern data warehouse dalla A alla Z
Azure Synapse: data lake &  modern data warehouse dalla A alla ZAzure Synapse: data lake &  modern data warehouse dalla A alla Z
Azure Synapse: data lake & modern data warehouse dalla A alla Z
 
Azure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integrationAzure Data Factory: l'evoluzione della specie della data integration
Azure Data Factory: l'evoluzione della specie della data integration
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Seminario Big Data
Seminario Big DataSeminario Big Data
Seminario Big Data
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Da JavaScript a TypeScript
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
 
Docker as a hosting target
Docker as a hosting targetDocker as a hosting target
Docker as a hosting target
 
Da imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JSDa imperativo a reattivo: Bacon.JS
Da imperativo a reattivo: Bacon.JS
 
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extensionEvent streaming pipeline with Windows Azure and ArcGIS Geoevent extension
Event streaming pipeline with Windows Azure and ArcGIS Geoevent extension
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
 
Single Page Applications
Single Page ApplicationsSingle Page Applications
Single Page Applications
 
Javascript Unit Testing
Javascript Unit TestingJavascript Unit Testing
Javascript Unit Testing
 
Single Page web Application
Single Page web ApplicationSingle Page web Application
Single Page web Application
 
Javascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il webJavascript avanzato: sfruttare al massimo il web
Javascript avanzato: sfruttare al massimo il web
 
Usare Knockout JS
Usare Knockout JSUsare Knockout JS
Usare Knockout JS
 
MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!MV* presentation frameworks in Javascript: en garde, pret, allez!
MV* presentation frameworks in Javascript: en garde, pret, allez!
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 

Web technologies and patterns in HTML5 mapping

  • 1.
  • 2.  Value Lab is a management consulting and IT solutions company specialized in Marketing, Sales and Retailing  Our goal is to help Manufactures, Retailers and Service company to improve their commercial performance and strengthen their competitive positioning, supporting their stratiegic decisions and operational management  Founded in 1990 we have two offices in Milan and Rome and we operate in Italy and abroad
  • 3.  As IT system integrator and italian ESRI Business Partner company we use and customize a wide range of software solutions including ESRI ArcGIS platform  We provide geomarketing and geo-BI solutions to our customers, based on our micro-geographical data (at census and street number level)
  • 4.
  • 5.  We had a geomarketing solution based on ESRI Silverlight API › No browser vendor issues › Great developer experience in terms of technology and productivity › Great third parties support in terms of tools and UI widgets
  • 6.  Then Steve Jobs "invented" a new technology user experience: the mobile touch › iPhone started the smartphone era › iPad started the tablet era  Our customers, the old ones and the new ones, started to ask us to play with our web solution also on that devices
  • 7.  We tried first to support iPad users developing a prototype with ESRI ArcGIS iOS API, but we realized that wasn't possible for us to maintain several different applications, one for every SDK  We decided to try to embrace the "new- wave" and its "write once, run everywhere" promise: HTML5
  • 8.  We know our end user scenario is very particular: › End user is usually a business analyst, he's not a classical GIS user so our solutions are not GIS centric: the map is only another way to show performance KPIs › Our end users usually are not particularly interested in technology, but they ask for usability and high customizations
  • 9.  Yes you're right: "5" stands for HTML5  We decided to develop a web solution with specific features both server side and client side: › Maintainable › Configurable and composable based on user account › Secure › User friendly
  • 10.  Server side GeoIntelligence5 is built on: › Microsoft ASP.NET MVC 3 › Microsoft Enterprise Library 5.0 › Microsoft Entity Framework 4.x › Microsoft WCF REST Services › Managed Extensibility Framework (MEF) › Combres
  • 11.  Client side GeoIntelligence5 is built on: › ArcGIS Javascript API › jQuery › jQuery UI › Knockout JS › Linq JS  But most of all Javascript Design Patterns › Inheritance, Namespace, Module, M-V-VM
  • 12.  GeoIntelligence 5 shares and extends the ArcGIS Server user accountability system based on Microsoft SQL Server  We use Microsoft Entity Framework to access basic membership informations and the extended user configuration settings
  • 13.  GeoIntelligence5 is fully based on Microsoft Enterprise Library at infrastructure level to manage cross-cutting concerns: › Dependency Injection & Interception › Logging › Security › Caching › Validation › Exception handling
  • 14.  We decided to expose application services in the same way ArcGIS Server do: HTTP REST services  Client-Side we can use the same paradigm to access both ArcGIS services and application services  We decided to use Microsoft WCF REST Services because of its no-configuration capability and integration with ASP.NET
  • 15.  GeoIntelligence5 is a plug-in based system: user account configuration contains the plug-in list available for that user  Managed Extensibility Framework is the key factor technology in our plug-in architecture in terms of single plug-in deployment, runtime registration and loading
  • 16.  HTML5 client-side richness means we have to face a large number of CSS and Javascript files  GeoIntelligence5 integrates Combres to streamline client-side resources optimization: › Runtime minification › Caching › Reduced number of client requests
  • 17.  We decided to use jQuery as main Javascript support framework because of: › Wide adoption and documentation › Great third parties plug-in avalaibility › Simplicity › Customization
  • 18.  Linq is one of the most important innovation in software development  Querying arrays and objects (such as the complex user configuration graph) is very easy using Linq JS
  • 19.  One of the most productive UI presentation patterns is Model-View- ViewModel  Knockout JS is a complete M-V-VM implementation in Javascript: › Clean HTML markup › Clear separation between UI and business code › Simple databinding mechanism