NFX UNISTACK 介紹
學(xué)習(xí).NET Core和ASP.NET Core,偶然搜索到NFX UNISTACK,現(xiàn)翻譯一下Readme,工程/原文:https://github.com/aumcode/nfx
NFX
Server UNISTACK 框架
許可:Apache 2.0
這個(gè)框架從頭開(kāi)始編寫(xiě),并在Windows和Linux / mono服務(wù)器上運(yùn)行。
文檔指南:NEW 20160117,我們?cè)?a target="_blank" rel="noopener nofollow">NFX文檔/指南添加
NUGET:https://www.nuget.org/packages/NFX/
pm> install-package NFX
幾個(gè)演示工程:https://github.com/aumcode/nfx-demos
重要:
這不是典型的.NET系統(tǒng),實(shí)際上NFX框架跟微軟軟件全家桶幾乎沒(méi)關(guān)系,而此工程的目的是為使用核心CLR功能和基礎(chǔ)類(lèi)(如list, array, dictionary)的統(tǒng)一軟件集提供另外的選擇(譯者注:意思是說(shuō),微軟你家的CLR全家桶太TM鬧心了,我要另立門(mén)戶(hù))。NFX是一個(gè)我們正在開(kāi)發(fā)的Aum編程語(yǔ)言的基類(lèi)庫(kù),當(dāng)前我們已經(jīng)使用了C#和.NET framework的特定基類(lèi)庫(kù)(very-BCL)。
NFX未使用任何第三方組件,除了數(shù)據(jù)庫(kù)訪問(wèn)的組件(主要是為了MongoDB和MySQL)。NFX使用以下指定的基類(lèi)庫(kù):
- 基礎(chǔ)/基本類(lèi)型:字符串型, 整型, 雙精度型, 小數(shù)型, 日期時(shí)間型, 數(shù)學(xué)運(yùn)算
Basic/primitive types: string, ints, doubles, decimal, dates, +Math
- 并行任務(wù)庫(kù):25%的特性 - 創(chuàng)建、運(yùn)行、等待完成、Task、并行、For/Each
Parallel task library: 25% of features - create, run, wait for completion, Task, Parallel.For/Each
- 集合:列表,字典,并發(fā)字典,哈希集,隊(duì)列
Collections: List, Dictionary, ConcurrentDictionary, HashSet, Queue
- 線(xiàn)程:進(jìn)程,鎖/監(jiān)視器,內(nèi)部鎖*,線(xiàn)程通信
Threading: Thread, lock()/Monitor, Interlocked*, AutoresetEvent
- 各種:秒表類(lèi),控制臺(tái),窗體類(lèi)則用于一些交互測(cè)試(不影響運(yùn)行)
Various: Stopwatch, Console, WinForms is used for SOME interactive tests(not needed for operation)
- 在分離的數(shù)據(jù)訪問(wèn)組件中的一些ADO引用(Reader/SQLStatement)
Some ADO references (Reader/SQLStatement) in segregated data-access components
- 反射接口
Reflection API
- 繪圖2D(圖形)
Drawing 2D (Graphics)
NFX不使用/避免使用:
- Windows特有功能,如內(nèi)核,用戶(hù),GDI(仍有<10,我們準(zhǔn)備甩掉這貨)
- Windows特有技術(shù)(IIS,MS SQL Server, Active Directory,Windows Cluster, COM,Azure)
- 特定.NET工具:NCover, MsTest,各種VS插件 - 必須保證任何開(kāi)發(fā)人員得到源碼后能在30分鐘內(nèi)進(jìn)行開(kāi)發(fā),運(yùn)行不需要設(shè)置/安裝
- ASP.NET
- MVC
- WCF
- Silverlight,WPF,Phone
- Entity / LINQ to * (NFX專(zhuān)注于使用框架和虛擬指令對(duì)混合類(lèi)型進(jìn)行數(shù)據(jù)存儲(chǔ),不僅僅是SQL)
- System.Configuration.*
- ASYNC / AWAIT - 主動(dòng)避免
- 任何微軟包含的序列化(BinaryFormatter/DataContractSerializer/JSON)
- 上百的“重型”.NET“典型”類(lèi)(DataSet/DataTable/Unity 等)
- 眾多.NET工程典型引用:log4net, nLog, EntLib, Castle, NSpring, ServiceStack, Newtonsoft等
- 去掉NuGet依賴(lài),整個(gè)“包”的思想與單包(Unistack)背道而馳
單包 = 所有需要的基礎(chǔ)組件都應(yīng)該創(chuàng)建解決方案/應(yīng)用
NFX單包有:
應(yīng)用容器 + 依賴(lài)注入點(diǎn)
配置引擎
本地/分布式樁/堆(Heaps)(大內(nèi)存BigMemory),能保存數(shù)以?xún)|計(jì)對(duì)象以駐留到內(nèi)存中長(zhǎng)期而不需要消滅回收(GC)
八種以上不同目標(biāo)/不同導(dǎo)流的日志方式(文本、Email、flood filter等)
基于契約分布式通訊框架:NFX.Glue(替換WCF)
保證用戶(hù)、憑證、角色和權(quán)限的安全
JSON解析、序列化/反序列化支持
超高效二進(jìn)制序列化支持
Erlang 通用運(yùn)行時(shí)庫(kù)(CLR)原生類(lèi)型支持:元組,列表,句式匹配
文本lexing/解析和處理管道:C# lexer,JSON lexer/Parser
RelationalSchema語(yǔ)言編譯器 - 對(duì)不同目標(biāo)生成不同DDL
模板化引擎(Web、Email或非文本內(nèi)容等)
NFX.WAVE -自帶混合可注入線(xiàn)程模型Web服務(wù)端(替換IIS+ASP.NET)
NFX.WAVE.Mvc - MVC的Web框架
WV.js - 能自動(dòng)綁定的MVC/MVVM的Web組件庫(kù)
帶自載指令/查詢(xún)/事務(wù)的數(shù)據(jù)訪問(wèn)層
ID生成器 - 全局分布ID,IDS (GDID);FID - 快速處理面ID
自載社交網(wǎng)絡(luò) - 推特/非死不可/孤狗+
自載支付處理 - Stripe,PayPal
自載文件系統(tǒng) - - AmazonS3, SVN, 本地
QR碼生成
在研發(fā):自載文檔模型以渲染生成PDF、HTML等不同文件格式
在研發(fā):PDF DOM模型+渲染

浙公網(wǎng)安備 33010602011771號(hào)