SlideShare uma empresa Scribd logo
1 de 43
Together. Free your energies
                                                                    Together. Free your
                                                                                       energies




Web Frameworks

Nicolas Bonamy
Cliquez pour modifier le style des sous-titres du masque
Alexandre Muzet
Samuel Massot




                                                                                         TS, Web 2.0
                               Together. Free your energies                                  Nicolas Bonamy
                                                                         © 2008 Capgemini. All rights reserved
Agenda

• Introduction
• Framework requirements
• Existing frameworks




                                                                   TS, Web 2.0
                    Together. Free your energies                       Nicolas Bonamy
                                                   © 2008 Capgemini. All rights reserved
Web 2.0



Technical
challenge!




                                                            TS, Web 2.0
             Together. Free your energies                       Nicolas Bonamy
                                            © 2008 Capgemini. All rights reserved
Framework (FW)

Facilitate software development by
allowing designers and programmers
to spend more time on meeting
software requirements rather than
dealing with the more standard low-
level details of providing a working
system.



                                                         TS, Web 2.0
          Together. Free your energies                       Nicolas Bonamy
                                         © 2008 Capgemini. All rights reserved
FW’s B’s & C’s

• Benefits
    Provides ready-to-use services to the development team
    Promotes a standard way of doing things
    New developers can get onboard more easily
• Concerns
    Reduces freedom
    Steep learning curve depending on the complexity of the FW
    Should evolve as fast as the technology
      • A good FW is a loosely coupled one where a component can easily be
        replaced by another one providing the same service
      • Dependency injection

                                                                                TS, Web 2.0
                             Together. Free your energies                           Nicolas Bonamy
                                                                © 2008 Capgemini. All rights reserved
Agenda

• Introduction
• Framework requirements
     MVC
     ORM
     REST
     Ajax
     …
• Existing frameworks



                                                                       TS, Web 2.0
                        Together. Free your energies                       Nicolas Bonamy
                                                       © 2008 Capgemini. All rights reserved
Requirements

• Model-View-Controller (MVC)            • Pluggable architecture
• Object-Relational Mapping              • i18n and L10n support
  (ORM)                                  • Security
• Web Service support, REST              • Steady performance
• Intuitive URLs (Routing)               • Unit and non-regression testing
• Scaffolding (in model)                 • Agile development:
• Templating system (in views)             KISS, CoC, DRY
• Ajax integration                       • Good documentation
• W3C Standards compliance               • Active community



                                                                               TS, Web 2.0
                         Together. Free your energies                              Nicolas Bonamy
                                                               © 2008 Capgemini. All rights reserved
Integrated vs. Custom


Integrated Framework                             “Custom” Framework


                                                           SOAP
   MVC     ORM
                                                     ORM

   SOAP    Ajax                                                   MVC




                                                                                   TS, Web 2.0
                  Together. Free your energies                                         Nicolas Bonamy
                                                                   © 2008 Capgemini. All rights reserved
MVC
• Architectural pattern that:
    Isolates business logic from user interface
    Enables TDD


                                          Model
                                    Manages application state
                                 Exposes application functionality




             View                                                         Controller
          Renders the model                                            Defines application behavior
          Collects user inputs                                       Maps user inputs to model updates




                                                                                                                  TS, Web 2.0
                                     Together. Free your energies                                                     Nicolas Bonamy
                                                                                                  © 2008 Capgemini. All rights reserved
HMVC


                  Model



                                           Controller
    M

V       C




    M

V       C




                                                                        TS, Web 2.0
            Together. Free your energies                                    Nicolas Bonamy
                                                        © 2008 Capgemini. All rights reserved
ORM

• Mapping from data stored in relational databases to
  objects (as in OOP)
• Often a separated library integrated in a framework
  SELECT * FROM user WHERE id=1

  UPDATE user SET firstname='Nicolas' WHERE id=1

  DELETE FROM user WHERE id=1




                   User user = GetItem(1);
                   user.Firstname = quot;Nicolasquot;;
                   SaveItem(user);
                   DeleteItem(user);

                                                                                 TS, Web 2.0
                                  Together. Free your energies                       Nicolas Bonamy
                                                                 © 2008 Capgemini. All rights reserved
ORM – Features and Benefits

• Features
    RDBMS independence through adapters
    Proprietary object-oriented query language (HQL, DQL…)
    Object caching (more or less advanced)
• Benefits
    Much less code to write
    Easy to work with relations (one-to-one, one-to-many, many-to-
     one and many-to-many)
    Really, MUCH LESS code to write



                                                                         TS, Web 2.0
                          Together. Free your energies                       Nicolas Bonamy
                                                         © 2008 Capgemini. All rights reserved
ORM – Concerns and solutions

• Concerns
    Learning curve
    Hit on performance (constructing trees of objects can be very
     expensive in terms of CPU and I/O)
    Hides SQL requests and hardens the optimization task
• Solutions
    Lazy-loading of related objects
    “Projections” allow to retrieve only selected parts of objects
    Raw SQL and stored procedure calling have been implemented
     on most ORMs
    Only load objects when you need objects
                                                                          TS, Web 2.0
                           Together. Free your energies                       Nicolas Bonamy
                                                          © 2008 Capgemini. All rights reserved
Web service support

• Standards compliance:
     XML-RPC
     SOAP
     WSDL
     WS-*
• Code generation based on WSDL
• Automatic WSDL generation




                                                                     TS, Web 2.0
                      Together. Free your energies                       Nicolas Bonamy
                                                     © 2008 Capgemini. All rights reserved
REST

•   REpresentational State Transfer
•   Architecture style, not a standard
•   Applies to web applications and web service
•   Use of all HTTP verbs: GET, POST, PUT, DELETE
•   URIs are meaningful and self sufficient
•   Responses contain information to transfer to another
    state (URIs of other resources):
     http://www.acme.com/parts/list returns a list of parts with the
      URI for each part


                                                                           TS, Web 2.0
                            Together. Free your energies                       Nicolas Bonamy
                                                           © 2008 Capgemini. All rights reserved
Intuitive URLs (routing, permalink)

      http://www.myblog.com/post.php?id=123456


             “URLs as part of the interface”

    http://www.myblog.com/activity-breadown.html


• Rules for automatic matching and helpers to generate
  user-friendly URLs easily
    /controller/action/params

                                                                        TS, Web 2.0
                         Together. Free your energies                       Nicolas Bonamy
                                                        © 2008 Capgemini. All rights reserved
REST vs WS-*

• REST is a “lightweight” web service architecture
    Not asynchronous
    No transactions
    No security profiles
• REST being enhanced to support more complex scenarios
    Will probably get as tedious as WS-*




                                                                            TS, Web 2.0
                             Together. Free your energies                       Nicolas Bonamy
                                                            © 2008 Capgemini. All rights reserved
Scaffolding

• Automatic generation of all the code needed to perform
  basic CRUD operations on entities
    Model (SQL or ORM requests)
• Can be extended to generate
    View (automatically generated pages and forms)
    Controller (basic link between Model and View)
• Useful for back-office part of a solution
• Can be used as a starting point for the front-office but
  will generally require lot of rework


                                                                         TS, Web 2.0
                          Together. Free your energies                       Nicolas Bonamy
                                                         © 2008 Capgemini. All rights reserved
Templating system

• Reusable pieces of codes to generate user interface
  elements
• Better separation between design code and logic code
• Allows designer to easily work on HTML and CSS code
• Ensures consistency of appearance




                                                                     TS, Web 2.0
                      Together. Free your energies                       Nicolas Bonamy
                                                     © 2008 Capgemini. All rights reserved
Ajax Integration

• Asynchronous JavaScript and XML
   XMLHttpRequest, XML, JSON
   HTML, CSS, DOM and JavaScript
• Requirements
   Helpers to generate Ajax code
   Methods to serialize (list of) objects to XML or JSON
   Compatible with popular Ajax frameworks




                                                                            TS, Web 2.0
                          Together. Free your energies                          Nicolas Bonamy
                                                            © 2008 Capgemini. All rights reserved
Ajax Frameworks

• Cross-browser XMLHttpRequest encapsulation
• DOM features
      Selecting and traversing
      Create, insert, remove
      Attributes manipulation
      Events handling
      CSS Styling
• Widgets: window, dialog, tabs, carousel, accordion…
• Interactions: drag’n’drop, sorting…
• Effects and animations
                                                                            TS, Web 2.0
                             Together. Free your energies                       Nicolas Bonamy
                                                            © 2008 Capgemini. All rights reserved
W3C Standards compliance
Pluggable architecture

• Not all needs can be covered by the framework
• Leverage users community and open-source
  development
• Example of plug-ins that can be found
    Authentication system
    Full-featured file upload module
    Charts integration




                                                                         TS, Web 2.0
                          Together. Free your energies                       Nicolas Bonamy
                                                         © 2008 Capgemini. All rights reserved
i18N and L10n

• UTF-8 support at all levels
      Database
      MVC framework
      XHTML
      Ajax
• Hand-made or supports standards
    gettext
    XLIFF (XML Localization Interchange File Format)




                                                                          TS, Web 2.0
                           Together. Free your energies                       Nicolas Bonamy
                                                          © 2008 Capgemini. All rights reserved
Security




                                               TS, Web 2.0
Together. Free your energies                       Nicolas Bonamy
                               © 2008 Capgemini. All rights reserved
Performance



                                     Performance




Features

                                                                   TS, Web 2.0
           Together. Free your energies                                Nicolas Bonamy
                                                   © 2008 Capgemini. All rights reserved
Caching

• Browser caching (HTTP)
   Expires, Last-modified, Cache-Control
   Etag
• Response caching
   Full pages
   Fragments
• Database caching
   Parsed queries
   Results sets



                                                                        TS, Web 2.0
                         Together. Free your energies                       Nicolas Bonamy
                                                        © 2008 Capgemini. All rights reserved
Agenda

• Introduction
• Framework requirements
• Existing frameworks




                                                                   TS, Web 2.0
                    Together. Free your energies                       Nicolas Bonamy
                                                   © 2008 Capgemini. All rights reserved
Ruby on Rails (Rails, RoR)
• Built over the Ruby language
• First framework really built for Web 2.0
  development
• Pushed the envelope of what a Web 2.0
  development framework should be
• ORM: ActiveRecord (reused pattern)
• AJAX: prototype
• RESTful
• Agile


                                                        TS, Web 2.0
         Together. Free your energies                       Nicolas Bonamy
                                        © 2008 Capgemini. All rights reserved
•   Reference MVC Framework
•   Released February 2007
•    Struts 2 is the fusion of Struts 1 and Webwork
•    Struts 2 actions are POJO
•    Ajax taglibs Integration and widget customization
•   Interceptors stack over HTTP request for pre/post
    treatments




                                                                        TS, Web 2.0
                         Together. Free your energies                       Nicolas Bonamy
                                                        © 2008 Capgemini. All rights reserved
•   Reference lightweight development container
•   Layer separation (used in all layers)
•   Enables POJO programming
•   Transaction management
•   Object lifeCycle management (dependency injection)
•   Common frameworks integration (Hibernate, Struts)
•   Very active community




                                                                       TS, Web 2.0
                        Together. Free your energies                       Nicolas Bonamy
                                                       © 2008 Capgemini. All rights reserved
•   Reference ORM Framework
•   Database independence
•   POJO Programming
•   Automated database model generation
•   Advanced cache management




                                                                      TS, Web 2.0
                       Together. Free your energies                       Nicolas Bonamy
                                                      © 2008 Capgemini. All rights reserved
• Has recently entered the MVC/ORM framework world
• Use of PHP framework requires setup of a PHP code
  cache mechanism (APC, eAccelerator…)
• Frameworks
   Zend              CakePHP
   Symfony           CodeIgniter
• ORM
   Propel
   Doctrine
   ADOdb
                                                                    TS, Web 2.0
                     Together. Free your energies                       Nicolas Bonamy
                                                    © 2008 Capgemini. All rights reserved
•   Zend: main commercial actor of PHP world
•   PHP5 only (PHP4 object model too weak)
•   Usage is “open source” but not contribution
•   Very loosely coupled framework: “Use-at-will”
•   Own ORM: “Table gateway”
•   XLIFF based i18n and L10n
•   Integrated in Zend Studio IDE
•   Numerous references (M6, Nokia…)


                                                                        TS, Web 2.0
                         Together. Free your energies                       Nicolas Bonamy
                                                        © 2008 Capgemini. All rights reserved
•   Initially built and now sponsored by Sensio Labs
•   PHP5 only (PHP4 object model too weak)
•   Open source framework (MIT license)
•   Loosely coupled architecture (going forward):
     Easy ORM switch (Propel or Doctrine)
     Easy JavaScript toolkit switch (1.2)
• XLIFF based i18n and L10n
• References
     Yahoo! Answers (130M users), Yahoo! Bookmarks (20M users)
     Dailymotion
                                                                          TS, Web 2.0
                           Together. Free your energies                       Nicolas Bonamy
                                                          © 2008 Capgemini. All rights reserved
• .NET is not a framework !
• ASP.NET is a framework
      Not MVC compliant
      Very hard to test ASPX pages
      No scaffolding
      No ORM equivalent technology
        • ADO.NET’s DataSet
        • LINQ (query language)




                                                                                 TS, Web 2.0
                                  Together. Free your energies                       Nicolas Bonamy
                                                                 © 2008 Capgemini. All rights reserved
Data access

• Microsoft Entity Framework
   Available since .NET 3.5 SP1
   Real ORM ?
• NHibernate
   .NET port of Java Hibernate
   Lagging behind but still very functional
   LINQ support
• Subsonic
   developer hired by Microsoft



                                                                         TS, Web 2.0
                          Together. Free your energies                       Nicolas Bonamy
                                                         © 2008 Capgemini. All rights reserved
Solutions

• Castle Project
    Inspired by RoR
    MVC Framework : MonoRail
      • Supports routing
      • AJAX via prototype
    ORM : ActiveRecord built on top of NHibernate
    Aspect oriented programming and Inversion of Control
• ASP.NET MVC Framework
    Microsoft stuff, beta stage
    ASP.NET AJAX
    Routing
                                                                            TS, Web 2.0
                             Together. Free your energies                       Nicolas Bonamy
                                                            © 2008 Capgemini. All rights reserved
Tentative framework

• ASP.NET MVC
• NHibernate, optionally coupled with
    Castle ActiveRecord: use .NET’s [Attributes] instead of XML
     mapping files
• ASP.NET Ajax
    Official integration of jQuery announced recently
• Industrialization
    Visual Studio Team System 2010




                                                                          TS, Web 2.0
                           Together. Free your energies                       Nicolas Bonamy
                                                          © 2008 Capgemini. All rights reserved
References
Resource                             URL
MVC, ORM, SOAP, REST…                http://en.wikipedia.org
Struts2                              http://struts.apache.org/
Spring Framework                     http://www.springframework.org/
ASP.NET MVC                          http://www.asp.net/mvc/, http://weblogs.asp.net/scottgu/
Hibernate, NHibernate                http://www.hibernate.org, http://www.hibernate.org/343.html
Livre blanc sur les frameworks PHP   http://tinyurl.com/php-frameworks
Zend Framework                       http://framework.zend.com/
Symfony                              http://www.symfony-project.org




                                                                                                   TS, Web 2.0
                                        Together. Free your energies                                   Nicolas Bonamy
                                                                                   © 2008 Capgemini. All rights reserved

Mais conteúdo relacionado

Mais procurados

Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...datacentersummit
 
Cloud And I S V
Cloud And  I S VCloud And  I S V
Cloud And I S Veasy4com
 
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Peter Moskovits
 
Newman.steve
Newman.steveNewman.steve
Newman.steveNASAPMC
 
The View - Deploying domino applications to BlackBerry MDS Studio
The View - Deploying domino applications to BlackBerry MDS StudioThe View - Deploying domino applications to BlackBerry MDS Studio
The View - Deploying domino applications to BlackBerry MDS StudioBill Buchan
 
Web3.0 and mobility ......
Web3.0 and mobility ......Web3.0 and mobility ......
Web3.0 and mobility ......Mengis Raoul
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework MultiplicationClément Escoffier
 

Mais procurados (7)

Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
 
Cloud And I S V
Cloud And  I S VCloud And  I S V
Cloud And I S V
 
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
 
Newman.steve
Newman.steveNewman.steve
Newman.steve
 
The View - Deploying domino applications to BlackBerry MDS Studio
The View - Deploying domino applications to BlackBerry MDS StudioThe View - Deploying domino applications to BlackBerry MDS Studio
The View - Deploying domino applications to BlackBerry MDS Studio
 
Web3.0 and mobility ......
Web3.0 and mobility ......Web3.0 and mobility ......
Web3.0 and mobility ......
 
The OSGi Framework Multiplication
The OSGi Framework MultiplicationThe OSGi Framework Multiplication
The OSGi Framework Multiplication
 

Destaque

Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenArnaud Héritier
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenArnaud Héritier
 
Manualidfomynades en fomy sept 17
Manualidfomynades en  fomy sept 17Manualidfomynades en  fomy sept 17
Manualidfomynades en fomy sept 17ledalopezm
 
10 Simple Steps for Increasing Attendance
10 Simple Steps for Increasing Attendance10 Simple Steps for Increasing Attendance
10 Simple Steps for Increasing AttendanceEventKloud
 
창의적 발상 Typo 2
창의적 발상 Typo 2창의적 발상 Typo 2
창의적 발상 Typo 2은지 김
 
How To Keep Your Audience Engaged
How To Keep Your Audience EngagedHow To Keep Your Audience Engaged
How To Keep Your Audience EngagedEventKloud
 
Aspiracion humos soldadura brazos y mesas de corte metalurgica palmelense es
Aspiracion humos soldadura brazos y mesas de corte metalurgica palmelense esAspiracion humos soldadura brazos y mesas de corte metalurgica palmelense es
Aspiracion humos soldadura brazos y mesas de corte metalurgica palmelense esBarin SA
 
Trading Show New York_2015
Trading Show New York_2015Trading Show New York_2015
Trading Show New York_2015Rajeev Ranjan
 
Energía limpia
Energía limpiaEnergía limpia
Energía limpiaEdgarDsc
 
Camera angles and shots
Camera angles and shotsCamera angles and shots
Camera angles and shotsMantas Bruzas
 
Event Experience Series: LaughStub & DC Improv
Event Experience Series: LaughStub & DC ImprovEvent Experience Series: LaughStub & DC Improv
Event Experience Series: LaughStub & DC ImprovEventKloud
 
Great Tips For ITIL Exams
Great Tips For ITIL ExamsGreat Tips For ITIL Exams
Great Tips For ITIL ExamsLogitrain
 
#EventProfs to Follow on Twitter
#EventProfs to Follow on Twitter#EventProfs to Follow on Twitter
#EventProfs to Follow on TwitterArwin Adriano
 

Destaque (16)

Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - Maven
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache Maven
 
Manualidfomynades en fomy sept 17
Manualidfomynades en  fomy sept 17Manualidfomynades en  fomy sept 17
Manualidfomynades en fomy sept 17
 
10 Simple Steps for Increasing Attendance
10 Simple Steps for Increasing Attendance10 Simple Steps for Increasing Attendance
10 Simple Steps for Increasing Attendance
 
창의적 발상 Typo 2
창의적 발상 Typo 2창의적 발상 Typo 2
창의적 발상 Typo 2
 
ITIL - Exam Results
ITIL - Exam ResultsITIL - Exam Results
ITIL - Exam Results
 
How To Keep Your Audience Engaged
How To Keep Your Audience EngagedHow To Keep Your Audience Engaged
How To Keep Your Audience Engaged
 
Aspiracion humos soldadura brazos y mesas de corte metalurgica palmelense es
Aspiracion humos soldadura brazos y mesas de corte metalurgica palmelense esAspiracion humos soldadura brazos y mesas de corte metalurgica palmelense es
Aspiracion humos soldadura brazos y mesas de corte metalurgica palmelense es
 
Trading Show New York_2015
Trading Show New York_2015Trading Show New York_2015
Trading Show New York_2015
 
Energía limpia
Energía limpiaEnergía limpia
Energía limpia
 
Procesamiento de la sangre
Procesamiento de la sangreProcesamiento de la sangre
Procesamiento de la sangre
 
Camera angles and shots
Camera angles and shotsCamera angles and shots
Camera angles and shots
 
Event Experience Series: LaughStub & DC Improv
Event Experience Series: LaughStub & DC ImprovEvent Experience Series: LaughStub & DC Improv
Event Experience Series: LaughStub & DC Improv
 
Great Tips For ITIL Exams
Great Tips For ITIL ExamsGreat Tips For ITIL Exams
Great Tips For ITIL Exams
 
#EventProfs to Follow on Twitter
#EventProfs to Follow on Twitter#EventProfs to Follow on Twitter
#EventProfs to Follow on Twitter
 
Quantitative Analyst Skills
Quantitative Analyst SkillsQuantitative Analyst Skills
Quantitative Analyst Skills
 

Semelhante a Web Frameworks

Linux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsLinux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsRobert Sutor
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...Nick Dellamaggiore
 
Internet Programming With Python Presentation
Internet Programming With Python PresentationInternet Programming With Python Presentation
Internet Programming With Python PresentationAkramWaseem
 
Getting Started Developing with Platform as a Service
Getting Started Developing with Platform as a ServiceGetting Started Developing with Platform as a Service
Getting Started Developing with Platform as a ServiceCloudBees
 
Track2 -刘希斌----c ie-net-openstack-2012-apac
Track2 -刘希斌----c ie-net-openstack-2012-apacTrack2 -刘希斌----c ie-net-openstack-2012-apac
Track2 -刘希斌----c ie-net-openstack-2012-apacOpenCity Community
 
Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008Cybera Inc.
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practiceOpenCity Community
 
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesPragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesRody Middelkoop
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseFabian Lange
 
OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...
OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...
OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...The Linux Foundation
 
BLADE Cloud Ready Network Architecture
BLADE Cloud Ready Network ArchitectureBLADE Cloud Ready Network Architecture
BLADE Cloud Ready Network ArchitectureIBM System Networking
 
XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...
XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...
XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...The Linux Foundation
 
Real Life WebSocket Case Studies and Demos
Real Life WebSocket Case Studies and DemosReal Life WebSocket Case Studies and Demos
Real Life WebSocket Case Studies and DemosPeter Moskovits
 
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
20090410   J Spring Pragmatic Model Driven Development In Java Using Smart20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
20090410 J Spring Pragmatic Model Driven Development In Java Using SmartSander Hoogendoorn
 

Semelhante a Web Frameworks (20)

Linux, Virtualisation, and Clouds
Linux, Virtualisation, and CloudsLinux, Virtualisation, and Clouds
Linux, Virtualisation, and Clouds
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
Internet Programming With Python Presentation
Internet Programming With Python PresentationInternet Programming With Python Presentation
Internet Programming With Python Presentation
 
Cloud Time
Cloud TimeCloud Time
Cloud Time
 
Getting Started Developing with Platform as a Service
Getting Started Developing with Platform as a ServiceGetting Started Developing with Platform as a Service
Getting Started Developing with Platform as a Service
 
Track2 -刘希斌----c ie-net-openstack-2012-apac
Track2 -刘希斌----c ie-net-openstack-2012-apacTrack2 -刘希斌----c ie-net-openstack-2012-apac
Track2 -刘希斌----c ie-net-openstack-2012-apac
 
Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008
 
Enterprise Applications in 2011
Enterprise Applications in 2011Enterprise Applications in 2011
Enterprise Applications in 2011
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
 
Pragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use CasesPragmatic Model Driven Development In Java Using Smart Use Cases
Pragmatic Model Driven Development In Java Using Smart Use Cases
 
Nuxeo 5.2 Glassfish
Nuxeo 5.2 GlassfishNuxeo 5.2 Glassfish
Nuxeo 5.2 Glassfish
 
Codecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San JoseCodecentric At Ajax World Conference San Jose
Codecentric At Ajax World Conference San Jose
 
The Boundaryless Value-Chain
The Boundaryless Value-ChainThe Boundaryless Value-Chain
The Boundaryless Value-Chain
 
OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...
OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...
OSSEU18: From Handcraft to Unikraft: Simpler Unikernelization of Your Applica...
 
BLADE Cloud Ready Network Architecture
BLADE Cloud Ready Network ArchitectureBLADE Cloud Ready Network Architecture
BLADE Cloud Ready Network Architecture
 
Introducing CQ 5.1
Introducing CQ 5.1Introducing CQ 5.1
Introducing CQ 5.1
 
XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...
XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...
XPDDS18: Unleashing the Power of Unikernels with Unikraft - Florian Schmidt, ...
 
Real Life WebSocket Case Studies and Demos
Real Life WebSocket Case Studies and DemosReal Life WebSocket Case Studies and Demos
Real Life WebSocket Case Studies and Demos
 
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
20090410   J Spring Pragmatic Model Driven Development In Java Using Smart20090410   J Spring Pragmatic Model Driven Development In Java Using Smart
20090410 J Spring Pragmatic Model Driven Development In Java Using Smart
 

Último

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
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Web Frameworks

  • 1. Together. Free your energies Together. Free your energies Web Frameworks Nicolas Bonamy Cliquez pour modifier le style des sous-titres du masque Alexandre Muzet Samuel Massot TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 2. Agenda • Introduction • Framework requirements • Existing frameworks TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 3. Web 2.0 Technical challenge! TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 4. Framework (FW) Facilitate software development by allowing designers and programmers to spend more time on meeting software requirements rather than dealing with the more standard low- level details of providing a working system. TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 5. FW’s B’s & C’s • Benefits  Provides ready-to-use services to the development team  Promotes a standard way of doing things  New developers can get onboard more easily • Concerns  Reduces freedom  Steep learning curve depending on the complexity of the FW  Should evolve as fast as the technology • A good FW is a loosely coupled one where a component can easily be replaced by another one providing the same service • Dependency injection TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 6. Agenda • Introduction • Framework requirements  MVC  ORM  REST  Ajax  … • Existing frameworks TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 7. Requirements • Model-View-Controller (MVC) • Pluggable architecture • Object-Relational Mapping • i18n and L10n support (ORM) • Security • Web Service support, REST • Steady performance • Intuitive URLs (Routing) • Unit and non-regression testing • Scaffolding (in model) • Agile development: • Templating system (in views) KISS, CoC, DRY • Ajax integration • Good documentation • W3C Standards compliance • Active community TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 8. Integrated vs. Custom Integrated Framework “Custom” Framework SOAP MVC ORM ORM SOAP Ajax MVC TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 9. MVC • Architectural pattern that:  Isolates business logic from user interface  Enables TDD Model Manages application state Exposes application functionality View Controller Renders the model Defines application behavior Collects user inputs Maps user inputs to model updates TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 10. HMVC Model Controller M V C M V C TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 11. ORM • Mapping from data stored in relational databases to objects (as in OOP) • Often a separated library integrated in a framework SELECT * FROM user WHERE id=1 UPDATE user SET firstname='Nicolas' WHERE id=1 DELETE FROM user WHERE id=1 User user = GetItem(1); user.Firstname = quot;Nicolasquot;; SaveItem(user); DeleteItem(user); TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 12. ORM – Features and Benefits • Features  RDBMS independence through adapters  Proprietary object-oriented query language (HQL, DQL…)  Object caching (more or less advanced) • Benefits  Much less code to write  Easy to work with relations (one-to-one, one-to-many, many-to- one and many-to-many)  Really, MUCH LESS code to write TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 13. ORM – Concerns and solutions • Concerns  Learning curve  Hit on performance (constructing trees of objects can be very expensive in terms of CPU and I/O)  Hides SQL requests and hardens the optimization task • Solutions  Lazy-loading of related objects  “Projections” allow to retrieve only selected parts of objects  Raw SQL and stored procedure calling have been implemented on most ORMs  Only load objects when you need objects TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 14. Web service support • Standards compliance:  XML-RPC  SOAP  WSDL  WS-* • Code generation based on WSDL • Automatic WSDL generation TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 15. REST • REpresentational State Transfer • Architecture style, not a standard • Applies to web applications and web service • Use of all HTTP verbs: GET, POST, PUT, DELETE • URIs are meaningful and self sufficient • Responses contain information to transfer to another state (URIs of other resources):  http://www.acme.com/parts/list returns a list of parts with the URI for each part TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 16. Intuitive URLs (routing, permalink) http://www.myblog.com/post.php?id=123456 “URLs as part of the interface” http://www.myblog.com/activity-breadown.html • Rules for automatic matching and helpers to generate user-friendly URLs easily  /controller/action/params TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 17. REST vs WS-* • REST is a “lightweight” web service architecture  Not asynchronous  No transactions  No security profiles • REST being enhanced to support more complex scenarios  Will probably get as tedious as WS-* TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 18. Scaffolding • Automatic generation of all the code needed to perform basic CRUD operations on entities  Model (SQL or ORM requests) • Can be extended to generate  View (automatically generated pages and forms)  Controller (basic link between Model and View) • Useful for back-office part of a solution • Can be used as a starting point for the front-office but will generally require lot of rework TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 19. Templating system • Reusable pieces of codes to generate user interface elements • Better separation between design code and logic code • Allows designer to easily work on HTML and CSS code • Ensures consistency of appearance TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 20. Ajax Integration • Asynchronous JavaScript and XML  XMLHttpRequest, XML, JSON  HTML, CSS, DOM and JavaScript • Requirements  Helpers to generate Ajax code  Methods to serialize (list of) objects to XML or JSON  Compatible with popular Ajax frameworks TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 21. Ajax Frameworks • Cross-browser XMLHttpRequest encapsulation • DOM features  Selecting and traversing  Create, insert, remove  Attributes manipulation  Events handling  CSS Styling • Widgets: window, dialog, tabs, carousel, accordion… • Interactions: drag’n’drop, sorting… • Effects and animations TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 23. Pluggable architecture • Not all needs can be covered by the framework • Leverage users community and open-source development • Example of plug-ins that can be found  Authentication system  Full-featured file upload module  Charts integration TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 24. i18N and L10n • UTF-8 support at all levels  Database  MVC framework  XHTML  Ajax • Hand-made or supports standards  gettext  XLIFF (XML Localization Interchange File Format) TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 25. Security TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 26. Performance Performance Features TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 27. Caching • Browser caching (HTTP)  Expires, Last-modified, Cache-Control  Etag • Response caching  Full pages  Fragments • Database caching  Parsed queries  Results sets TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 28. Agenda • Introduction • Framework requirements • Existing frameworks TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 29. Ruby on Rails (Rails, RoR) • Built over the Ruby language • First framework really built for Web 2.0 development • Pushed the envelope of what a Web 2.0 development framework should be • ORM: ActiveRecord (reused pattern) • AJAX: prototype • RESTful • Agile TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 30.
  • 31. Reference MVC Framework • Released February 2007 • Struts 2 is the fusion of Struts 1 and Webwork • Struts 2 actions are POJO • Ajax taglibs Integration and widget customization • Interceptors stack over HTTP request for pre/post treatments TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 32. Reference lightweight development container • Layer separation (used in all layers) • Enables POJO programming • Transaction management • Object lifeCycle management (dependency injection) • Common frameworks integration (Hibernate, Struts) • Very active community TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 33. Reference ORM Framework • Database independence • POJO Programming • Automated database model generation • Advanced cache management TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 34.
  • 35. • Has recently entered the MVC/ORM framework world • Use of PHP framework requires setup of a PHP code cache mechanism (APC, eAccelerator…) • Frameworks  Zend  CakePHP  Symfony  CodeIgniter • ORM  Propel  Doctrine  ADOdb TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 36. Zend: main commercial actor of PHP world • PHP5 only (PHP4 object model too weak) • Usage is “open source” but not contribution • Very loosely coupled framework: “Use-at-will” • Own ORM: “Table gateway” • XLIFF based i18n and L10n • Integrated in Zend Studio IDE • Numerous references (M6, Nokia…) TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 37. Initially built and now sponsored by Sensio Labs • PHP5 only (PHP4 object model too weak) • Open source framework (MIT license) • Loosely coupled architecture (going forward):  Easy ORM switch (Propel or Doctrine)  Easy JavaScript toolkit switch (1.2) • XLIFF based i18n and L10n • References  Yahoo! Answers (130M users), Yahoo! Bookmarks (20M users)  Dailymotion TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 38.
  • 39. • .NET is not a framework ! • ASP.NET is a framework  Not MVC compliant  Very hard to test ASPX pages  No scaffolding  No ORM equivalent technology • ADO.NET’s DataSet • LINQ (query language) TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 40. Data access • Microsoft Entity Framework  Available since .NET 3.5 SP1  Real ORM ? • NHibernate  .NET port of Java Hibernate  Lagging behind but still very functional  LINQ support • Subsonic  developer hired by Microsoft TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 41. Solutions • Castle Project  Inspired by RoR  MVC Framework : MonoRail • Supports routing • AJAX via prototype  ORM : ActiveRecord built on top of NHibernate  Aspect oriented programming and Inversion of Control • ASP.NET MVC Framework  Microsoft stuff, beta stage  ASP.NET AJAX  Routing TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 42. Tentative framework • ASP.NET MVC • NHibernate, optionally coupled with  Castle ActiveRecord: use .NET’s [Attributes] instead of XML mapping files • ASP.NET Ajax  Official integration of jQuery announced recently • Industrialization  Visual Studio Team System 2010 TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved
  • 43. References Resource URL MVC, ORM, SOAP, REST… http://en.wikipedia.org Struts2 http://struts.apache.org/ Spring Framework http://www.springframework.org/ ASP.NET MVC http://www.asp.net/mvc/, http://weblogs.asp.net/scottgu/ Hibernate, NHibernate http://www.hibernate.org, http://www.hibernate.org/343.html Livre blanc sur les frameworks PHP http://tinyurl.com/php-frameworks Zend Framework http://framework.zend.com/ Symfony http://www.symfony-project.org TS, Web 2.0 Together. Free your energies Nicolas Bonamy © 2008 Capgemini. All rights reserved