XPages in Pictures - 01 - Introduction
Category XPages
To me, trying to learn XPages is like eating Hot Peppers. It’s fun and exciting, but there’s serious pain involved.
Right now my pain is in learning how to do “simple” things in XPages.
What I intend to do is to start sharing the few things that I’ve learned so far. Hopefully this helps someone else starting to look into XPages. This will probably be more on the basic end compared to some of the other examples out there. It’ll probably be geared for Notes Rich Client developers since that’s primarily what I do.
There are several hurdles in learning XPages; there’s the initial hurdle of learning how to move around in the new Domino Developer for Eclipse (DDE). That takes some getting used to. There’s also a language switch. The XPage language of choice is JavaScript, not LotusScript. However, there is a really nice consolidation price here. Many of our familiar @Functions and also the Notes Document Object Model has been implemented in JavaScript. That saves a lot of time, and is like having you’re favorite pillow with you for a long road trip. The only catch is that if you’re just getting started in JavaScript, there’s no book on the language that tells you how to mix JavaScript with the Notes Object model. You’re on your own for that. But more and more examples are starting to appear.
For me, the absolute biggest hurdle that I’ve found is that we really need to “Think Different”. You are going to need to change your programming methodology when working with XPages because XPages allow you to do things that would be difficult and time consuming in normal Domino Web Development and down right impossible in traditional Notes Client development. XPages gives you the concept of scoped variables, which are variables that can stay in memory for different lengths of time. For example, there is a session scope variable that remains resident in memory when the user switches page views. No need to pass data along, or save data somewhere only to retrieve it again when the user moves to a new web page.
XPages give you the ability to do a dbLookup from inside a view. Finally, Notes programmers can do the equivalent of a SQL Join. Try that in the Notes Client!
There is a powerful new concept that uses “Panels” and “Repeat Controls”. This allows you to do many interesting things. One use will be the ability to create a “table” with unlimited rows. You can allow the user to add rows on demand. Another interesting use is the ability to display view data, but not have it look like a table. You can control where the fields where go and then apply CSS Styling. For example, you might have a view of people, but rather then showing them in a table, you’re displaying each person in multi-line boxes. Then you could style it and make the “box” look like a business card.
These new tools are very powerful. The difficulty that I am having in transitioning to XPages is in absorbing the examples that are now available. We’re starting to get some great examples to look at. Declan Lynch and John Mackey have a bunch of great examples on their websites. Steve Castledine created the xWiki application on OpenNTF. The Domino Designer Wiki has over 88 topics on XPages at the time of this writing. But almost all these examples are all really encompassing. They are a like full 7 course meal, when what I want is an appetizer sampler. Before I dive into Repeat Controls I want to first learn how to create and modify documents. Before I dive into applying styles and themes to a page I want to know how to filter the contents of a view.
I’m primarily a Notes Client developer. I’ve missed most of traditional Domino Web Development. It’s not that I didn’t want to work on web apps. We just don’t do much Domino web work at my company. While that has been a point of personal frustration, in hindsight, XPages makes that not seem to bad anymore. XPages are just very different that what’s been done up to this point, both in the Client and on the Web.
What I plan to do is create an XPages walk though of building an application, or at least, the shell of an application. There will be lots of screenshots and maybe some videos. I’m going to focus on methods and concepts that are going to be familiar with a Notes Client developer. But I’m not going to try not to assume too much knowledge of Notes Development overall. I think we as a community need a little more focus on basic information to help new developers starting out.
I don’t know how far I’ll get and maybe I’ll learn something new along the way, but to me it looks like the future to Notes is here, and it’s called XPages.
To me, trying to learn XPages is like eating Hot Peppers. It’s fun and exciting, but there’s serious pain involved.
Right now my pain is in learning how to do “simple” things in XPages.
What I intend to do is to start sharing the few things that I’ve learned so far. Hopefully this helps someone else starting to look into XPages. This will probably be more on the basic end compared to some of the other examples out there. It’ll probably be geared for Notes Rich Client developers since that’s primarily what I do.
There are several hurdles in learning XPages; there’s the initial hurdle of learning how to move around in the new Domino Developer for Eclipse (DDE). That takes some getting used to. There’s also a language switch. The XPage language of choice is JavaScript, not LotusScript. However, there is a really nice consolidation price here. Many of our familiar @Functions and also the Notes Document Object Model has been implemented in JavaScript. That saves a lot of time, and is like having you’re favorite pillow with you for a long road trip. The only catch is that if you’re just getting started in JavaScript, there’s no book on the language that tells you how to mix JavaScript with the Notes Object model. You’re on your own for that. But more and more examples are starting to appear.
For me, the absolute biggest hurdle that I’ve found is that we really need to “Think Different”. You are going to need to change your programming methodology when working with XPages because XPages allow you to do things that would be difficult and time consuming in normal Domino Web Development and down right impossible in traditional Notes Client development. XPages gives you the concept of scoped variables, which are variables that can stay in memory for different lengths of time. For example, there is a session scope variable that remains resident in memory when the user switches page views. No need to pass data along, or save data somewhere only to retrieve it again when the user moves to a new web page.
XPages give you the ability to do a dbLookup from inside a view. Finally, Notes programmers can do the equivalent of a SQL Join. Try that in the Notes Client!
There is a powerful new concept that uses “Panels” and “Repeat Controls”. This allows you to do many interesting things. One use will be the ability to create a “table” with unlimited rows. You can allow the user to add rows on demand. Another interesting use is the ability to display view data, but not have it look like a table. You can control where the fields where go and then apply CSS Styling. For example, you might have a view of people, but rather then showing them in a table, you’re displaying each person in multi-line boxes. Then you could style it and make the “box” look like a business card.
These new tools are very powerful. The difficulty that I am having in transitioning to XPages is in absorbing the examples that are now available. We’re starting to get some great examples to look at. Declan Lynch and John Mackey have a bunch of great examples on their websites. Steve Castledine created the xWiki application on OpenNTF. The Domino Designer Wiki has over 88 topics on XPages at the time of this writing. But almost all these examples are all really encompassing. They are a like full 7 course meal, when what I want is an appetizer sampler. Before I dive into Repeat Controls I want to first learn how to create and modify documents. Before I dive into applying styles and themes to a page I want to know how to filter the contents of a view.
I’m primarily a Notes Client developer. I’ve missed most of traditional Domino Web Development. It’s not that I didn’t want to work on web apps. We just don’t do much Domino web work at my company. While that has been a point of personal frustration, in hindsight, XPages makes that not seem to bad anymore. XPages are just very different that what’s been done up to this point, both in the Client and on the Web.
What I plan to do is create an XPages walk though of building an application, or at least, the shell of an application. There will be lots of screenshots and maybe some videos. I’m going to focus on methods and concepts that are going to be familiar with a Notes Client developer. But I’m not going to try not to assume too much knowledge of Notes Development overall. I think we as a community need a little more focus on basic information to help new developers starting out.
I don’t know how far I’ll get and maybe I’ll learn something new along the way, but to me it looks like the future to Notes is here, and it’s called XPages.
- 


Comments
Posted by Patrick Kwinten At 10:59:18 AM On 10/11/2009 | - Website - |
Posted by Edward Koh At 05:14:56 PM On 07/09/2010 | - Website - |