Best Practices for Building Domino 8 Web Applications
Total Page:16
File Type:pdf, Size:1020Kb
Untitled Document Content in this document was produced in collaboration with Lotus® and IBM® Redbooks®. Best Practices for Building Domino 8 Web Applications ● Key recommendations for updating existing Web applications ● Best Practices for refining application look and feel for the Web ● Common tips and techniques ● Bruce Lill ● Jimmy Minata ● Bruno Grange ● John Noltensmeyer ● Chris Toohey ● Joseph D'Armi ● Debra Landon ● Lisa Schenkewitz ● Jennifer Heins ● Louis Orenstein March 2008 and Copyright IBM Corp. 2008. All rights reserved. file:///C|/Documents%20and%20Settings/Administrator/My%...hnicalContent/redbooks/itsodomwebapp/titlepage-dom.html (1 of 2)9/12/2008 9:03:49 AM Untitled Document This PDF is a snapshot of the original Wiki content The original wiki content was produced in collaboration with Lotus® and IBM® Redbooks®. This PDF snapshot has been created as a reference of that original content. Note: Some links in this PDF will take you back to the Wiki, rather than keep you within this PDF. Find the latest information on the Wiki Visit the Lotus Domino Designer Wiki for the latest information and comments contributed by IBM and the community of readers. file:///C|/Documents%20and%20Settings/Administrator/My%...hnicalContent/redbooks/itsodomwebapp/titlepage-dom.html (2 of 2)9/12/2008 9:03:49 AM Space Details Key: dominoappdev Name: Lotus Domino Web Application Development Description: Creator (Creation Date): dwblogadmin (Feb 04, 2008) Last Modifier (Mod. Date): dwblogadmin (Feb 04, 2008) Available Pages • 0.0 Preface • Riverbend Coffee and Tea Company • 1.0 Primer • HTML primer • Content type • DOCTYPE • Working with HTML in Domino • Java primer • A simple Java program • Introduction to applets • Introduction to classes and objects • Working with Java in Domino Designer • JavaScript primer • DHTML • The Document Object Model • Using JavaScript with HTML • Working with JavaScript in Domino Designer • Styles and CSS primer • Web 2.0 primer • Introduction to AJAX • Introduction to JSON • Web services primer • Web standards primer • Application programming interface • XML primer • 2.0 Getting started • Architectural, project, and visual design considerations • Architectural patterns • Thoughts about content • Domino Web capabilities • Planning for accessibility and compliance • Understanding the Web browser client environment • 3.0 Understanding the Domino design elements Document generated by Confluence on Apr 04, 2008 19:03 Page 1 • Database • Default Launch Elements • Tab specific database functionality • Domino design elements • A design elements overview • Adding HTML to a design • All Domino URLs • CGI variables • Changing the content type of a design element • Common design properties on Web applications • Styling text for the Web • Working with the DOCTYPE • Agent design elements • Applet design elements • Design element multi-aliasing • File resources design elements • Folder design elements • Form design elements • HTMLOptions and HTMLTagAttribute fields • Special reserved fields • Understanding the form HTML source code • Using forms versus pages • Frameset design elements • Image resource design elements • Java library design elements • JavaScript library design elements • LotusScript library design elements • Page design elements • Using pages to submit data • Profile documents • Shared field design elements • Subforms design elements • View design elements • Rapid application development • SearchTemplate • Web service design elements • 4.0 Building Domino Web applications • Error handling • Input validation - Client side • Input validation - Server side • Interactive data (Web 2.0) • Login screens • Built-in forms using $$LoginUserForm • Custom login screens using Domcfg.nsf • Database that came with Domino R5 Document generated by Confluence on Apr 04, 2008 19:03 Page 2 • Navigation techniques • Moving past the frameset - Making Web-based applications that do not look like Lotus Notes • No more twisties - Using single category and a combobox to filter the view • View-based menus • Personalization • Searching • Creating custom and advanced searches using Domino • Customizing the search results display • Searching via Domino URL commands • Searching via FTsearch and DBSearch • robots.txt • Search engines and search engine optimization • SEO techniques • URL considerations • User management • Using interactive data and Web services • Working with data • JSON • RSS • Using query views • 5.0 Extending rich client applications for Web clients • Benefits and pitfalls of extending rich client applications for Web clients • Data management in hybrid rich and Web client applications • Defining functional requirements based on client type • Developing hybrid rich client and Web client applications • 6.0 Server configuration • Logging • Performance considerations • Security considerations • SSL support • Setting up SSL with a self-certified certificate • Server error handling • Global 404 error form • Web server configuration database • Topology • Working with Web site rules • Directory rules • HTTP Response Header rules • Overriding Session Authentication rules • Redirection and Substitution rules • 7.0 Developer tools and resources • Domino resources • Web development resources Document generated by Confluence on Apr 04, 2008 19:03 Page 3 • Web development tools • Looking ahead to version 8.5 Document generated by Confluence on Apr 04, 2008 19:03 Page 4 0.0 Preface This page last changed on Apr 03, 2008 by jservais. • Assumptions • Meet the authors • Become a contributor • Comments welcome • Conventions This section of the wiki contains a collection of best practices for building and updating Lotus® Domino® Web applications. The topics vary widely and range from key recommendations for updating existing Web applications and best practices for refining the look and feel of Domino applications for the Web, to common tips and techniques. Assumptions This information assumes that you have some basic Web development skills. Meet the authors Authors Bruce Lill (brucelill) has been providing Notes® solutions since Lotus Notes V2.0. Bruce is a certified Developer, Administrator and Instructor. Bruce He spends his time building secure Web sites for companies and state governments. His satisfaction doesn't come until the site is validated and the customer is happy. Bruce can be contacted by sending e-mail to [email protected]. Bruno Grange (brunogrange) is an IBM® certified advanced application developer, instructor and system administration specialist on Lotus Notes/Domino. He works for IBM as an application developer, participating on various global delivery projects using Lotus Notes/Domino. Bruno has over eight years of experience, which includes working with several IBM business partners in Brazil as Procwork, WJ and Cyberlynxx. Bruno has in-depth experience with Web application development and implementation Web 2.0 using Lotus architecture. He is a Document generated by Confluence on Apr 04, 2008 19:03 Page 5 coordinator of the AS Brazil Notes/Domino team, a group of developers in IBM Brazil that brainstorms new ways to promote Lotus Notes brand. He also maintains a personal Web site with information and tips about Lotus and Web application development at www.grange.com.br. Bruno can be contacted by sending e-mail to [email protected]. Chris Toohey (christoohey) is a published developer and Webmaster of DominoGuru.com, a Lotus Notes/Domino-themed "Tips & Tricks" Web site and Weblog. He is the Chief Solutions Architect for Clearframe and specializes in integrating IBM Lotus Notes/Domino with other enterprise-level solutions. Since entering the IT industry in 1998, Chris's unconventional methodologies, forward thinking and his ability to uniquely analyze and attack a given problem with award winning solutions has afforded him recognition as an expert in his field, as well as yielding many happy customers. Jimmy Minata (jminata) has over 13 years of domino development and administration experience. He specializes in developing Web applications by using CSS, DHTML, and AJAX and is an expert in integrating Domino with relational databases such as DB2®, SQL Server®, and Oracle®. As a senior consultant and a CRM Framework Manager with PSC Group, he has successfully architected and implemented CRM, Workflow, Portal, and Content Management application at various clients. John Noltensmeyer (jnoltensmeyer) has over 12 years experience as a Lotus Notes developer and administrator and is certified as both a Notes developer and administrator in each release from R3 to ND8. He is also a Sun™ Certified Java™ Programmer, MCSE, and holds the Certified Information Systems Security Professional (CISSP) designation. John has been developing Domino web applications since 1997 and standards-based Web design is one of his passions. You can contact John by sending e-mail to [email protected]. Joseph D'Armi (josephd) has worked with Lotus Notes since version 3 and spent the last 10 years focused on Domino Web-based applications. Has architected collaborative sales, marketing and financial applications; content management systems for corporate Web sites and intranets; and commerce sites most notably the Lotus sponsored online shop for Manchester United Document generated by Confluence on Apr 04, 2008 19:03 Page 6 Football Club. Lisa Schenkewitz ([email protected]) has worked with Lotus Notes for 15 years since Version 3 and also has been certified in each release as a principal developer and administrator. Has done several notes