Skip to main content link. Accesskey SBanner Product Logo
  • OpenNTF

keithstric.com

  • Home
  • Full Archive
  • Downloads
submit search
BlogSphere dojo Domino Family Fun Holiday How-To Java Linux Lotus Notes LotusPhere Mac Misc Movies OpenSource PHP Projects Reef SnTT Soapbox Technology Website Windows XBlog XPages
  • Full Posts
  • Comments
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012

Full Archive
  • : Chris Toohey
  • : David Leedy
  • : Declan Lynch
  • : John Jardin
  • : Karsten Lehmann
  • : Mark Leusink
  • : Niklas Heidloff
  • : Nathan Freeman
  • : Patrick Kwinten
  • : Per Henrik Lausten
  • : Peter Presnell
  • : Red Pill Development
  • : Stephan Wissel
  • : Tim Tripcony

 

Prominic.NET

 

  • Email: Keith Strickland
  • Facebook: Keith Strickland
  • Bleed Yellow: Keith Strickland
  • LDD: Keith Strickland
  • Resume for Keith Strickland
  • About Me

  • scrollable.nsf
  • mobileevent.nsf
  • fullCalendar.nsf
  • MIMEBean.nsf
  • imgImport.nsf

All Downloads

The opinions and ideas posted on keithstric.com are not necessarily the opinions and ideas of my employer. The solutions, techniques and code provided here are not guaranteed or warranted in any way and are free for you to use at your own risk.


Creative Commons License
keithstric.com is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at www.keithstric.com.


All code samples and downloads are copyright Keith Strickland and licensed under Apache License 2.0

Source Control in Domino Designer - BranchingHomeHave you ever had a dream that you were so sure was real?

What is Modern?

Keith Strickland Oct 09, 2012 Tags:XPagesTechnologyDomino 857 Views 3 Comments

I've been working a lot lately towards the concept of a modern application. What exactly makes an application modern? Is it the UI? What about the platform the application runs on? Is modern just a feeling the user experiences? If so, what determines that the experience is modern?

These questions make me think that what determines something is modern is all of the things questioned above. A modern application must have a modern user interface that runs on a modern platform. OK, that's fine, but what exactly is a modern UI? If you take a look at the Yahoo! Design Pattern Library they define almost every type of pattern that you may find on a website. They then show what a modern representation of that pattern would be. Almost none of the listed patterns can be represented very easily on a classic Domino based website. However, almost all of the patterns are represented with the extension library or dojo or jQuery in some form or fashion.

We've talked about the UI but what about the platform? What determines that a platform is modern or not modern? I think we have to ask what technologies are deemed modern? Going off of the web development industry: html, css, javascript, java and NOSQL are modern and certainly the current trend in web design (BTW, an nsf is a NOSQL database). All of these standards can be used in a classic Domino website, however due to the platform the complexity is very high to accomplish a modern classic Domino website.

With the above about classic Domino websites being said, an argument can be made that complexity is not modern and simple is. Take a look at Google+, Facebook, Yammer, Twitter and  LinkedIn. These are fairly simple UIs driving complex concepts. If tens of millions of people use these sites with no support they must be simple right?

Of course we don't stop there. What else about an application can be determined to be modern? What about it's data delivery mechanism? This does kind-of fit into the platform category I guess. But the application should offer a variety of methods for interacting with it either internally or externally via REST services. These REST services could provide an API for getting the specific data you are looking for in order to make adding additional features easy in the future. Also to that concept, if the data you provide via REST is available to other applications it's easier to surface relevant data in other applications also. If you already have a means of delivering the data to a feature (internal or external), that feature is that much easier to incorporate, right? The Extensibility API coupled with the Extension Library allows us to develop custom REST services to meet whatever need may arise in this area.

We're starting to paint a fairly decent picture of what can be determined to be modern:

  • Simple UI
  • NOSQL data store
  • A platform that helps speed up development by making it easy to use modern design patterns
  • A platform that allows delivery of data via REST Services
  • XPages
  • The Extensibility API and the Extension Library

 So, as a developer, more specifically as a Lotus XPages developer what tools are available to us in order to assist in creating a modern application? Certainly the base of this is the Extension Library. This library provides many modern representations of not so modern patterns used in classic domino development. It's now easy to incorporate a tag cloud in an XPages application that would've taken days to incorporate in a classic domino page. We've also got dojo which is a great client side javascript platform to design modern applications with. It's dijit library is second to none. But aside from the tools IBM provided us what else is available? Well there are several good CSS libraries (i.e. Twitter Bootstrap, Blueprint, etc). These make it very easy to come up with a nice looking site and are very small in size. There is also jQuery which offers many very modern looking components out of the box and the availability of 3rd party components is amazing. jQuery's javascript framework is also very nice for DOM manipulation.

Continuing the tools available to us..... NOSQL is a great pattern for web applications. As an XPage developer you are no longer tied to the nsf. We've got MongoDb, CouchDb, Neo4j and others. There is no limitation to what you can use as a data store. If you want traditional SQL relational databases those can also be used. The sky is the limit when it comes to data sources available for you to use to drive your XPages applications.

This is but a brief overview of the concept of "Modern" but I think it brings up a few good points to keep in mind when taking on your next project. I hope this helps you make better decisions about what is available to you and how to approach a modern project.


Post your Comment
Comments (3):

Patrick Kwinten
1 Re: What is Modern?
On: October 09, 2012 01:32 PM
As modern I would consider: fast & light.

I wonder if nsf is fast and how light xpages are?

Ofcourse we don't want to be forced to implement hacks or workarounds, lots of functionality out of the box e.g. extension library.

Keith Strickland
2 Re: What is Modern?
On: October 09, 2012 09:15 PM
Patrick, I agree fast & light are modern. I do believe nsf can be fast, Nathan and Tim have done a lot of research on optimizing the nsf as a data store with very good results. I also think that XPages are as light as you make them. I've done a lot of research of late on other NOSQL databases and XPages is blazing fast after that initial connection has been made.

As for not wanting to be forced to implement hacks and workarounds.... That's why I say classic domino web sites are not modern. They are full of hacks and workarounds just to get simple modern functionality.

Fredrik Stockel
3 Re: What is Modern?
On: October 10, 2012 06:12 AM
I agree fast & light are are definitely attributes for a modern web solution. And from a semi-technical perspective one might argue that the structure and the semantics of the solution tells/hints how "well-crafted" the web solution is (ex no bloated semantics, only the necessary (and correct) markup being used. Correct CSS with a minimum of non-standardized attributes and so on)....
Powered by XBlog - The XPages Blog Platform


/A55BAC/keithstric.nsf/