代码改变世界

数据访问技术系列课程 笔记(4) 使用连接池

2011-07-07 12:19 by lujiao_cs, 513 阅读, 0 推荐, 收藏, 编辑
摘要:连接池的概念1)连接池是一个进程 多个连接是在一个进程里面存储、管理的。这个进程保存所有的连接,当我们打开连接,如果有未用连接可用,则返回该连接。如果池中的连接都用完了,则创建一个新的连接保存到连接池。而但我们关闭连接的时候,连接池里面并不关闭连接,而是返回连接池中并标记为可重用的状态,等待重新连接直到等待超时。再次打开连接的时候,我们就可以重用上次的连接。如果在这个时间内没有连接请求(打开连接),这个数据库连接将被关闭,并从连接池中移除这个连接实例。如果池中连接到达了最大连接数,请求进入等待队列直到空闲连接可用。如果在可获取连接对象之前超时期限已过(由ConnectTimeout连接字符串. 阅读全文

数据访问技术系列课程 笔记(3) 处理连接字符串的安全性

2011-07-06 01:48 by lujiao_cs, 386 阅读, 0 推荐, 收藏, 编辑
摘要:一)数据库安全性1)尽量使用Windows身份验证而不是SQLServer验证:安全容易管理 使用Windows身份验证:连接时需要写一个Windows集成的安全性,连接时使用的是本机正在使用的用户,或者是IIS正在连接到SQlServer的用户。使用集成的用户连接到SQlServer。在Web应用程序,我们需要了解是哪个用户连接到了SQLServer,默认下,放在IIS的虚拟目录应用程序,用集成的身份验证访问SQlServer,会通过IIS里的aspnet虚拟用户访问后台的SQL数据库。就需要指定它的权限来访问数据库。如果通过希望客户端,集成Windows身份验证,需要在IIS里面对这个用. 阅读全文

数据访问技术系列课程 笔记(2) ADO.NET 连接方式进行数据访问

2011-07-06 01:19 by lujiao_cs, 426 阅读, 0 推荐, 收藏, 编辑
摘要:一)连接环境简介连接环境的特点:1)连接环境是指用户在这种环境下始终保持与数据源的连接优点:环境易于实施安全控制;同步问题易于控制2)数据实时性优于其他环境3)缺点必须保持持续的网络连接;扩展性差连接环境下的对象模型:1)XxxConnection建立与数据源的连接,如SqlConnection用于建立与MicrosoftSQLServer的连接,OleDbConnection用于建立与任何支持OLEDB的数据源的连接2)XxxComand执行数据源的命令,如SqlCommand可以调用一个MicrosoftSQLServer的存储过程,XxxCommand对象的ExecuteReader方法 阅读全文

数据访问技术系列课程 笔记(1) ADO.NET数据访问技术系列课程概览

2011-07-05 17:55 by lujiao_cs, 348 阅读, 0 推荐, 收藏, 编辑
摘要:一)以数据为中心的应用程序设计数据存储:ADO.NET支持的存储结构1)无结构(如:word;txt文本,一般很少使用)2)有结构,无层次(Excel,只有简单的关系,没有包含层次关系,表于表之间没有关系)3)有层次的数据(XML文档)4)关系型数据库(sqlserver;Oracle;Access)在连接环境下(只要简单的显示)1)用户始终保持与数据源的连接2)优点是:易于安全控制;同步问题易于控制(并发);数据的实时性优越(不需要打开关闭连接速度快)3)缺点是:保持持续额网络连接(成本高)扩展性差(winform-——>web连接数目有限的)在非连接环境1)中央数据存储的一部分数据可 阅读全文

关于int、float、double一些知识的整理

2011-06-16 21:54 by lujiao_cs, 1626 阅读, 0 推荐, 收藏, 编辑
摘要:关于int.MaxValue:首先看一个小程序: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 int i = int.MaxValue; 6 Console.WriteLine("int.MaxValue:" + int.MaxValue); 7 i++; 8 Console.WriteLine("int.MaxValue + 1:" + i); 9 C... 阅读全文

C#面向对象设计模式纵横谈 笔记3 抽象工厂(创建型模式)

2011-06-13 08:35 by lujiao_cs, 388 阅读, 0 推荐, 收藏, 编辑
摘要:new的问题常规的对象创建方法://创建一个Road对象Roadroad=newRoad();new的问题:–实现依赖,不能应对“具体实例化类型”的变化。解决思路:–封装变化点(学习设计模式的核心)——哪里变化,封装哪里–潜台词:如果没有变化,当然不需要额外的封装!业务对象变化频繁,就对它进行封装。工厂模式的缘起1)变化点在“对象创建”,因此就封装“对象创建”2)面向接口编程——依赖接口,而非依赖实现(可以实现松耦合)3)最简单的解决方法:///这里是类库:Road经常变化,所以封装起来。class MyFactory { public static Road CreateRoad()... 阅读全文

C#面向对象设计模式纵横谈 笔记2 Singleton单件(创建型模式)

2011-06-12 23:25 by lujiao_cs, 321 阅读, 0 推荐, 收藏, 编辑
摘要:模式分类从目的来看:–创建型(Creational)模式:负责对象创建。–结构型(Structural)模式:处理类与对象间的组合。–行为型(Behavioral)模式:类与对象交互中的职责分配。从范围来看:–类模式处理类与子类的静态关系(编译时确定,这种分类更加利于模式的系统学习)。–对象模式处理对象间的动态关系(运行时确定,了解)。动机(Motivation) 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?(这是基本动机) 这应该是类设计者的责任,而不是... 阅读全文

Modern C# 系列课程笔记 第9节 基于组件的程序设计

2011-06-11 16:10 by lujiao_cs, 325 阅读, 0 推荐, 收藏, 编辑
摘要:强命名(StrongName)程序集的四个标识:1)friendly,humanreadablename2)culture3)version#4)PublicToken强命名的好处:1)安全性,组件无法篡改!2)组件的多个版本可以共存,防止dll冲突。3)应用程序可以使用它建立时的组件版本,而不是第一个找到的DLL。创建强命名组件的步骤:1.生成一组公私密钥对使用SN工具来生成密钥对。该工具位于安装.NETFrameworkSDK的Bin目录中,在命令行中使用“SN-k[驱动器号]:[放置密钥的目录][密钥名称].snk”这样的语句可以生成密钥对。例如:在VS工具的命令行下输入:SN.exe- 阅读全文

Modern C# 系列课程笔记 第11节 深入委托和事件

2011-06-09 21:43 by lujiao_cs, 517 阅读, 0 推荐, 收藏, 编辑
摘要:一)委托的概念及定义Adelegatedeclarationdefinesareferencetypethatcanbeusedtoencapsulateamethodwithaspecificsignature.Adelegateinstanceencapsulatesastaticoraninstancemethod.DelegatesareroughlysimilartofunctionpointersinC++;however,delegatesaretype-safeandsecure.——MSDNC#delegateisacallbackfunction.Itissmarterth 阅读全文