Application Development Resources

August 21 2006 04:56:41 PM Comments Disabled
Application Development Web Sites, Articles, Blogs, etc.

Last updated: May 9, 2008

The page provides a list of resources for developing Notes/Domino applications.  Also see my list of Application Development Tools/Products.

General Resources

Performance basics for IBM Lotus Notes developers - 06 May 2008
This white paper addresses the most important and most serious factors affecting IBM® Lotus® Notes® and Domino® application performance. It is intended for developers of Notes client applications, to help them maximize performance by identifying problem areas and by offering solutions.

developerWorks for Lotus: articles, documentation, tutorials, webcasts, and more.

Best Practice Makes Perfect Blog (by Andre Guirard) - A collaboration with Domino developers about how to do it and how to get it right in Domino

Lotus Composite Applications blog.  This web log is a joint effort by the key technical architects and user experience professionals to open a direct line of communication with developers about the capabilities of user facing composite applications.

Lotusphere2006 Session Presentations and Samples from the Speakers

OpenNTF - Tons of excellent open source projects, forums, and good people!

Ben Langhinrichs : Genii Software (look on the righthand side for great articles/tutorials on rich text)

Breaking Par Consulting Inc : web site filled with Notes/Domino code samples, solutions to common programming questions, etc.

Chris Blatnick: Interface Matters

Developing BlackBerry Applications for Lotus Domino : BlackBerry provides a variety of enterprise options for developing wireless applications that connect to your Domino Databases. Learn more and download the development resources you need.

Jake Howlett: CodeStore

Julian Robichaux: nsfTools

Nathan Freeman: Escape Velocity

Training Material

Lotus Education On Demand: Building Databases with Domino Designer 7
This free tutorial is designed to take you through the steps of building a fully functional Domino database using Domino Designer 7. You will be introduced to all the necessary design elements such as forms and views, as well as actions, agents and outlines. Each part of the course is accompanied by a database file. This database provides completed examples of the exercises in each part.

Lotus Education On Demand: Creating Script Libraries in Notes: This tutorial covers the tasks in creating and implementing script libraries, including: Creating user-defined functions or subroutines, setting up a script library, and incorporating script libraries into Notes/Domino applications.

Lotus Education On Demand: Securing Your Notes Application: This Learning Byte to help you decide how to: Develop a plan that provides the required security for your data and appropriate access for each user, Set up an access control list (ACL), Restrict access to database elements, Create roles to manage access for groups of users, and Control document access.

Lotus Education On Demand: Notes Error Trapping in LotusScript:

Lotus Education On Demand: Logging Notes Application Activity: A NotesLog object can be used to record actions and errors that occur in scripts. This information can be stored in one of the following ways: Notes database, Mail memo , Text file.  In this Learning Byte, you will learn how to create and populate a Notes database with application activity information.

Redbook - Domino Designer 6: A Developer's Handbook
In this IBM Redbook, we describe how to develop applications with IBM Lotus Domino Designer 6. With Domino Designer, you are able to create applications hosted by a Domino server. These applications can be used by different clients, such as Notes clients, Web browsers or mobile devices.
We introduce, and show in detail, how you can use all the design elements of Domino Designer, such as forms, pages, views, agents, outlines, resources and framesets. Readers who are familiar with developing applications using Release 5 of Lotus Domino may want to start at Chapter 12, which introduces the new features in Domino 6.0, and continue from there.
In the chapters toward the end of the book, we discuss the different programming languages, @functions, LotusScript, JavaScript, and Java, that can be used in Domino. We detail how to manipulate rich text objects by programming, as well as XML, in Domino.

Redbook - Lotus Domino 7 Application Development - This IBM Redpaper shows application developers how to use the powerful, new features in Domino 7 by enhancing an example application.
Chapter 1. An introduction to Lotus Domino 7 application development
Chapter 2. Using DB2 integration to enhance the ITSO Electronics application
Chapter 3. Enhancing the ITSO Electronics application with Web services
Chapter 4. Implementing new design elements in the ITSO Electronics application
Chapter 5. Diagnosing and troubleshooting the ITSO Electronics application

LotusScript: Rich text objects in Notes/Domino 6 Part 1 of 5: This article looks at the new classes for Rich Text objects and provides example code for extracting meaningful data from Rich Text fields, adding new elements programmatically, and controlling the visual style of the database.

LotusScript: Programming views in Notes/Domino 6 Part 5 of 5: This article, fifth in a series on new classes and enhancements to LotusScript in Notes/Domino 6, looks at class enhancements and new features to make elements such as the view selection formula and the view's look and feel programmable.

LotusScript: XML classes in Notes/Domino 6 Part 2 of 5: This article, fourth in a series on new classes and enhancements to LotusScript in Notes/Domino 6, looks at new LotusScript classes for exporting, importing, and processing XML data, with example code.

LotusScript: More XML classes in Notes/Domino 6 Part 3 of 5: Continuing the series on new classes and enhancements to LotusScript in Notes/Domino 6, this article presents examples of XSL transformation to convert Domino data to XML AND HTML, and using the DXL importer to convert XML to NSF format.

LotusScript: The NotesAdministrationProcess Class in Notes/Domino 6 Part 4 of 5: This article, fourth in a series on new classes and enhancements to LotusScript in Notes/Domino 6, shows how to use the new NotesAdministrationProcess class to create scripts to automate common administration tasks.

Lotus Education On Demand: Creating Calendar Views in Notes: The Calendar view is a view style that allows documents, organized by date and time, to appear in a calendar format. This tutorial covers the tasks involved in creating a Calendar view

Building Lotus Notes/Domino calendar applications: Many people use the Lotus Notes calendar "right out of the box." But did you know you can also incorporate calendar features into your own custom-built applications? This article explains how.

Calendar and scheduling features are available through the C API. This section will focus on how to add an appointment or a meeting invitation to a User's schedule, delete a scheduled event from a User's schedule and query a User's busy/free time information.

IBM Lotus Notes Calendaring & Scheduling Schema: This white paper introduces you to the Lotus Notes/Domino calendar and scheduling schema in release 5 and later. It describes the different document types and the fields on each document.   Updated (July 19, 2007) Version here.

Integrating Macromedia Flash and IBM Lotus Notes/Domino: Flash-based UIs for your Domino-based solutions - Present content and incorporate the design from a Domino view into a Macromedia Flash-based view. With this solution, you can quickly expose standard Domino views for Web users and easily update the design of a single Domino view for both Lotus Notes and Web clients.  This article shows you how to present IBM Lotus Domino view content in Macromedia Flash, based on and controlled from a flat Domino view. In this way, you can maintain the same design and content presented both in Lotus Notes and in Flash user interfaces (UIs) simply by altering the Domino view.

Consuming Web services from a Lotus Domino Java agent - New in IBM Lotus Domino 7, the Web service design element is a great way to expose services to the world. But do you know how easy it is to use the Apache Axis framework for consuming Web services? Discover how to take advantage of Apache Axis and Lotus Domino 7 technologies to create a Web service consumer.

Julian Robichaux - Setting Up Repeating Dates In Notes - Have you ever set up a repeating event on your calendar in Notes and thought to yourself, "I sure would like to use that functionality in my custom applications"? I have, and I spent a lot of time trying to figure out how it all works.  Essentially, there's a hidden LotusScript class called NotesCSEventOwnerDocument that generates the list of repeating dates, based on rules that are specified in the dialog box that allows you to choose your repeat rules. This class is undocumented and probably completely unsupported outside of the standard Notes calendar, but it's such nice functionality that I did a lot of experimentation to try to understand it.

Andre Guirard - Tip: How to update rich text in a document that's open and redisplay it without saving

Andre Guirard - The Complete Reader and Author Field Troubleshooter

Chris Toohey - Context-Sensitive Tabbed Navigation in the Lotus Notes Client : In this article, I'll showcase exactly what we did to facilitate such functionality and ultimately provide our users with a simple, intuitive interface (at least in my and several of our users' opinions)

John Head - Presentations on Notes integration, including The Hitchhikers Guide to Microsoft Office Integration with Lotus Notes and Domino, Extreme Integration - Techniques for Advanced Integration of Office and OpenOffice with IBM Lotus Notes and Domino, and many more.

Julian Robichaux presentation about Web Services:
- Part 1: Introduction to Web Services
- Part 2: How Notes/Domino 7 can play in the world of service oriented architectures.

Julie Kadashevich's Agent FAQ

Justin Freeman - How To Extend Domino Authentication For Websites, Single Sign-on and Persistent Sessions

Using AJAX with Domino Web Applications - AJAX (Asynchronous JavaScript and XML) can improve the performance and usability of your Domino web applications. This session will examine how you can modify your Domino web applications to make use of AJAX. Running Time: 34 minutes.  Speaker:  Mark Jourdain, Product Manager, Notes/Domino Application Development

Tutorial: Build apps using Asynchronous JavaScript with XML (AJAX)

Article: Using Ajax to manipulate Lotus Notes documents

Richard Schwartz - Links to all things Domino and AJAX related.

Various Contributors - Domino and AJAX demos: Lance Spellman has put together a video highlighting some of the uses of AJAX for Domino applications, including: the Ultimate Web View Navigator by Bob Obringer, View Search by Lance Spellman, Name Picker by Matthew White, and AJAX Crypto by Richard Schwartz.

REDBOOK Lotus Domino and .NET coexistence (April 6th, 2004) : This paper is provides information on Lotus Domino and .NET coexistence. It provides development scenarios where Lotus Domino is the service consumer and the .NET application is the service provider, and the other way around where Lotus Domino is the service provider and the .NET application is the service consumer. The technologies used for integration are Web services and the COM interface.

Technote: How To Send Lotus Notes Mail Messages with Microsoft Visual Basic: The following Visual Basic code will send a Notes e-mail message. The code includes examples of code to include an attachment and to save the sent message, which are both optional and can be removed if desired.

REDBOOK COM Together - with Domino (May 12th, 2000) : This redbook is written for Domino solution designers and programmers, customers, IBM Business Partners, and other members of the IBM and Lotus community who know how to program in BASIC and need a good technical understanding of how to use Domino with COM.

Lotus Notes/Domino 7 application performance: Part 1: Database properties and document collections (31 Jan 2006) : This series covers three areas of application performance: database properties, document collections, and views. In part 1, we will discuss database properties and document collections. In each case, we will point out areas that are most significant and provide concise, real-world examples to help you understand what to do in your own applications. We'll use examples from many applications; you'll probably find that at least one of them closely matches something that you do or that you use. Our goal is to help you build applications that are as fast as they are beautiful.

Lotus Notes/Domino 7 application performance: Part 2: Optimizing database views (14 Feb 2006) :  In part two of this article series, we explain how you can build views that are optimized for performance in your Notes/Domino applications.  Over many years of analyzing application performance issues, we found that views are frequently involved in both the problem and the solution. Often, view indexing is the issue. This article explains how this can happen and what you can do to troubleshoot and resolve this type of problem. But there is another kind of view performance problem that has been popping up more frequently over the past few years. This involves views that display reader access controlled documents. The performance problems seen in these views are often not indexing related, so we’ll take a little time to discuss these separately.

Troubleshooting application performance: Part 1: Troubleshooting techniques and code tips (29 Mar 2005) : In part 1 of our article series, we explain a tried-and-true performance troubleshooting process along with an example of how following this process quickly narrowed down a vexing performance problem for a real-life customer application. We also cover some tips to help you optimize view indexing and agents.

Troubleshooting application performance: Part 2: New tools in Lotus Notes/Domino 7 (05 Apr 2005) : In this article, we continue our discussion about identifying and solving performance problems in Domino applications.  We look ahead to new Lotus Notes/Domino 7 tools that will help you identify trouble spots, and use these tools to identify performance issues in agents that we created to demonstrate the code tips from the first article.

Building PHP-based UIs for IBM Lotus Domino (09 May 2006)- In this article, you learn how to interact with IBM Lotus Domino databases from Web applications created with the PHP programming language. You also learn how to access Domino applications from PHP pages using a COM object, the IBM Lotus Notes application programming interface (API), and XML.

Building a JSR 168 portal application for Domino: In an earlier article, we described creating a DXL framework for working with a Lotus Domino database over the Web. We now turn our attention to building a JSR 168 portal application as a frontend to a Domino database.

Application Performance Tuning, Part 1 (01 Apr 2003) : Part 1 of 2: This article looks at the database, view, and form properties that most commonly affect how well your applications perform.

Application Performance Tuning, Part 2 (01 May 2003) : Part 2 of 2: This article looks at coding practices that can improve application performance. It also examines some common LotusScript methods to see which ones perform best under different conditions.

Maximizing Domino Performance White Paper () : This white paper defines what you can do to maximize the performance of Domino in terms of Web applications from the development perspective and overall server performance from the server adminstration perspective.

The DigestSearch method for Lotus Domino databases (31 Jan 2006) :This article introduces DigestSearch, an alternative solution for working with IBM Lotus Notes Profile documents and for performing simple, high-speed searches. For searching server-based databases from a Notes client, DigestSearch is twice as fast as any other search method available, outperforming both full-text search and LotusScript's GetDocumentByKey method.

Further Resources:

Lotus Notes/Domino Product Catalog

Lotus Notes/Domino Administration Tools

Lotus Domino Catalog

Global Solutions Directory Catalog

Business Partner Application Showcase