203 Lotus blogs updated hourly. Who will post next? Home | Blogs | Search | About 
 
Latest 7 Posts
Develop a Domino applications using any modern tools
Sun, Nov 12th 2017 82
Modern Notes like UI using ReactJS
Thu, Nov 9th 2017 29
Universal Data Replication
Wed, Oct 18th 2017 11
The power of Domain Specific Languages
Thu, Jun 15th 2017 3
Darwino as the IBM Domino reporting graal
Sat, Mar 11th 2017 4
Schemaless GraphQL
Fri, Mar 3rd 2017 5
Get your apps integrated with IBM Connections, cloud and on-premises!
Fri, Feb 17th 2017 4
Top 10
Develop a Domino applications using any modern tools
Sun, Nov 12th 2017 82
Modern Notes like UI using ReactJS
Thu, Nov 9th 2017 29
ReactJS or AngularJS? What about something else?
Wed, Jan 25th 2017 12
When your Domino app meet the cloud, IBM Connections or Microsoft Azure!
Thu, Sep 22nd 2016 11
Universal Data Replication
Wed, Oct 18th 2017 11
Why AngularJS sounds familiar to XPages developers...
Tue, Jan 3rd 2017 6
When SQL meets NoSQL, you get the best of both worlds!
Thu, Jan 26th 2017 6
Running Android apps for development purposes
Thu, Aug 21st 2014 5
Schemaless GraphQL
Fri, Mar 3rd 2017 5
Connecting to the IBM social platform from a Domino Agent
Thu, Aug 14th 2014 4


Develop a Domino applications using any modern tools
Twitter Google+ Facebook LinkedIn Addthis Email Gmail Flipboard Reddit Tumblr WhatsApp StumbleUpon Yammer Evernote Delicious
   

In my previous post, I talked about a ReactJS library of components that can be used to create Notes like UI. It allows developers to create modern web and mobile UIs in a flash. Fine but, if Domino Designer is a great tool for rapidly developing applications, it is unfortunately not designed to create such modern applications, mostly because:

  • It does not integrate with the modern tool chain required by these libraries, like maven, npm,  babel, webpack...
  • It has a very limited JavaScript editor that cannot compete against Atom or MS Visual Code. Not talking about the latest standards support, like ES6.
  • Source control and continuous build/integration are very limited
  • Well, it is Windows only

We've been thinking about these problems for a while and we worked to provide a solution. Part of the problem comes from the fact that the NSF is both the development and the deployment container, with no third party development tool in the market being able deal with the NSF content. The on-disk projects were an attempt to fix that issue, but this is for source control only.

With Darwino, we go a step further: we allow developers to create projects using the tools they love (Eclipse, IDEAJ, Ms Visual Studio Code, Atom, ...), then use any of these tools during development and deploy the final result into an NSF.

Ok, better to first see it in action:


In this example, I used the Darwino studio to create a new ReactJS application within Eclipse and I'm using MS Visual Studio Code to develop the client side JavaScript. I can use source control, maven, npm, without any limitation, as I'm outside of Domino Designer. Moreover, the Darwino ReactJS library allows me to seamlessly call the Domino REST services, even though I'm running the Webpack dev server. Ah, you might have noticed, I did all the development on a Mac...

When I build the project by running maven, the relevant built files (JavaScript files, Jar files for the business logic...) are seamlessly deployed to the NSF, making the application instantly available from the Domino server. The source files are by default *not* deployed to the NSF, making it smaller and not triggering a build process when opened within Designer. Finally, your IP is also protected.

The magic behind that is a design element server installed right into Domino Designer, as part of the Darwino extension for Darwino Designer. This server exposes some REST services on port 8800: list of projects, access to design elements, ... These services are called by a client, like the Darwino studio in Eclipse, to deploy the runtime files when desired. Because it is all based on standard REST services, other clients, like pure JavaScript ones, can be developed as well. Seems easy right? Well, the evil is as always in the implementation details, but hopefully this is all written using the Darwino runtime, which drastically simplified the development.

The cherry on the cake: the code for these services is isolated from Domino Designer itself, so it could be installed directly within a Domino server. This would remove the requirement of using Domino Designer for development, at least when not developing"classic" notes applications -> it can enable a pure Web based Designer for citizen developers.

Let me know what you  think about it!

Darwino Studio Screenshots

Configuring the Design Server

Configuring the project files to synchronize:



---------------------
http://blog.riand.com/2017/11/develop-domino-applications-using-ms.html
Nov 12, 2017
83 hits



Recent Blog Posts
83
Develop a Domino applications using any modern tools
Sun, Nov 12th 2017 9:00p   Philippe Riand
In my previous post, I talked about a ReactJS library of components that can be used to create Notes like UI. It allows developers to create modern web and mobile UIs in a flash. Fine but, if Domino Designer is a great tool for rapidly developing applications, it is unfortunately not designed to create such modern applications, mostly because: It does not integrate with the modern tool chain required by these libraries, like maven, npm, babel, webpack...It has a very limited JavaScript editor
29
Modern Notes like UI using ReactJS
Thu, Nov 9th 2017 6:21p   Philippe Riand
The world is evolving fast, and so technologies are. Today, for now a little while, when we talk about building a new web UI or a mobile hybrid one, we think about using pure client technologies without markup generation on the server side. JSF, JSP, ASP.NET are being replaced by Angular, ReactJS, VueJS and services... I personally think this is a great evolution. But, are these technologies easy enough to use? Can a developer be as productive as he/she is with XPages, for example? Well, the qu
11
Universal Data Replication
Wed, Oct 18th 2017 7:21p   Philippe Riand
One of the Darwino piece of code that I'm the most proud of is the replication engine. If a majority of our customers see it as a Domino to JSON replication engine, it goes far beyond that. In reality, it can replicate between virtually any data sources. It is a true, two ways, multi-point replication engine, borrowing some ideas from IBM Domino but going beyond its venerable ancestor in multiple places. The architectureThe main idea is that any data set can be represented as a set decorated J
3
The power of Domain Specific Languages
Thu, Jun 15th 2017 11:03p   Philippe Riand
We are all used to configuration files, whenever they are XML, JSON or simply text based. If this is ok for simple configurations, but it falls short when the complexity increases. The biggest issue is that they cannot provide more than what they are designed for, basically static values. Let's suppose, for example, that we have an XML configuration file exposing a property like: trueOk, simple enough. This property can be true or false. But now what if I want a more dynamic value, like true
4
Darwino as the IBM Domino reporting graal
Sat, Mar 11th 2017 8:31p   Philippe Riand
Reports, dashboards, data analytics... have been the conundrum of IBM Notes/Domino since the beginning. Its proprietary data structure, the absence of standard APIs and its deficient query capability make it very difficult. This has been ranked as one of the top need for any for business applications. I know several business partners who created great Domino solutions but struggling with poor reporting capabilities. Of course some attempts were made to fix it: LEI, DB2NSF,.. all incomplete and
5
Schemaless GraphQL
Fri, Mar 3rd 2017 11:56p   Philippe Riand
FaceBook officially introduced a few months ago a new technology called GraphQL. Well, rather than really being new, FaceBook made public and open source their internal graph query engine. It starts to be widely used for exposing APIs. For example, IBM Watson Worskpace makes use of it. I also heard that IBM Connections will also use it. In a nutshell, it allows powerful, tailored queries including navigation between the data sources, in a single query. As a result, it minimizes the number of re
4
Get your apps integrated with IBM Connections, cloud and on-premises!
Fri, Feb 17th 2017 4:51a   Philippe Riand
I've been using this blog to share some of the techniques we use in ProjExec to get tightly integrated with the Connections platform. I got a lot of feedback from developers who wanted to know more, so I'm moving a step further: Jesse Gallagher and I will describe these techniques in a breakout session @Connect 2017! DEV-1430 : IBM Connections Integration: Exploring the Long List of Options Program : Development, Design and Tools Topic : Enterprise collaboration Session Type : Breakout Sessio
6
When SQL meets NoSQL, you get the best of both worlds!
Thu, Jan 26th 2017 11:46p   Philippe Riand
At the heart of Darwino is an advanced, portable JSON document store, implemented on top of any relational database. I'm often being asked the following question "why did you implement that on top of an RDBMS?". Behind the scene, the real question is: "why are you not using MongoDB or another nosql database?" Well, I'm generally answering it with multiple arguments:It leverages all the RDBMS well known capabilities: transactions, data integrity, security, backups, performance, reporting, a
12
ReactJS or AngularJS? What about something else?
Wed, Jan 25th 2017 9:25p   Philippe Riand
So far, ProjExec has been a really good citizen in the IBM/ICS world as we tried to reuse the core Connections stack as much as can (Dojo, OneUI, ...). But these technologies start to age while the browser technologies evolved a lot in the past years: what required a whole bunch of JavaScript using Dojo/JQuery can now be squeezed in a few lines using new libraries! It is time to change gears. We started to look at what technology would better fit our needs. The main requirements are: Make the d
6
Why AngularJS sounds familiar to XPages developers...
Tue, Jan 3rd 2017 5:53p   Philippe Riand
When I started to look at AngularJS a few years ago, I surprisingly found myself quickly comfortable with this technology. One of the reason is that many of its concepts are shared with XPages. Of course, there are fundamental differences, the most obvious being AngularJS a pure client technology while XPages, based on JSF, is a server side one. But still, they share a lot! If you know XPages, your experience understanding AngularJS should be similar to mine. I'm basing my experience on Angul




Created and Maintained by Yancy Lent - About - Planet Lotus Blog - Advertising - Mobile Edition