At a cursory glance, the first difference you would notice from SSP’s WFM 1.0 to WFM 2.0 is the slick new user interface. WFM 2.0 has ushered SSP’s Workforce Management into the latest era of robust, responsive, and beautiful web applications. The enhanced version leverages the latest and greatest web frameworks, MVC and AngularJS, to give the user the most efficient and enjoyable experience possible. But for those of us who don’t know much about what happens under the hood of these new technologies, why justify the switch? What the heck are MVC and AngularJS, anyway?
WFM 2.0 Framework: A Brief History
I’m glad you asked. Let’s begin with a little background on good ol’ ASP.NET Web Forms applications. This is what was used previously in WFM 1.0. If that phrase “ASP.NET Web Form applications” doesn’t ring a bell, just think Windows 98 desktop applications. ASP.NET is a web framework created by Microsoft to easily facilitate the transition for users and developers from desktop to web applications.
The user interface elements, such as buttons and text boxes, look exactly like the ones familiar to us all those many years ago. From a code standpoint, the events and gestures function in ASP.NET exactly like they do in the old desktop forms, so developers and users could easily transition.
Limitations of the WFM 1.0 Design
Even though this framework brought a lot of good things with it, the changing atmosphere of web development has rendered it comparatively bulky and inefficient.
The ASP.NET web page requires a lot of code behind it to function. Code for one form cannot be translated or reused for another page. They are tightly coupled, and much of it is auto-generated by .NET. This means that a lot of unnecessary, messy, and convoluted code gets inserted underneath, and the developer has little control over it. This results in a few limitations:
– Pages load and respond slowly
– Controls (text, buttons, etc.) have predetermined functionality that cannot be changed without significant effort
– Developers have much less flexibility in how the way the interface works
In addition, .NET web pages are the driving force behind the actions performed by the application. They are not just responsible for displaying data—they are responsible for all the underlying processes. Because each page has control from beginning to end, and all the code for the process is intertwined and interdependent, changing the way the data is processed requires a rewrite to every part of the process. As we get closer to talking about the changes to WFM 2.0, these limitations become very important.
Let’s Talk About SoC
In software development, we have a concept called “Separation of Concerns” (SoC). This term means that each segment of the process should deal with only one “concern,” or one piece of the puzzle. When an application employs SoC, the way each piece does its job can be changed without affecting any other part of the app. ASP.NET doesn’t adhere to this rule, and makes maintenance and scaling very difficult.
Now, I don’t want you to think that WFM 1.0 isn’t a great product. It still boasts incredible value and streamlining to the workforce management process, and it was on the cutting edge in its time.
But here, in 2016, we thought we could do better with WFM 2.0.
Enter: WFM 2.0
WFM 2.0 is built on Microsoft’s MVC framework. MVC stands for Model-View-Controller. This fancy acronym basically means that the application employs the Separation of Concerns we talked about earlier.
The Model – the M of MVC – holds all the data needed for the application. Coupled with the Model (but not officially included in the acronym) are Data Services. These services retrieve data from the models and implement business logic to return the needed information to the Controller.
The Controller is the liaison between the Model and the View. It takes requests from the View and puts the data into (or gets data from) the Model via the Data Services. It does not store data in any way, and it does not display data.
Finally, the View either receives requests from the user to pass to the Controller, or it receives data from the Controller to display to the user.
Everything in this framework is completely separate. Each element only does its one job. Each piece has integration points to the other pieces, and these points never have to change even if the data changes, or if the View changes.
WFM 2.0: Extremely Easy to Change and Scale
The MVC structure of WFM 2.0 provides extreme maintainability: when the developer wants to change the place data is stored, or the way data is processed, or the look and feel of the page, only that particular element needs to change. The rest can stay the same, because the integration points don’t change.
In addition, Models can be used with any Controller, and any Controller can be used for any View. This means that code never has to be duplicated, and the possibilities for scaling and adding new components are nearly endless.
Remember how I said the auto-generation of code in ASP.NET makes pages bulky? Well, in MVC, all code for the controls on the pages is written explicitly by the developer. This provides many benefits:
– Optimized code
– Pages that load much faster
– Pages can hold much more content without affecting performance
– Faster load times means AngularJS can run efficiently in the browser
What about AngularJS? I won’t go into much technical detail, but I will say that I love programming with Angular. It’s on the cutting edge of web technology; it not only enhances the user experience, but also makes development easier. All the pages in WFM 2.0 leverage AngularJS, and as a result, we can build a lot of cool functionality into the product.
We developed WFM 2.0 with technology that currently lines the path to the future. More scalability, flexibility, and maintainability means more value for our clients.
Stay tuned for more posts about how WFM could help streamline your business processes!
See How WFM 2.0 Integrates with Cityworks for Utility Asset Management