Development Framework CIIP

Source: Internet
Author: User

Brief introduction

CIIP is a framework of open source information systems developed based on XAF. CIIP most common application scenarios are database-based enterprise applications such as supply chain systems, ERP systems, MRP systems, CRM systems, etc.

CIIP supports the web version, the Windows desktop version, where the Web version supports PC browser, responsive cloth, support tablet, mobile version of the Web, while the version of the Phonegap+web-based native mobile app Shell + Web (HTML5) app 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, and can also customize third-party ORM, which is an option for advanced developers, of course. When XPO is used, switching the database, such as from SQL Server to Oracle, does not require code modification if hard-coded SQL is not manually invoked.

XAF Architecture is a multi-lingual version, CIIP of course, also inherited this feature, you developed the application can have the Chinese version, English version .... , the architecture is supported, the need to do is to prepare the application of the characters used in the language translation files, it is worth mentioning that this translation can be called bing.com or google.com translation engine.

So what did CIIP do?

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

Contact with XAF

So what is the relationship between CIIP and Xaf? You can see the relationship between Ciip and Xaf, the XAF system is huge, the figure contains only some information.

The following is a brief introduction to the relationship between Ciip and Xaf, and here are some of the key techniques used by several modules in CIIP:

Modeling capabilities

The business model in CIIP is an ORM-based congestion model, which I personally like, 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 the later. NET, unfortunately not supported in XPO (EF supports no exams and wants to know the friends message pointing)

What I want most is the runtime to build business objects, but at the same time use the concept of a congestion model, which is equivalent to building a simple type system to manage these 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 abandoned. But I have a hunch that I'll do it later: D

Therefore, the CIIP modeling function is the process of creating an Orm object. Two forms of modeling are currently developed in CIIP:

Note: CIIP positioning is to do in win "design" related actions, 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 always feels not very comfortable to use. The final decision to use win to do the design better.

, the user business can be understood as a simple process of building a table, but there are more extensions to the concept of the table, such as an associated aggregation sub-table, or an operation (equivalent to establishing a foreign key).

The interface for building a business model for ordinary users is shown, in addition to interfaces similar to database tables, such as names, "attributes", such as table fields, lengths, and types, which are used in programming oo concepts, such as "inheritance," which are now using a single inheritance concept, the same as type inheritance in. Net. In fact, the generated classes correspond to this interface.

This process is the process of generating a class. Again, for example: the type of the property, directly using the other types of new business, which is also the embodiment of Oo, rather than the user thinking of establishing a key correspondence.

In addition, the concept of inheritance, in the ORM, because of the. NET limitations, only use a single inheritance, which is not very good, and in the relational database can be multiple inner join more than one table, corresponding to multiple inheritance is a better choice. Unfortunately, I didn't find an ORM to do this, The DC mechanism in XAF implements a similar function, using interfaces to do the ORM model, the effect is very good, but the performance has dropped some, some behavior is not very good implementation.

Form Features

Let's take a look at how the form is built:

The essence of the 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 of the content together, and some connections can be automated implementation.

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

After the model is established, there is a button in the tool that generates the system, and after it is pressed, the system calls Roslyn compile and generates the DLL to load automatically.

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

For additional information about modeling, please click here.

Why do you work overtime? Because there are countless tedious repetitive tasks in your job. Programmers help business people do "automation" every day, do "intelligent", and then their own work is not so automatic intelligence, this work needs framework to do!

Simple business logic

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

Yes, the next step is to introduce the implementation of the business logic, and CIIP calls Roslyn+avalonedit,ta to help implementers with code experience or programmers to write business logic.

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

Code editing supports IntelliSense and real-time error validation:

The code intentionally made a mistake, var x = 10/0; Press ENTER, the following will report an error.

The Avalonedit+roslyn used here, later in the CIIP application of a lot of scenes, but also super-powerful, for example, payroll management software, the need for work-style writing.

This module took me a lot of time, tangled many times, finally found the solution, also the most satisfied, or beyond the expected satisfaction, can expand too many things, such as the definition of the DSL language is not a problem.

Process

After modeling, you need to process the process:

Some of the documents in the supply chain are currently built into the CIIP, and some simple processes are built in, which can be configured at run time and are process designers:

is a purchase quotation form the configuration of a purchase contract, in which a line is created:

Here, the main table map and the detail map below the code, that is, how to do the default value, CIIP automatically according to the type of the corresponding relationship, and by the user to modify, which is used in the Code Editor.

You can see that the document conversion process uses a graphical designer, which is used extensively in Ciip, which contains:

1. System navigation diagram, can be designed, can also be used by the user for system function navigation.

2. Document conversion process Designer in.

3. State Machine Designer

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

Some of the process-related content is also briefly described in Http://www.uims.top/post/tech1.

Business Intelligence Dashboard

CIIP also contains the function of business intelligence, in CIIP combined with the supply chain of the demo system, is making this part of the content, so there is no Chinese-style chart can be cut, first on a few other systems in the full name of this module, give everyone an intuitive understanding of it, here is the analysis results of the display interface:

This is nothing, but Dashboard's design features are shocking:

In BI data analysis, the data source can be connected directly to a SQL data source, as well as support for 14 common databases, or you can connect to specialized data sources such as SSIS, which can be queried from the stored procedure \SQL statement.

And the design interface is completely dragged and finished!

Responsive layout support for WEB, tablet, and mobile versions

Here are two simple pictures of web versions:

Responsive layouts that you can run on your phone:

A normal web

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

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

Development Framework CIIP

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.