Hi, I am Dimitris Vardalis and with this series of posts I intent to document (and communicate) the process of creating a web-based, cloud-native, production scheduling and tracking application for the process industries.
The company I have been associated with for well over a decade (Intelligen Inc.) has been marketing a successful production scheduling application suite consisting of a desktop (SchedulePro) and a web (WebTracker) application and we are now venturing on an effort to unify the two in a single, modern web app. Our aim is to incorporate our deep experience in the field into a modern application, built with the latest tools in the software industry and written in accordance with established software development practices.
The current state of affairs includes:
- SchedulePro: a desktop application built in the MFC document/view architecture, which also includes extensive functionality in the .NET Framework (C++/CLI and C#) and user interfaces in Windows Forms and WPF. The application’s primary persistence mechanism relies on the serialization facility provided by MFC’s CObject class, which uses binary files for saving and loading application data. Additionally, SchedulePro is capable of exchanging data with a SQL Server database by way of exporting or importing parts or all of the application document (usually inheriting the CDocument MFC class).
- SQL Server database: a database with over 200 tables, views, stored procedures, functions etc. that maps the entire MFC document and provides the necessary facilities to easily access stored data. It also stores data not directly related to the MFC document in support for other functions such as the web application described below.
- WebTracker: a web application that runs on IIS, built on a variety of back- and front-end technologies such as WebForms, WebApi, JQuery, Knockout and React. The WebTracker displays information exported to the database from SchedulePro and allows operations users to enter actual production information from the plant floor. This information can be subsequently imported back into SchedulePro, thereby updating the schedule with actual production execution data and accounting for possible delays, resource amount mismatches etc.