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模型+渲染
NFX UNISTACK 介绍的更多相关文章
- NFX UNISTACK
NFX UNISTACK :http://www.nuget.org/packages/NFX/
- NET full stack framework
NFX UNISTACK 介绍 学习.NET Core和ASP.NET Core,偶然搜索到NFX UNISTACK,现翻译一下Readme,工程/原文:https://github.com/aumc ...
- vim编辑器介绍及其常用命令
vim简单的介绍 Vim 编辑器是一个模式编辑器 . 这意味着在不同状态下编辑器有不同的行为模式 . 两个基本的模式是 Normal 模式和 Insert 模式 ,还有可视模式. 在 Normal 模 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
随机推荐
- VK Cup 2012 Qualification Round 1 E. Phone Talks —— DP
题目链接:http://codeforces.com/contest/158/problem/E E. Phone Talks time limit per test 3 seconds memory ...
- CSU - 1529 Equator —— DP 最大连续和子序列
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1529 题解: 一个加强版的最大连续和子序列,序列可以从末尾元素转到首元素. 分两种情 ...
- 【小程序】bindconfirm点击小键盘触发事件、focus自动获取焦点
最近在写小程序,项目要求写一个搜索框,在进入页面时就触发input的事件,调出键盘,点小键上的搜索按钮 就触发搜索事件,分享一下. bindconfirm 是点击小键盘上的搜索按钮就触发要执行的方法 ...
- 纯js实现省市级联效果
我们都知道一般有注册的时候会让用户填入省市啊地区什么的,然后我就想使用纯js制作一个省市级联的效果,只是用于学习以及回顾温习用,首先看下效果图,界面很丑啊,不要嫌弃! 首先还是先看下我的项目目录吧 很 ...
- Java笔记(四)
13. 集合框架: 集合中存储的都是对象的引用(地址) 迭代器:集合的取出元素的方式 import java.util.ArrayList; import java.util.Iterator; pu ...
- npm 引入第三方过滤器
根据项目具体情况使用过滤器,如果不满足业务需求可以在vue的全局或者局部自定义fiter(过滤器) 一下是github提供的第三方过滤器: https://github.com/freearhey/v ...
- SNE降维与可视化
from sklearn import datasets digits = datasets.load_digits(n_class=5) X = digits.data y = digits.tar ...
- docker --help 详解
[root@c1 _src]# dockerd --help Usage: dockerd [OPTIONS] A self-sufficient runtime for containers. Op ...
- sqlServer:convert()函数
在oracle中对于时间格式的转换用到的比较多,相对也比较了解,现在换了新的项目组,使用sqlserver数据库,需要对这个数据库的一些常用函数进行重新学习和熟悉,现在根据w3c及网上博文对conve ...
- Valera and Swaps
题意: 定义 $f(p)$ 表示将 $p$ 序列变换为有序序列最少要交换多少次,给一 $1 \sim n$ 的排列 $a$ ,给一整数 $m$, 求问将 $a$ 最少交换多少次能得到 $p$ ,使得 ...