Close
Written by
Konrad Łukasik

Konrad Łukasik

Can Rapid Development tools speed up delivery of CRUD-like interface on .NET platform?

Quite often it happens that as part of a project we need to develop some maintenance screens for the administrator. Typical scenarios are: user management, assignment of roles and permissions or modification of system dictionaries. They are usually not high-priority features of an app, however, from the long-term perspective UI is required. Trying to be the most competitive supplier, we ask ourselves regularly: “How can we meet the requirements without too much of bespoke development around CRUD screens, which is neither efficient nor interesting?”

Desirable features

We revisited the topic recently in September, when few of our developers had some free time between projects. From the latest proposals, we built the list of requirements that potential Rapid Development tool would need to have in order to speed up our delivery. The list included elements like:

  • Auto-generation of UI and services’ code from data model with an ability to easily integrate it with existing code or refresh the code whenever the model changes;
  • Different controls should be used for different field types and it should be possible to adapt the generated code to custom needs;
  • Built-in support for validation and control over visibility of attributes in the UI (ideally through some form of aspects like annotations on data model);
  • Filtering, sorting and paging of data should be handled OOTB;
  • Optionally UI should be responsive and have an option to override styling;
  • Security should be built-in and customizable;
  • There should be a possibility to add audit trail support easily;
  • Ideally the tool should support creation of SPA, be open source with access to its source code;
  • Have a live community support, good knowledge base and be still evolving (we don’t want obsolete software);
  • Easy and intuitive to use, while generating manageable code (we don’t like spaghetti code).

            In our research we focused on ASP.NET MVC and SQL Server as a lot of our potential customers prefer this technology stack. We shortlisted nine tools, however seven had to be rejected as they did not satisfy our critical list of desirable features.

Rejected tools

ASP.NET Maker

This is a commercial automation tool written in VB6 (yikes!) from the large “Maker” family of products (PHPMaker, ASPMaker, PayPal Shop Maker, JSPMaker). It is complicated to use, with hundreds of options configurable through its “Win95 look” forms. It generates spaghetti code (with SQL queries hardcoded into ASP.NET Razor pages) and whole tool seems like overkill for our needs.

ASP.NET Dynamic Data

Scaffolding framework that lets you create data-driven ASP.NET Web applications. However this technology is obsolete as last updates are from 2008.

Lite Application Framework

An ASP.NET CRUD Application Framework developed with MVC 5, WebApi2, and AngularJS. The toolset was promising, but it turned out to be unpopular (1180 downloads) and rather “dead” with last update in Nov 2014. Moreover it is difficult to use, reminds poor version of ASP.NET Boilerplate, uses old versions of libraries and its documentation is meagre.

IronSpeed

The winner of Code Generators review on ‘Just Geeks’ blog (November 2013), has some patent-related problems and may go bankrupt in the near future.

YeoMan

This is a web’s scaffolding tool for modern web applications. It is just a generation engine, like T4 template engine in Visual Studio and itself comes without templates we could use to solve our needs. Therefore, we crossed it out.

Nintex Workflow / Forms

Nintex is a very powerful tool for improved workflow capabilities within SharePoint. As it is strictly dependent on SharePoint we crossed it out as well. 🙁

Visual Studio LightSwitch

It used to be a leading ASP.NET code generator in 2013, but is not any more according to the comments here and .NET Rocks interview with Jay Schmelzer (the discussion about LightSwitch starts around 5th minute). Jay (Director of Program Management on the Visual Studio Team) said that direction taken by Microsoft in this product, i.e. generation of the next level of abstraction in UI is not promising. A developer or user of such product wants to shape layout and syntax of the generated C# or HTML code and not be limited by the framework, libraries or types of controls supported by the generator. The scaffolding frameworks are the future as they “only” help you to write the code, but it is still developer’s code, so he/she is free to swap libraries or controls as they wish.

The winners

This left us with only two options, either K2 forms or ASP.NET MVC Scaffolding.

K2 Forms

This is a fully fledged development platform (a lot more than scaffolding) with its own IDE (see developer experience in this demo). It has good documentation, supports workflows, reporting and analytics, content management and much more. It is really powerful, SharePoint-like tool. Unfortunately, it is expensive (some forums mention fixed price tag of over $10k)! Moreover, it would require a K2 developer skillset as the tool is a dev platform on its own.

ASP.NET MVC Scaffolding

Finally, our leader! Although it does not meet all of our needs, it is lightweight, extendable and easy to integrate with an existing solution. Based on well-known T4 templates rather than some “heavy” abstractions. The scaffolding frameworks are also the “generators” of the future according to Microsoft (see above interview with Jay).

The only downside is no out of the box data filtering support (although one can find a filtering component on the nuget). We strongly encourage you to try it on the next occasion! 🙂

For those interested in details of comparison, here is a spreadsheet with scoring of both compared tools (unfortunately, only in Polish).

Tomek S. & Konrad L.

Share this post on

2 thoughts in Comments

  1. Peter

    I didn’t expect a Lol moment from this article but…

    “ASP.NET Maker: This is a commercial automation tool written in VB6 (yikes!)”

    Somehow Will Ferrel popped into my mind 😉

    More seriously, did you do any quantification of the benefits you could see from the chosen tool?

    Reply
  2. Konrad Łukasik Post author

    My opinion is that there’s between 5 and 30% of UI we could generate, especially administrative interface is quite often something that’s required but doesn’t have to be very pretty. Of course, some manual changes and maintenance may be needed in addition, but that’s significant reduction anyway.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Read next

Performance Testing for BI

A while ago, we needed to run a significant number of performance tests for a BI application written on the Microsoft stack. The non functional requirements had been a bit neglected during the early stages of the project and when there was a change in the clients business it sharpened our focus and the number of concurrent users was to […]

Read more