摘要:
IDAL:数据访问层接口,接口是一种系列‘功能’的声明或名单,接口没有实现细节.IDAL的作用是把访问数据的实现与客户端分开,符合“Program to an interface, not an implementation”的设计原理,这样1。客户端不依赖于DAL的具体实现的类2。可以通过工厂类/配置设置改换具体实现的类(譬如从Oracle到SQLServer)DAL:数据访问层,主要用来做数据逻辑处理,具体为业务逻辑层或表示层提供数据服务。先来看下IDAL的设计:ICustom.cs public interface ICustom { /// <summary> /// 添加 阅读全文
摘要:
摘自:圣殿骑士 的.NET 技术社区谈之英文篇和.NET 技术社区谈之中文篇英文社区:名称:MSDN 地址:http://msdn.microsoft.com/zh-cn/default.aspx描述:这个网站是大家学.Net的初始网站,也是.net方面官方和权威的资料,相信大家都知道或经常访问这个网站。即是初学者的最佳资料,同时也是中高级开发者的参考资料。同时里面还包括很多视频、library、每月技术杂志、社区等。名称:CodeProject地址:http://www.codeproject.com描述:分类十分的清晰,同时涵盖了.net技术的方方面面,最关键的是它的基本所有文章都带有源码 阅读全文
摘要:
说到Model设计,我们先谈谈它的作用:Model又叫实体类,model层里面的一个类对应数据库里面的一张表, 类里面的每一个属性对应表里面的一个字段,每个属性都有自己的 GET 和 SET 方法, 项目中的数据存取都要依靠GET和SET方法来实现.确切的说它不属于纵向的哪一层,而是所有层都要用到的业务实体层。其实最主要的作用还是用来传递参数.下面我就用四种方式来创建Model类:方式一: 创建department的实体类department.cs: public class department { private int _id; private string _departname; p 阅读全文
摘要:
数据库设计好了,我们开始设计SQLHelper了,是一个SQL基类.连接数据源: private SqlConnection myConnection = null; private readonly string RETURNVALUE = "RETURNVALUE";打开数据库连接. private void Open() { // 打开数据库连接 if (myConnection == null) { // myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Con 阅读全文
摘要:
要开发用户管理系统,我们首先要了解需求,现在就举一个简单需求,用户表,假设有两种角色用一个字段departID来判断,管理员和员工,我们要先建一个用户表custom和一个部门表department:CREATE TABLE [dbo].[custom]( [id] [int] IDENTITY(1,1) NOT NULL, [cname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [departID] [int] NOT NULL, [age] [int] NOT NULL, [ename] [nvarchar](50) COLLAT 阅读全文
摘要:
在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下: 表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。我们网站展示给用户看的界面。 业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。 数据访问层:见名知意,负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改或者其它。 以下我简单介绍下一个用户管理模块: 为了整个项目的开发方 阅读全文
摘要:
用list的方法来完成在一个数型结构的文件夹中,可能在拷贝时中间出现了差错,希望有一段代码来比较两个文件夹中的异同数目有多少.主要用到的方法是:1: System.IO.DirectoryInfo.GetFiles("*.*", System.IO.SearchOption.AllDirectories);返回当前目录的文件列表。2:List.Intersect(List);找出兩陣列相同的項目.3:List.Except(List);找出兩陣列不相同的項目-Except新建一个ErrorFrom.cs From代码如下:public partial class Error 阅读全文
摘要:
abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。抽象类具有以下特性:抽象类不能实例化。抽象类可以包含抽象方法和抽象访问器。不能用 sealed(C# 参考)修饰符修改抽象类,这意味着抽象类不能被继承。从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。在方法或属性声明中使用 abstract 修饰符以指示方法或属性不包含实现。抽象方法具有以下特性:抽象方法是隐式的虚方法。只允许在抽象类中使用抽象方法声明。因为抽象方法声明 阅读全文
摘要:
接口:描述可属于任何类或结构的一组相关功能,通过interface关键字来声明;接口只包含方法、委托或事件和属性的签名(接口包含的成员)、不能包含字段(因为字段是包含数据的)。方法的实现是“继承”接口的类中完成的;接口可以包含的成员的访问修饰符只能且默认为public;一个接口可以从一个或多个基接口继承;接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员;当基类型列表包含基类和接口时,基类必须是列表中的第一项;实现接口的类可以显式实现该接口的成员,显示实现的成员不能通过类实例访问,而只能通过接口实例访问;类和结构可以按照类继承基类或结构的类似方式继承接口;但注意:类或结构可继 阅读全文
摘要:
代码重构重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。 一、为什么要重构(Refactoring)1、·持续偏纠和改进软件设计。2、·使代码更易为人所理解。3、·帮助发现隐藏的代码缺陷。4、·从长远来看,有助于提高编程效率。二、何时着手重构(Refactoring)1、·代码中存在重复的代码。2、·过大的类和过长的方法。3、·牵一毛而需要动全身的修改。4、·类之间需要过多的通讯。5、·过度耦 阅读全文