SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Introduction à AngularJS
RADHOUENE ROUACHED
Plan
I. Introduction
II. Architecture
III. Démonstration
IV. Notions AngularJS
V. Directives
VI. Services
VII. Routage
VIII. Avantages & inconvénients
IX. Outils utiles
X. Bibliographie & Nétographie
2
Introduction
AngularJS est un Framework JavaScript open source développé par Google en 2009 sous la
licence MIT.
Il assure le création des applications web dynamiques de type SPA (Single Page Application),
permettant ainsi développer ses propres balises et attributs HTML.
AngularJS est utilisé dans les sites Web de:
Et encore plus.
3
Architecture
Pour plusieurs années AngularJS était proche du MVC, mais au fil du temps et grâce à l'améliorations de
l'API, il supporte MVW. Ce pattern est un dérivé du célèbre modèle de conception MVC dont Whatever
désigne « whatever works for you».
4
Démonstration
5
Notions AngularJS
◦ Le model : C'est un jeu de données permettant l'interaction de la page HTML et code JavaScript. Il est
définit par les attributs ng-model des éléments du Template HTML.
◦ Le Controller: contrôle les données des applications angularJS. Il s’agit du contrôle des évènement du
Template HTML.
◦ Le Module: peut être considérer comme un conteneur pour les différentes parties d'une applications,
Controller, services, filtres, directives, etc.
◦ Le Scope: Il s'agit du contexte incluant contrôleurs, variables, module, services qui sont accessible
depuis la vue. Chaque application a un seul rootScope. Tous les autres sont des scopes descendant du
rootScope.
◦ Le Service: C’est l’unité de base qui regroupe une même logique. Un service Angular est un objet
singleton créé par une usine(factory) de service. Ces factories de services sont des fonctions qui, à leur
tour, sont créés par un fournisseur(provider) de services.
6
Directives
Les directives permet d’étendre les capacités du langage HTML. Il existe 4 types de directives:
Directives Fonction
ng-app Définir l’élément racine d’une application AngularJS.
ng-init Affecter une valeur initiale a une application AngularJS.
ng-model Attacher une valeur de formulaire aux données de l’application. Produire ainsi
type de validation, statut et les classes CSS aux données.
ng-repeat Parcourir une collection et cloner chaque élément HTML a un article.
ng-controller Affecter un contrôleur a une vue.
ng-click Spécifier un comportement particulier quand élément est cliqué.
ng-view Inclure le Template rendu de la route actuelle a la page principale.
https://docs.angularjs.org/guide/directive
>>
Elément, Attribut, Class, Commentaire
7
Directives
>>8
Directives
Créez votre propre directive :
 Restrict:
• ‘E’ = Element
• ‘A’ = Attribute
• ‘C’ = Class
• ‘M’ = Comment
9
Services
Les services sont des objets substituables qui sont liés ensemble en utilisant l'injection de
dépendance (DI) dans le but d'organiser et de partager le code dans application.
Les services sont:
◦ Lazy: Angular seulement instancie un service quand un composant d'application dépend.
◦ Singletons : Chaque composant dépend d'un service obtient une référence à l'instance unique généré
par l'usine(factory) de service.
Les services natifs
Services Fonction
$scope Chaque application a une seule racine rootScope. Tous les autres scopes sont descendants de
la portée de la racine. Scopes permet une séparation entre le modèle et la vue, par
l'intermédiaire d'un mécanisme pour observer le modèle de modifications.
$http permet de faire une demande au serveur, et de gérer votre application la réponse.
$timeout Il s’agit d’angular version de la function window.setTimeout()
>>10
Services
Créez votre propre service
Factory: Service: Provider:
Un Provider fournit la
configuration du module à
l'échelle de votre objet de
service avant de le rendre
disponible.
Un service est une constructeur
qui crée l'objet en utilisant un
nouveau paramètre. Vous pouvez
ajouter des propriétés et des
fonctions à un service.
Un Factory présente une
fonction simple qui vous permet
d'ajouter une certaine logique
avant la création d'un objet. Elle
retourne l'objet créé.
11
Routing
AngularJS Routes permet d'implémenter plusieurs vues SPA [Single page Applications]. Chaque
vue serait chargé dynamiquement à la suite de l'action de l'utilisateur.
12
Routing
ngRoute: module fournit des services et des directives de routage et de liaison profonde pour
les applications AngularJS.
$route: est utilisé pour faire la liaison entre les contrôleurs et les vues. Il surveille $location.url()
et tente de mapper le chemin à une définition de la route existante.
$routeParams: permet de récupérer l'ensemble des paramètres l’utilisation a choisi.
ngView: est la directive qui permet d'inclure le modèle rendu de la route actuelle dans la page
principale
13
Avantages & Limites
Utilisation d’injection de dépendances
La séparation des préoccupations
fonctionne en mode déconnecté
Le code Angular est testable (unit)
Composant réutilisable
Fournir la liaison de données (data-binding)
aux pages HTML
 Héritage Prototypal
 Non dégradable (Si l'utilisateur désactive
JavaScript, rien ne serait visible)
 Non Sécurisé (Server side authentication and
authorization)
14
Outils utiles
IDE (notepad++, sublime text, netbeans…)
NG Inspector
Batarang
15
Bibliographie & Nétographie
(1) https://docs.angularjs.org/guide/
(2) http://www.w3schools.com/angular/
(3) https://www.airpair.com/javascript/posts/services-in-angularjs-simplified-with-examples
(4) http://cdsweb.u-strasbg.fr/~landais/presentations/INFUSION_angular.pdf
(5) http://www.techaltair.com/5-best-javascript-ide-for-front-end-and-web-engineers/
(6) http://javascript.developpez.com/cours/outils-vraiment-utiles-pour-developpeurs-javascript/
16
Merci pour votre
attention
/in/radrouached /radhouenerouached @__G_T_O__
17

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOA
 
Angular
AngularAngular
Angular
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Chp2 - SOA
Chp2 - SOAChp2 - SOA
Chp2 - SOA
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Soa
SoaSoa
Soa
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
React-cours.pdf
React-cours.pdfReact-cours.pdf
React-cours.pdf
 

Destacado

Introduction aux Frameworks java
Introduction aux Frameworks javaIntroduction aux Frameworks java
Introduction aux Frameworks javaRadhoueneRouached
 
comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutesDavid Bo
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Yves-Emmanuel Jutard
 
Design Patterns: Builder pattern (Le monteur)
Design Patterns: Builder pattern (Le monteur)Design Patterns: Builder pattern (Le monteur)
Design Patterns: Builder pattern (Le monteur)RadhoueneRouached
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Departamento de Salto (4a)
Departamento de Salto (4a)Departamento de Salto (4a)
Departamento de Salto (4a)Verónica Blanco
 
En Busca De Negocios 08
En Busca De Negocios 08En Busca De Negocios 08
En Busca De Negocios 08elba.davila
 
Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...
Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...
Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...minergie-romande
 
261501 messager(1)1
261501 messager(1)1261501 messager(1)1
261501 messager(1)1KenZobi
 
Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?
Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?
Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?Ricard Espelt
 
La formation à l'épreuve du numérique
La formation à l'épreuve du numérique La formation à l'épreuve du numérique
La formation à l'épreuve du numérique Christelle Caruel
 

Destacado (20)

AngularJS
AngularJSAngularJS
AngularJS
 
Introduction aux Frameworks java
Introduction aux Frameworks javaIntroduction aux Frameworks java
Introduction aux Frameworks java
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutes
 
Prismic
PrismicPrismic
Prismic
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014Apéro techno node.js + AngularJS @Omnilog 2014
Apéro techno node.js + AngularJS @Omnilog 2014
 
Design Patterns: Builder pattern (Le monteur)
Design Patterns: Builder pattern (Le monteur)Design Patterns: Builder pattern (Le monteur)
Design Patterns: Builder pattern (Le monteur)
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Siempre amanece
Siempre amaneceSiempre amanece
Siempre amanece
 
Departamento de Salto (4a)
Departamento de Salto (4a)Departamento de Salto (4a)
Departamento de Salto (4a)
 
En Busca De Negocios 08
En Busca De Negocios 08En Busca De Negocios 08
En Busca De Negocios 08
 
Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...
Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...
Conférence Minergie, Séminaire Energie&Bâtiments 2015: L'enjeu de l'énergie g...
 
Idea VilariñO(2)
Idea VilariñO(2)Idea VilariñO(2)
Idea VilariñO(2)
 
Presentatie krottegem Franse les
Presentatie krottegem Franse lesPresentatie krottegem Franse les
Presentatie krottegem Franse les
 
261501 messager(1)1
261501 messager(1)1261501 messager(1)1
261501 messager(1)1
 
Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?
Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?
Democràcia 2.0: la democràcia serà tecnològica i participativa o no serà?
 
La formation à l'épreuve du numérique
La formation à l'épreuve du numérique La formation à l'épreuve du numérique
La formation à l'épreuve du numérique
 
Acuario dubai
Acuario dubaiAcuario dubai
Acuario dubai
 
Esculturas
EsculturasEsculturas
Esculturas
 

Similar a Introduction au Framework AngularJs

Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptxIdrissaDembl
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Hello AngularJS - Back to the future
Hello AngularJS - Back to the futureHello AngularJS - Back to the future
Hello AngularJS - Back to the futureOuadie LAHDIOUI
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Angular Material Design
Angular Material DesignAngular Material Design
Angular Material DesignSofien AZOUZI
 
Angular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications WebAngular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications WebDekeltv1
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Alphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Nazih Heni
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 

Similar a Introduction au Framework AngularJs (20)

jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
 
Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptx
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Angular 11
Angular 11Angular 11
Angular 11
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Hello AngularJS - Back to the future
Hello AngularJS - Back to the futureHello AngularJS - Back to the future
Hello AngularJS - Back to the future
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Angular Material Design
Angular Material DesignAngular Material Design
Angular Material Design
 
Angular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications WebAngular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications Web
 
Angular
AngularAngular
Angular
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
Prezentare ASP.Net.pptx
Prezentare ASP.Net.pptxPrezentare ASP.Net.pptx
Prezentare ASP.Net.pptx
 
Alphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentauxAlphorm.com Formation Angular - Les fondamentaux
Alphorm.com Formation Angular - Les fondamentaux
 
Angular 2
Angular 2Angular 2
Angular 2
 
Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"Asp.net Tutorials de L'application "Organizer"
Asp.net Tutorials de L'application "Organizer"
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Cours 1 introduction
Cours 1 introductionCours 1 introduction
Cours 1 introduction
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 

Introduction au Framework AngularJs

  • 2. Plan I. Introduction II. Architecture III. Démonstration IV. Notions AngularJS V. Directives VI. Services VII. Routage VIII. Avantages & inconvénients IX. Outils utiles X. Bibliographie & Nétographie 2
  • 3. Introduction AngularJS est un Framework JavaScript open source développé par Google en 2009 sous la licence MIT. Il assure le création des applications web dynamiques de type SPA (Single Page Application), permettant ainsi développer ses propres balises et attributs HTML. AngularJS est utilisé dans les sites Web de: Et encore plus. 3
  • 4. Architecture Pour plusieurs années AngularJS était proche du MVC, mais au fil du temps et grâce à l'améliorations de l'API, il supporte MVW. Ce pattern est un dérivé du célèbre modèle de conception MVC dont Whatever désigne « whatever works for you». 4
  • 6. Notions AngularJS ◦ Le model : C'est un jeu de données permettant l'interaction de la page HTML et code JavaScript. Il est définit par les attributs ng-model des éléments du Template HTML. ◦ Le Controller: contrôle les données des applications angularJS. Il s’agit du contrôle des évènement du Template HTML. ◦ Le Module: peut être considérer comme un conteneur pour les différentes parties d'une applications, Controller, services, filtres, directives, etc. ◦ Le Scope: Il s'agit du contexte incluant contrôleurs, variables, module, services qui sont accessible depuis la vue. Chaque application a un seul rootScope. Tous les autres sont des scopes descendant du rootScope. ◦ Le Service: C’est l’unité de base qui regroupe une même logique. Un service Angular est un objet singleton créé par une usine(factory) de service. Ces factories de services sont des fonctions qui, à leur tour, sont créés par un fournisseur(provider) de services. 6
  • 7. Directives Les directives permet d’étendre les capacités du langage HTML. Il existe 4 types de directives: Directives Fonction ng-app Définir l’élément racine d’une application AngularJS. ng-init Affecter une valeur initiale a une application AngularJS. ng-model Attacher une valeur de formulaire aux données de l’application. Produire ainsi type de validation, statut et les classes CSS aux données. ng-repeat Parcourir une collection et cloner chaque élément HTML a un article. ng-controller Affecter un contrôleur a une vue. ng-click Spécifier un comportement particulier quand élément est cliqué. ng-view Inclure le Template rendu de la route actuelle a la page principale. https://docs.angularjs.org/guide/directive >> Elément, Attribut, Class, Commentaire 7
  • 9. Directives Créez votre propre directive :  Restrict: • ‘E’ = Element • ‘A’ = Attribute • ‘C’ = Class • ‘M’ = Comment 9
  • 10. Services Les services sont des objets substituables qui sont liés ensemble en utilisant l'injection de dépendance (DI) dans le but d'organiser et de partager le code dans application. Les services sont: ◦ Lazy: Angular seulement instancie un service quand un composant d'application dépend. ◦ Singletons : Chaque composant dépend d'un service obtient une référence à l'instance unique généré par l'usine(factory) de service. Les services natifs Services Fonction $scope Chaque application a une seule racine rootScope. Tous les autres scopes sont descendants de la portée de la racine. Scopes permet une séparation entre le modèle et la vue, par l'intermédiaire d'un mécanisme pour observer le modèle de modifications. $http permet de faire une demande au serveur, et de gérer votre application la réponse. $timeout Il s’agit d’angular version de la function window.setTimeout() >>10
  • 11. Services Créez votre propre service Factory: Service: Provider: Un Provider fournit la configuration du module à l'échelle de votre objet de service avant de le rendre disponible. Un service est une constructeur qui crée l'objet en utilisant un nouveau paramètre. Vous pouvez ajouter des propriétés et des fonctions à un service. Un Factory présente une fonction simple qui vous permet d'ajouter une certaine logique avant la création d'un objet. Elle retourne l'objet créé. 11
  • 12. Routing AngularJS Routes permet d'implémenter plusieurs vues SPA [Single page Applications]. Chaque vue serait chargé dynamiquement à la suite de l'action de l'utilisateur. 12
  • 13. Routing ngRoute: module fournit des services et des directives de routage et de liaison profonde pour les applications AngularJS. $route: est utilisé pour faire la liaison entre les contrôleurs et les vues. Il surveille $location.url() et tente de mapper le chemin à une définition de la route existante. $routeParams: permet de récupérer l'ensemble des paramètres l’utilisation a choisi. ngView: est la directive qui permet d'inclure le modèle rendu de la route actuelle dans la page principale 13
  • 14. Avantages & Limites Utilisation d’injection de dépendances La séparation des préoccupations fonctionne en mode déconnecté Le code Angular est testable (unit) Composant réutilisable Fournir la liaison de données (data-binding) aux pages HTML  Héritage Prototypal  Non dégradable (Si l'utilisateur désactive JavaScript, rien ne serait visible)  Non Sécurisé (Server side authentication and authorization) 14
  • 15. Outils utiles IDE (notepad++, sublime text, netbeans…) NG Inspector Batarang 15
  • 16. Bibliographie & Nétographie (1) https://docs.angularjs.org/guide/ (2) http://www.w3schools.com/angular/ (3) https://www.airpair.com/javascript/posts/services-in-angularjs-simplified-with-examples (4) http://cdsweb.u-strasbg.fr/~landais/presentations/INFUSION_angular.pdf (5) http://www.techaltair.com/5-best-javascript-ide-for-front-end-and-web-engineers/ (6) http://javascript.developpez.com/cours/outils-vraiment-utiles-pour-developpeurs-javascript/ 16
  • 17. Merci pour votre attention /in/radrouached /radhouenerouached @__G_T_O__ 17

Notas del editor

  1. Radhouene Rouached