You are previewing Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language, Second Edition.
O'Reilly logo
Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language, Second Edition

Book Description

IBM's Best-Selling Guide to XPages Development–Now Updated and Expanded for Lotus Notes/Domino 9.0.1

XPages instantly revolutionized Notes/Domino application development, and the newest versions deliver unprecedented performance and flexibility. Now, the popular insider's guide to XPages development has been updated and expanded to reflect all these improvements, through IBM Notes/Domino 9.0.1 and beyond.

Three key members of the IBM XPages team have brought together comprehensive knowledge for delivering outstanding solutions. They have added several hundred pages of new content, including four new chapters. Drawing on their unsurpassed experience, they present new tips, samples, and best practices reflecting the platform's growing maturity. Writing for both XPages newcomers and experts, they cover the entire project lifecycle, including problem debugging, performance optimization, and application scalability.

This second edition of Mastering XPages fully addresses enhancements to the XPages data sources for Domino views and documents; the latest XPages mobile library; the new Domino Designer Server-Side JavaScript debugger; and improvements to integrated technologies such as Dojo and CKEditor.

Nearly every chapter contains at least one downloadable sample application, offering extensive hands-on practice. This guide concludes with complete references to XSP tags, relevant Java/JavaScript classes, and XSP style classes.

Coverage includes

* Understanding XPages' development paradigm, tooling, runtime framework, and application architecture
* Configuring Domino Designer and integrating XPages Extension Library
* Constructing application logic and using data binding controls
* Reading/writing Notes documents: from use cases to design properties
* Using Views, including examples of accessing calendars via REST
* Making the most of Notes/Domino 9.0's new DataView control
* Coding: from the basics to fully customized behavior
* Advanced scripting: AJAX, Dojo, @Functions, managed beans, and more
* Extending the Rich Text Editor's functionality
* Building and consuming new controls with Extensibility APIs
* Taking web applications offline in the Notes client
* Building mobile apps: controls, design patterns, and best practices
* Debugging Server-Side JavaScript with Domino Designer 9.0
* Creating apps that look and work great–for local and global audiences
* Systematically optimizing performance and scalability
* Protecting data and users: leveraging Domino and Notes security models

Table of Contents

  1. About This eBook
  2. Title Page
  3. Copyright Page
  4. Dedication Page
  5. Contents at a Glance
  6. Contents
  7. Foreword
  8. Preface
    1. Approach
    2. Conventions
    3. How This Book Is Organized
  9. Acknowledgments
  10. About the Authors
    1. Contributing Author
  11. Part I: Getting Started with XPages
    1. Chapter 1. An Introduction to XPages
      1. XPages Fundamentals
      2. Onward and Upward: A Path of Continuous Improvement
      3. The XPages Development Paradigm
      4. New Horizons
      5. Conclusion
    2. Chapter 2. Getting Everything You Need
      1. Downloads, Versions, and Locations
      2. Installing Domino Designer
      3. Installing Client Fix Packs
      4. Client Configuration
      5. Quick Tour of Domino Designer
      6. Working with the XPages Extension Library
      7. Conclusion
    3. Chapter 3. Building Your First XPages Application
      1. Laying the Foundations
      2. Forms and Views
      3. Building an XPages View
      4. Completing the CRUD
      5. Conclusion
  12. Part II: XPages Development: First Principles
    1. Chapter 4. Anatomy of an XPage
      1. What Exactly Is an XPage?
      2. Understanding XSP Tag Markup
      3. Data Sources
      4. Controls
      5. Containers
      6. XPage Resources
      7. Converters
      8. Validators
      9. Simple Actions
      10. Client-Side Scripting
      11. HTML Tags
      12. Extension Library
      13. Conclusion
    2. Chapter 5. XPages and JavaServer Faces
      1. What Is JavaServer Faces?
      2. JSF Primer
      3. How Does XPages Extend JSF?
      4. Conclusion
    3. Chapter 6. Building XPages Application Logic
      1. Adding Application Logic
      2. Simple Actions
      3. Change Dynamic Content
      4. Move to Application Page
      5. Using JavaScript with XPages
      6. Conclusion
  13. Part III: Data Binding
    1. Chapter 7. Working with Domino Documents
      1. Domino Document Data Source
      2. Working with Domino Documents—Programmatically!
      3. Rich Documents
      4. Conclusion
    2. Chapter 8. Working with Domino Views
      1. databaseName Property
      2. View Data Source Filters
      3. Other View Content Modifiers
      4. A Page with Two Views
      5. When Is a View Not a View?
      6. Go Fetch! Or Maybe Not...
      7. Caching View Data
      8. Sorting Columns
      9. Accessing Calendar Data
      10. Conclusion
    3. Chapter 9. Beyond the View Basics
      1. Pick a View Control, Any View Control
      2. The View Control: Up Close and Personal
      3. Data Table
      4. Repeat Control
      5. Data View
      6. Some Fun with the Pager
      7. Conclusion
  14. Part IV: Programmability
    1. Chapter 10. Custom Controls
      1. Divide and Conquer
      2. Getting Started with Custom Controls
      3. Using Property Definitions
      4. Using the compositeData Object
      5. Send and You Shall Receive
      6. Custom Control Design Patterns
      7. Conclusion
    2. Chapter 11. Advanced Scripting
      1. Application Frameworks
      2. AJAX and Partial Refresh
      3. Event Parameters
      4. Dojo Integration
      5. Working with Traditional Notes/Domino Building Blocks
      6. Managed Beans
      7. Fulfilling a Customer Requirement: A Practical Field Study
      8. Conclusion
    3. Chapter 12. XPages Extensibility
      1. How to Create a New User Interface Control
      2. Example Component
      3. Let’s Get Started
      4. Building a Component
      5. Working with Component Properties
      6. Create the Initial xsp-config Definitions
      7. Specifying Complex Properties
      8. Complete the xsp-config for the UISpinner Component
      9. Complete the UI Component Extension, UISpinner
      10. Complete the Renderer UISpinnerRenderer
      11. Create a Sample Application Using the UISpinner Component
      12. Where to Go from Here
      13. Conclusion
    4. Chapter 13. XPages in the Notes Client
      1. Think Inside the Box
      2. Getting Started with XPages in the Notes Client
      3. 3, 2, 1...Lift Off
      5. Working Offline
      6. One of These Things Is Not Like the Other
      7. Other Subtle Differences
      8. Extended Client-Side JavaScript Commands
      9. XPages: A Good Notes Citizen
      10. Introducing enableModifiedFlag and disableModifiedFlag
      11. Keeping Tabs on Your Client Apps
      12. Notes Links Versus Domino Links
      13. Some XPiNC Debugging Tips
      14. Optimizing XPages for Notes
      15. XPages and Composite Applications
      16. Further Adventures with Composite Applications
    5. Chapter 14. XPages Mobile Application Development
      1. Getting Started with Mobile Application Development
      2. Single Page Application Design Pattern
      3. Mobile Application Navigation
      4. Interacting with a Mobile Application
      5. Mobile Themes
      6. Debugging Mobile XPages
      7. XPages Mobile Extensions
      8. Summary
    6. Chapter 15. XPages Unplugged and Debugged
      1. Debugging XPages Apps on the Server Side
      2. Debugging XPages Apps on the Client Side
      3. Conclusion
  15. Part V: Application User Experience
    1. Chapter 16. XPages Theming
      1. It Used to Be Like That...But Not Anymore
      2. Styling with Style
      3. Styling with Class
      4. Theming on Steroids!
      5. Conclusion
    2. Chapter 17. Application Layout
      1. Divide and Conquer
      2. Application Layout: One Easy Way
      3. Application Layout: Customizing the Content Area
      4. Conclusion
    3. Chapter 18. Internationalization
      1. Using Localization Options
      2. Localizing Computed Expressions and JavaScript
      3. Localizing Script Libraries
      4. International Enablement
      5. Locales in XPages
      6. Deprecated Locale Codes
      7. Localizing Computed Fields
      8. Conclusion
  16. Part VI: Performance, Scalability, and Security
    1. Chapter 19. A First Look at Performance and Scalability
      1. Golden Rules
      2. Understanding the XPages Request Processing Lifecycle
      3. Reducing CPU Utilization
      4. Reducing Memory Utilization
      5. Conclusion
    2. Chapter 20. Advanced Performance Topics
      1. Making Efficient XPages Requests
      2. Introspecting XPages Requests Using a PhaseListener
      3. Making Scalable XPages Requests
      4. Conclusion
    3. Chapter 21. Security
      1. Notes/Domino Security and XPages
      2. Now Get Started
      3. Programmability Restrictions
      4. Restricted Operation
      5. XPages Security Checking
      6. XPages Security in the Notes Client
      7. Active Content Filtering
      8. Public Access
      9. SessionAsSigner
      10. Enabling Extended Java Code with the java.policy File
      11. Conclusion
  17. Part VII: Appendixes
    1. Appendix A. XSP Programming Reference
      1. XSP Tag Reference
      2. XSP Java Classes
      3. Notes/Domino Java API Classes
      4. XSP JavaScript Pseudo Classes
    2. Appendix B. XSP Style Class Reference
      1. XSP CSS Files
      2. XSP Style Classes
      3. IBM OneUI Themes and Documentation
    3. Appendix C. Useful XPages Sites on the Net
  18. Index