XPages sufficient for line of business type of applications?

Hi there, currently I am following another Angular course since it seems to have become the leading development framework at work. So back to learning all the rules within Angular.

At the moment I am modernizing a Domino application with the help of XPages which:

  1. Implements Model-View-Controller architecture, mostly inspired by the guys at Pipelia since IBM never told us to do so.
  2. Is written in Java to support the MVC architecture and to have close integration with XPages runtime.
  3. Is using Expression Language wherever possible to avoid usage of SSJS.
  4. Uses the lifecycle of JSF in XPages at the max.
  5. To cover support for different devices I am using Bootstrap as front-end framework. So I miss some native behavior which I do not tend to cover-up.

So far so good and I think I have come quiet long in my project so I still dare to call it rapid application development.

The code-base has been reduced dramatically and all exotic upcoming JavaScript libraries from the early 2000 I have been able to replace with just XPages. With my latent UX skills and extending the out of the box Bootstrap I might now even call this application ‘sexy’ 🙂

I know I haven’t touched many areas discussed in the XPages community such as:

  • Websockets (I do not see a use-case yet).
  • Writing Java servlets (please pass me a demo NSF).
  • Watson services (cloud is still a sensitive topic).
  • set up micro-services with smartNSF and consume them in my Java code with an mapper library (requires changes in the environment).
  • Integration with IBM Connections.
  • Redefining my data with the help of a Graph DB.

Either I see little usage, it is not possible or there is no-one to guide me (the information is certainly not provided by the vendor).

So now back to Angular. Learning all these rules, technologies and new tools setup I was wondering what new technical options this framework will bring me at work. Reflecting on the type of customer-orders I receive I am wondering:

Is XPages not sufficient for most of your line of business apps?

Perhaps you have a though about this?

Happy development & enjoy your summer 🙂

Questions and Answers from deploying a Teamroom application on Bluemix

Introduction

write once, run everywhere

Thise WORE slogan is used often in cross-platform solutions, also in IBM Domino. But what if you move your XPages application from an on premise Domino installation to the cloud, more specific IBM Bluemix?

Teamroom

To gain some experience in this area I decided to take a well known application, IBM’s Teamroom and deploy it on Bluemix. I will spare you the details of creating a Bluemix account, setting up Domino Designer, deploying the Design application and binding it to a XPages NoSQL Database service. I will focus on adapting/preparing the Design of the XPages application and some areas I have not found an answer for (yet).

First consideration – Choose your data-binding

bluemixContext

Bluemix requires the separation of design and data so if you haven’t use this principle your applications yet, you must apply it now. Second, Bluemix will allow you also to run your XPages application in a mixed environment (part cloud / part on-premise) so if your application will do so the bluemixContext object will let you identify where your application is running and point to the corresponding data NSF.

DAO Bean

In my case the Teamroom application would only run in Bluemix so instead of applying bluemixContext.getDataService().findDatabaseName() I prefer to use Oliver Busse’s daobean which I have been using in other applications as well. This allows me to use the shorter dao.getDbpath() for xp:dominoDocument and xp:dominoView data-binding.

Remember: in the Teamroom design you need to set this property for every Document and View binding!

<xp:this.databaseName><![CDATA[#{javascript://bluemixContext.getDataService().findDatabaseName()
dao.getDbpath()}]]></xp:this.databaseName>

Use the search function in DDE to locate where these bindings are used.

Valuepickers

Value pickers are used throughout the Teamroom application and for the dataProvider property you need to calculate the location of the database.

Search after dataProvider and you will get the list of design elements where they are used. Look for the once who use the xe:dominoViewValuePicker since they are using a View as data-source. Again make the database location computed.

Addressbook

Some dataProviders use xe:dominoNABNamePicker and the location of the server is set via the Teamroom Setup function, which asks for the web server address. Default the web server address where the design resides is filled in. I tried to fill in the ip address of the server where the data resides (gathered via dao.getServer()) but this still did not allow me to open an NAB.

@dbcolumn @dblookup

What is an XPages application without the @dbcolumn and @dblookup functions? Use DDE to allocate in which design elements there are used and exchange the @DbName() function with bluemixContext.isRunningOnBluemix()? bluemixContext.getDataService().atDbName():@DbName or dao.getServer()+”!!”+dao.getDatabase()

database object

With the database object is you can make a quick reference to the NotesDatabse class, and so it is used throughout the Teamroom application. Mind a database.isFTIndexed() to check if the search bar will be displayed or not? Again do your search in DDE.

You can apply method chaining e.g. dao.getDatabase().isFTIndexed()

Run form validation

I noticed that I had to disable the option to validate the saving of documents using form validation (on document save option). Otherwise the operation failed silently.

Changing form name

Adding a team member via the browser resulted in a document created with the form reference of Team Member Profile   –   ParticipantProfile. If you add a member via the Notes client the form reference will be ParticipantProfile. This explains why newly created members did not appear in the list at first.

So I modified the form name as:
<xp:dominoDocument formName=”ParticipantProfile” …

I also set this alias as first in the Notes form. Not sure if that is necessary.

Wrap-up

So far so good. So how “Bluemix ready” is my Teamroom and what are my first thoughts?

Except the lookup to the name and address book I pressume my Teamroom is working as normal. I guess you can call this is major issue.

The tag cloud is not working, but that is due to the fact that the  xp:tagCoud control does not provide a database property (yet). Again I would call this a major issue.

Looking at the design of the Teamroom and counting the number of design elements I would think the development team has made the application design too complicated. I think the power of custom controls and property definitions is that you can re-use them in complete other ways and so reduce the amount of design elements.

I also notified almost no Java code in the design. Perhaps adding some classes for the objects can also reduce the amount of design elements dramatically. Also the application might get less spaghetti coded with logic stored in a central place.

Going through the code resulted in some new “discoveries” and was therefor fun to do. I will write another post about the things I haven’t used before.

Happy development and looking forward to next week’s Engage =)

 

 

You got a ToDo !

Let’s start with the correction: Everybody gets a ToDo!

car

With the first wave of community posts on Bluemix where everybody is getting a ToDo application, the questions arise.

I guess IBM developerWorks Answers site is the most official place to drop your questions so it is wise to keep on eye on that channel.

From a business perspective I am not sure how usable Bluemix will be initially. The additional services, overview of costs, warning signs etc. are welcome but most of my applications are bundled or make use of other applications (e.g. profiles, files, organizational structure, email for workflow).

Ofcourse I would like to hear what your business cases are.

For now, I just get started, understand the overview, build my first xpages app on bluemix and enjoy my ToDo app.

tofdo

My reflections of IBMConnectED

Yes, or ofcourse, I attended the IBMConnectED 2015 event in Orlando. First start with a summary of sessions I attended:

XPages Performance and Scalability
IBM Domino Applications on Cloud
IBM’s Mobile Collaboration Strategy and Portfolio
IBM ConnectED – A New Way to Engage
IBM Domino – 2015 and Beyond
IBM Domino Applications in Bluemix
The Future of Web Development – Write Once, Run Everywhere with AngularJS and Domino
Mastering Your Logs
IBM Domino App Dev Futures
There’s an API for That! Why and How To Build on the IBM Connections Platform
Yes! You CAN Use Those Cool New Frameworks in Your Mobile Domino Apps!
Considerations for the Cloud
Be Open – Use WebServices And REST In XPages Applications
IBM Domino Application Development – CHALK201
App Throwdown Winner’s Circle
GURUpalooza!
Responsive Application Development for XPages
Build Your Own Apps in Minutes Leveraging IBM Bluemix and IBM Connections
ConnectED Closing Session

That sounds like a lot but have we actually learned or heard something new out there?

IBM killed the master-classes

A class given by an expert to highly talented students

A class may be seen as a course of instruction. In previous editions a master-class tend to be a deep-dive into a subject, where you were taught from a beginner’s level to an expert level. A typical master-class extended the hour, due to the complexity or diversity of the subject.

Often this setup was already worth to attend the conference. However at the 2015 edition subjects where squeezed into a 45 minute time-frame and sometimes presented by an IBM-er so it became a sales pitch in disguise (IBM Domino Applications on Cloud).

When talking with other attendees I heard similar disappointments about the masterclass setup.

Oh my God they (almost) killed the Notes client

Lot’s of Verse at the conference, but the Notes client was mentioned very little. You might wonder if there is a roadmap for Notes?

If you look at the following picture you would think a new edition of the Notes client would appear in 2015:

ibm-connect-2013-messaging-and-collaboration-roadmap-43-638

 

So IBM Verse = Notes Next? I wonder why IBM is not able to tell about their plans for Verse on premise and if it is going to be the future Notes client and how native Notes applications will be delivered in this Verse client. I assume via the Notes browser plugin but the fact that IBM simply ignores these kind of important questions is a slap in the face of current customers to my opinion.

Application development on Bluemix

One of the scarce announcements on the event was the future delivery of XPages and Connections development on the cloud aka Bluemix. This is great and exciting news to my opinion! I understand IBM Notes team can not keep up with bringing new internet related services into their platform but by bringing the platform into an environment that is based on open standards like Bluemix those services will become available for us developers.

Exciting news! I was expecting to have Notes as a data-source in Bluemix but with XPages as a runtime environment this will bring the platform much closer to us.

Meet the developers

The opportunity to meet the developers behind the different products in the Connections portfolio is excellent so I stepped in with some questions of my own.

  • No we are not thinking about a development client for Connections, either make development in Connections easier than it is today :-/
  • No we are not thinking about an admin client for Connections, either try Domain Patrol Social by Infoware or the Connections Administration Toolkit by TimeToAct.
  • No clear roadmap for the social business toolkit. IBM is waiting for requests.

Nevertheless I got help/guidance with other development questions and it was nice to meet the IBM developers who normally help you on StackOverflow.

Application development future

There were some sessions about app dev futures but mainly they were summaries of the recent activities. OK you had Bluemix ofcourse and about responsive design via the Extension Library but nothing about a roadmap or exciting ideas for the Domino Designer client during this event.

Encryption in XPages

This was promised and demonstrated during the App Dev future session. Great & finally!

I would have rather heard about activities on features we do not have today:

  • secured local storage & synchronization (Darwino/Unplugged)
  • more mobile controls (the next billion web users are gonna be mobile http://time.com/3589909/internet-next-billion-mobile/)
  • technologies/modules behind Verse
  • Verse theme for app dev

Just to name a few.

Best session

A bit of a sensitive topic since people were throwing on stage what session they thought to be best. So I rather prefer to highlight the session I enjoy most.

Most enjoyable session

As criteria for my nomination I choose:

  • Presentation skills/confidence of the speaker
  • Topic skills of the speaker
  • Personal reflections of the speaker on the topic
  • Real world examples on the topic
  • Funny quotes / remarks on the topic

And the winner is….

Considerations For The Cloud – BP207
Best Practices
Chris Miller (Connectria)

Although I am not an admin guy (anymore) Chris managed to teach me a lot on moving to the cloud in a fast tempo with a lot of funny references.

Cookiegate, Project Chrome & more

I did not understand the twitter stream about people not having a Pretzel cookie in their lunch-box since I had one in mine. Or was I not to pick up a lunchbox with the label IBM-ers only on it?

Project Chrome held the twitter stream for a while. I am not aware of the outcome. Either that journalist is not to be taken serious any more or an amount of IBM-ers will face the beginning 2015 with a new perspective. Hopefully IBM is wise enough to send out the right type of people and within the Connections portfolio we do not suffer the consequences of it.

It was announced that you could pick up or register for a free certification voucher during IBMConnectED because there wouldn’t be a certification lab at the conference. I would like to thank Daniel Brix for chasing IBM ICS support together and to manage to register myself for such a voucher.

Counting the Notes client phrase

Out of curiosity I counted Tuesday the phrase “Notes client” in presentations. This was rare.

notes client counter

The session from Chris Miller came out as the winner in this ‘challenge’.

Final thoughts

I enjoyed my conference and be able to meet a lot of people with similar interests. From a developer perspective I think the conference was nevertheless a bit poor. I thought IBM would focus in this ConnectED version more on technology and less on softer sections like adaption. The app dev sections were too scarce to my opinion.

The move to more sessions in Swan with smaller rooms caused that some rooms were full and people could not attend it. It happened for me once for the session on internet security. You happen to pay an considerable amount of money for an event in, what IBM calls an intimate setting, and you cannot attend a session. How poor for return for your investment!

Should Notes client customers be uncomfortable about IBM Verse? From what I understood IBM Verse is just a different rendering machine for your inbox adding to features from Connections and Analytics. So it should not be a replacement for the Notes client. But the fact that IBM could not tell anything on the Notes client should worry you. IBM spilled another year on the Notes client roadmap it seems.

Jeff Schick may call he “loves the Notes client”. Is he willing to tell this hooked on a lie detector?