Home
Name Modified Size InfoDownloads / Week
source 2018-01-05
release 2014-03-27
Readme.md 2018-02-16 3.6 kB
Totals: 3 Items   3.6 kB 0

DataWF Data/Document WorkFlow

Overview

Data/Document Work Flow is a set of .NET C# libraries to build simple cross-platform information system:

  • DataWF.Common - collections, reflections, io and networks helpers
  • DataWF.Data - cross RDBMS ORM
  • DataWF.Gui - Xwt based desktop UI
  • DataWF.Data.Gui - Database desktop UI
  • DataWF.Module.Flow - Document work flow module
  • DataWF.Mudule.FlowGui - Configure, create, edit and send document throw the flow

Note: At this time, most of Dwf libraries is in developing stage and not ready for production!

Planing

Implement RPC/REST Server with Desktop/Web UI. Avalonia UI and move project to .net standard

DataWF.Data

ORM based on ADO.NET drivers. Not use EF.

Features: Code-first, Relational data managment, Caching large tables.

Cover basic database objects by formatting DDL and DML: Schema, Table, View, Column, Constraints(Primary and Foreign Key), Index, Stored Procedure.

Support several RDBMS(simply extendable):

  • MSSQL
  • MySql
  • Oracle
  • Postgress
  • Sqlite

Limitation/Overhead:

  • One column Primary Key
  • System columns: Create date, Stamp date, Access binary

Note: sources compatible with .net standard 2.0

Model example:

[Table("SchemaName", "TableName")]
public class Employer : DBItem
{
    public static DBTable<Employer> DBTable { get { return DBService.GetTable<Employer>(); } }

    public Employer() { Build(DBTable); }

    [Column("id", Keys = DBColumnKeys.Primary)]
    public int? Id { get { return GetProperty<int?>(nameof(Id)); } set { SetProperty(value, nameof(Id)); } }

    [Column("inn", 20, Keys = DBColumnKeys.Code), Index("employerinn", true)]
    public string INN { get { return GetProperty<string>(nameof(INN)); } set { SetProperty(value, nameof(INN)); } }

    [Column("name", 200, Keys = DBColumnKeys.Culture)]
    public override string Name { get { return GetName("name"); } set { SetName("name", value); } }

    [Column("positionid")]
    public int? PositionId { get { return GetProperty<int?>(nameof(PositionId)); } set { SetProperty(value, nameof(PositionId)); } }

    [Reference("fk_employer_positionid", nameof(PositionId))]
    public Position Position
    {
        get { return GetPropertyReference<Position>(nameof(PositionId)); }
        set { SetPropertyReference(value, nameof(PositionId)); }
    }

    [Column("typeid", Keys = DBColumnKeys.Type, Default = "1")]
    public EmployerType? Type { get { return GetProperty<EmployerType?>(nameof(Type)); } set { SetProperty(value, nameof(Type)); } }
}

Connection example:

var connection = new DBConnection("test") { System = DBSystem.SQLite, DataBase = "test.sqlite" };
var qresult = DBService.ExecuteQResult(connection, $"select * from {SomeTableName}");

DataWF.Gui

Cross Platform Desktop UI, based on Xwt. Provide several widgets to build data navigation application

Main widgets:

  • LayoutList - usiversal widget, can be used like list view, tree view or property view. Support sorting, grouping, filtering and construct from reflection
  • Toolsbar - buttons container(missed in Xwt)
  • GroupBox - widget layout container
  • DockBox - dock panel manager
  • ToolWindow - helper window

Note: Move UI from WinForm/Gtk# to Xwt is not compleate and little bugly.

DataWF.Data.Gui

  • DB Configure
  • Database export utilite
  • Query tool
  • Report engeene

DataWF.Module.Flow

WorkFlow manager (Users & User Group & Privileges, Flows, Stages, Templates, Attributes);

DataWF.Module.FlowGui

Document editor (Create, Edit, Send document throw the flow);

Source: Readme.md, updated 2018-02-16