NFX UNISTACK 介绍

学习.NET Core和ASP.NET Core,偶然搜索到NFX UNISTACK,现翻译一下Readme,工程/原文:https://github.com/aumcode/nfx

NFX

Server UNISTACK 框架

许可:Apache 2.0

这个框架从头开始编写,并在Windows和Linux / mono服务器上运行。

文档指南:NEW 20160117,我们在NFX文档/指南添加

NUGET:https://www.nuget.org/packages/NFX/

pm> install-package NFX

几个演示工程:https://github.com/aumcode/nfx-demos

重要:

不是典型的.NET系统,实际上NFX框架跟微软软件全家桶几乎没关系,而此工程的目的是为使用核心CLR功能和基础类(如list, array, dictionary)的统一软件集提供另外的选择(译者注:意思是说,微软你家的CLR全家桶太TM闹心了,我要另立门户)。NFX是一个我们正在开发的Aum编程语言的基类库,当前我们已经使用了C#和.NET framework的特定基类库(very-BCL)。

NFX未使用任何第三方组件,除了数据库访问的组件(主要是为了MongoDB和MySQL)。NFX使用以下指定的基类库:

  • 基础/基本类型:字符串型, 整型, 双精度型, 小数型, 日期时间型, 数学运算

   Basic/primitive types: string, ints, doubles, decimal, dates, +Math

  • 并行任务库:25%的特性 - 创建、运行、等待完成、Task、并行、For/Each

   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)

  • 在分离的数据访问组件中的一些ADO引用(Reader/SQLStatement)

   Some ADO references (Reader/SQLStatement) in segregated data-access components

  • 反射接口

   Reflection API

  • 绘图2D(图形)

   Drawing 2D (Graphics)

NFX不使用/避免使用:

  • Windows特有功能,如内核,用户,GDI(仍有<10,我们准备甩掉这货)
  • Windows特有技术(IIS,MS SQL Server, Active Directory,Windows Cluster, COM,Azure)
  • 特定.NET工具:NCover, MsTest,各种VS插件 - 必须保证任何开发人员得到源码后能在30分钟内进行开发,运行不需要设置/安装
  • ASP.NET
  • MVC
  • WCF
  • Silverlight,WPF,Phone
  • Entity / LINQ to * (NFX专注于使用框架和虚拟指令对混合类型进行数据存储,不仅仅是SQL)
  • System.Configuration.*
  • ASYNC / AWAIT - 主动避免
  • 任何微软包含的序列化(BinaryFormatter/DataContractSerializer/JSON)
  • 上百的“重型”.NET“典型”类(DataSet/DataTable/Unity 等)
  • 众多.NET工程典型引用:log4net, nLog, EntLib, Castle, NSpring, ServiceStack, Newtonsoft等
  • 去掉NuGet依赖,整个“包”的思想与单包(Unistack)背道而驰

单包 =  所有需要的基础组件都应该创建解决方案/应用

NFX单包有:

应用容器 + 依赖注入点

配置引擎

本地/分布式桩/堆(Heaps)(大内存BigMemory),能保存数以亿计对象以驻留到内存中长期而不需要消灭回收(GC)

八种以上不同目标/不同导流的日志方式(文本、Email、flood filter等)

基于契约分布式通讯框架:NFX.Glue(替换WCF)

保证用户、凭证、角色和权限的安全

JSON解析、序列化/反序列化支持

超高效二进制序列化支持

Erlang 通用运行时库(CLR)原生类型支持:元组,列表,句式匹配

文本lexing/解析和处理管道:C# lexer,JSON lexer/Parser

RelationalSchema语言编译器 - 对不同目标生成不同DDL

模板化引擎(Web、Email或非文本内容等)

NFX.WAVE -自带混合可注入线程模型Web服务端(替换IIS+ASP.NET)

NFX.WAVE.Mvc - MVC的Web框架

WV.js - 能自动绑定的MVC/MVVM的Web组件库

带自载指令/查询/事务的数据访问层

ID生成器 - 全局分布ID,IDS (GDID);FID - 快速处理面ID

自载社交网络 - 推特/非死不可/孤狗+

自载支付处理 - Stripe,PayPal

自载文件系统 - - AmazonS3, SVN, 本地

QR码生成

在研发:自载文档模型以渲染生成PDF、HTML等不同文件格式

在研发:PDF DOM模型+渲染

原创作者:http://www.cnblogs.com/huangsheng/

NET full stack framework的更多相关文章

  1. 深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题

    一.概述   定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型.类加载和连接的过程都是在运行期间完成的. 二. 类的 ...

  2. Java 类加载机制 ClassLoader Class.forName 内存管理 垃圾回收GC

    [转载] :http://my.oschina.net/rouchongzi/blog/171046 Java之类加载机制 类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指 ...

  3. What’s Brewing for .NET Developers

    Microsoft hosted its premier fall developer event – Connect(); // 2016 in New York on November 16-17 ...

  4. 【转载】Spring最佳后台框架

    https://www.quora.com/What-is-the-best-backend-arquitecture-using-spring-framework The most modern a ...

  5. 一文读懂NodeJS全栈开发利器:CabloyJS(万字长文)

    目录 0 修订 0.1 修订说明 0.2 修订历史 1 基本概念 1.1 CabloyJS是什么 1.2 CabloyJS核心解决什么问题 1.3 CabloyJS的开发历程 2 数据版本与开发流程 ...

  6. 深入理解Java类加载器(二):线程上下文类加载器

    摘要: 博文<深入理解Java类加载器(一):Java类加载原理解析>提到的类加载器的双亲委派模型并不是一个强制性的约束模型,而是Java设计者推荐给开发者的类加载器的实现方式.在Java ...

  7. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  8. Node.js: What is the best "full stack web framework" (with scaffolding, MVC, ORM, etc.) based on Node.js / server-side JavaScript? - Quora

    Node.js: What is the best "full stack web framework" (with scaffolding, MVC, ORM, etc.) ba ...

  9. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

随机推荐

  1. JavaUtil_03_图片处理工具类

    一.源码 功能:缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等 package com.ray.dingtalk.util; import java.awt.AlphaCompos ...

  2. js_调试_01_14 个你可能不知道的 JavaScript 调试技巧

    更快更高效地调试你的 JavaScript 了解你的工具在完成任务时有很重要的意义. 尽管 JavaScript 是出了名的难以调试,但是如果你掌握了一些小技巧,错误和 bug 解决起来就会快多了. ...

  3. haproxy透传用户ip-方法和原理

    为了透传用户ip到后端server, proxy机器需要解决两个问题: 1.在创建到后端server的套接字时, 将用户ip作为套接字的源ip,从而让后端server看到: 2.后端server在回包 ...

  4. Codeforces Gym 101190 NEERC 16 .L List of Primes(递归)

    ls特别喜欢素数,他总是喜欢把素数集合的所有子集写下来,并按照一定的顺序和格式.对于每一个子集,集合内 的元素在写下来时是按照升序排序的,对于若干个集合,则以集合元素之和作为第一关键字,集合的字典序作 ...

  5. 递归/非递归----python深度遍历二叉树(前序遍历,中序遍历,后序遍历)

    递归代码:递归实现很简单 '二叉树结点类' class TreeNode: def __init__(self, x): self.val = x self.left = None self.righ ...

  6. 变废为宝,用旧电脑自己DIY组建 NAS 服务器

    i17986 出品,必属佳作! 前言: 老外不喜欢升级硬件和软件,大家应该都知道.我昨天无意看到 FreeNAS 自述文件,这个系统可以让你使用旧的计算机硬件,于是我决定这么做.垃圾电脑你怎么能没有, ...

  7. 批处理中格式化Date

    @Echo Off Set _Date=%date% If "%_Date%A" LSS "A" (Set _NumTok=1-3) Else (Set _Nu ...

  8. [RTOS]--uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点

    本篇博客就来细数这几个RTOS的特点.   以下内容均来自官方网站或者官方手册Feature的Google翻译的加了我的一些调整,没有任何主观成分. 1. FreeRTOS   FreeRTOS是专为 ...

  9. printf函数指向串口的方法

    简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosting(半主机模式),标准库函数的默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调 ...

  10. 使用XMLConfiguration解析xml,PropertiesConfiguration解析properties等相应信息

    org.apache.commons.configuration.XMLConfiguration; Apache Common-Configuration工具可以从Properties文件,XML文 ...