.net开源框架简介和通用技术选型建议

.net体系

.net core

.net 类库

asp.net mvc

asp.net webapi

asp.net core

EF

跨平台和运行时解决方案(解决方案)

Katana:微软基于OWIN规范实现的非IIS寄宿ASP.NET和MVC等。

MONO.NET:跨平台的.NET运行环境,让.NET跨平台运行成为可能。

Unity3D:微软大力支持的机遇C#和Java的跨平台游戏开发框架。

Cassini、IIS Express和Cassinidev:开源的ASP.NET执行环境。

IKVM.NET:基于.NET的JAVA虚拟机,让JAVA运行在.NET之上。

Enterprise Library:微软针对企业级应用开发的最佳实践组件。

架构思想框架

PetShop:微软ASP.NET宠物商店。 分层思想的代表

ABP:ASP.NET Boilerplate Project (ASP.NET样板项目) 。 领域驱动思想代表

eShopOnContainers:微服务架构和Docker容器的一个简单的.Net Core的应用。微服务思想代表

依赖注入IOC容器框架(解耦)

Unity:微软patterns&practicest团队开发的IOC依赖注入框架,支持AOP横切关注点。

Spring.NET:依赖注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。

Autofac:最流行的依赖注入和IOC框架,轻量且高性能,对项目代码几乎无任何侵入性。

Ninject:基于.NET轻量级开源的依赖注入IOC框架

数据访问和ORM框架(数据访问层,持久化层)

EF(ADO.NET Entity Framework):微软基于ADO.NET开发的ORM框架。

Dapper:轻量级高性能基于EMIT生成的ORM框架。

EmitMapper:性能较高的ORM框架,运行时通过EMIT动态生成IL代码,并非采用反射机制。

FluentData:开源的基于Fluent API的链式查询ORM轻量级框架。

SqlMapper.cs:用于小项目的通用的C#数据库访问类。

SqlHelper.cs:用于小项目的通用的C#数据库访问类。

EnterpriseLibray:微软企业库,特点是快速开发,融合了微软工程师多年的经验。

Nhibernate:面向.NET环境的轻量级的ORM框架。

数据间格式转换

Newtonsoft.Json:目前.NET开发中最流行的JSON序列化库,为新版的WebApi库提供基础。

AutoMapper:流行的对象映射框架,可减少大量硬编码,很小巧灵活,性能表现也可接受。

实体类和DataTable的转换 :反射,表达式树,emit三种中,三选一。

Redis和数据连接驱动框架

ServiceStack.Redis:

StackExchange.Redis:

csredis:

MySQL Connector:完全托管的 MySQL ADO.NET 数据库提供程序、连接器

中间件与消息队列

RabbitMQ.NET:AMQP 客户端的 C# 实现

NServiceBus:.NET 平台下最流行的服务总线

全文搜索和爬虫框架

Lucene.net:流行高性能的全文索引库,可用于为各类信息提供强大的搜索功能。

Elasticsearch.Net:操作ES

日志记录框架

Log4Net.dll:轻量级的免费开源.NET日志记录框架。

NLog:是一个简单灵活的日志记录类库,性能比Log4Net高,使用和维护难度低。

任务计划调度

Quartz.NET:开源的作业调度和自动任务框架。

办公系列框架(文档操作)

NPIO.dll:该项目是 .NET 版本的 POI 项目,原始的 Java 版本位于http://poi.apache.org/ 。

DocX:不需要安装word软件,通过C#操作word文件。

Open XML SDK:Open XML SDK 是一个开源库,用于处理 Open XML 文档

ITextSharp:iText 是一个PDF库,用于创建、修改、检查和维护 (PDF)格式的文档

语法解析和模板引擎(Template Engine)

RazorEngine:基于微软 Razor 解析器引擎的开源模板引擎。官网

Nustache:无逻辑模板的开源库。官网

DotLiquid:Ruby Liquid 模板语言的 C# 移植版本

MarkdownSharp:C# 实现的开源 Markdown 处理器,在 Stack Overflow 中使用

Java.NET和Clear(微软出品):基于.NET开发的Java引擎

ExCSS:C# 的 CSS3 解析器开发库

HtmlAgilityPack:一个灵活的 HTML 解析器,可以对 DOM 进行读写,支持 XPATH 和 XSLT

通讯框架(网络)

SignalR:ASP.NET 库,开发者可以通过它在 web 应用程序中非常简单地实现实时功能

Helios:一套高性能的Socket通信中间件

压缩框架

SharpZipLib:一个 Zip、GZip、Tar 和 BZip2 的类库,完全由 C# 编写,面向 .NET 平台

安全性框架

OAuth:超轻量级 OAuth 1.0a 签名生成库,C# 编写

ASP.NET Identity:用于 ASP.NET 应用程序的新身份系统。

IdentityServer:可扩展的 OAuth2 和 OpenID 连接提供程序框架

HashLib:HashLib 包含了几乎所有你见过的哈希算法,它几乎支持所有东西并且非常容易使用

图像处理框架

Paint.NET:基于.NET小巧灵活强大的图形处理开源项目。

NGraphics:NGraphics 是一个 .NET 跨平台矢量图形渲染库

DynamicImage:高性能开源图片处理库,用于 ASP.NET

人工智能与数学框架

Math.NET:强大的数学运算、微积分、解方程和科学运算。

Accord.NET:机器学习框架,包含了音频和图像处理的库(计算机视觉、计算机听觉、信号处理和统计)

移动互联网和云计算

PushSharp:通过.NET向各种移动平台推送消息。

mono for android:用.NET语言开发安卓应用:

MonoTouch:用.NET语言开发IOS应用。

PhoneGap和AppCan:跨平台基于HTML5的移动开发平台。

Cordova:PhoneGap贡献给Apache后的开源项目,是驱动PhoneGap的核心引擎。

桌面程序框架

DevExpress:一个全球知名的桌面应用程序UI控件库。

Prism:微软开发的针对WPF和Silverlight的MVVM框架,通过功能模块化的思想,来讲复杂的业务功能和UI耦合性进行分离。

WPFToolkit 和 Fluent Ribbon Control Suite:开发类似于Office风格的Ribbon菜单。

测试(Testing)

Faker.Net:方便生成大批量测试数据的框架。

包管理

NuGet:.NET 包管理器。官网

MyGet:为 NuGet、NPM、Bower 和 VSIX 提供程序包仓库宿主,同样提供 CI 服务。

Paket:.NET 的一个包依赖管理器,支持 NuGet 包和 GitHub 仓库。

编译器和IDE框架

ILSpy:ILSpy 是一个开源的 .NET 程序集查看器和反编译器

Visual Studio Code:非常棒的编辑器,来自微软,基于 GitHub Atom

MSBuild也是一个MIT License的开源软件,可以在Github上看到它的 仓库 。

Visual Studio 插件

Resharper:Visual Studio 开发人员生产力工具

打包发布和自动构建持续集成和升级框架

Wix Toolset:强大的工具集,用于创建你自己的 Windows 安装程序

Squirrel:Squirrel 即是一套工具也是一个类库,可以无安全管理 Windows 桌面程序的安装和更新

MSBuild:微软构建引擎(MSBuild)是 .NET 和 Visual Studio 的构建平台

Psake:基于 .NET 的自动化构建工具,使用 PowerShell 编写

成品应用系统框架

Orchard:国外一个MVC开源的博客,内容管理CMS系统。

技术选型或技术预研

选型考虑三要素:功能性,性能,稳定性

功能性:满足现在和可预期的未来

性能:考虑现在和未来,明白上限

稳定性

  • 1.主流,团队中询问大家用过的多不
  • 2.坑少,资料多,千锤百炼
  • 3.不要让本已满负荷的小小团队,再去趟雷,你和你的技术团队有那个实力吗第一个吃螃蟹。

如果有多个优秀待选?

团队人员:

有很多优秀的可选,看团队的熟练度

个人素质:

广度决定能知道

深度决定知道好

不用并不代表不关注

选不好,会造成进退两难,人马疲惫

关于以后

不要让以后,忽略了当下。

太多的以后可能让你走不出当下。

真的有以后吗。

想做好,少不了以后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA 2048源码_java实现2048游戏源代码

本文实例为大家分享了java实现2048游戏源代码,供大家参考,具体内容如下一.主要功能:1、游戏初始化:新建游戏44的16宫格画布,随机格子上生成2或者4两个数字2、格子的移动:先判断能否移动,移动后判…

开源干货!.NET Core + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源

DncZeus 前言 关于 DncZeus DncZeus Dnc Zeus "Dnc"--.Net Core 的缩写; "Zeus"--中文译为宙斯,是古希腊神话中的众神之王,奥林匹斯十二主神之首,统治宇宙万物的至高无上的主神(在古希腊神…

十大开源的.NET用户界面框架 让GUI设计不再犯难

选择一款合适的GUI框架是.NET开发中比较重要但又很棘手的问题,因为用户界面相当于一款应用的"门面",直接面向用户。好的UI更能吸引用户,有时甚至成为决定一款应用成败的关键。下面小编整理出十大应用最广泛.NET开源用户界面框架&am…

python flv转mp4_ffmpeg将多个flv文件合成为mp4(python版)

需求直播生成的flv片段需要做个归档,把指定的文件夹中的flv合并成一个mp4,简单的转码合并操作直接用命令行调用来实现。注意事项flv文件直接合并生成mp4的话只有第一个flv的内容才能播放,需要先转换成ts再合成mp4使用的第三方库ffmpy&#xf…

多租户技术

本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件&…

使用开源工具ELK可视化 Azure NSG日志

国内的Azure最近上线了网络观察程序服务,可以帮助用户监控和分析VNET虚拟网络。其中一个很重要的功能就是可以记录NSG的安全访问日志了。但是如果用户设置了NSG流日志,并下载日志想要分析一下的话,会发现日志其实并不是很友好,NSG…

pythoncad二次开发视频_AutoCAD ObjectARX 二次开发(2020版)--4,使用ARX向导创建CAD二次开发项目(编程框架)--...

手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导。在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序。本节的程序的需求是,接收CAD用户的输入。首先,打开VS2017,新建项目在左…

Azure Data Explorer(Kusto)学习笔记

Azure Data Explorer 指南 Azure在2018年推出了Data Explorer产品,提供实时海量流数据的分析服务(非流计算),面向应用、网站、移动端等设备。 用户可以查询,并交互式地对结果进行分析,以达到提升产品、增…

python将一列数据转换成向量_python读取csv和txt数据转换成向量的实例

最近写程序需要从文件中读取数据,并把读取的数据转换成向量。查阅资料之后找到了读取csv文件和txt文件两种方式,下面结合自己的实验过程,做简要记录,供大家参考:1、读取csv文件的数据import csvfiltpath "data_t…

Iaas,Paas,Saas三者的区别联系是什么?

本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件&…

什么是ASP.NET Boilerplate Project(ABP)框架

使用.NET技术进行开发已经多年,偶尔一次网络上搜索.NET开发框架,看到了ABP这个框架,引起了我极大的兴趣,于是决定对该框架进行深入学习和研究,并将过程全部记录如下,对自己也是一次学习和总结,同…

使用ABP打造SAAS系统(2)——前端框架选择

一、流行框架比较 作者用过的前端框架不少,曾经还在一个项目中同时使用两套框架控件(年少无知、效率特慢),所以可供选择的前端框架有不少: easyui: 优点:非常成熟的框架,基于iframe…

java 一元线性回归_一元线性回归的java实现

我们有两组数据,比如连续5年的pv与uv。我们想预测一下,uv达到500k那么pv会是多少。当然更有意思可能是,如果销售额是500w的话,pv会是多少。机器学习里的一元线性回归方法是比较简单的方法,就是我们猜是满足ywxb的。那么&#xff0…

【转】ELK是什么能做什么怎么做

作者:蛙课网 链接:https://www.zhihu.com/question/338932215/answer/777380560 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 为什么用到ELK: 一般我们需要进行日志分析场景&…

java中的并发类_java中并发常用工具类

前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类,分别是:CountDownLatchCyclicBarrierSemaphoreExchangerCountD…

github迁移到gitee相关问题

为什么要从github迁移到gitee(国内github版)? 1. github对于国人来讲,速度较慢。例如: 浏览个技术文档点击个链接半天跳不过去pull、push、clone个代码太慢个人版(免费版)没有私人仓库&#xf…

【转】abp vNext微服务框架分析

abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究。我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来说几乎是看不懂的,所以研究一番后再…

SQL SERVER data tier application 的作用及如何使用SSDT进行SQL数据库的自动化部署到生产环境和版本控制

这个是管理员用来发布数据库所有的脚本用的,自SQL2008以后,微软开始将数据库的开发整合到VS2010上,用户可以将数据所有的相关对象打包成一个DAC包,让管理通过extract data-tier application发布到服务器上。就好像你把代码变成dll…

bitcount java_Java.math.BigInteger.bitCount()方法实例

全屏Java.math.BigInteger.bitCount()方法实例java.math.BigInteger.bitCount()返回此BigInteger的二进制补码表示的位,从它的符号位不同的数字。实现位向量样式集上BigIntegers的时候,此方法很有用。声明以下是java.math.BigInteger.bitCount()方法的声…