software and service
ASP.net
German
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.
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.
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.
This platform enables client's requirements, achieve the client's expectations, the client is satisfied.
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
Client can extend this platform by modules to meet different needs of different customers.