You are previewing Ext JS Application Development Blueprints.
O'Reilly logo
Ext JS Application Development Blueprints

Book Description

Develop robust and maintainable projects that exceed client expectations using Ext JS

In Detail

Ext JS is a pure JavaScript application framework for building interactive web applications. It delivers the most advanced charting and graphing capabilities of any JavaScript framework without relying on plugins, thus delivering pixel-perfect visuals on any browser on any operating system.

Ext JS Application Development Blueprints discusses ideas and tools such as MVVM, Sencha Cmd, testing, and debugging. Along the way, you will understand the importance of decision-making, flexibility, and constant reassessment of the design and code in order to provide a strong foundation for a successful product.

The writing style of this book lends itself to both quickly skimming sections and diving deep into the technology at hand. By combining the best practices with the wealth of knowledge available across the 11 chapters of this book, you'll soon be architecting successful applications for your team and clients.

What You Will Learn

  • Simplify your code by understanding how to use Ext JS view models and data binding

  • Build basic applications with the MVVM architecture

  • Architect advanced Ext JS applications based on a set of requirements

  • Understand code reuse techniques in Ext JS by identifying code that can be extracted to library classes

  • Learn advanced Ext JS topics such as responsive design and sessions in Ext JS

  • Work with testing, debugging, and performance tools to ensure that the final product is robust

  • Discover an integrated approach to building software, in which the design, tools, and code are equally important to a successful final product

  • Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

    Table of Contents

    1. Ext JS Application Development Blueprints
      1. Table of Contents
      2. Ext JS Application Development Blueprints
      3. Credits
      4. About the Author
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers, and more
          1. Why subscribe?
          2. Free access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Introduction
        1. Humble beginnings
          1. Growing up
          2. The shoulders of giants
        2. What is application architecture?
          1. Requirement analysis
          2. Data design
          3. Code design
          4. Technology evaluation
          5. Code standards and practices
          6. Documentation
        3. Ext JS
          1. The world that was
          2. State of the art
          3. Mostly very cool
          4. Supporting cast
        4. Getting ready
          1. The specification
          2. A good match
          3. How we work
        5. In safe hands
          1. If you build it, they will come
          2. Managing your time
          3. You can buy fashion, but you can't buy style
        6. Summary
      9. 2. MVC and MVVM
        1. Diary of always
        2. Bringing MVC to the Web
        3. Ext JS and MVC
          1. Examples of Ext JS MVC
        4. How does it help your application
        5. MVC and the illusion of choice
        6. Introducing MVVM
          1. How does Ext JS use MVVM?
          2. Getting our MVVM started
          3. Are we better off?
          4. A brief interlude regarding stores
          5. Inter-communication
          6. The main event
          7. Event domains
        7. An event domain example
          1. Using custom events
        8. Summary
      10. 3. Application Structure
        1. Ideas for structure
        2. Getting to know your application
          1. /overrides
          2. /.sencha
          3. bootstrap.js, bootstrap.json, and bootstrap.css
          4. /packages
          5. /resources and SASS
          6. index.html
          7. /build and build.xml
          8. app.js
          9. app.json
        3. Cultivating your code
          1. I'm a lumberjack – let's go log in
          2. Money can't buy class
            1. Singletons
          3. Mixins
        4. The solution to pollution
          1. A global solution to a local problem
        5. Summary – mind your own beeswax
      11. 4. Sencha Cmd
        1. What is Sencha Cmd?
        2. Why is it important?
          1. The act of creation
        3. Setting up your application
        4. The generation game
        5. Develop in style
          1. Here to serve – a website
          2. The Bootstrap process
        6. Care for the environment
          1. The final product
        7. Before the build
        8. Code complete
          1. An application for Ant
          2. Version numbers
          3. From release to production
        9. The best of the rest
          1. Packages
          2. Themes
          3. Compilations
        10. Summary
      12. 5. Practical – a CMS Application
        1. A content-managed system
        2. The requirements
          1. Accepting the challenge
        3. Starting at the bottom
        4. Work your way up
          1. The devil is in the detail
        5. Where the wild things are
          1. Spiky and hairy
        6. The real deal
          1. A short interlude on data binding
        7. Creating a structure
        8. Data-driven design
          1. A model store
        9. A room with a view
          1. The tree panel and searching
          2. Pages in detail
          3. The magical page view model
          4. This data is now in session
          5. The glue controlling all
            1. Selecting a page
            2. Adding a page
            3. Deleting a page
            4. Saving a page
        10. Summary
      13. 6. Practical – Monitoring Dashboard
        1. Application design
        2. Requirements
          1. Message received and understood
        3. Data structure
          1. Live charts
          2. Historical logs
          3. Log statistics
          4. Model behavior
        4. The view from the top
        5. Flexibility and pragmatism
        6. Does this hurt?
        7. Onwards and upwards
        8. Data first
        9. Storing the data
        10. With a view to a controller
        11. The main view controller
          1. Rootin-Tootin
          2. Back to business
          3. Route to nowhere
        12. The dashboard
          1. Constant evaluation
        13. The dashboard view model
        14. The dashboard view controller
        15. Web logs subpage
        16. A view on the Web
        17. Controlling the Web
        18. More and more subpages
        19. Summary
      14. 7. Practical – an E-mail Client
        1. Form factors
        2. Application design
        3. I require to admire
          1. Technically speaking
        4. Responding to the situation
        5. Input required
        6. A view to a thrill
          1. Mainly harmless
          2. Full steam ahead
          3. Threading our way
          4. Send me a message
          5. Stay composed
          6. Design overview
        7. Application state
          1. Home screen/initial load
          2. New thread
          3. Show thread
          4. New message/reply
          5. Routing overview
        8. A binding agreement
        9. An eventful application
          1. Events and you
        10. Coding – it's been a long time
        11. It's under control
        12. Login view
        13. Main force
          1. Main ViewModel
          2. Main ViewController
        14. The head of the family
          1. Header ViewModel
          2. Header ViewController
        15. Unravel the thread
          1. Thread ViewModel
          2. Thread ViewController
        16. I am the best message
          1. Messages ViewModel
          2. Messages ViewController
        17. A composed finish
        18. Deciding on a theme
        19. Summary
      15. 8. Practical – Questionnaire Component
        1. Application design – my way
        2. Data structure
          1. Consider carefully
        3. Data flow
          1. A binding trick
          2. A difference of opinion
          3. A means to an end
        4. Sketchy sketching
        5. Get set
        6. The data layer
        7. The payload
        8. The wizard component
          1. Do it yourself
          2. Wizardly tools
        9. One step forward
        10. Making progress
        11. Step by step
        12. Questionnaire command and control
        13. The wizard model
        14. A delightful host
        15. Mixin the night away
        16. Summary
      16. 9. A Shopping Application
        1. About the app
          1. The product window
          2. The shopping cart
          3. Login and registration
          4. User account
          5. Design overview
        2. Back to Ext JS
        3. The data layer
          1. Information contemplation
        4. Component interaction
          1. In control
        5. The simplicity of view models
        6. Code, code, and more code
          1. What's in store?
        7. Interface in your face
          1. One step ahead
          2. Under the main control
        8. Categorically speaking
        9. Product placement
        10. A basket case
        11. The account window
        12. Summary
      17. 10. Debugging and Performance
        1. In-browser debugging
          1. Stepping in
          2. Breaking point
          3. Black box and cut to the chase
        2. Breaking and busting
          1. Caught in the act
        3. Performance in Ext JS
          1. Network performance
            1. Make fewer requests
            2. Perceived performance
            3. Load less
            4. Optimistic updating
        4. Quick on the draw
          1. Overuse of panels
          2. Overnesting
          3. Deferred rendering
        5. Analyzing performance
        6. Summary
      18. 11. Application Testing
        1. Total testing
          1. Unit testing
          2. Assert yourself
          3. Integration testing
            1. Integration and differentiation
        2. Testing tool time with Jasmine
          1. Jasmine – installation and configuration
          2. Make it happen
        3. Testing with robots
          1. Up and running with CasperJS
        4. Testability
          1. Should I or shouldn't I?
        5. Faking it with mocks
        6. Continuous coverage
        7. Summary
      19. Index