Yummy ultimate kata infrastructure (Yuki framework Library)
The God of hell (F. R. C .)
Download https://sourceforge.net/projects/fflf/files/ | http://files.cnblogs.com/Rex/YUKI.rar
SVN addresses http://svn.code.sf.net/p/fflf/code/trunk/Yuki/
1 Overview
The purpose of this framework is to establish a cross-platform cross-language type system and provide corresponding serialization support.
The main purpose of this framework is to pass the defined Metadata FileCodeGenerate the type definition and serialization code for each language.
Code Generation is divided into two types: Code Generation Based on the object data structure and Code Generation Based on the relational data structure.
2. Code Generation Based on Object Data Structure
An object-based data structure is a data structure used for storage and communication.
Object-based data structure refers
Primitive)
Alias (alias)
Record)
Taggedunion)
Enumeration (Enum)
Client method (clientcommand)
Server event (servercommand)
Data structure.
Primitive
No generic parameters refer to basic types understood by all external systems, such as 32-bit signed integers and strings.
Alias alias
Generic parameters can be used to represent a primitive type, alias, record, tag Union or its generic specialization, and multivariate groups.
Record
You can use generic parameters to represent an ordered structure with multiple fields.
Taggedunion
A generic parameter is used to represent a selection structure with tags and multiple fields. Its instance only represents one of multiple fields.
Enum Enumeration
There is no generic parameter, which is equivalent to a tag union where all fields are of the null type (unit.
Client method clientcommand
There is no generic parameter. In communication, it indicates the method sent by the client. The ordered structure of multiple fields indicates the parameter that the client sends to the server, A structure with tags and multiple fields indicates the return value that the server returns to the client.
Server event servercommand
There is no generic parameter. In communication, it indicates the method sent by the server. The ordered structure of multiple fields indicates the parameter that the server sends to the client.
Tuple
An anonymous sequential structure with Multiple anonymous fields, a combination of types.
Generic special generictypespec
An anonymous data structure indicates the result of inputting a type with generic parameters into the parameter.
Code Generation consists of four parts: Type Definition, binary serialization, JSON serialization, and communication.
The following section lists the supported parts of code generation in each language.
Type Definition binary serialization JSON serialization binary communication JSON communication VB. net √ Firefly library dynamic support ×××c # √ Firefly library dynamic support √ Java at both ends √ ×××c ++ 2011 √ × two ends × ActionScript √ Client client haxe √ × client XHTML √ no need no
3. Code Generation Based on Relational Data Structures
The relational data structure is used to generate database creation and data import code.
The relational data structure refers
Primitive)
Record)
Enumeration (Enum)
Data structure.
Primitive
No generic parameters refer to basic types understood by all external systems, such as 32-bit signed integers and strings.
Record
No generic parameter indicates a data table with multiple fields.
Enum Enumeration
There is no generic parameter, which consists of several label names and corresponding integers.
Query
Select, lock, insert, update, upsert, delete, and other six basic operations.
Code Generation consists of four parts: Type Definition, memory read-only database, SQL Server, PostgreSQL, and MySQL.
The following section lists the supported parts of code generation in each language.
Type Definition memory read-only Database SQL Server PostgreSQL mysqlc # √√√√√C ++ 2011 √ ×××
4. Code Generation Based on expression Data Structure
Generate the expression logic code based on the Code of the expression data structure.
For more information, see Doc/expression.
Currently, only C # is supported #.
5. Environment requirements
This framework is written in Visual C #3.0. It must be supported by the Microsoft. NET Framework 4.0 compiler or Visual Studio 2010 during development.
This framework requires support for the Microsoft. NET Framework 4 or Microsoft. NET Framework 4 client profile Runtime Library.
Microsoft. NET Framework 4 (x86/x64, 48.1 MB)
Http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe
Microsoft. NET Framework 4 client profile (x86, 28.8 MB)
Http://download.microsoft.com/download/3/1/8/318161B8-9874-48E4-BB38-9EB82C5D6358/dotNetFx40_Client_x86.exe
6. User Agreement
The following protocols are not applicable to examples (examples folder ):
This framework is free of charge software, allSource codeAnd executableProgramFor details, see license.zh.txt.
All documents in this framework are not authorized by the BSD license. You can copy and disseminate such documents without modification, and you can reference and translate these documents. All other rights are reserved.
The following protocol is used as an example (examples folder ):
Examples of this framework enter the public domain and can be modified and used at will.
For the use protocols of the firefly framework that this framework depends on, see the relevant documentation.
For the usage protocol of the JSON. Net Library that this framework example depends on, see the relevant documentation.
7 remarks
if you find any suggestion or suggestion in the bug, please contact me by referring to the email address in readme.zh.txt or by leaving a message on this webpage.