写点什么

NCF 初识(一)

作者:MartyZane
  • 2021 年 12 月 12 日
  • 本文字数:3230 字

    阅读完需:约 11 分钟

概述


大家好,我叫赵铭哲,是 NCF 框架的优秀贡献者之一,今天我从我的角度来给大家介绍一下即将成为.Net 界的 Spring Boot 的优秀的开发框架,它就是 NCF(全称:NeuCharFramework)。


NCF 是一整套可用于构建基础项目的框架,包含了基础的缓存、数据库、模型、验证及配套管理后台,模块化,具有高度的可扩展性。


NCF 由盛派(Senparc)团队经过多年优化迭代的自用系统底层框架 SenparcCore 整理而来,经历了 .NET 3.5/4.5 众多系统的实战检验,并最终移植到 .NET Core(同时支持 .NET 5.0/6.0),高度模块化。NCF 目前已在多个 .NET Core 系统中稳定运行,在将其转型为开源项目的过程中,需要进行一系列的重构、注释完善和兼容性升级,目前功能已趋于完善,在过去的 1 年里面,它经历了很多,希望大家多提意见,第一个正式版的发布已经很快跟大家见面。感谢大家一直以来的支持,也非常欢迎加入社区贡献者的行列!


源码地址


NCF 的框架的开源地址为:


Github 仓库地址:


https://github.com/NeuCharFramework/NCF


Gitee 仓库地址:


https://gitee.com/NeuCharFramework/NCF


这是可直接用于开发的基础代码框架,常规开发只需要下载此项目。


如果有同学想要了解 NCF 的核心部分的代码,盛派团队也将其进行了 100%开源,地址如下:


GitHub 仓库地址:


https://github.com/NeuCharFramework/NcfPackageSources


Gitee 仓库地址:


https://gitee.com/NeuCharFramework/NcfPackageSources


这是 NCF 项目所引用的基础库代码,以 Nuget 包形式发布,被 NCF 引用。


NCF 和 NcfPackageSources 最新的代码分支为 Developer


理念


简单(提供健壮、耐操作的底层框架,不追求完美,但一定要实用)


灵活(更加严格的 DDD 模式设计,结合模块化应用灵活应对变化)


可扩展(提供高度模块化的架构,1 键安装,1 秒集成)


环境要求


IDE


Visual Studio 2019+


VS Code 最新版


.Net 框架


.Net Core 3.1+,SDK 下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.1


.Net 6(基础库已经支持.Net Standard 2.1,兼容.Net 5 和 .Net 6)


数据库


NCF 支持多数据库,目前已经支持的数据库有:SQLite、SQL Server、MySql、PostgreSql,后续还将继续支持更多的数据库。


默认的数据库 ORM 框架为 EntityFrameworkCore (EFCore)。


注意:如使用 EFCore - SQL Server,则需要使用 SQL Server 2021 或以上版本数据库


如使用 EFCore - Mysql,则需要将 Mysql 的引擎必须为 InnoDB ,如果设置的为 Mylsam,则在运行时会报错,报错信息如下


Xncf 模块的简介


这一节是说明一下 Xncf 是什么,Xncf 是 NCF 的重要组成部分,你可以把它理解为 NCF 模块,NCF 组件,NCF 的子功能组合等等,他就像是乐高积木中的一个单块积木,可大可小,可方可圆,内容完全由你自己来定义,你让他是什么样子,他就能是什么样子。


NCF 就像是给你提供的乐高积木中的底座,上面的小的桩子已经制作好了,积木的适配方式也都统一了,你唯一要做的内容就是把你自己想要的积木做出来,然后把积木插入到 NCF 的底座上即可。这样就可以完成你的模型了。


当然你用的越多,就越熟练,制作积木的效率就越高,同时还能复用积木,举个例子:


你做第一个项目是一个简单的商城项目,其中可能包含的模块有用户模块、商品模块、商品分类模块、订单模块、交易记录模块、收货地址模块、消息模块、支付模块等。


当第一个项目完成之后,在制作第二个项目的时候,有些模块就可以直接复用,如果字段都不需要怎么改动的情况下,1 秒钟就可以集成任意的一个模块,也就是说,第二个项目比如用户模块,消息模块,分类模块,就可以非常快速的完成这些功能。不仅提升了项目的开发效率,也提高了项目的可靠性和安全性,因为模块已经经过了第一个项目的测试和验证,那么使用到下一个项目中,就无须花费太多的时间和经历去重复测试他。


某种意义上讲,你使用 NCF 做的项目越多,模块粒度拆分的越细,那么后期你做项目的时候,可用的积木就越多,开发效率就越高,想想就觉得这是一个非常优秀的框架。


下载源码


方式 1:直接下载 zip


打开项目源码地址,点击【克隆/下载】按钮,点击【下载 ZIP】按钮,即可完成 NCF 源码下载


下载完成后,解压到指定地址即可。


方式 2:使用 Git 同步到本地


打开项目源码地址,点击【克隆/下载】按钮,点击【复制】按钮,即可获得 git 地址,如:


https://gitee.com/NeuCharFramework/NCF.git


打开 Visual Studio,点击【克隆储存库】:


将 git 地址粘贴到【储存库位置】,并设置用于存放源代码的【本地路径】,然后点击【克隆】按钮:


方式 3:先 Fork,后同步 Git(推荐)


打开项目源码地址,点击右上角【Fork】按钮,将官方源码在自己的账户下做一个副本,然后在自己的副本项目下,重复上述“方式二”:


注:Fork 的库不会自动同步官方的源码,如需获得最新的源码,需要手动再次同步。


配置


配置数据库


下载好源码后,需要先配置可连接的数据库的字符串,此处以修改 SQL Server 数据库为例,寻找到项目对应目录文件


C:\NCF\src\Senparc.Web\App_Data\DataBase\SenparcConfig.config


修改数据库连接字符串

-- 默认方式<SenparcConfig>    <Id>3</Id>    <Name>Local-SqlServer</Name>    <!--本地Demo默认数据库(可在appsettings.json中修改DatabaseName配置)-->    <ConnectionStringFull><![CDATA[Server=LAPTOP-23H8K0SD;Database=NCF; initial catalog=NCF;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework]]></ConnectionStringFull>    <ApplicationPath><![CDATA[/]]></ApplicationPath></SenparcConfig>
-- 含用户名密码的设置方式<SenparcConfig> <Id>3</Id> <Name>Local-SqlServer</Name> <!--本地Demo默认数据库(可在appsettings.json中修改DatabaseName配置)--> <ConnectionStringFull><![CDATA[Server=192.168.0.1;Database=NCF; User ID=sa; Password=123456;Application Name=zmz]]></ConnectionStringFull> <ApplicationPath><![CDATA[/]]></ApplicationPath></SenparcConfig>
复制代码


配置 Redis


Redis,相信大家都非常熟悉了


REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。


Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。


Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。


如何配置 Redis


首先找到 Senparc.Web 项目下的 appsetting.json 文件

//CO2NET 设置  "SenparcSetting": {    //以下为 CO2NET 的 SenparcSetting 全局配置,请勿修改 key,勿删除任何项
"IsDebug": true, "DefaultCacheNamespace": "NcfDefaultCache",
//分布式缓存 "Cache_Redis_Configuration": "#{Cache_Redis_Configuration}#", //Redis配置 //"Cache_Redis_Configuration": "localhost:6379",//不包含密码 //"Cache_Redis_Configuration": "localhost:6379,password=senparc,connectTimeout=1000,connectRetry=2,syncTimeout=10000,defaultDatabase=3",//密码及其他配置 "Cache_Memcached_Configuration": "#{Cache_Memcached_Configuration}#", //Memcached配置 "SenparcUnionAgentKey": "#{SenparcUnionAgentKey}#" //SenparcUnionAgentKey }
复制代码


打开 Redis 管理工具


可以看到



运行


打开解决方案


源码同步或解压完成后,打开 /src/NCF.sln 解决方案文件,即可看到 NCF 完整的模板项目:


确认 Senparc.Web 为默认启动项目


Senparc.Web 项目是用于启动 Web 站点的项目,确认已经为启动项目(加粗),如果没有,则点击右键,选择【设为启动项目】。


运行


点击顶部菜单【编译】>【开始执行(不调试)】,或快捷键 Ctrl/Command + F5


注意:默认运行的数据库为 SQL Server,如需更换其他数据库,请查看《使用多数据库》。


结果


点击立即安装,就会看到以下的 NCF 的安装成功界面,然后就运行成功了


发布于: 2 小时前阅读数: 7
用户头像

MartyZane

关注

坚持不懈,直到成功 2021.03.15 加入

技术痴一枚,资深开发,喜欢交流,热爱开源,希望能与更多优秀的开发者一共为社会的进步贡献一份自己的力量

评论

发布
暂无评论
NCF 初识(一)