HTML technology choices for an Enterprise Metadata app

Problem

Deciding on what technologies to choose when moving from a rich client Silverlight application to an HTML client that can handle a metadata driven approach.

Background

  • Enterprise Silverlight application with over 6 years of development
  • 2 layer architecture, Silverlight rich-client talks directly to server backend using ….. A large portion of the business logic actually executed in Silverlight
  • Traditionally we have been a Microsoft shop
  • Little modern web experience on the team
  • Confused by the number of technologies available to build modern web applications
  • We have done a little research on technologies such as Angular 1 and 2, Kendo UI, etc.
  • Our entire system is metadata driven. Including the schema, business logic, views, etc.

Requirements

  1. It must be metadata driven. This means that views and data models are not known at compile time. Views can be created and used at runtime. It appears that the JavaScript libraries I have been looking at have little support for this feature, they are anticipating the views and data models to be known at compile time.
  2. Dynamic and responsive client. On any of our custom views, some fields when the value changes may trigger a server hit. The server in turn may send instruction back to the client such as to automatically populate some of the fields on the view, to change styles of some of the fields to make them read-only or required, to spawn dialogs, or maybe even some DOM manipulation.
  3. If possible, an easy conversion path from Silverlight. With the other requirements, I know that this may not be feasible.
  4. We need to make a five year commitment to whatever technologies we choose. We don’t want to choose anything that is volatile or risky. We are looking for stable and dependable for the foreseeable future.

Summary

Looking for guidance on which direction to take when it comes to which technologies and development patterns to use. That support the requirements.

Answers:

Answer

There's a number of ways you can approach this.

Firstly, Depth vs Breadth. If you're goal is to have depth experiences with breadth deployment, then you're chasing the Technical Unicorn (many deadlines have purged on this hunt). The reality is there's a catch with any and all choices you make, but the part you need to sit down and think about is where are you likely to gain users and how do you influence them. Often folks will want breadth because of the fear of losing out to the "mobility" coverage, yet when you factor in development costs and actual usage often at times this is a false positive.

So settle on that as once you do, it will help shape the conversation around what technology is available to you.

Breadth: Web or Xamarin is a likely candidate . Xamarin however will make you have to earn your pay in terms of generating UI's dynamically, as Xamarin Forms is heading towards the XAML way of life but bare in mind they deviated away from the Silverlight/WPF XAML (I don't know why or where the Moonlight project went compared to where they are now... )

Web such as AngularJS would be likely suitable to you given your Silverlight background - it has that MVVM binding style of thinking and you'll also have more of a community backing behind you along those lines. It will retain a lot of Microsoft familiarity as well.

Depth: WPF ... seriously, as long as Windows Xp to Windows 10 exist so will WPF, so bare that in mind. WPF may not have any future actual additions to its code base but majority of the effort is already in place anyway, so its really not as if you're missing on too much growth opportunities should you head down this path.

At the time of Silverlight/WPF we in the team underestimated the popularity of WPF as well, so while Microsoft still assume its an "old tech" they never really had good numbers around its actual penetration statistics and I found it personally had stronger growth than Silverlight, so there also is likely to be a stronger community support ratio for this as well.

The new Microsoft SDK's are attractive but bare in mind anything below Windows 8 isn't going to win you some desktop breadth.

HTH.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.