Coder Social home page Coder Social logo

nfx's Introduction

NFX

Server UNISTACK framework.

License: Apache 2.0

This framework is written in C# from scratch and runs on Windows and Linux/Mono servers.

IMPORTANT! This is NOT a typical .NET system. Actually, the NFX framework has very little to do with Microsoft software stack, and the purpose of this project is to provide an alternative unified stack of software that uses core CLR functions and very base classes (such as list, array, dictionary). NFX is a BaseClassLibrary for Aum programming language that we are working on. For now, we have used C# and very-BCL from .NET framework.

NFX does not use any 3rd party components but for some DB-access (MongoDB and MySQL are primary targets). NFX uses very BCL:

  • Basic/primitive types: string, ints, doubles, decimal, dates, +Math
  • Parallel task library: 25% of features - create, run, wait for completion, Task, Parallel.For/Each
  • Collections: List, Dictionary, ConcurrentDictionary, HashSet, Queue
  • Threading: Thread, lock()/Monitor, Interlocked*, AutoresetEvent
  • Various: Stopwatch, Console, WinForms is used for SOME interactive tests(not needed for operation)
  • Some ADO references (Reader/SQLStatement) in segregated data-access components
  • Reflection API
  • Drawing 2D (Graphics)

NFX Does NOT use/avoids:

  • Windows-specific functions like kernel, user, gdi (there are some <10, we are getting rid of them)
  • Windows-specific technologies (IIS, MS SQL Server, Active Directory, Windows Cluster, COM, Azure)
  • .NET Specific tools: NCover, MsTest, all sorts of VS plugins - any developer must be able to start developing in < 30 minutes after getting the code. No setup time/installs to run
  • ASP.NET
  • MVC
  • WCF
  • Silverlight, WPF, Phone
  • Entity / LINQ to * (NFX concentrates on hybrid data stores with scaffolding and virtual commands, not only SQL)
  • System.Configuration.*
  • ASYNC / AWAIT - avoided on purpose
  • Any Ms-serialization(BinaryFormatter/DataContractSerializer/JSON)
  • 100s of "heavy" .NET "typical" classes (DataSet/DataTable/Unity etc.)
  • References typical to many .NET projects: log4net, nLog, EntLib, Castle, NSpring, ServiceStack, Newtonsoft etc.
  • No NuGet support, the whole idea of "packages" is contrary to Unistack

UNISTACK = all base components needed to create solutions/applications.

NFX UNISTACK includes:

  • Application Container + Dependency Injection facilities
  • Configuration engine
  • Local/Distributed piles/heaps, ability to store hundreds of millions of objects resident in memory for long times without killing GC
  • Logging with 8+ destinations/sinks(text, email, flood filter etc.)
  • Distributed contact-oriented communication framework NFX.Glue (replaces WCF)
  • Security with users, credentials, roles, permissions
  • JSON parsing, ser/deser support
  • Ultra efficient Binary serialization support
  • Erlang CLR support with native types: tuples, lists, pattern matching
  • Text lexing/parsing and processing pipeline: C# lexer, JSON lexer/Parser
  • RelationalSchema language compiler - generate DDL for different targets
  • Templatization engine (for web, emails and not only textual content)
  • NFX.WAVE - Web Server with hybrid injectable threading model (replaces IIS + ASP.NET)
  • NFX.WAVE.Mvc - MVC framework for web pages
  • WV.js - a web component library auto-bindable to server MVC/MVVM
  • Database access layer with virtual commands/queries/transactions
  • ID generation - GlobalDistributed IDS (GDID), FID - fast process-wide ID
  • Virtual Social Network - Twitter/Facebook/Google+ et al
  • Virtual Payment Processing - Stripe,PayPal providers
  • Virtual File Systems - AmazonS3, SVN, Local
  • QR Code Creation
  • In progress: Virtual document model with rendering to PDF, HTML and other formats
  • In Progress: PDF DOM model + rendering

nfx's People

Contributors

itadapter avatar

Watchers

Greg Young avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.