Winform 三層架構小例子

2021-07-06 07:48:45 字數 2239 閱讀 9632

在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)

#endregion

3、建立dalfactory-----抽象工廠

public static idal.iadmin create()

4、建立idal--------資料介面層

public inte***ce iadmin

5、建立utility----公共層

public static string connectionstring()

6、建立dbutility----公共資料訪問層和sqlserver資料訪問層

dbutility中建立sqlhelper類

sqlserverdal的admin類需要繼承iadmin

public class admin:iadmin

{}admin類主要實現使用者登陸功能

7、建立業務邏輯曾bll

方法public static admininfo login(string username, string password){}

在主程式的窗體中新增控制項,為按鈕新增事件

if (bll.admin.login(引數) == null)

else

三層架構的基本例子

具體的概念就不說了。主要是讓理解了三層架構的當做參考 一 mdl namespace mdl set public string product name set endregion 二 dal 主要分為 獲取 主要用來取值 列表 主要用來查詢 修改和增加以及刪除操作 用到的命名空間有 using ...

移動開發三層架構和例子

首先要說說為什麼要有這玩意,如果不分層的話豈不是更快的連線資料庫?答案確實是更快,不分層速度會有提公升。但是綜合考慮,分層了比不分層有點多了太多,雖然有犧牲,但是三層會有相當大的拓展性以及特別多的優點。我們使用三層的目的是為了 高內聚,低耦合 的思想。下邊就來說一說三層架構的優點,以及缺點。1 開發...

c mysql三層架構例項 三層架構例項

一 概要 這篇部落格,準備用乙個小demo來介紹應該實現三層架構。三層架構只是分層的一種經典形式,到底分幾層,要依具體情況而定,考慮到系統的複雜程度,和後期的可維護性,完全可以分四層,五層,甚至六層,七層。二 demo 1 實現語言 vb.net 2 需求 學校機房收費系統 中的乙個功能 操作員為學...