LightSwitch vs Maximo Application Development Tools

IBM Maximo is an enterprise asset management system but it also has a very advanced application development tool set. This toolset is used to customize existing business objects and screens; and also to create custom application to cater for additional user requirements.

Maximo application development tools and Microsoft LightSwitch take a somewhat similar approach to allow rapid development of business applications which are also easier to maintain and enhance. They contain visual application designers which can be used to quickly generate the screens with full functionality based on the data model. But at the same time, the generated code for screens and business objects is highly extensible.

LightSwitch is a nascent product in its first beta version right now while Maximo is pretty mature. In following passages I have listed down some important features I wish to be there in future LightSwitch releases as I compare it with IBM Maximo.

LightSwitch Feature Wishlist:

 

Workflow:

Workflow engine is an important component of any business application. It enables us to visually (and declaratively) design the process flow for business transactions. A simple example of workflow could be the approval process for a purchase order where we define who will review and approve the Purchase Order based on certain conditions like total purchase order value.

Having the business process defined in declarative form with the built in capability of creating assignments and tracking document flow gives us tremendous power. It brings visibility to the processing of each transaction as it moves through the process and also provides valuable stats about the process steps which can be used to create KPIs (Key Performance Indicators).

Another key benefit of having business process in declarative form is the agility factor. With the workflow engines, IT system systems can keep pace with changes in the business process because even business users can modify the workflow using visually designers.

LightSwitch looks like a promising product but to be my platform of choice it must have a built-in workflow engine.

Security Profile:

Currently LightSwitch supports ASP.Net Authentication and Authorization provider. For each privilege, we have to create an entry in configuration file and then write some code to disable the unauthorized operations for the logged-in user.

In Maximo, all default and custom developed operations of a business object are available in security profiles screen to be assigned to users. No coding or changes to configuration file are required, this is supported out-of-the-box. Moreover we can create data restrictions on a business object to expose only a subset of data to a user profile.

Hopefully future releases of LightSwitch will improve on what he have right now in terms of security profile and authorization.

Notification & Escalation:

It is a very common task to generate emails from a business application to notify user about their tasks or simply inform them about some events. Like IBM Maximo, I wish to see the capacity in LightSwitch to design email notifications for desired events.

Report & KPI Designer:

Maximo has a powerful reporting engine along with KPI and Dashboard designers. These designers also available to application user so that they can cater for their reporting and BI (business intelligence) needs without writing any code.

There are some reporting and BI add-ins developed for LightSwitch by third party vendors. Hopefully Microsoft will come up with its own built-in reporting and BI designer also.

Object Relationship:

LightSwitch supports creating relationship between two tables. But there is some room for improvement here. For example:

  • relationship between two tables can be too complex to be defined just by equality of two fields. Application Designer should allow for creation of more complex relationships which have multiple conditions.
  • when designing screen for a table, screen designer should also allow to pick fields from tables which are joined through the relationship.

Attachments:

Another important feature in business applications is to have the ability to attach documents to the records. I wish in future LightSwitch will provide this functionality out-of-the-box.

Advantages of LightSwitch over IBM Maximo:

Even though LightSwitch is in very early stages of development, still in some areas it scores better than IBM Maximo.

  • LightSwitch supports multiple data sources. These data sources can be different RDMBS like Sql Server, Oracle or can even be a sharepoint list. Comparing it with Maximo Database Configuration, there we can work with only one data source.
  • In case we write custom code to implement some feature, the develop, build and deploy cycle is relatively time-consuming and tedious in Maximo. While LightSwitch provides a much faster and smoother development experience with a better integrated technology stack.

Microsoft Visual Studio LightSwitch

Visual Studio LightSwitch is a new tool from Microsoft for developing business applications. Currently available development technologies from Microsoft (like VS C#) are general purpose and can be used to develop a wide variety of applications. LightSwitch, on the other hand, is focused on simplifying development of business applications by handling the basic plumbing itself.

I downloaded the currently available Beta1 version of LightSwitch and started playing with it. It took about 5 minutes to get following application ready.


Employee Information Sample App

The above sample application supports addition, updation and deletion of employee records along with employee qualifications and skills. It is an impressive output considering the effort that was put in.

I performed the following steps to develop the sample app.

  1. Click on ‘create table’ in App Designer, name the table as Employee and define its attributes.
  2. Do the same as step 1, for Qualification and Skill.
  3. Create the relationship two relationships using designer i.e. employee-qualification and employee-skills.
  4. Click on  ‘new screen’ in App Designer and specify the table and desired layout.
  5. Hurrah! Application is ready.

 

LightSwitch Application Designer:

Following is the LightSwitch application designer for tables. Additional settings are available for each attribute from the properties window.

LightSwitch Table Designer
LightSwitch Table Designer

 

Below is the screen shot of application designer for screens. I didn’t make any changes here except changing the display names for qualification and skill tabs.

LightSwitch Screen Designer

 

LightSwitch also has a query designer. Queries can also be used as a basis of screen design apart from tables. Following screen shot shows the query designer.

LightSwitch Query Designer

 

Key Features:

  • We can extend the functionality of LightSwitch application by writing code in C#.Net or VB.Net. LightSwitch allows the developers to easily hook their business logic in application events. We can even write a custom control or fully custom screen.
     
    I believe this is the single most important feature of LightSwitch, this is where most of the LightSwitch precursors struggled.
Screen Shot shows partial list of methods which can be implemented for a table. Screen designer has a similar 'Write Code' functionality with method like loaded, closed etc.

 

  • Another important feature is the ability of LightSwitch to connect to various data sources, its not tied up to a particular back-end technology. It support Sql Server, Azure (Cloud), SharePoint, Entity Framework as data sources.
  • The application generated by LightSwitch is a Silverlight application. It runs in out-of-browser mode if application type is desktop. So multiple platforms are supported.
  • Support Master details screen (e.g. invoice and invoice lines)
  • Support searching, sorting and paging of records without writing any code.
  • Support user authentication and role based security using ASP.Net Membership Provider.
  • Handle image as one of the basic attributes of an object.

 

LightSwitch Links: