GitHub Open Source Enterprise-Class application Framework Introduction CIIP

Source: Internet
Author: User
Brief Introduction

CIIP is based on XAF development of Open source information system framework, after 4 months of development can finally pull out to see people. CIIP most common scenarios are enterprise-class applications based on databases, such as supply chain systems, ERP systems, MRP systems, and CRM systems.

CIIP supports the web version, the Windows desktop version, where the Web version supports PC browsers, also has adaptive browser skins, supports tablets, mobile version of the Web, and, based on Phonegap+web's native phone application Shell + A version of the Web page (HTML5) application is under development.

CIIP supports 14 kinds of databases, including Ms Sqlserver,oracle,mysql and other common databases. The database access layer supports XPO and EF two orm, or it can customize third party ORM, which is, of course, the Advanced developer option. When XPO is used, switching database switching (for example, from SQL Server to Oracle) is not necessary to modify the code without manually calling hard-coded SQL.

The XAF architecture is multilingual, and CIIP of course inherits this feature, and the applications you develop can be in Chinese, English .... , architecture has support, need to do is to prepare the application of the characters used in the language translation file, it is worth mentioning that this translation can be invoked bing.com or google.com translation engine.

So Ciip did something.

Open Source project Address: Https://github.com/tylike/CIIP

contact with the Xaf

So what is the relationship between CIIP and Xaf? The following figure shows the relationship between CIIP and Xaf, the XAF system is large, the figure contains only part of the information.

The earlier introduction of the relationship between CIIP and Xaf, the following is said that several modules used in CIIP some key technologies: modeling Functions

The business model in CIIP is based on an ORM congestion model, and I personally like it, but ORM is mostly based on. NET type, and. NET is statically typed language, Although the dynamic and System.Dynamic.DynamicObject types are added in. NET, it is unfortunate that XPO does not support (whether or not the EF supports a friend who doesn't have exams and wants to know).

Digression: What I want most is the runtime building business objects, but also using the concept of the congestion model, which is equivalent to building a simple type system that manages the metadata. I have been in the framework of development for many years, due to the overall complexity, development cycle and personal energy reasons, Finally, the practice of building a type system from scratch is discarded. But I have a hunch that I'll do it later: D

So, the modeling feature of CIIP is the process of creating ORM objects. Two forms of modeling are currently being developed in CIIP:

Note: CIIP positioning is to do "design" in win-related action, on the web to do business system display, before I tried to do under the web design, and also out of an open source version, open Source address: Https://github.com/tylike/InfoMatrix But it's not always comfortable to use. The final decision to use win to do the design better.

In the figure above, the user business can be understood as a simple table-building process, but there are more extensions than the concept of a table, such as an associated aggregation child table, which can also be manipulated (equivalent to establishing a foreign key).

The diagram above shows the interface for building a common user business model, in addition to interfaces similar to database tables, such as names, attributes, table fields, lengths, and types, more use is of the concept of OO in programming, such as "inheritance", which now uses a single inheritance concept that is the same as type inheritance in. Net. In fact, the generated class corresponds to this interface.

This process is the process of generating classes. Again, for example: the type of attribute, directly using the other new types of business, which is also the embodiment of Oo, rather than by the user to create a key relationship.

In addition, with regard to the concept of inheritance, in Orm, because of the limitations of. NET, only a single inheritance is used, which is not very good, and in a relational database you can inner join multiple tables several times, which is a better choice for multiple inheritance. Unfortunately, I didn't find any ORM doing this, The DC mechanism in XAF implements similar function, using interface to do ORM model, the effect is very good, but, the performance has dropped some, some behavior realizes is not very good. form Features

Let's take a look at the creation of the form:

The essence of a form is the addition of two ordinary business objects, that is, the master table structure, and this form is very common, such as a set of ERP will have n hundreds of forms, so ciip this form of specialization, the master table content together, and some contacts can be automated implementation.

The simplest example: when the form is called "Purchase order", the child table content is called "Purchase Order Details", this is regular, there is no need for a word to hit the word, the contents of the child table automatically generated is good. Automation saves time.

After the model is built, the tool has a button to generate the system, and when pressed, the system invokes Roslyn compilation and generates the DLL automatically.

At this point, the XAF mechanism began to work, TA began to generate databases, generate tables, generate fields, build the interface. Yes, these are all automated.

For additional information on modeling, please click here.

Why do you work overtime? Because there are countless tedious repetitive jobs in your job. Programmers are helping business people to automate, "intelligently", and then their own jobs are less intelligent, and the job needs to be framed! Simple business logic

You will doubt, of course, the above function, just a table function, just do some automation, the reality of the complex business, not at all, this can only do simple dongdong!

Yes, the next step is to introduce the implementation of the business logic, which is invoked in CIIP to help the Roslyn+avalonedit,ta, or programmers, to write business logic.

As an example of "warehouse document base class" above, this document is an "object" of course there will be events, the corresponding events will be triggered at the corresponding moment, at this time, we can add the corresponding code, the Data control.

Code editing supports IntelliSense and real-time error validation:

An error was deliberately made in the code above, var x = 10/0, and when you press ENTER, you will report an error.

Here the use of Avalonedit+roslyn, later in the CIIP application of a lot of scenes, and the function is also super powerful, for example, payroll management software, need to work-style writing.

This module took me a lot of time, tangled up many times, finally found the solution, and most satisfied, or beyond the expectation of satisfaction, can expand the things too much, such as the definition of their own DSL language is no problem. Process

After modeling, you need to process the process:

There are some documents in the supply chain built into the CIIP, and a few simple processes that can be configured at run time, and the following diagram is the process designer:

The following figure is the configuration of the purchase RFQ generation purchase contract, which is a line in the figure above:

Here, the code written under the primary table mapping and detail mapping, that is, how to do the default attach value, CIIP automatically according to the type of the corresponding relationship, and by the user to modify, here is the code Editor.

You can see that the graphics designer is used in the document conversion process, and the control is used quite extensively in Ciip, which includes:

1. The System navigation chart, may design, also may by the user use carries on the system function the navigation.

2. The document conversion process Designer in the figure above.

3. State Machine Designer

4. The actual situation of the document + state machine operation, graphically displayed to the user to view, very intuitive.

Some process-related content is also briefly introduced in Http://www.uims.top/post/tech1. Business Intelligence Dashboard

CIIP also contains the functions of business intelligence, in the CIIP combined with the supply chain of the demo system, is making this part of the content, so there is no Chinese-style diagram can be truncated, first of all other systems in the full name of this module, give you an intuitive understanding of it, here is the analysis of the results of the display interface:

There's nothing to it, but Dashboard's design features are shocking:

In BI data analysis, the data source can be directly connected to the SQL data source, also supports 14 common databases, can also connect to the specialized data source such as SSIS, can \sql the statement query knot from the stored procedure.

and the design interface, is completely drag and drop complete. WEB, tablet, mobile version responsive layout support

Here's a simple two-piece web version of the picture bar:

A responsive layout that can be run on a mobile phone:

the normal web

I can't write too much in an article, and I'll explain the technical issues of each module in detail later.

Open Source project Address: Https://github.com/tylike/CIIP

Welcome to join XAF Technical Exchange Group to discuss XAF technology application 336090194, qq:4603528

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.