zoukankan      html  css  js  c++  java
  • 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).

  • 相关阅读:
    锤子科技官网:问题整理及注意事项
    springboot中文文档
    Spring Framework 开发参考手册中文(在线HTML)
    .is() 全选复选的判断
    c:forEach用法
    SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    火狐浏览器下载文件保存文件名的乱码问题
    多线程安全的解决方法
    MySQL的concat以及group_concat的用法
    mysql 将时间转换成时间戳
  • 原文地址:https://www.cnblogs.com/jinyu20180311/p/10576013.html
Copyright © 2011-2022 走看看