c#一些处理解决方案(组件,库)
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#一些处理解决方案(组件,库)的更多相关文章
- 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...
- UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)!
2015年4月. 成都 UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可 ...
- UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)!
UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)! --- UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版本2014最新版 ...
- Web移动端的常用组件库
normalize http://necolas.github.io/normalize.css/ 最受欢迎的css reset 保留有用的默认值,这个区别于其他的CSS resets 标准化大范围的 ...
- Vue组件库的那些事儿,你都知道吗?
前段时间一直在研究Vue组件库,终于在组内派上了用场.来给大家贡献一篇关于Vue组件库的相关知识.经验不多,如果有不合理的地方还请多多指出哦--- 回想一下,在你们公司或者你们小组是否有一个以上的项目 ...
- vue-cli3.0 flexible&px2rem 解决第三方ui组件库样式问题
背景 在项目使用lib-flexible还有postcss-px2rem实现移动端适配,当我们引入第三方的样式组件库,发现一个问题.那些组件库的样式都变小了. 问题原因 变小的主要原因是第三库 css ...
- Vue2.0+组件库总结
转自:https://blog.csdn.net/lishanleilixin/article/details/84025459 UI组件 element - 饿了么出品的Vue2的web UI工具套 ...
- 转:Vue2.0+组件库总结
UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开 ...
- 前端组件库 - 搭建web app常用的样式/组件等收集列表(移动优先)
0. 前端自动化(Workflow) 前端构建工具 Webpack - module bundler Yeoman - a set of tools for automating developmen ...
- vue组件库(五):icon管理
图标管理 前言 一.常用图标库网站 1.http://icomoon.io 阿里巴巴矢量图 身边的 2.http://fontawesome.dashgame.com iconmoon 3.http: ...
随机推荐
- 如何用Fireworks制作经典的扫光字GIF动画
1.首先我们把背景选为黑色.再输入文字用白色填充,注意调整文字之间的间隔. 2.选中字体,对其进行转换为路径文件. 3.对间隔再做少许调整. 4.复制文字改为黑色,做平移,出现立体效果. 5.再复制一 ...
- Ubuntu增加一个用户并给普通用户赋予root权限的方法
1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy //修改密码Changing pass ...
- MongoDB 投影
mongodb 投影意思是只选择必要的数据而不是选择一个文件的数据的整个.例如一个文档有5个字段,只需要显示其中3个 find() 方法 在MongoDB中,当执行find()方法,那么它会显示一个文 ...
- vs code上配置Scala
转自:https://www.cnblogs.com/steven-yang/p/5852988.html 百度的结果表达太奇怪,简单记一笔. 1.下载一个scala的压缩包,https://www. ...
- 网络爬虫入门(二)模拟提交以及HttpClient修正
模拟提交就是说我们不自己登陆到客户端,仅仅靠发送请求就模拟了客户端的操作,在现实使用的时候经常用来接收一些需要登录才能获取到的数据,来模拟表单的提交,所以很多时候也被称作虚拟登录,这次的例子是我自己为 ...
- 全网数据实时备份方案[inotify,sersync]
环境搭建 0.环境安装 gcc yum install gcc -y 1.安装inotify(源码软件包) 文件下载:https://files.cnblogs.com/files/ftl101 ...
- 使用PowerShell批量注册DLL到GAC
一段很小的代码,注册当前目录下所有的DLL到GAC,请先把gacutil.exe复制到同一个目录. $Path = Get-Location $Dir = Get-ChildItem "$P ...
- 51nod 1102 面积最大的矩形
题目地址在这儿 求取:以某矩形g[i]为最小值的区间的左右端点,得到一个临时解.所有临时解中的最大值即为解. 求取区间的方法可以用单调栈,也可以用下面这种十分简洁的类似于递归的方法.下面这种解法求出来 ...
- npm 使用国内镜像的方法
npm全称Node Package Manager,是node.js的模块依赖管理工具.由于npm的源在国外,所以国内用户使用起来各种不方便.我们通过设置使用淘宝的镜像来加快我们的速度. 临时使用 n ...
- Linux下中间人攻击利用框架bettercap测试
0x01简介 bettercap可用来实现各种中间人攻击,模块化,便携.易扩展 0x02特点 提到中间人攻击,最知名的莫过于ettercap,而开发bettercap的目的不是为了追赶它,而是替代它 ...