SlideShare une entreprise Scribd logo
1  sur  32
Emplacement éventuel pour votre logo
Emplacement éventuel pour votre logo
Introduction

Présentations fonctionnelle et technique
Introduction à SQL Server et le type
géographique
Introduction au développement N-Tiers
Développement d’un service d’exposition de
données AJAX

Conclusions
                                             7
Quels patterns de développement connaissez-
vous ?

Selon vous
•   Est-ce réellement utilisé en entreprise ?
•   Est-ce lié à un langage ou une plateforme ?
•   Quel intérêt pour le développeur ?
•   Ces principes sont-ils limités à l’informatique ?




                                                        9
Notions abordées
•   Présentation et mise en pratique de SQL Server
•   Développement .Net :
     Accès aux données, définition des classes et exposition web
•   Développement JavaScript :
     Appel asynchrone, utilisation de jQuery


Notions non abordées dans cette session
•   Utilisation avancée de SQL Server
•   Utilisation et développement avancé en .Net
•   Développement avec ASP.Net MVC
•   Utilisation avancée de Bing Maps ou customisation10
Description de l’interface

                             Recherche (géocodage)

                             Carte interactive


                             Recherche à proximité :
                             Déclenchée sur le clic
                             sur la carte




                                                 12
Besoins
•   Interface cartographique web interactive
•   Recherche de proximité


Contraintes de développement
•   Etablir un couplage lâche entre chaque couche
    applicative :
     Du stockage des données à la présentation
•   Utilisation des technologies Microsoft
     Base de données SQL Server
     Développement utilisant le Framework .Net
     Utilisation de l’API Bing Maps for Enterprise – contrôle AJAX v7
                                                                         13
Vue globale

 Serveur de base de    Serveur applicatif Web -   Navigateur
données – SQL Server             IIS




                                                    Utilisateur




                                                                  15
Utilisation du type géographique
Historique
•   Ajouté pour la première fois dans SQL Server 2008
•   Correspond à un type CLR – utilisant un type de
    données spécialisé

•   Introduit en même temps que les types :
     Geometry
     HiearchyId
     Geography


•   Amélioré en SQL Server 2012

                                                        17
En détails
•   Capacité de stockage de données géographiques
     Point, lignes, polygones…
•   Evite la gestion de tables de coordonnées
•   Permets d’effectuer des opérations avancées à partir
    de méthodes standards




                                                      18
Intérêts
•   Ajout de capacité spatiales à vos données
•   Utilisation d’index spatiaux dédiés
•   Manipulation simplifiée et standards




                                                19
Utilisation concrète
      •   Déclaration des éléments en texte standard : WKT
POINT(4 45)




      •   Déclaration d’autres types d’éléments géographiques :
LINESTRING(3 45,4 45,4 44)
POLYGON((3 45,4 44,4 45,3 45))




      •   WKT est un standard OGC :
               http://en.wikipedia.org/wiki/Well-known_text
               http://msdn.microsoft.com/en-us/library/bb895235.aspx

                                                                        20
Utilisation avancée
•   Possibilité d’utilisation de méthodes avancées
       STIntersects()
       STBuffer()
       STArea()                         ? = Intersects
       STDistance()            1




                                                          21
Création de la procédure stockée
ALTER PROCEDURE City_SelectNearby
          @pCenterLat as float,
          @pCenterLng as float,
          @pRadius as int
AS
BEGIN

           DECLARE @area as GEOGRAPHY
           SET @area = GEOGRAPHY::STGeomFromText('POINT('
                                               + CAST(@pCenterLng as varchar(max))+ ' '
                                               + CAST(@pCenterLat as varchar(max))
                                                         + ')', 4326);


      SELECT
            c.[City] as 'Name',
            CAST(c.[Population] as varchar) as 'Description',
            c.[Location].Lat as 'Latitude',
            c.[Location].Long as 'Longitude'
      FROM Cities c
      WHERE c.[Location].STIntersects(@area.STBuffer(@pRadius)) = 1
END
GO

                                                                                          22
Utilisation de SQL Server 2008
   et du type géographique



                            23
Utilisation par la pratique à travers le
           Framework .Net
Principe général
•   Séparer les différentes les développements par des
    couches logicielles
•   Améliorer la maintenabilité et l’évolutivité des
    développements
•   Simplifier les développements




                                                     25
Description précise
•   Présentation du pattern Repository




                                    Exposition and
          Repositories   Business
                                     Presentation




                                                     26
Description précise
•   Présentation du pattern Repository



       Repositories       Business        Exposition and
                                           Presentation

            IRepository   Services       Web Services


    SqlServerRepository

                          Entities                      JavaScript
      XmlRepository




                                                                     27
Intérêts
•   Réutilisation et mutualisation des développements
•   Simplification
•   Développement logique
•   S’applique à toutes technologies




                                                    28
Etape 1 : Création de la structure de projet




Etape 2 : Développement de la couche d’accès
aux données
Etape 3 : Construction de la couche métier et des
entités métiers

                                               29
Création des projets et développement




                               30
Utilisation par la pratique à travers le
           Framework .Net
Etape 4 : Création du Web Services d’exposition
   de données
    •   Ajout de l’attribut ScriptService

[System.Web.Script.Services.ScriptService]
public class GeoService : System.Web.Services.WebService


    •   Ajout des attributs de visibilité et exposition sur les
        méthodes souhaitées
[WebMethod]
[ScriptMethod]
public string HelloWorld()


                                                              32
Etape 5 : Création du code client JavaScript
   d’appel asynchrone
    •   Utilisation avec la librairie jQuery
         http://jquery.com/
    •   Exemple de code d’appel :

$.ajax({
    url: composedUrl,
    data: JSON.stringify(dataObject),
    type: "POST",
    contentType: 'application/json; charset=utf-8',
    success: onGetCitiesNearbySuccess,
    error: onGetCitiesNearbyError
});

                                                      33
Développement du Web Service et
          JavaScript



                           34
35

Contenu connexe

Similaire à Cartographie - cas concrets et bonnes pratiques de développement

Saas Libre
Saas LibreSaas Libre
Saas Libregrolland
 
Du code à la carte
Du code à la carteDu code à la carte
Du code à la cartearno974
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...sebastienmoreno
 
SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...
SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...
SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...Microsoft Technet France
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAOahmedmiha
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallCloudOps2005
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
 
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveDesign applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveRomainKuzniak
 
Nouveautés produits Autodesk 2010
Nouveautés produits Autodesk 2010Nouveautés produits Autodesk 2010
Nouveautés produits Autodesk 2010Geomap GIS America
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...CERTyou Formation
 
architectureNTiers.pdf
architectureNTiers.pdfarchitectureNTiers.pdf
architectureNTiers.pdfbetxso156
 
Microsoft experiences azure et asp.net core
Microsoft experiences   azure et asp.net coreMicrosoft experiences   azure et asp.net core
Microsoft experiences azure et asp.net coreSébastien Ollivier
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009Oslandia
 

Similaire à Cartographie - cas concrets et bonnes pratiques de développement (20)

Saas Libre
Saas LibreSaas Libre
Saas Libre
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
 
Du code à la carte
Du code à la carteDu code à la carte
Du code à la carte
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
 
SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...
SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...
SQL Server 2012 et ArcGIS d'Esri: Intégrez la dimension géographique dans vos...
 
Présentation PFE Module Article GPAO
Présentation PFE Module Article GPAOPrésentation PFE Module Article GPAO
Présentation PFE Module Article GPAO
 
Plateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de MontréallPlateformes et infrastructure infonuagique natif de ville de Montréall
Plateformes et infrastructure infonuagique natif de ville de Montréall
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
MERAZKA Messaoud
MERAZKA MessaoudMERAZKA Messaoud
MERAZKA Messaoud
 
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony LiveDesign applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
Design applicatif avec symfony - Zoom sur la clean architecture - Symfony Live
 
Nouveautés produits Autodesk 2010
Nouveautés produits Autodesk 2010Nouveautés produits Autodesk 2010
Nouveautés produits Autodesk 2010
 
Débreffage du projet Territoire
Débreffage du projet TerritoireDébreffage du projet Territoire
Débreffage du projet Territoire
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
 
Introduction aux géoservices - O. Travaglini
Introduction aux géoservices - O. TravagliniIntroduction aux géoservices - O. Travaglini
Introduction aux géoservices - O. Travaglini
 
architectureNTiers.pdf
architectureNTiers.pdfarchitectureNTiers.pdf
architectureNTiers.pdf
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Microsoft experiences azure et asp.net core
Microsoft experiences   azure et asp.net coreMicrosoft experiences   azure et asp.net core
Microsoft experiences azure et asp.net core
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009
 

Cartographie - cas concrets et bonnes pratiques de développement

  • 3.
  • 4. Introduction Présentations fonctionnelle et technique Introduction à SQL Server et le type géographique Introduction au développement N-Tiers Développement d’un service d’exposition de données AJAX Conclusions 7
  • 5.
  • 6. Quels patterns de développement connaissez- vous ? Selon vous • Est-ce réellement utilisé en entreprise ? • Est-ce lié à un langage ou une plateforme ? • Quel intérêt pour le développeur ? • Ces principes sont-ils limités à l’informatique ? 9
  • 7. Notions abordées • Présentation et mise en pratique de SQL Server • Développement .Net :  Accès aux données, définition des classes et exposition web • Développement JavaScript :  Appel asynchrone, utilisation de jQuery Notions non abordées dans cette session • Utilisation avancée de SQL Server • Utilisation et développement avancé en .Net • Développement avec ASP.Net MVC • Utilisation avancée de Bing Maps ou customisation10
  • 8.
  • 9. Description de l’interface Recherche (géocodage) Carte interactive Recherche à proximité : Déclenchée sur le clic sur la carte 12
  • 10. Besoins • Interface cartographique web interactive • Recherche de proximité Contraintes de développement • Etablir un couplage lâche entre chaque couche applicative :  Du stockage des données à la présentation • Utilisation des technologies Microsoft  Base de données SQL Server  Développement utilisant le Framework .Net  Utilisation de l’API Bing Maps for Enterprise – contrôle AJAX v7 13
  • 11.
  • 12. Vue globale Serveur de base de Serveur applicatif Web - Navigateur données – SQL Server IIS Utilisateur 15
  • 13. Utilisation du type géographique
  • 14. Historique • Ajouté pour la première fois dans SQL Server 2008 • Correspond à un type CLR – utilisant un type de données spécialisé • Introduit en même temps que les types :  Geometry  HiearchyId  Geography • Amélioré en SQL Server 2012 17
  • 15. En détails • Capacité de stockage de données géographiques  Point, lignes, polygones… • Evite la gestion de tables de coordonnées • Permets d’effectuer des opérations avancées à partir de méthodes standards 18
  • 16. Intérêts • Ajout de capacité spatiales à vos données • Utilisation d’index spatiaux dédiés • Manipulation simplifiée et standards 19
  • 17. Utilisation concrète • Déclaration des éléments en texte standard : WKT POINT(4 45) • Déclaration d’autres types d’éléments géographiques : LINESTRING(3 45,4 45,4 44) POLYGON((3 45,4 44,4 45,3 45)) • WKT est un standard OGC :  http://en.wikipedia.org/wiki/Well-known_text  http://msdn.microsoft.com/en-us/library/bb895235.aspx 20
  • 18. Utilisation avancée • Possibilité d’utilisation de méthodes avancées  STIntersects()  STBuffer()  STArea() ? = Intersects  STDistance() 1 21
  • 19. Création de la procédure stockée ALTER PROCEDURE City_SelectNearby @pCenterLat as float, @pCenterLng as float, @pRadius as int AS BEGIN DECLARE @area as GEOGRAPHY SET @area = GEOGRAPHY::STGeomFromText('POINT(' + CAST(@pCenterLng as varchar(max))+ ' ' + CAST(@pCenterLat as varchar(max)) + ')', 4326); SELECT c.[City] as 'Name', CAST(c.[Population] as varchar) as 'Description', c.[Location].Lat as 'Latitude', c.[Location].Long as 'Longitude' FROM Cities c WHERE c.[Location].STIntersects(@area.STBuffer(@pRadius)) = 1 END GO 22
  • 20. Utilisation de SQL Server 2008 et du type géographique 23
  • 21. Utilisation par la pratique à travers le Framework .Net
  • 22. Principe général • Séparer les différentes les développements par des couches logicielles • Améliorer la maintenabilité et l’évolutivité des développements • Simplifier les développements 25
  • 23. Description précise • Présentation du pattern Repository Exposition and Repositories Business Presentation 26
  • 24. Description précise • Présentation du pattern Repository Repositories Business Exposition and Presentation IRepository Services Web Services SqlServerRepository Entities JavaScript XmlRepository 27
  • 25. Intérêts • Réutilisation et mutualisation des développements • Simplification • Développement logique • S’applique à toutes technologies 28
  • 26. Etape 1 : Création de la structure de projet Etape 2 : Développement de la couche d’accès aux données Etape 3 : Construction de la couche métier et des entités métiers 29
  • 27. Création des projets et développement 30
  • 28. Utilisation par la pratique à travers le Framework .Net
  • 29. Etape 4 : Création du Web Services d’exposition de données • Ajout de l’attribut ScriptService [System.Web.Script.Services.ScriptService] public class GeoService : System.Web.Services.WebService • Ajout des attributs de visibilité et exposition sur les méthodes souhaitées [WebMethod] [ScriptMethod] public string HelloWorld() 32
  • 30. Etape 5 : Création du code client JavaScript d’appel asynchrone • Utilisation avec la librairie jQuery  http://jquery.com/ • Exemple de code d’appel : $.ajax({ url: composedUrl, data: JSON.stringify(dataObject), type: "POST", contentType: 'application/json; charset=utf-8', success: onGetCitiesNearbySuccess, error: onGetCitiesNearbyError }); 33
  • 31. Développement du Web Service et JavaScript 34
  • 32. 35