专栏首页听雨堂【2】快速代码集的由来及概览

【2】快速代码集的由来及概览

喜爱编程,尽管编程开发并非自己的主要工作,但多年来,也一直没有间断开发。既有工作单位的一些项目,也有纯粹自己的一些想法而做的程序(我的原创)。在使用C#开发各类项目的过程中,把一些常用的编程的思路方法总结起来,慢慢就形成了一个辅助代码库。随着内容的完善,自我感觉对于快速完成开发效果显著。

一直以来也想把这个辅助代码库发布出来,对有些情况类似的开发者也许有用,对自己同时也是个促进。但是每次当我看到园子里面的高手们推出的各种框架,顿时自惭形秽、后背冒汗,立马打消念头了。和他们相比,我的代码库的确算不上什么,就是代码的整理加工而已,一点都不高大上。

前两天看新闻,中国台湾的反服贸运动,学生们敢于理直气壮的闹事,他们的信息来源,居然绝大多数都是来自于网上的“服贸懒人包”,就是用几幅漫画就试图把服贸协议说清楚。

抛开这个“懒人包”中的信息误导等问题不谈,不得不承认,这种“懒人包”是现在这种快餐时代的大家喜闻乐见的方式:简单、不费脑子。通过简单直白的文字、图像、视频,把一些复杂、深奥的内容直观的表现出来,使每个网民只要几分钟就能够明白其中的重点(当然,也有可能是制作者想表达的私货)。

受此启发,我觉得我的辅助代码库算不上什么“框架”,我没有通过一个代码库,去解决所有问题、适用各种应用场景的野心。我觉得这个辅助代码库更像一个“懒人包”,把各种编程中反复遇到的、经过检验是正确有效的处理封装、简化,用最少的记忆量和最简的代码量完成常用的任务,特别适合像我这样的编程懒人使用。由此,我又一次决定尝试把这个辅助代码库的内容整理出来。

辅助代码库涉及常用的C#编程的各方面,如数据库、日志操作、Web操作、socket通信、跨线程通信、正则表达式、Web页数据交换等。以最常用的数据库查询为例,只要引用了辅助代码库CommonCode,在任何位置,都可以通过这样的代码进行数据查询:

DataTable dt = AccessDB.GetData("select * from testtb");

可以想象,如果要执行一个非查询操作,可以通过如下代码实现:

AccessDB.DoNonQuery("update testtb set f_Code=1");

这种数据访问方式具有较大的通用性,无论是WinForm程序,还是Web应用程序;无论是Access、Sqlserver,还是Sqlite,都是使用相同的方式进行访问。这种数据库访问的配置代码极小,只需在Web.config中用一行连接串来指定,或者在代码中通过一行初始化代码来指定皆可。

关于代码库的设计思路是这样的:

  1. 作为辅助库,为了便于使用,大多数功能都以静态方法的方式提供。
  2. 只要记住静态类的名字即可使用相关功能。为了和最开始的AccessDB类(数据库访问辅助)一致,后面的各种辅助类也以类似形式命名,如:
    1. AccessFile:文件读写,通过一个方法可以把文件读入字符串或者把字符串写入文件。
    2. AccessFiles:批量、多线程、智能文件复制。
    3. AccessWeb:快速把Web页面读入字符串;通过代理访问页面;下载文件;导出xls等。

  3. 随着应用的增加,简单的辅助方法以不能涵盖,如web开发中的参数管理、分页、页面数据交换;网络通信、线程通信等无法用上面的命名模式,这些功能需要结合例子掌握用法。

使用CommonCode,完成的一些项目包括:

  1. 大量的网站
  2. 一个通用性较强的CMS
  3. 数据采集仪的通信服务器
  4. 基于QuickFix协议的客户端
  5. 网络兵棋对战系统
  6. 股票信息抓取系统
  7. ……

从应用的角度来说,能够满足需要,同时能够保证开发的速度。当然,CommonCode本来就是一个个人作品,随着应用的变化也在不断完善之中。也希望通过博客的交流,变得更加实用和完善。

下图是CommonCode的各种构成类别的概览。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 将自动通知窗体集成到类中

            在IE的右下角自动弹出一个通知窗口,几秒后慢慢消失,这个现在是很常见的js代码实现的功能,但是,我希望能够把这个功能集成起来,使用时尽量简化,所...

    用户1075292
  • 将一段复杂文本变成字符串的赋值语句

            因为需要在C#的代码中,写入一大段的js代码和网页代码,试验已经没有问题了。实现时却碰到一个小问题,就是大段的js和html代码,应该以什么方式...

    用户1075292
  • Android新手之旅(2) 新手问题

    1、添加控件,运行,但有一个main.out.xml老是报错,说没有内容 原因:和vs有所不同,eclipse的运行编译与当前打开的文件密切相关,所以就出问题...

    用户1075292
  • C#_FindWindow

    landv
  • Kerberos实战

    前面的文章介绍了《Kerberos原理--经典对话》、《Kerberos基本概念及原理汇总》、《基于ambari的Kerberos安装配置》、《Windows本...

    create17
  • 在线傻瓜式热力图生成工具正是上线了,还等什么

    之前后台有粉丝留言,问怎么做热力图。方法很多,首当其冲大杀器 ArcMap,用 ArcToolBox 里的「插值工具」、「核密度分析」就能实现。

    IT技术小咖
  • 前端工程化建设

    随着浏览器和前端技术的发展,现在的前端项目越来越大、业务也越来越复杂,前端工程化已经成为一件势在必行的事情。

    谭光志
  • 【DB笔试面试556】在Oracle中,虚拟索引的作用有哪些?

    在数据库优化中,索引的重要性是不言而喻的。但是,在性能调整过程中,一个索引是否能被查询用到,在索引创建之前是无法确定的,而创建索引是一个代价比较高的操作,尤其是...

    小麦苗DBA宝典
  • 037android初级篇之Activity的几个重要函数

    手机屏幕事件的处理方法onTouchEvent。该方法在View类中的定义,并且所有的View子类全部重写了该方法,应用程序可以通过该方法处理手机屏幕的触摸事件...

    上善若水.夏
  • Mysql InnoDB行锁优化建议

    InnoDB存储引擎由于实现了行级锁定,虽然在锁定机制的实现方面带来的性能损耗可能比表级锁定要更高一些,但是在整体并发处理能力方面是要远远优于MyISAM的表级...

    dys

扫码关注云+社区

领取腾讯云代金券