15 steps to develop a simple product management system in only a day

The article introduces how to easily develop business solutions in RapidWebDev through developing a simple product management system with the following requirement step by step. The source code of this sample system is downloadable here.

Product Management System Requirement

The glossary of the system are role, user, permission, product category, product and product log. The product categories are maintainable enumeration values by administrators that a product has to belong to a category. There are 2 kinds of product properties, hardwired and dynamic properties. The hardwired properties like Name, Number, Description and Manufactory etc which cannot be changed at runtime. The dynamic properties are maintained by administrators online. Administrators can define Text, DateTime, Date, Integer, Decimal and Enumeration typed dynamic properties for products at any time.

The system includes,
  1. role management with permission setting
  2. user management with permission setting
  3. product category management
  4. product dynamic property management
  5. product management with logs
    • create products
    • update products
    • delete products
    • bulk delete products
    • print/export products


Let's first download the RapidWebDev release package (v1.51) from the official website and extract it locally. I intend to reuse its Web and Tests project by adding product management features so that I can save time to setup environment and project structure.

Step1, create a database for product management system

Step2, initialize the database by RapidWebDev sql scripts, Database.sql, SchemaVersions.sql and UnitTest for ExtensionModel.sql

Step3, open the downloaded RapidWebDev solution in Visual Studio 2008, and modify the database connection string of Web.config for Web project and App.config for Tests project. Then modify RapidWebDev.Web\Config\permission.config for the requirement of product management system so that administrators can assign roles/users with correct permissions in management UI.

Step4, modify RapidWebDev.Web\Config\sitemap.config for navigation menu. The sitemap.config is integrated with authorization that users only can see the links which they have the appropriate permission.

Step5, first launch the web project and log on. You can see the system main page is as following screenshot.

Step6, then we can create data tables for product management system. As RapidWebDev provides generic Role/User management and concrete data model, we don't consider the authentication and authorization, and we can reuse concrete data model for product category. So we only need to create 2 tables bizProducts and bizProductLogs. biz_Products schema is below,

Step7, biz_ProductLogs schema is below,

Step8, create a new project into the solution named ProductManagement with references to necessary assemblies. And generate a Linq2SQL model from ProductManagement database. Besides, set the base class of ProductManagementDataContext to RapidWebDev.ExtensionModel.Linq.ExtensionDataContext and Product to AbstractExtensionObject for product dynamic properties support.

Step9, configure ProductManagement data context into web.config of Web project and App.config of Tests project with setting connectionStringName to Global which means that it uses the connection string named "Global" for database connection.

Step10, as product properties are maintainable at runtime, we need to create a installer to setup metadata type for product when the application started.

Step11, let's start to implement product category management. We create a ascx template for product category detail panel first as following. As product category integrates RapidWebDev concrete model, actually we can copy from Templates\Platform\ConcreteData.ascx to and do modification.

Step12, then create a dynamic page configuration ProductCategoryManagement.dp.xml. Actually it's copied and modified from Spring\DynamicPage\Membership\ConcreteDataManagement.dp.xml as well.

Step13, then implement product management. As product category, we still create a ascx template for product detail panel first.

Step14, implement aggregate panel, detail panel and dynamic page interfaces for Product as following screenshot.

Step15, configure the dynamic page for product management at last step.

Then compile the solution and launch the web application. We see the logon page shows up,

Logon with user=admin and password=password1 and get the system main page with navigation menu,

Surely, if we need to deploy the solution to our customers, we may have to replace the background image of logon page, logo and license information of the system main page, even rename the solution file name extraly. But as you see, we don't do much work on development really. I created this sample application in only 4 hours. But it should be less than 2 working days for a RapidWebDev new guy.

Last edited Mar 1, 2010 at 6:13 AM by eungeliu, version 3


No comments yet.