• Winform 三层架构小例子


        在web开发中常常用到工厂模式三层架构,现在也在Winform中应用这种架构方式,尝试了很多,也模仿了经典例子PetShop,但是还是不行,也参 考了网上的一些例子。现在把我这个例子的整个制作过程简单的介绍一下。(由于本例子是介绍三层结构,所以只是简单的应用,如果你觉得这种方式好,请自己实 现其他模块)
    结构:
    -------PMIS--------主程序代码
    表示层,负责应用程序的表现形式、用户体验等。
    -------DALFactory-----抽象工厂
    抽象工厂,用于创建各种数据对象的方法,这里有配置文件和反射的运用。
    -------IDAL--------数据接口层(控制是选择什么类型的数据库)
    数据操作接口,数据访问层实现其接口并重写它(体现了面向接口的编程思想)。
    -------BLL------
    处理应用程序的业务逻辑,被表示层调用。
    -------Model-------构造模型(对应数据库字段)
    Model程序集,存放实体类,用于数据访问层和逻辑层调用
    -------SQLServerDAL----SQLServer数据访问层
    数据访问层,实现具体的select、update、delete....操作,重写IDAL接口。
    -------DBUtility----公共数据访问层
    数据处理层,实现具体的ExecuteReader,ExecuteDataTable,ExecuteNonQuery等。
    -------Utility----公共层
    实现从配置文件中读取数据库联接字符串。
    1、数据库结构
    数据库名PMIS
    表Admin
        [ID] [bigint] 编号
        [Name] [varchar](10) 名称
        [PassWord] [varchar](100) 密码
        略......
    建表语句
    CREATE TABLE [dbo].[Admin](
        [ID] [bigint] IDENTITY(1,1) NOT NULL,
        [Name] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
        [PassWord] [varchar](100) COLLATE Chinese_PRC_CI_AS NOT NULL,
        [PurviewID] [int] NOT NULL,
        [Remember] [int] NULL,
        [AutoRun] [int] NULL,
        [DepartmentsID] [bigint] NULL,
     CONSTRAINT [PK_管理员_1] PRIMARY KEY CLUSTERED
    (
        [ID] ASC
    ) ON [PRIMARY]
    ) ON [PRIMARY]
    2、接着建立数据库模型
    Model
     #region 内部成员字段
            private int _id;
            private string _Name;
            private string _Password;
            略...
    #endregion
    #region 方法
            public AdminInfo() { }

            public AdminInfo(string userName, string password)
            {
                this._Name = userName;
                this._Password = password;
            }
    #endregion
    3、建立DALFactory-----抽象工厂
    public static IDAL.IAdmin Create()
            {
                string path=System.Configuration.ConfigurationSettings.AppSettings["DAL"];
                string className="SQLServerDAL.Admin";

                IDAL.IAdmin acount=(IDAL.IAdmin)Assembly.Load(path).CreateInstance(className);
                return acount;
            }
    4、建立IDAL--------数据接口层
    public interface IAdmin
        {
            AdminInfo Login(string userName, string password);
            int Insert(AdminInfo account);
            int Update(AdminInfo account);
        }
    5、建立Utility----公共层
    public static string ConnectionString()
            {
                return (ConfigurationSettings.AppSettings["ConnectionString"]);
            }
    6、建立DBUtility----公共数据访问层和SQLServer数据访问层
    DBUtility中建立SQLHelper类
    SQLServerDAL的Admin类需要继承IAdmin
    public class Admin:IAdmin
        {}
    Admin类主要实现用户登陆功能
    7、建立业务逻辑曾BLL
    方法public static AdminInfo Login(string userName, string password){}
    8、为PMIS主程序添加应用程序配置文件app.config
    添加<appSettings>
        <add key="ConnectionString" value="server=.;uid=sa;pwd=;database=PMIS"></add>
        <add key="DAL" value="SQLServerDAL"></add>
      </appSettings>
    在主程序的窗体中添加控件,为按钮添加事件
    if (BLL.Admin.Login(参数) == null)
                {
                   //处理...
                }
                else
                {
                    //处理...
                }
    例子代码下载
  • 相关阅读:
    在线课堂小项目
    在线课堂后端代码梳理
    .net调试exe或dll文件的反编译工具:dnSpy
    dnSpy反编译调试工具如何调试dll文件
    当前标识(IZFKXM52396ECSZ\iusr_iis)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”的写访问权限。
    把Json字符串转化为对应的类
    SQL Server 2008 R2定期自动备份、自动删除过期备份文件【转】
    Java 将HTML转为XML E
    C# 将HTML转为XML E
    MySQL删除重复数据
  • 原文地址:https://www.cnblogs.com/hakuci/p/1136887.html
Copyright © 2020-2023  润新知