.Net-Core有哪些不错的开源项目
.Net Core有哪些不错的开源项目?
作者:布莱恩特
链接:https://www.zhihu.com/question/295227280/answer/1333085582
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
卧槽,必须得推荐这几个.Net Core开源项目!
持续更新,如果你有好的.NET Core开源项目,也可以评论指出!
0.Masuit.Tools
包含一些常用的操作类,大都是静态类,加密解密,反射操作,硬件信息,字符串扩展方法,日期时间扩展操作,大文件拷贝,图像裁剪,验证码等常用封装。
开源协议挺有意思的:
一旦使用本开源项目以及引用了本项目或包含本项目代码的公司因为违反劳动法(包括但不限定非法裁员、超时用工、雇佣童工等)在任何法律诉讼中败诉的,项目作者有权利追讨本项目的使用费,或者直接不允许使用任何包含本项目的源代码!任何性质的外包公司或996公司需要使用本类库,请联系作者进行商业授权!其他企业或个人可随意使用不受限。
特色功能示例,还有很多,可以直接看看github
1.Socket客户端操作类
var tcpClient = new TcpClient(AddressFamily.InterNetwork);
Socket socket = tcpClient.ConnectSocket(IPAddress.Any,5000);
socket.SendFile("D:\\test\\1.txt",false,i =>
{
Console.WriteLine("已发送"+i+"%");
});
2.模板引擎
var tmp = new Template("{{name}},你好!");
tmp.Set("name", "万金油");
string s = tmp.Render();//万金油,你好!
var tmp = new Template("{{one}},{{two}},{{three}}");
string s = tmp.Set("one", "1").Set("two", "2").Set("three", "3").Render();// 1,2,3
var tmp = new Template("{{name}},{{greet}}!");
tmp.Set("name", "万金油");
string s = tmp.Render();// throw 模版变量{{greet}}未被使用
3.任意进制转换
NumberFormater nf = new NumberFormater(36);//内置2-62进制的转换
//NumberFormater nf = new NumberFormater("0123456789abcdefghijklmnopqrstuvwxyz");// 自定义进制字符,可用于生成验证码
string s36 = nf.ToString(12345678);
long num = nf.FromString("7clzi");
Console.WriteLine("12345678的36进制是:" + s36); // 7clzi
Console.WriteLine("36进制的7clzi是:" + num); // 12345678
4.DateTime扩展
double milliseconds = DateTime.Now.GetTotalMilliseconds();// 获取毫秒级时间戳
double microseconds = DateTime.Now.GetTotalMicroseconds();// 获取微秒级时间戳
double nanoseconds = DateTime.Now.GetTotalNanoseconds();// 获取纳秒级时间戳
double seconds = DateTime.Now.GetTotalSeconds();// 获取秒级时间戳
double minutes = DateTime.Now.GetTotalMinutes();// 获取分钟级时间戳
5.反射操作
MyClass myClass = new MyClass();
PropertyInfo[] properties = myClass.GetProperties();// 获取属性列表
myClass.SetProperty("Email","1@1.cn");//给对象设置值
//动态增删对象的属性
MyClass myClass = new MyClass();
var mc = myClass.AddProperty(new List<ClassHelper.CustPropertyInfo>()
{
new ClassHelper.CustPropertyInfo(typeof(string), "Name", "张三"),
new ClassHelper.CustPropertyInfo(typeof(double), "Number", 123456.0),
});//添加属性
object newObj = mc.DeleteProperty(new List<string>() { "Email", "Age", "IP", "PhoneNumber" });// 删除属性
Console.WriteLine(newObj.ToJsonString());// {"Password":null,"Name":"张三","Number":123456.0}
1.OrchardCore
Orchard Core 是使用 Core 构建的开源模块化,多租户应用程序框架,以及在该应用程序框架之上构建的内容管理系统(CMS)。
Orchard Core 包含两个不同的项目:
- Orchard Core Framework:一个用于在 Core 上构建模块化,多租户应用程序的应用程序框架。
- Orchard Core CMS:基于 Orchard Core 框架构建的 Web 内容管理系统(CMS)
2.awesome-dotnet-core
优秀的.NET Core 开源项目的集合,从入门到进阶!
内容包括:库、工具、框架、模板引擎、身份认证、数据库、ORM 框架、图片处理、文本处理、机器学习、日志、代码分析、教程等。
3. ZKEACMS
Core 开源免费的内容管理系统
纸壳 CMS(ZKEACMS)是 ZKEASOFT 自主研发的,开源的免费的建站系统,您可以直接使用它来做为您的企业网站,门户网站或者个人网站,博客,或用它做二次定制开发以满足您特定的需求。
采用可视化编辑设计,直接在预览页面上设计网页,以轻松快捷的拼图的方式构建你的网站。
纸壳 cms 是基于 ASP .Net Core 开发的,开源免费的内容管理系统。可视化设计,在线编辑是最大的亮点。
跨平台,功能丰富
纸壳 CMS(ZKEACMS Core) 是 ZKEACMS 对 .Net Core 版本的全功能实现 CMS,借助于 .Net Core 实现跨平台,您可以在 Windows, MAC OS, Linux, Docker 上运行。
不仅如此,纸壳 CMS 拥有更丰富的功能,如:自定义表单,商城,留言评论等等。还有更完善的用户体验,更出色的性能。
4.YiShaAdmin
YiShaAdmin 基于.NET Core Web 开发,借鉴了很多开源项目的优点,让你开发 Web 管理系统和移动端 Api 更简单,所以我也把她开源了。 她可以用于所有的 Web 应用程序,例如网站管理后台、CMS、CRM、ERP、OA 这类的系统和移动端 Api。
采用 Bootstrap + Core + Entity Framework Core 基础架构。
内置功能
- 员工管理:员工是系统操作者,该功能主要完成系统用户配置
- 部门管理:配置系统组织机构(公司、部门、小组)
- 职位管理:配置系统用户所担任职务
- 文章中心:管理新闻及公司案例
- 角色管理:角色菜单权限分配,角色对应权限,员工属于某个角色
- 菜单管理:配置系统菜单,操作权限,按钮权限标识
- 通用字典:系统里动态改变的数据,像文章类型,用字典进行维护,不变的数据,可以用枚举
- 行政区划:全国的省市县三级数据,展示树形数据的使用
- 系统日志(登录日志、操作日志、Api 日志):查看系统的登录、操作、Api 调用日志
- 定时任务:在线(添加、修改、删除)任务调度,包含执行结果日志
- 系统 Api:Api 文档与测试工具
- 数据表管理:查看当前数据库所有表、字段及记录总数
- 代码生成:快速生成对单表的增删改查
- 服务器信息:查看服务器的基本信息
是一款基于代码生成器的快速开发平台,基于代码生成器的开发方式,可以将编码工作量减少 70%以上,为企业提高开发效率,为企业节省项目研发成本,减少开发周期。
5 .NET Core 源码
C#开源项目推荐,.NET Core 源码必须推荐!
6.Util 应用框架
Util 是一个.net core 平台下的应用框架,旨在提升小型团队的开发输出能力,由常用公共操作类(工具类)、分层架构基类、Ui 组件,第三方组件封装,第三方业务接口封装,配套代码生成模板,权限等组成。
特点
- 简单易用的傻瓜式 API 设计,让你的团队能够快速上手进行开发。对于简单操作,通常采用静态方法或扩展方法进行调用,对于更加复杂的操作,尽量封装为链式 API。
- 型(静态类型) 化风格,将 UI 组件封装为 core razor 组件,充分发挥 VS 开发工具的优势,比如智能提示,编译时检查。
- 整洁,Util 开发小组成员都有着代码洁癖,每行代码都经过反复斟酌。
- 的中国味,Util 开发小组成员的英文水平比较菜,命名充满国风,并以中文注释进行补充。
7. OSharp
OSharpNS 全称 OSharp Framework with .NetStandard2.x,是一个基于.NetStandard2.x 开发的一个.NetCore 快速开发框架。
这个框架使用最新稳定版的.NetCore SDK(当前是.NET Core 3.1),对 AspNetCore 的配置、依赖注入、日志、缓存、实体框架、Mvc(WebApi)、身份认证、权限授权等模块进行更高一级的自动化封装,并规范了一套业务实现的代码结构与操作流程,使 .Net Core 框架更易于应用到实际项目开发中。
8. XBlog
个人博客系统
技术要点
- dotnet core 平台,可以运行在 windows 和 linux 系统上
- 完全基于 BeetleX.FastHttpAp 框架开发
- 前后端分离,完全脱离后端视图引擎;基于 vuejs 和 webapi 模式
- 混合 HTTP 和 Websocket,当浏览器兼容 Websocket 的情况下请求会使用 Websocket.
- 基于 javascript 前端 Markdown,降低文章在服务端解释的损耗
- 支持 HTTPS 满足安全访问的需求
- javascript async/await 对访问的浏览器要求比较高,旧版本浏览器可能无法查看
7. FreeSql
FreeSql 是功能强大的对象关系映射技术(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.0+ 或 Xamarin。
功能特点
- 支持 CodeFirst 迁移,哪怕使用 Access 数据库也支持;
- 支持 DbFirst 从数据库导入实体类,安装实体类生成工具;
- 支持 深入的类型映射,比如 pgsql 的数组类型;
- 支持 丰富的表达式函数,以及灵活的自定义解析;
- 支持 导航属性一对多、多对多贪婪加载,以及延时加载;
- 支持 读写分离、分表分库、过滤器、乐观锁、悲观锁;
- MySql/SqlServer/PostgreSQL/Oracle/Sqlite/达梦/人大金仓/神舟通用/Access;
8.Autofac
经典的的 DI 框架。
Autofac 是 Microsoft .NET 的 。它管理类之间的依赖关系,以使 应用程序随着 大小和复杂性的 增长 而 易于更改 。
简单入门
注册组件,然后构建组件容器。
var builder = new ContainerBuilder();
builder.Register(c => new TaskController(c.Resolve<ITaskRepository>()));
builder.RegisterType<TaskController>();
builder.RegisterInstance(new TaskController());
builder.RegisterAssemblyTypes(controllerAssembly);
var container = builder.Build();
从容器或嵌套范围,解析服务。
var taskController = container.Resolve<TaskController>();
9.OpenAuth.Core
.Net Core 快速应用开发框架、最好用的权限工作流系统。
基于经典领域驱动设计的权限管理及快速开发框架,源于 Martin Fowler 企业级应用开发思想及最新技术组合(IdentityServer、EF core、Quartz、AutoFac、WebAPI、Swagger、Mock、NUnit、VUE、Element-ui 等)。已成功在 docker/jenkins 中实施。核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。
10.Abp.VNext.Hello
hello,一个经典的 abp 框架!
abp 是一款 DDD 模式的框架,它具备分层以及模块化的结构,框架本身含有授权,验证,异常处理,日志,本地化,数据库连接管理,设置管理,审计日志等,ABP 是一个开源的且文档友好的应用框架,起始的想法是,“开发一款为所有公司和开发者通用的框架!”。它不仅仅是一个框架,更提供了一个基于 DDD 和最佳实践的健壮的体系模型。
未完待续…
如果你有好的开源项目也可以推荐哦!