We have a legacy ASP.Net application (written in c# a few years ago) which allows a factory manufacture a number of custom-made products. Different attributes such as color, length, width, etc. are common for all product types, but each product type carries a set of attributes specific to type. The application currently has a base product class, followed by a number of classes each for each type.
Also, every type has its own set of web forms specific to the type. selection between the types is given by a switch statement which directs the code execution based on product type to the relevant web form. In addition, a single with some 70 fields is used to hold all products manufactured, with only the fields relevant to product type populated.
We are now trying to refactor this application, so as to be able to add new products without having to change the code extensively. Also we would like to not have to build new web forms for each new type of product but rather have the forms created dynamically (we are moving to MVC now). We would like if possible to move from development to configuration. Is there a "canonic approach" for this kind of task?