uoLib - .Net 项目基础类库 基于C#, 可用于.Net Framework 2.0/3.5, 免费下载使用

最新程序发布页面:http://uoLib.ourome.com/

在线帮助文档:http://uoLib.ourome.com/SDK/

CHM帮助文档:http://uoLib.ourome.com/SDK/uoLib.chm

这个类库中包含了大量 .NET 程序所需的基础类,特别是数据库操作类、异常捕获类,已在多个企业级项目中使用。

使用uoLib将使您在项目开发更加快捷方便:

1. 提供运行时错误的输出、日志记录功能。[强烈推荐]

发现问题是解决问题的一半。系统提供了专用于捕获运行时异常的类,可以将这些运行时异常深入地捕获并输出出来。输出格式可以是.txt文本文件、.htm网页文件形式的日志,也可以直接在B/S项目运行时的页面上直接显示出来。

这里有一个异常捕获的日志列表,先感性认识下:http://www.ourome.com/Errors/list.aspx。

这个异常捕获类可以深度挖掘出异常链。环境对比:

  • .NET自带的异常显示页面(就是黄色的那个错误页面)只能显示一个异常,经常也只是浅表异常,无法深层次地挖掘出异常产生的实质原因。特别是在多层结构、多项目结构的解决方案中,系统自带的异常显示页面往往仅输出一个类似“引发类型为‘System.Web.HttpUnhandledException’的异常。”这样的信息,让人摸不着头脑。另一方面,当项目发布之后,仍然可能存在诸多不易发现但确实存在的Bug,而这些Bug所引发的异常在客户端显示时,您并不会获得这些异常发生的状况信息,导致您很难发现这些Bug的存在。
  • 若使用uoLib的异常捕获类,可以深入地将引发异常的所有InnerException捕获并输出出来,无论多么深的异常都将被递归地捕获。系统还提供一个专用的HttpHandlers来显示这些异常捕获的日志,使您能不间断地跟踪项目运行的情况。您只需要在web.Config里设置一个httpHandlers配置节就可以毫无遗漏地获得最原始的项目异常资料。这些资料包括异常发生的时间、请求路径、请求参数、客户端浏览器、客户端IP等详细信息。为项目的健壮性提高提供坚实的基础。

2. 将数据库实例化为对象,高性能地适配各种数据库。

系统提供了Database这个类,您可以使用它来建立自己的数据库实例。它提供了大量常用的方法来进行数据库操作:您只需要传入一个DbCommand甚至是一条SQL语句即可直接执行它,或者得到一个包含数据集的DataSet。在此过程中,您无需在意数据库连接是否已打开,也无需烦恼什么时候数据库连接需要关闭,系统已经为您做好了一切事情。

系统也以单件模式提供了若干单体数据库实例,使您的数据库操作更高效。在您的项目中,只会一次性地链接数据库,一次性生成唯一的数据库实例,大大提升项目的开发速度和执行效率。而这些数据库单体实例在使用起来有特别方便,如您需要连接Sql Server数据库,只需要在web.config里面配置好链接字符串就可以在项目的任何地方使用SqlClientSqlServer.Instance了,没错,只有一行代码!

系统也提供了数据库类的基本超类和接口,您也可以在此基础上继承、组合以添加您自己的功能。

在提供多数据库支持的系统中更有完美的发挥。环境对比:

  • 一般工厂模式架构的项目中,除为各个数据库写各自的数据层之外,都会有一个接口层介于数据层和业务层之间,代码比较复杂不易管理。
  • 但若用uoLib的实例化数据库对象,您只需写您需要的数据层即可,多个数据层和业务层能够完美匹配,无需再写接口层代码您的项目也能够很方便地在各种数据库之间切换。

目前支持的数据库有:

  • SQL Server 2000/2005/2008.
  • Access 97/2000/2007
  • Excel 97/2000/2007
  • SQLite
  • DSN (系统数据源、用户数据源、文件数据源)
  • Oracle (未能实际测试)

3. 提供一系列的常用静态方法。

这些方法可以在保证项目稳定运行的情况下加快您项目开发的速度,使您的工作更高效.

异常捕获类使用示例

此功能是uoLib提供的特色功能,也是最推荐使用的功能。使用起来非常方便,在项目中引用uoLib之后只需要配置Global.asax即可。

protected void Application_Error(object sender, EventArgs e) { if (HttpContext.Current.AllErrors.Length > 0) { foreach (Exception ex in HttpContext.Current.AllErrors) { uoLib.Web.Debugger.ErrorReporter.RecordErrors(ex); } HttpContext.Current.ApplicationInstance.CompleteRequest(); } }

这样设置之后,项目中一旦产生了运行时异常将自动被以日志形式记录下来。默认的日志类型是.htm文件,记录在~/Errors/目录下(需要有写入权限),您也可以通过配置uoLib.Web.Debugger.Configuration来设置日志类型、存储路径,甚至关闭此功能。

如果您希望能以Web页面的形式访问到系统记录的异常日志,只需要配置web.config中httpHandlers一节即可:

<?xml version="1.0" encoding="utf-8"?>  <configuration>  <system.web>  <httpHandlers> <add verb="*" path="Errors/List.aspx" type="uoLib.Web.HttpHandlers.ServerErrorList,uoLib"/>  </httpHandlers>  </system.web>  </configuration>

其中“Errors/List.aspx”可以是您希望的任意路径,不必存在这个.aspx文件。

数据库单体使用示例

uoLib类库在使用上极其方便。它为三种常用数据库类型分别提供了一个数据库单体实例,它们是:

  • oledb连接的Access:OleDbAccess
  • SqlClient连接的SQL Server:SqlClientSqlServer
  • odbc连接的SQLite:OdbcSQLite

您可以在程序中直接使用这三个单体实例来访问相应的数据库。下面是示例代码:

web.Config

<?xml version="1.0"?>  <configuration>  <connectionStrings>  <remove name="*"/>  <add name="uoLib.SqlClientSqlServer" connectionString="Data Source=127.0.0.1;Initial Catalog=NorthWind;User Id=sa;Password=;"/>  <add name="uoLib.OleDbAccess" connectionString=""/>  <add name="uoLib.OdbcSQLite" connectionString="DRIVER=SQLite3 ODBC Driver;Database=files/demo.db3;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"/>  </connectionStrings>  </configuration>

web.config文件中可以将数据库的连接字符串留空。如上面的配置中,可以不配置uoLib.OleDbAccess的连接字符串,因为在 cs 代码中将另行写入。详见下:

using System; using System.Data; using System.Data.Common; using uoLib.Data.Singleton; namespace DemoWeb { public partial class Demo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 使用 SqlClient 链接字符串的 Sql Server 数据库 // 2000/2005/2008均可。 // 链接字符串配置名称:uoLib.SqlClientSqlServer SqlClientSqlServer SQL = SqlClientSqlServer.Instance; const string TABLENAME = "Products"; DbCommand cmd = SQL.CreateCommand("SELECT TOP 1 ID FROM {0}", TABLENAME); DataSet ds = SQL.SelectData(cmd); if (ds == null) Response.Write("数据库为空!"); else  Response.Write(string.Format("共 {0} 行记录。", ds.Tables[0].Rows.Count)); // 使用 OleDb 链接字符串的 Access 数据库 // 97/2000/2007均可。 // 链接字符串配置名称:uoLib.OleDbAccess OleDbAccess Access = OleDbAccess.Instance; Access.CreateConnection( OleDbAccess.CreateExampleConnectionString( Server.MapPath("files/test.mdb"), "uonun", "ourome.com") ); Response.Write(Access.Conn.ConnectionString); // 使用 Odbc 链接字符串的 SQLite 数据库。 // 链接字符串配置名称:uoLib.OdbcSQLite OdbcSQLite SQLite = OdbcSQLite.Instance; SQLite.Conn.Open(); //do something.. SQLite.Conn.Close(); } } }

注意:

  1. 要使用数据库的单体实例,必须在web.config里面配置相应名称的连接字符串节。(可以留空,但必须有这一节,如上例中的uoLib.OleDbAccess
  2. 由于使用了单体模式,因此在整个项目中,将只存在一个数据库实例,在简化了数据库使用的同时也提高了性能。不过如此一来,在整个系统中也将仅有一个相同数据库的实例。以SqlClientSqlServer 为例,您无法使用SqlClientSqlServer.Instance来生成两个不同的数据库。(要在同一系统中使用多个相同数据库实例,请看Database的使用方法。)

Database类使用示例

如果uolib.dll提供的数据库单体实例无法满足您的需求,您可以使用Database这个类来建立自己的数据库实例,它提供了比单体实例更多、更完善的方法和属性。下面对Database类的使用作一个简单的示例:

using System; using System.Data; using System.Data.Common; using uoLib.Data; namespace DemoWeb { public partial class Demo2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //声明数据库实例 Database db = new Database(ConnectionType.SqlClient); //初始化数据库连接 db.CreateConnection( Database.CreateExampleConnectionString( "127.0.0.1", "NorthWind", "sa", "", ConnectionType.SqlClient) ); Response.Write(db.Conn.ConnectionString); //示例:执行 DbCommand  //可执行包括SELECT/INSERT/UPDATE/DELETE、存储过程等任何DbCommand命令 int _id = 10; DbCommand cmd = db.CreateCommand("DELETE FROM [TABLE] WHERE ID=@id"); cmd.Parameters.Add(db.CreateParameter("@id", System.Data.DbType.Int32,_id)); Database.Execute(cmd); //示例:使用存储过程、查询数据库 cmd = db.CreateCommand("myProcedure"); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(db.CreateParameter("@id", System.Data.DbType.Int32, _id)); DataSet ds = db.SelectData(cmd); if (ds == null) { Response.Write("数据库为空!"); } else {  //do something... } } } }

Database类提供了很多的方法,此处无法写出所有的示例,您可以在使用中自行查看。uoLib中也提供了Database的父类BaseProvider以供继承。

uoLib - .Net 项目基础类库 基于C#, 可用于.Net Framework 2.0/3.5, 免费下载使用相关推荐

  1. python入门教程pdf-《python基础教程(第3版)》高清版PDF免费下载

    下载地址: 备用地址: Python基础教程 第3版Python简明教程书籍 Python编程从入门到实践 灵程序设计丛书 <python基础教程第三版>高清版PDF免费下载 <py ...

  2. python零基础学习书-Python零基础到进阶必读的书藉:Python学习手册pdf免费下载

    提取码:0oor Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编写高质量.高效的并且易于与其他语言和工具集成的代码,<Python学习 ...

  3. 基于fpga的直流电机vhdl+论文+开题报告+(csdn免费下载)

    下载资料链接 摘要 直流电机是日常生活中常见的一种能量转换装置,它应用广泛,功能强大,在生产生活中占据着重要位置.直流电机的控制方法多种多样,控制系统的组成更是五花八门.本文将采用现场可编辑门阵列FP ...

  4. 基于ASP的校园二手交易网设计与实现程序免费下载

    尽管ASP已经被淘汰了,但是很多高校再做毕业设计的时候还都会选择ASP,虽然到社会上用处不大,但是对程序思维的理解是相同的,ASP作为最传统的面向过程,比较号理解,今天给同学们分享一个基于ASP的校园 ...

  5. 基于B样条曲线的路径规划(含matlab代码免费下载)

    本文主要解决的是用B样条曲线实现无人车的路径规划,对于B样条曲线的概念不再赘述,有兴趣的朋友可以自行去了解. 下面介绍如何利用B样条曲线对小车进行路径规划. 1.无人车平面曲线规划 1.1无人车位置控 ...

  6. Hibernate项目搭建所需Jar包合集 5.0.7版本 免费下载【微云网盘】

    Hibernate合集[微云网盘]

  7. ue4 离线渲染_UE4基础:离线安装方法(附UE4.25.0离线安装包下载)

    注意:离线安装是指不用通过Epic的客户端下载巨大的安装包,但是某些步骤还是需要网络连接的.并且Epic的账号也是需要的. 下载地址见文章最下方 为什么要离线安装? 离线安装并不是必须的,老王亲测从官 ...

  8. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-基于接口驱动的数据层...

    系列回顾 在前面的文章中,我用了大量的篇幅对UDA及ORM的使用进行了讲解和演示,我们已经知道并熟悉的使用UDA和ORM构建简单的应用,AgileEAS.NET在应用的纵向结构上建议使用分层结构,提出 ...

  9. 【Straw-Uniapp-uView】基于 Uniapp + uView 搭建项目基础模板

    文章目录 一.项目简介 1.项目概述 2.相关链接 3.基础功能 4.后端搭建 二.开发手册 全局约束 全局样式约束 全局that约束 代码模板 表单 消息提示 确定取消 http请求 请求拦截器 文 ...

最新文章

  1. java jar包 和 war包 区别
  2. LeetCode 296. 最佳的碰头地点(坐标独立+中位数的地方最近)
  3. SpringBoot 集成 mybatisPlus
  4. Spring Boot学习笔记:Spring Boot核心配置
  5. 双系统(win10 1803+deepin 15.7)安装问题
  6. SPSS基本操作与使用步骤【详细整理】
  7. Android开发笔记(一百零一)滑出式菜单
  8. 数据库索引的使用及优化
  9. 计算机功能性英语作文,2017考研英语作文:10个功能性“仿写”句型
  10. echart 图谱_echart——关系图graph详解
  11. 傲腾内存 可以用ghost系统_光影精灵傲腾版笔记本安装win10系统操作教程
  12. SPSS到底怎么入门?这些干货你收藏了么?
  13. java泊松分布随机数,C语言生成泊松分布随机数
  14. 【渝粤教育】国家开放大学2018年春季 0034-21T现代管理原理 参考试题
  15. 62道开发人员面试经典题
  16. js下载当前页面表格为excel
  17. 关于学习如何组装基于F4V3S飞控的竞速穿越机
  18. 27岁,今年研究生上岸,有什么忠告可以给我的?
  19. 系统的频域分析法-----Chap4_5-8
  20. 山西职称英语和计算机考试报名时间,山西2017职称英语报考条件

热门文章

  1. 拟牛顿法 java_拟牛顿法 分析与推导
  2. JMeter之MQTT请求
  3. 快递鸟物流查询接口调用
  4. 吴恩达《深度学习》笔记汇总
  5. 适用于Linux用户:PTV VISSIM KERNEL
  6. vue项目,svn提交代码时忽略node_modules文件夹提交。
  7. 手把手教你写复制U盘文件神器(一)
  8. 使用java获得网页数据并保存到mysql数据库(oracle大致同理)
  9. 原型系统研究报告撰写_阅书斋 | 王蔷英语教师行动研究:如何撰写行动研究报告...
  10. 易语言多线程大漠多线程模板UI更新