CMS Case Study

icon
Industry

software and service

icon
Technologies

ASP.net

icon
Location

German

ABOUT

The client is a German company which provides consulting, software and service to ITC manufacturer and distributor. In order to provide fast, efficient and high-quality service, the client decides to build a CMS system. They hope to do secondary development on this basis. They also wish to be able to quickly and efficiently serve their different customers with different requirement. 

After contact with the client, Nova consider about different CMS system like DNN, Sitefinity. Based on client’s requirement, we provide a suitable solution of modular design for the client. The client has already served a number of companies based on this system. 

Requirement

imageCustomer information
  1. Based on Asp.net MVC 4.0
  2. Achieve dynamic page management and online design
  3. Achieve structure-based authority management 
  4. Achieve module dynamic installation and uninstall module 
  5. Achieve single log in
  6. Achieve automatic installation

Solution

imageProject Challenges

This system needs to achieve flexible expansion purposes through rational design. According to this, we use interface based programming, and use Autofact dependency injection, with a variety of design patterns (Strategy pattern, factory pattern, etc.) to enhance the program's scalability and maintainability. And we use Codefirst to create and initialize the database. 

In order to implement the module display engine (Render Engine), we analyzed the MVC source code and referred to other CMS systems, the final design is that all Http requirements will be handled by DefaultAction in DefaultController. According to the routing information, DefaultAction call different module action and dynamically generate page based on the result, and apply caching to improve performance. 

Authority management referred to Windows authority system. The authority is divided into four categories: Read, Read & Write, None,Inherit. Authority is controlled on page and module. Permissions can be given to organizations and individuals at all levels and permissions inheritance can be achieved. This design not only meets the system requirements and also ensures the flexibility of access control.

Modules install and uninstall reference to the relevant functions of DNN.

Challenge and Solution

imageChallenge and Solution

 

How to access the module Action and return the results

In the original design, we call the module content by Html.Action method in view. But this method cannot deal with JSON data, return file stream, page jump and other issue. The reason is the timing is not right to call module. In the life cycle and processing pipeline of HTTP request, we should call the appropriate module in the Controller, and make the appropriate action based on the results of each module returns. To solve this problem, we search on Internet and check ASP.Net MVC related source code. Finally we achieved to call module in Controller by simulating the call Action process in MVC framework.

How to achieve module install and uninstall

To solve this problem, we ferried to DNN function and check the code, after analysis the principle, we achieved the function. 

Client Benefit

icon
Experienced

This platform enables client's requirements, achieve the client's expectations, the client is satisfied.

icon
Protection

Based on this platform, client only need a simple drag and drop, they can quickly build high-quality systems, thereby effectively increased the client's competitiveness in the industry 

icon
Economical

Client can extend this platform by modules to meet different needs of different customers.

Get In Touch
Copyright © 2005 - 2024 Nova Software Inc. All Rights Reserved.