Serving Single Page Applications with Domino  

By Stephan Wissel | 1/11/17 3:23 AM | - | Added by John Oldenburger

Single Page Applications (SPA) are all the rage. They get developed with AngularJS, ReactJS or {insert-your-framework-of-choice}. How does Domino fit into the picture with its integrated http stack, authentication and database? The answer isn't very straight forward.

Domino, Extlib, GRUNT, JSON and Yeoman  

By Stephan Wissel | 10/29/15 9:58 PM | - | Added by Oliver Busse

With a few tweaks and clever setup, you can have web developers deliver front-ends for Domino without ever touching it. Contemporary web development workflows separate front-end and back-end through a JSON API and HTTP (that's 21st century 3270 for you). The approach in these workflows is to treat the webserver as source of static files (HTML, CSS, JS) and JSON payload data being shuffled back and forth. This article describes how my development setup makes all this work with Domino and Domino designer.

Your API needs a plan (a.k.a. API Management)  

By Stephan Wissel | 5/20/15 2:07 AM | - | Added by John Oldenburger

You drank the API Economy cool aid and created some neat https addressable calls using Restify or JAX-RS. Digging deeper into the concept of micro services you realize, a https callable endpoint doesn't make it an API. There are a few more steps involved.

The Rise of JavaScript and Docker  

By Stephan Wissel | 5/9/15 5:50 AM | - | Added by John Oldenburger

I loosely used JavaScript in this headline to refers to a set of technologies: node.js, Meteor, Angular.js ( or React.js). They share a communality with Docker that explains their (pun intended) meteoric rise. JavaScript on the server isn't exactly new. The first server side JavaScript was implemented 1998.

XPages XML Document DataSource - Take 2  

By Stephan Wissel | 3/5/15 4:43 AM | - | Added by Johnny Oldenburger

For a recent project I revisited the idea of storing XML documents as MIME entries in Notes - while preserving some of the fields for use in views and the Notes client. Jesse suggested I should have a look at annotations. Turns out, it is easier that it sound. To create an annotation that works at runtime, I need a one liner only: @Retention(RetentionPolicy.RUNTIME) public @interface ItemPathMappings { String[] value(); }

Document dependent inline forms  

By Stephan Wissel | 1/2/15 1:35 PM | - | Added by Oliver Busse

In Notes client applications we are used to opening any document from a view and get it redered with the form specified in the Form (or the view's form formula). XPages behaves in a similar fashion when using the view control. However both approached open a new page (a tab in the Notes client, replaceing the current window in a browser).

Mail Merge with XPages  

By Stephan Wissel | 12/13/14 1:37 AM | - | Added by Johnny Oldenburger

Being able to have individualized letters based on a template was one of the drivers to make Word processors popular. In the age of mass-communication of one. This tasks falls no longer to the printer, but your eMail processor. For a complete solution, check out Chris Toohey's excellent Mailer application. I was wondering what it would take to build something similar in XPages.

Application Migration vs. XPage enablement  

By Stephan Wissel | 12/1/14 6:15 AM | - | Added by Johnny Oldenburger

In a recent customer discussion a claim was made: "If Notes client application don't automagically can be converted into XPages applications, then we very well can migrate to another platform, it is just the same". An interesting claim, I'll subject it to a reality check. In any case it is a good idea to revisit your investment in your existing applications first.

Providing user information in JSON  

By Stephan Wissel | 11/20/14 6:23 AM | - | Added by Johnny Oldenburger

In the MUSE project we encountered the need to retrieve user information in JSON format. Easy done one would think. The trouble starts, when you have multiple directories and you need reasonable speed. Sometimes falling back to @Fomulas gives you what you need, fast and easy. @NameLookup knows where to look and you don't need any extra configuration.

Building a shared approval frontend in XPages  

By Stephan Wissel | 11/17/14 12:29 AM | - | Added by Johnny Oldenburger

As much as we wish to have divine powers, we need to make with less and look after an installed base. Point in case: You have a set of approval applications in classic Notes client code, like: Travel, Leave, Expenses, Gifts, Training, BoM changes etc. You are challenged to provide a web and/or mobile interface for them.

Mustache Helper for Domino  

By Stephan Wissel | 11/16/14 11:04 AM | - | Added by Johnny Oldenburger

Previously we had a look, how to use Mustache with the CKEditor to have an editing environment for templates. I glossed over the part where to store and how to use these templates. Let me continue there. I'll store the template in Notes documents and use an application managed bean to transform a document (and later other things) using these templates.

A peek in my JavaScript Toolbox  

By Stephan Wissel | 11/14/14 6:48 AM | - | Added by Johnny Oldenburger

Every craftsman has a toolbox, except developers: we have many. For every type of challenge we use a different box. Here's a peek into my web front-end programming collection. It works with any of your favorite backends.

Rethinking the MimeDocument data source  

By Stephan Wissel | 9/1/14 12:42 PM | - | Added by Oliver Busse

Tim (we miss you) and Jesse had the idea to store beans in Mime documents, which became an OpenNTF project. I love that idea and was musing how to make it more "domino like". In its binary format, a serialized bean can't be used for showing view data, nor can one be sure that it can be transported or deserialized other than through the same class version as the creator (this is why Serialized wants to have a serialid.

Domino Development - Back to Basics - Part 7: Map Reduce Domino Style  

By Stephan Wissel | 2/15/14 2:05 AM | - | Added by Per Henrik Lausten

In NoSQL circles MapReduce is a hot topic. Introduced by Google, now part of Apache Hadoop it can be found in MongoDB, Apache CouchDB and others. Interestingly it seems that short of Hadoop the mapping doesn't run distributed, but on a single server. So what about Domino? Holding up the tradition of odd naming, the equivalent of MapReduce is Categorized View where View is the Map component and Categorize is the Reduce capability.

Domino Development - Back to Basics - Part 6: Better save than sorry - Security  

By Stephan Wissel | 2/7/14 6:07 AM | - | Added by Per Henrik Lausten

Continuing from Part 5, this final installment will shed a light on security.

GMail2Notes in less than 300 lines  

By Stephan Wissel | 1/15/14 12:12 AM | - | Added by Niklas Heidloff

I admit, the headline is an attention grabber The total number of lines is, of cause, longer. For one, I used previous code, as well e.printStackTrace() isn't error handling.

Domino Development - Back to Basics - Part 5: Finding data - Collections and Search  

By Stephan Wissel | 1/2/14 1:27 PM | - | Added by Per Henrik Lausten

Continuing from Part 4, this installment will clarify finding data. It, again, is different from other database concepts.

Domino Development - Back to Basics - Part 4: Domino views are different  

By Stephan Wissel | 1/2/14 1:23 PM | - | Added by Per Henrik Lausten

Continuing from Part 3, this part is typically the hardest to understand when coming from an RDBMS background. So take your time.

Domino Development - Back to Basics - Part 3: Not all Documents are created equally  

By Stephan Wissel | 1/2/14 1:23 PM | - | Added by Per Henrik Lausten

Continuing from Part 2 this installment will introduce you to the four types of documents you can find inside an NSF

Domino Development - Back to Basics - Part 2: Forms and Documents  

By Stephan Wissel | 1/2/14 1:18 PM | - | Added by Per Henrik Lausten

Continuing from Part 1 you now know that everything in Notes is stored in a Note. To further understand how Notes "ticks" some light needs to be shed on the relation between forms and documents.

Domino Development - Back to Basics - Part 1: The NSF  

By Stephan Wissel | 12/23/13 11:24 AM | - | Added by Per Henrik Lausten

Over the last five years I have trained many developers on XPages. A good portion of them came from a non-Notes development background: Java, dotNet, PHP and others. Most of them had a better grasp on the necessities of web development than most of their die-hard-is-there-anything-other-than-the-Notes-client LotusScript colleagues. However they struggled to fully appreciate the finer points of the NSF based nature of Domino development. The little article series is for them.

Protecting your XPages Application  

By Stephan Wissel | 7/24/13 6:08 AM | - | Added by Niklas Heidloff

One of the hallmarks and success factors of IBM Notes was the openness of the design of all Notes applications. Since lots of people put blood, sweat and tears into their applications, Lotus added the possibility to hide the design of an application to protect it from spying eyes.

NotesSessions, XPages and Threads  

By Stephan Wissel | 7/23/13 3:13 AM | - | Added by Per Henrik Lausten

When you build an XPages application, long running operations will time out. After all there is a timing limit how long a browser (or XPiNC) client (and the user) will wait for a response. You could resort to launching an agent via a console command, but besides the security consideration it is quite a hack and headache. Mixing XPages and agents doesn't have a happy ending (and should be confined to the upgrading phase of your classic application). Enter Java multi-threading.

XPiNC development insights  

By Stephan Wissel | 7/22/13 12:07 AM | - | Added by Niklas Heidloff

I am developing a rather large XPiNC application for IBM internal use. One application and parameter database pushes data around 10 backend databases. Part of the databases might be local (depending on the user), some might be on the server and not all users have access to all databases.

Managed Beans, XPages and Testability  

By Stephan Wissel | 6/20/13 1:33 PM | - | Added by Per Henrik Lausten

I like my Java to be well managed, properly prepared and of top quality. Unless you are living under an XRock, you know that managed beans are (one of) the talk of the town in the XPages community. While managed beans are simple beans that have been given a name and a scope, they need some thought when you want to test your applications.

Planning applications (XPages MindMap)  

By Stephan Wissel | 4/19/13 1:22 AM | - | Added by Niklas Heidloff

In a recent XPages workshop in Kuala Lumpur, the class brainstormed on the planning process for an XPages application. This is what we came up with. For every item on the list one could elaborate quite a bit, but putting that on the map would make it rather messy.

Round-Trip editing experience in web browsers  

By Stephan Wissel | 3/28/13 1:47 AM | - | Added by Niklas Heidloff

Our applications are increasingly moving to http(s) based interfaces, that is HTML(5) or apps.

Mastering XPages released in Chinese  

By Stephan Wissel | 10/24/12 9:58 AM | - | Added by Cn=Bruce Elgort/O=Notesoss

Chinese companies are one of the fastest growing adopters of XPages. Being cut of from a lot of blogs by the Great Firewall of China, having a good reference for XPages is essential for their success. So a team from the China development lab (CDL) teamed up to translate the standard reference into Chinese and make it available to all the smart engineers behind the GFW.