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).

  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/jinyu20180311/p/10576013.html
Copyright © 2011-2022 走看看