Have a question on XPages?

Stack Overflow is a programming Q&A site for developers with more than 3.5 million questions and even more anwers on every programming language you can image.

On Stack Overflow you can also find questions and answers related to XPages. At the time of writing this blog post there are 597 questions tagged XPages on Stack Overflow with questions and answers coming in every day. If you have a question on XPages then have a look at some of the already asked questions and  their answers and see if that helps you. If not, then go ahead and ask a question.

I will also encourage you to help the community by answering questions and also upvoting great answers and downvoting misleading answers. This will improve the quality of Stack Overflow as a Q&A site for XPages.

XPages.info always lists the latest questions tagged XPages and also the top users for the XPages tag on the Stack Overflow tab.

Sherlock Web: a QHSE management system (based on XPages and IBM XWork Server)

I am currently busy working on Sherlock Web: a complete web solution for management of quality, health, safety and environment (QHSE). The solution is based on XPages and the IBM XWork Server and is available as a hosted solution or as an on-premises solution. The licensing cost of the server and application platform is fixed at $2000 per year, since the solution runs on the IBM XWork Server. This makes it an ideal platform for companies with a large number of users.

Sherlock Web is based on the existing Sherlock Lotus Notes solution that runs successfully at more than 500 companies. However, Sherlock Web does not require a Lotus Notes client at all – all you need to use Sherlock Web is a web browser, a tablet (such as the iPad or the Samsung Galaxy Tab) or a smartphone (such as an iPhone or an Android phone).

The document management part of Sherlock Web

You can attend 2 free (physical) seminars at IBM in Denmark on May 24 and May 30 where the Sherlock Web solution will be introduced. For more information and information on how to sign up for the event, please visit the Danish IBM Social Business blog. If you are unable to attend the seminar, you can get more information at the Danish Sherlock site and at the international Sherlock site and by contacting the Sherlock team.

DanNotes 47th conference: links to presentations

The DanNotes 47th conference takes place today and tomorrow. Here are links to presentations available online:

DanNotes logo

Presentation: Create an app in 1 hour (almost) with XPages Extension Library

I gave this presentation along with a live coding demo at the monthly NotesNet.dk meeting on April 19, 2012. The presentation covers elements of the XPages Extension Library that you can use to rapidly convert an existing Lotus Notes client application to a web application.

The sample database is available for download and uses a custom forum database as “backend”. You can easily modify the code to use another backend database.

I am now chairman of the board at NotesNet.dk

I am a member of the NotesNet.dk independent group of IBM/Lotus consultants and also a member of the board. We are 25 independent consultants specializing in services and solutions for Lotus Notes, Lotus Domino, XPages and more.

The members of NotesNet.dk participated in the annual general meeting in March, 2012. Our now former chairman John Dalsgaard wanted to resign as chairman after many years of great service. New members of the board were therefore elected.

At the board meeting held a week later we decided on the responsibilities for the board members. I accepted the position as chairman of the board.

I look forward to continue my work in the board for NotesNet.dk.

XPages: 2 very easy performance optimization tricks

Here are 2 very easy ways to optimize performance for your XPages applications:

  • Enable “Use runtime optimized JavaScript and CSS resources” to have your JS and CSS files combined into fewer files. This reduces the number of HTTP requests that the browser has to make against your server and application and thereby makes the site load much faster.
  • Select “GZip” as the compression method to have your Domino server compress files and images. This reduces the amount of data that the browser has to retrieve from your server and application which again makes your application load much faster

Both of these settings are in Application Properties on the XPages tab.

Once you have done those two, you now have more time to go into detailed performance optimization and look at optimizing backend code, server settings, and much more. Tim Tripcony has answered a question in the XPages Development forum about performance optimization that has a lot of details about performance optimization.

Learning XPages: available resources

I often hear people new to XPages ask: what resources are available if you want to learn XPages?

The following lists (some of the) available resources if you want to learn XPages.

IBM provided resources

Books

Free community provided resources

  • XPages.info: lots of links to useful resources
  • XPageswiki.com
  • XPages.TV:  Notes In 9 videos, 2 hours of XPages jumpstart, and a introduction to Java for XPages develovers series
  • XPagescheatsheet.com: home of the original XPages cheatsheet and the new Social Tools cheatsheet

Free courses

Paid courses

Community provided support

Blogs
  • There are lots of blogs that cover XPages. Keep an eye on the XPages.info/news section that is updated daily with links to blog entries, wiki articles, OpenNTF projects and more.
Twitter
Happy XPages learning!

Creating your first managed bean for XPages

With Java and managed beans you can make your XPages applications even more powerful. In this blog post I will go through the steps to create and use a managed bean in XPages.

I am using Lotus Notes and Domino Designer 8.5.3 and will therefore use the new Java design element for the Java code located in the Code section.

In short: use “New Java Class” to create a Java class. Give your new class a package name (e.g. com.company) and a class name (e.g. HelloWorld). Add a local variable and let Eclipse generate getter and setter for it by using Source – Generate Getters and Setters. Also, let Eclipse generate a public no-parameter constructor by using Source – Generate Constructor using Fields and deselect your newly created field and omit call to super().

You will then have the following basic skeleton for a Java class:

package com.company;

public class helloworld {

	public helloworld() {
	}

	private String someVariable;

	public String getSomeVariable() {
		return someVariable;
	}

	public void setSomeVariable(String someVariable) {
		someVariable = someVariable;
	}

}

In order to support the XPages server page persistence option “Keep pages on disk”, the Java class needs to be serializable. The Java class therefore needs to implement Serializable. Therefore, add “implements Serializable” after your class name (and Eclipse will automatically add the required import). Then use the Eclipse Quick Fix to “Add generated serial version ID”. You now have a basic skeleton for a Java class that can be used as a managed bean:

package com.company;

import java.io.Serializable;

public class helloworld implements Serializable {

	private static final long serialVersionUID = 6469339826789980362L;

	public helloworld() {
	}

	private String someVariable;

	public String getSomeVariable() {
		return someVariable;
	}

	public void setSomeVariable(String someVariable) {
		someVariable = someVariable;
	}

}

Now we need to tell XPages that we would like to use this Java class as a managed bean. First, Add the Package Explorer view to your Eclipse perspective using Window – Show Eclipse Views – Other and select Package Explorer. Now go to the Package Explorer and navigate to the WebContent/WEB-INF folder where you will find a faces-config.xml file. Open the faces-config.xml file and add the following managed bean section in the <faces-config> section:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
	<managed-bean>
		<managed-bean-name>helloWorld</managed-bean-name>
		<managed-bean-class>com.company.helloworld</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
</faces-config>

You now have a basic faces-config for your HelloWorld Java class. Scope for a bean can be the usual scopes (application, session, view, request).

With the Java class and the faces-config in place the managed bean can now be used in an XPage. The bean value (both the getter and setter) can be accessed from an XPage using #{helloWorld.someVariable}.

This very basic example of a bean does not do anything. The Java class would of course have to add values to the someVariable property before that value would be useful in an XPage. I will create a 2nd blog post that shows how to use a bean in a repeat control to display values from the managed bean.

For more information on XPages and managed beans have a look at:

Thoughts from Lotusphere 2012: Lotus Notes Social Edition

One of the highlights from Lotusphere 2012 was the accouncement of the next feature release of Lotus Notes called Lotus Notes Social Edition.

Lotus Notes Social Edition features a new homepage with activity streams and embedded apps (embedded experiences) using open standards such as OpenSocial. From the Lotus Notes homepage a user can interact with an external application without leaving the home page (collaboratio in-context). Lotus iNotes (the web mail component for Lotus Notes) will also support activity streams and embedded apps. The new homepage looks similar to the activity streams in the upcoming IBM Connections 4.0 release.

XPages and the Extension Library Social Enabler toolkit can be used to implemenet applications that support activity streams and OpenSocial gadgets in order to create embedded apps. The Social Enabler Toolkit is currently only part of the OpenNTF release and will be part of Upgrade Pack 2.

Social Edition also features a brand-new and more simple UI for mail (for both the Lotus Notes client and for iNotes webmail):

In between now (8.5.3) and Social Edition we will see a 8.5.4 release with features required to be able to deploy the Social Edition upgrade on top of Lotus Notes and Domino 8.5.4. In 2012 we will also see the release of Upgrade Pack 2 (IBM supported Extension Library with new features currently only available in the experimental part of the OpenNTF Extension Library).

Lotus Domino 8.5.4 is planned to support SAML and oAUTH for authentication. With Domino supporting oAUTH it will be possible to bring XPages applications into the context of other applications.

Finally, the Lotus Notes app browser plugin for Firefox/Windows was presented at Lotusphere. This plugin is a lightweight Lotus Notes client in the browser that can run Notes client applications. This enables organizations to focus on implementing new XPages web applications and have their existing/old Notes client applications use the plugin.

Ed Brill from IBM has blogged about Lotus Notes and Domino Social Edition and also posted his “Messaging and Collaboration Strategy” session from Lotusphere on Slideshare.

Chris Reckling from IBM has blogged about the Notes and iNotes announcements from the Lotusphere 2012 OGS.

Thoughts from Lotusphere 2012: IBM Connections 4 (“Next”)

At the Lotusphere 2012 Opening General Session (OGS) and throughout the conference IBM showed the next version of IBM Connections (to be called IBM Connections 4.0?). My first impression of the next release of IBM Connections is that it looks really, really great! Among many things it features exciting new elements such as activity streams, social mail and embedded apps (using open standards such as Activity Streams and OpenSocial gadgets).

Embedded apps for activity streams can be created using e.g. XPages. An embedded app makes it possible for the user to take action directly from the invidual post in the activity stream (without leaving IBM Connections).

The integrated mail and calendar of IBM Connections (social mail) will support Lotus Domino and Microsoft Exchange as backend mail servers. This is an interesting move  that makes the underlying mail server in use irrelevant to the IBM Connections deployment.

IBM Connections 4 also includes community metrics (to track e.g. adoption rates), optional realtime group video chat using a plugin from Polycom, ECM library integration and realtime co-editing of documents, presentations and spreadsheets using IBM Docs (IBM Docs is currently in beta on IBM Greenhouse).