. Net erp (Office OA) Development Platform Architecture Overview-Form Designer, erpoa
Background: Build a development platform suitable for the company's erp business.
Architecture Overview:
Example of form design, development, and deployment
Example of form design, development, and deployment
1) Each developer can deploy the form design to a local copy (of course, they can also share a development environment, but if the development cross-function is easier to conflict with debugging, in particular, frequent service debugging conflicts ). After a function is developed, it is released to the test environment with one click through the project for integration testing. After the integration test is OK, release it to the online development environment with one click.
2) for formal online deployment, Server Load balancer can be established by project and cluster can be established by project. A single web site contains the Form file service and form code service. The Form file service serves static files such as css, js, html, and images. The form code service provides some dynamic C # code services, such as compiling and publishing at any time, and providing services in http mode. Form files can call these http services through js.
Form Project Management
Figure:
Note:
Form Design is managed by project, Form file service, form code service, and corresponding editing and files. Therefore, before creating a form design, you must first create a project.
The project name is the unique contract name for the whole project release. It must not be repeated.
If there is a public project, a public project is created, which can contain public js, public images, and public css. This is also the basic front-end framework that can be shared by all form projects.
Publish and revoke a Service button: used to publish the current c # Back-end code as a service interface. If Server Load balancer is set for the current project, the corresponding Server Load balancer node will automatically update the service within 2-5 seconds.
Publish and launch button: used to publish the current project to another project environment. For example, testing or online environment. Full release is currently supported and can be optimized in the future.
Clear cache button: Clear the static file cache of the Form file service. Because all form files store static file caches on a single website, reducing the database pressure and implementing static file load balancing. Theoretically, static files are updated. The load balancing node of the corresponding project also updates the corresponding cache files within 2-5 seconds.
Form file management
List chart
Front-end details
Backend details
Full-screen editing example:
Form files include front-end files (css, js, html, images, and other static files) and back-end files (. cs c # backend code files) different types of files form different services.
Introduction to front-end files
Front-end files include (css, js, html, images, and other static files). You can upload attachments by using the jquery framework. js file), you can also submit the file by editing the text. It parses the output according to different suffixes and supports cross-origin access.
Historical version: by default, the historical version is retained Based on the file name, so the previous version can be restored.
Internal button: directly access the database output file without using the site cache file.
External button: the site cache file is used to access the output file.
Debug preview button: you can open a new page to debug the current editing effect in real time, and refresh it with one click. What you see is what you get.
(Editor controls, see http://runjs.cn/code)
Introduction to backend files
Backend files include. cs c # code files. c # backend files are classified into interface files and public code files.
Interface file: the method of the file class is automatically exposed as an interface, supporting http access. Js.
Public code file: This class defaults to static class and static method. Can be accessed by other classes.
Third-party Assembly Support: third-party assembly can be called by other class libraries by placing it under the BuildsAssemblys file of the site. (Automatic release of third-party assemblies is not supported currently. The official release must be manually copied to the production environment)
Quick Compilation: Quick compilation based on local cs File Cache.
Re-compile: Re-download all the cs files of the current project to the local device and re-compile.
Submit and release: recompile and save the current content to the database (non-Draft storage)-> Publish the current service to the site (not to the Server Load balancer node ).
Code debugging: currently, only interfaces can be debugged by simulating http to facilitate interface debugging.
Other information:
Save draft: by default, the editor saves the draft to the database every 10 s after editing.
Remarks:
Individuals prefer form designers in the absolute positioning format, similar to ccflow. However, for company reasons, we decided to use the regular page design method. The page display format is changeable, and the common page Form Designer cannot meet the requirements.
Because of manpower, cost, and non-open source, it is only rough at present. We have not considered performance very carefully, but only architecture expansion and parallel performance expansion.
By che jiangyi
(This article only provides a periodic summary. It may be helpful to those who are also engaged in the process engine. You are also welcome to discuss this article. For more information about distributed architectures, see my other articles)