Friday, May 9, 2008

Standard vs. Custom Modeling Studio

Sometimes weird bugs pop up in the Modeling Studio that just completely baffle us, like this one:


"Call was rejected by callee"? What the heck does that even mean? I didn't callee anything, I just clicked on this link here to open Excel.

When you contact your friendly neighborhood Modeling Studio Development Team for support, one of the first things we'll ask you is: "Is this a standard or a custom Modeling Studio?"

And you might ask me, "What's the difference?" So let's clear up any confusion.
Standard Modeling Studio
A “standard” Modeling Studio is a project that is based on the files located in the Project Template folder in the SDProjects SourceSafe database. This folder always contains the latest official release of the Modeling Studio. As of May 2008, the current version is 1.3. You can check this by clicking on the TranSystems logo in the bottom left corner of the Modeling Studio. An About box pops up where you can see the version number you're using.

A developer / project manager gets the latest version, uses the Modeling Studio Admin utility to configure the links to their specific Excel inputs and outputs workbooks, and specify images unique to their customer. The Modeling Studio functionality itself runs without modification. This is the recommended (and fastest and easiest and most maintainable) way to set up new projects.
Custom Modeling Studio
Sometimes, you may need or want added functionality in your application. You may want to add code that automatically upgrades a scenario as your project versions change. You may want to add custom forms within the Modeling Studio user interface that store data in a database. You may want some unique project-specific code to run when the user clicks on a link. To do this, you'd need to create a custom Modeling Studio. Sometimes we call this a "Level 2" Modeling Studio for mysterious reasons which cannot be disclosed at this time.

The Modeling Studio was designed to give you this level of flexibility as well. A developer gets the latest version from SourceSafe, this time from the AAI.ModelingStudio/Modeling Studio Client Template folder, and opens it within Visual Studio. The developer adds in whatever special code they want, and recompiles the executable application within Visual Studio. The resulting executable is customized for the project, yet still contains the basic Modeling Studio functionality like scenario management and simulation run control. Examples of this are the OCD AutoVue project and the IBM / IRS project.
How do I decide on standard vs. custom for my project?
Basically, the default should be to always use a standard Modeling Studio if at all possible. There are several advantages to this:
  • It's the fastest way to set up a project.
  • You don't need Visual Studio on your computer.
  • You don't need to know anything about .NET programming.
  • You can upgrade your project quickly when a new Modeling Studio version comes out, just by copying new files into your project's System folder.
  • We can give you technical support more easily if a problem arises.
  • We can provide bug fixes or patches for your project as they become available.
But sometimes, there are reasons to build your own custom Modeling Studio. Common reasons include:
  • I don't like Excel launching as a separate application, I want my user interface within the Modeling Studio itself.
  • I want to store my data in a relational database and use forms and grid controls to access it.
  • I want to automatically upgrade my client's scenarios as I release a new version of my project, and I want to do this within the Scenario Manager when the user tries to open an older scenario.
  • I like to be different from others. (You know who I'm talking to!)
While these are good reasons, keep in mind they increase the burden on your project team's part, because you now have to provide technical support for the user interface part of your project as well. More code = more things that could go wrong.

As long as you've planned for both the development time and the support cost for this, a custom Modeling Studio can be a good way of setting up a user interface for your project. It was designed from the outset to support both styles of working.

Hope this helps clear up any confusion on the issue!