FalconSoft Data Management Suite is a generic enterprise data management platform, designed and built by FalconSoft to significantly speed up and simplify development of real-time data solutions for an enterprise.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Docs
Samples
Src
Tests
.gitattributes
.gitignore
COPYRIGHT
LICENSE
README.md

README.md

FalconSoft Data Management Suite

FalconSoft Data Management Suite is a set of reusable data management components, designed and built by FalconSoft, to significantly speed up and simplify development of real-time data management solutions within an enterprise.

FalconSoft Data Management Suite' reference architecture and set of reusable components aimed to cover most common enterprise data management tasks, and allowing developers to focus rather on business tasks instead of technology issues.

##Resources

###Core features

  • Real-time data synchronization
  • Collaborative User Inputs
  • Data Virtualization - virtual data integration layer that turns multiple data sources into unified and consistent data sets available to applications in real-time.
  • Versioned Data Repository - versioned data control system to keep track on change history
  • Data Federation - joining things together. Effectively you have a new layer for data modelling
  • Full Audit Trail - who changed data, when changed, and why changed
  • Security / control
  • Customizable WPF GUI with high frequent real-time updates and multi user support
  • Advanced search through data

###Project Structure FalconSoft Data Management Suite is organized into several high level assemblies

####Common

  • FalconSoft.Data.Management.Common - common assembly that contains all main interfaces and base classes used in FalconSoft Data Server as well as Reactive Worksheets (GUI).
  • FalconSoft.Data.Management.Components - core server components responsible for processing real-time events, consolidate and validate messages.

####Server

  • FalconSoft.Data.Server - source code for bootstrapping and running FalconSoft Data Server
  • FalconSoft.Data.Server.Persistence - project responsible for persisting objects into data repository. We use MongoDb open source document database.

####DataSources

  • MongoDb.DataSource - a primary implementation of data source what allow us to store dynamically created user data.
  • Sample.DataSources - sample data sources

####Communications FalconSoft Data Server implementation does not depend on any specific communication technology. Even more, we made it easy to implement custom communication mechanisms, which better suits your infrastructure.

  • RabbitMQ
  • Client.RabbitMQ - Client assembly what implements façades communication with RabbitMQ.
  • Server.RabbitMQ - Server side assembly what implements broker communication with RabbitMQ
  • SignalR
  • Client.SignalR - Client assembly what implements façades communication with Microsoft SignalR.
  • Server.SignalR - Server side assembly what implements facades communication with Microsoft SignalR
  • InProcess A simple library what references server-side logic into clients AppDomain. It doesn't have any communication overhead and acts as a fat client. Mainly for testing or when no server side infrastructure.

####Clients

  • FalconSoft.Data.Console - a simple console application to work with FalconSoft Data Server
  • Reactive Worksheets - A generic and customizable WPF application, what was designed and built to visualize and manage data sources in real-time. We use DevExpress Controls for WPF and enabled run-time customization of their WPF Data Grid and docking shell. This part is open source yet, but available with commercial license!

##Libraries / technologies used

  • .Net 4.0 - somebody still using Windows XP and we can't go to .Net 4.5 yet.
  • MongoDb - is an open-source document database, and the leading NoSQL database
  • Reactive Extensions (RX) - is a library to compose asynchronous and event-based programs using observable collections and LINQ-style query operators.
  • Json.Net - is a popular high-performance JSON framework for .NET
  • log4net - is a logging library
  • RabbitMQ - is a message broker to enable communication between the client and server.
  • Asp.Net SignalR - is a Microsoft Asp.Net technology to enable bi-directional communication between the client and server. However, communication layer can be elegantly implemented with other technologies e.g. ZeroMQ, Tibco ...
  • DevExpress for WPF - is a commercial WPF controls library
  • IronPython is an open-source implementation of the Python programming language which is tightly integrated with the .NET Framework.
  • CS Script is a CLR based scripting system which uses ECMA-compliant C# as a programming language.
  • AvalonEdit - is a WPF-based text editor component