Github open-source enterprise application framework: CIIP and githubciip

Source: Internet
Author: User
Tags manual writing

Github open-source enterprise application framework: CIIP and githubciip
Introduction

CIIP is an open-source information system framework developed based on XAF. After four months of development, CIIP can finally be developed. The most common application scenarios of CIIP are database-based enterprise-level applications, such as supply chain systems, ERP systems, MRP systems, and CRM systems.

CIIP supports the WEB version and Windows desktop version. The Web version supports PC browsers and the skin of adaptive browsers. It supports tablets and mobile phones. At the same time, the PhoneGap + WEB-based native mobile app shell + WEB page (HTML5) application version is under development.

CIIP supports 14 types of databases, including common databases such as MS SqlServer, Oracle, and MYSQL. The database access layer supports XPO and ef orm, and can also customize third-party ORM. Of course, this is an option for advanced developers. When XPO is used, database switching (for example, switching from sqlserver to oracle) does not need to be modified if hard-coded SQL statements are not manually called.

The XAF architecture is a multi-language version, and CIIP also inherits this feature. You can develop applications in Chinese and English versions ...., in terms of architecture support, you need to prepare the character translation files used in the application. It is worth mentioning that, this translation can call the Translation Engine of bing.com or google.com.

So what does CIIP do?

Open Source Project: https://github.com/tylike/CIIP

 

Contact with XAF

So what is the relationship between CIIP and XAF? It can be seen that the relationship between CIIP and XAF is huge. The figure only contains some information.

The relationship between CIIP and XAF is briefly introduced. The following describes some key technologies used by CIIP modules:

Modeling

The business model in CIIP is based on the ORM congestion model. I personally like this method, but most of the ORM is based on.. Net type, while. net is also a static type language, although later. added dynamic and System. dynamic. dynamicObject and other State types, but unfortunately it is not supported in xpo (EF does not support the test, also hope to know friends leave a message to give advice)

Question: What I want most is to build a business object during runtime, but also use the concept of congestion model, which is equivalent to building a simple type system and managing these metadata. I have been developing the framework for many years. Due to the overall complexity, development cycle, and personal energy, I finally gave up the method of building a type system from scratch. but I have a hunch that I will do it later: D

Therefore, CIIP modeling is the process of creating an ORM object. CIIP currently develops two forms of modeling:

Note: CIIP is positioned to perform "design"-related actions in win, and to present the Business System on the Web. I have tried to design it on the web before, and also has an open-source version, open-source address: https://github.com/tylike/InfoMatrix but it is not very comfortable to use. finally, we decided to use win for better design.

The user business can be understood as a simple table creation process, but there are more extensions than the table concept, such as the associated aggregate sub-tables, you can also perform operations (equivalent to creating a foreign key ).

Shows the interface for creating a common user business model. Apart from the interface similar to creating a database table, for example, name, "attribute", that is, table field, length, and type, more uses the concept of OO in programming, such as "inheritance". Currently, the concept of single inheritance is used. the type inheritance in. net is the same. In fact, the generated class corresponds to this interface.

This process is the process of generating classes. For example, the attribute type directly uses other new business types, which is also the embodiment of OO, instead of having to create key mappings.

In addition, for the concept of inheritance. net restrictions, only using a single inheritance, this is not really good, but using relational databases can join multiple tables multiple times inner, corresponding to multiple inheritance is a better choice. unfortunately, I didn't find any ORM doing this. The DC mechanism in XAF Implements similar functions and uses interfaces to create an ORM model. The results are very good,, performance has declined, and some behaviors are not very good.

Form Function

Next let's take a look at form creation:

The essence of a form is the addition of two common business objects, that is, the structure of the primary table and child table. This form is very common. For example, a set of ERP contains N hundred forms, therefore, CIIP specizes this form and puts the content of the master table and sub-table together, and some connections can be automatically implemented.

The simplest example is that when a form is called "purchase order", the sub-table content is called "Purchase Order details". This is regular and does not need to be typed in a word, the sub-table content is automatically generated. automation saves time.

After the model is created, the tool has a button to generate the system. After you press the button, the system calls roslyn to compile and automatically generate and load the dll.

At this time, the XAF mechanism began to work. TA began to generate databases, generate tables, generate fields, and generate interfaces. Yes, these are all automated.

For more information about modeling, click here.

Why are you working overtime? This is because there are countless boring and repetitive tasks in your work. every day, programmers help business personnel to perform "Automation" and "intelligence", but their own work is not so intelligent. This work requires a framework!

Simple business logic

Of course, you will question whether the above functions are just table creation functions, but some automation and complicated business in reality are not at all. This can only be simple!

Yes, it is necessary to introduce the implementation of business logic. CIIP calls Roslyn + AvalonEdit, which can help implementers with code experience or programmers to write business logic.

Taking the "warehouse document base class" as an example, this document is an "object", of course there will be events, the corresponding events will be triggered at the corresponding time, at this time, we can add the corresponding code, data Control.

Code editing supports smart sensing and real-time error Verification:

The Code intentionally makes an error, var x = 10/0; press enter, the following will report an error.

The AvalonEdit + Roslyn used here will be used in many scenarios in CIIP in the future, and its functions will be extremely powerful. For example, in wage management software, manual writing is required.

This module took me a lot of time and struggled for many times. Finally, I found this solution and was most satisfied, or I was more satisfied than expected. There were too many things that could be extended, for example, you can define your own DSL language.

Process

After modeling, you need to process the process:

CIIP currently has some built-in Supply Chain documents and some built-in simple processes. These processes can be configured at runtime and are the process designer:

 

Is the configuration of the purchase contract generated by the purchase inquiry form, which is a line in the middle:

Here, the code written below the ing and detail ing of the master table, that is, how to add the default value, CIIP automatically makes a ing based on the type and is modified by the user, the code editor is used here.

We can see that the graphic designer is used in the document conversion process. In CIIP, this control is also widely used, including:

1. The System navigation chart can be designed or used by users to navigate system functions.

2. Document conversion process designer in.

3. State Machine designer

4. The actual running status of the documents + the running status of the state machine are displayed graphically for users to view.

In http://www.uims.top/post/tech1, I also briefly introduced some process-related content.

Business Intelligence Dashboard

CIIP also includes the business intelligence function. In the DEMO system of CIIP combined with the supply chain, this part of content is being created. Therefore, there is no Chinese-style image to intercept, first, let's take a look at the full-name use of this module in other systems. Here is the display interface of the analysis results:

This is nothing, but the design function of the Dashboard is shocking:

During BI data analysis, the data source can be directly connected to the SQL data source. It also supports 14 common databases, and can also be connected to specialized data sources such as SSIS, which can be queried through the Stored Procedure \ SQL statement.

 

In addition, the design interface is completely dragged!

WEB, tablet, and mobile edition responsive layout support

The following is a simple example of two web versions:

 

Response layout that can be run on a mobile phone:

 

Common WEB

 

I cannot write too much content in an article. I will introduce the technical problems of each module in detail later.

Open Source Project: https://github.com/tylike/CIIP

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.