1.关系数据库

postgresql,mysql,oracle,sqlserver

2.本地数据库

sqlite,berkeleydb,litedb

3.缓存数据库

redis,mongdb

4.数据库连接池

基本按照ADO.NET实现,所有数据库都自我实现数据库连接池,一般连接字符串中pool设置。

我自己实现了一个数据库连接池Hikari.已经提交nuget,名称:Hikari

5.一般缓存

在c#中基本使用集合。

我自己实现了JYCache,放在git上面,供大家学习研究,没有用于生产。

6.ORM框架

Dapper,linq2db,EF不能忘记

7.excel操作

原.net framework控件

OleDb:需要驱动支持

linq to excel:还是以OleDb为基础封装,当前主要是.net framework

EPPlus:不需要支持

NPOI:不需要支持

pageoffice:

8.PDF

ITextSharp,Spire.PDF

9.MQ

通用件:kafka,RocketMQ

另外mqtt实现的服务平台也可以作为小消息传输。

最近逐步有人研究go,其实一门语言出来总是有噱头的,我就不说了,总会有人去折腾的。不过按照现在的说法,我感觉go适合这类东西,而不是web之类。可惜,还没有发现合适的,有一个nsq,但是没有c#客户端,我已经向原作者提交c#客户端请求。

10.通信

zmq(关注很久,但是没有发现官方吹嘘的那么牛逼),不要太复杂的处理

dotnetty(.net core实现),正在更新,底层优化合适。我自己编译了.net standard版本,也放在了nuget。在官方的名称之后添加了.Lib,例如:DotNetty.Transport.Lib。

11.序列化组件

(1)二进制

MessagePack 这玩意是2个,分别是:https://msgpack.org,https://github.com/neuecc/MessagePack-CSharp

准确说一个是MessagePack-cli,一个是MessagePack-CSharp。注意别弄混了。

(2)JSON

Newtonsoft.Json:通用,不过封装东西越来越多,无用太多

ServiceStack.Text:商业化了,它的优势在于解析

fastJSON.NET:

(3)BSON

mongdb的格式

(4)其它

12.负载均衡

并没有统一的东西,各种不同,很多成熟的软件客户端自带,例如:redis.

网上还有各种参考的源码。我自己也实现了一个:KetamaHash

就是hash一致算法带虚拟节点。底层是MurmurHash+红黑树,已经提交nuget,名称:JYKetamaHash

13.分布式环境搭建

其它我就不知道了,只推荐一个:etcd. 官网:https://coreos.com/etcd/。它是go语言的,部署方便。

现在已经有开发作者提供的c#的客户端了,很简单。我自己又根据官网的java版本转换了一个客户端c#.

已经提交nuget,名称:etcdclient.

14.中间件RPC

google protobuf:不介绍了,网上搜索

ice zeroc:官网https://zeroc.com/

11.其它类别总结

(1)数据库操作

DataTable,IDataReader转换List<T>.网上实现很多,我就不多说了。

我自己转换实现了一个扩展库,采用了emit,使用.net standard版本。项目名称:EntityMappingDB

同样可以将List<T>转换成DataTable。

已经提交nuget,名称:EntityMappingDB,该项目可以完全替换其它我实现的版本库,Hikari的扩展库可以完全用它替换。

12.自己构建RPC模型

就是打包一个固定格式,然后在服务端解析。我就不多说了。

我用一个数据库访问服务演示了整套使用.通信,序列化,同步,加密传输。项目名称:DBAcessSrv

其实数据库访问服务初衷是解决oracle客户端安装问题。不需要oracle客户端,所有SQL发送到一个服务端执行。

现在可以解决云部署,桌面系统不方便访问数据库的问题(需要开放数据库访问端口,很危险)。

其实这些东西我在前面的博文陆陆续续都提到了,也给了大家一些实现的思路方案,这里都是一个总结。所有我自己写的都放到了git.

哈哈哈,还是照例发个牢骚吧,虽然微软发布了.net core,但是感觉很多例子,方案还是win上面的,因为微软自己有winserver系统。但是我感觉微软还是应该大力关注linux.哪怕自己整款Linux系统也行啊。而win上面主要应该是UI相关的(winform,WPF).

c#一些处理解决方案(组件,库)的更多相关文章

  1. 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源

    1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...

  2. UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)!

    2015年4月. 成都 UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可 ...

  3. UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)!

    UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)! --- UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版本2014最新版 ...

  4. Web移动端的常用组件库

    normalize http://necolas.github.io/normalize.css/ 最受欢迎的css reset 保留有用的默认值,这个区别于其他的CSS resets 标准化大范围的 ...

  5. Vue组件库的那些事儿,你都知道吗?

    前段时间一直在研究Vue组件库,终于在组内派上了用场.来给大家贡献一篇关于Vue组件库的相关知识.经验不多,如果有不合理的地方还请多多指出哦--- 回想一下,在你们公司或者你们小组是否有一个以上的项目 ...

  6. vue-cli3.0 flexible&px2rem 解决第三方ui组件库样式问题

    背景 在项目使用lib-flexible还有postcss-px2rem实现移动端适配,当我们引入第三方的样式组件库,发现一个问题.那些组件库的样式都变小了. 问题原因 变小的主要原因是第三库 css ...

  7. Vue2.0+组件库总结

    转自:https://blog.csdn.net/lishanleilixin/article/details/84025459 UI组件 element - 饿了么出品的Vue2的web UI工具套 ...

  8. 转:Vue2.0+组件库总结

    UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...

  9. 前端组件库 - 搭建web app常用的样式/组件等收集列表(移动优先)

    0. 前端自动化(Workflow) 前端构建工具 Webpack - module bundler Yeoman - a set of tools for automating developmen ...

  10. vue组件库(五):icon管理

    图标管理 前言 一.常用图标库网站 1.http://icomoon.io 阿里巴巴矢量图 身边的 2.http://fontawesome.dashgame.com iconmoon 3.http: ...

随机推荐

  1. BootStrap 模态框禁用空白处点击关闭[转]

    模态框为信息编辑窗口,涉及好多内容,填了半天,若一不小心点了空白处..... $('#myModal').modal({backdrop: 'static', keyboard: false}); - ...

  2. 给大家分享下坐标转换的代码的JS和Python两个版本的源码【转】

    /** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09).国测局坐标(火星坐标,GCJ02).和WGS84坐标系之间的转换 */ /** * 百度 ...

  3. 30分钟掌握ES6/ES2015核心内容[上和下], 不错的说

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  4. Ubuntu更换硬盘

    0x00 背景: 目前ubuntu用的是一个80g的硬盘( 一开始没买硬盘,直接拆了一个老老老老的机子来用),系统16.04, 只有一个/分区 ( /dev/sdb1 ) . 新的硬盘是一块256G的 ...

  5. HW—词频统计

    第一次个人作业——词频统计 第一次做这种大作业,明显感觉陌生,各种规范和技能也是第一次使用,希望自己好运. 目录:一.基本要求 二.需求分析及时间估计 三.实现思路及过程 四.测试用例.时间性能分析及 ...

  6. React学习笔记(五)State&声明周期

    React学习笔记(五) 四.State&声明周期 可以为组件添加"状态(state)".状态与属性相似,但是状态是私有的,完全受控于当前组件. 局部状态就是只能用于类(定 ...

  7. Spring boot整合Swagger

    本文github位置:https://github.com/WillVi/springboot-swagger2-demo 环境准备 JDK版本:1.8 Spring boot版本:1.5.16 Sw ...

  8. Exchange2016 & Skype for business 集成之三统一联系人存储

    Exchange2016&Skype for business集成之二统一联系人存储 利用统一的联系人存储库,用户可以维护单个联系人列表,然后使这些联系人适用于多个应用程序,包括 Skype ...

  9. MySQL 数据库--内置功能

    一 视图 视图:是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 优点:们可以把查询过程中的临 ...

  10. 沉淀再出发:ELK使用初探

    沉淀再出发:ELK使用初探 一.前言 ELK是Elasticsearch.Logstash.Kibana的简称,这三者是核心套件,但并非全部. 最近ElasticSearch可以说是非常火的一款开源软 ...