亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于.NET的LINQ to SQL 三層架構(gòu)的研究與實現(xiàn)

        2014-07-03 18:56:46方生
        電腦知識與技術(shù) 2014年12期
        關(guān)鍵詞:三層架構(gòu)數(shù)據(jù)模型

        摘要:LINQ作為一種數(shù)據(jù)操作技術(shù),它能夠?qū)?fù)雜的查詢應(yīng)用簡化成一個簡單的查詢語句,在傳統(tǒng)的軟件開發(fā)中,那些復(fù)雜、冗余、難以實現(xiàn)的方法使用LINQ技術(shù)都能很好的解決,極大的方便了開發(fā)人員對于業(yè)務(wù)邏輯的處理代碼的編寫。LINQ作為編程語言的一部分,它還彌補了SQL語句中的一些不足,在一定的程度上達到防止SQL注入式攻擊的目的。文中針對LINQ技術(shù)進行研究,結(jié)合傳統(tǒng)的基于.NET三層架構(gòu)模型,給出一種基于.NET 的LINQ的三層架構(gòu)方式。并采用基于LINQ三層架構(gòu)對學(xué)生信息管理系統(tǒng)加以實現(xiàn),提高了應(yīng)用程序的安全性和可移植性。

        關(guān)鍵詞:LINQ; LINQ to SQL;數(shù)據(jù)模型 ;三層架構(gòu)

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)12-2743-04

        .NET LINQ based on to Research and Realization of Three Layer Architecture of SQL

        FANG Sheng

        (Anhui Business College of Vocational Technology,Wuhu 241002,China)

        Abstract: LINQ is a data operation technique, and it can be used to simplify the query into a simple query. In the traditional software development, the redundant, complex, difficult to achieve using LINQ technology can solve good, great convenience to the developers for handling code business logic programming. LINQ as part of a programming language, it also makes up some deficiencies in the SQL statement, to prevent SQL injection attacks to some extent. In this paper, LINQ technology is researched, combined with the.NET three layer architecture model based on the traditional, an algorithm based on three layer.NET architecture of LINQ is presented. And based on LINQ three layer architecture, the student information management system is realized, and improves the application security and portability.

        Key words: LINQ; LINQ to SQL; data model; the three layer architecture

        隨著軟件應(yīng)用領(lǐng)域的日益擴大,軟件需要處理的數(shù)據(jù)類型和數(shù)據(jù)量也隨之不斷增加。對于數(shù)據(jù)訪問的安全性、方便性以及通用性引起軟件開發(fā)人員的普遍關(guān)注。因此,微軟公司在.net3.5中增加了LINQ(Language Integrated Query,語言集成查詢)數(shù)據(jù)操作技術(shù),它為軟件開發(fā)人員提供了一種統(tǒng)一的數(shù)據(jù)查詢模式,可以有效的提高數(shù)據(jù)訪問的安全性和高效性。

        1 LINQ體系結(jié)構(gòu)

        LINQ是.Net Framework中一項突破性的創(chuàng)新,它在對象領(lǐng)域和數(shù)據(jù)領(lǐng)域之間架起了一座橋梁。LINQ可以操作任何存儲形式的數(shù)據(jù)源,如對象(集合、數(shù)組、字符串等)、關(guān)系(關(guān)系數(shù)據(jù)庫、ADO.NET數(shù)據(jù)集等)以及XML。LINQ的架構(gòu)如圖1所示。[[1]]

        其中,LINQ to Objects是對內(nèi)存進行操作,LINQ to SQL是對數(shù)據(jù)庫進行操作,LINQ to XML是對XML文件進行的操作,

        2 基于LINQ的三層架構(gòu)

        2.1 傳統(tǒng)的三層架構(gòu)

        通常意義上的三層架構(gòu)是將整個業(yè)務(wù)應(yīng)用劃分為表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)。為了便于數(shù)據(jù)的傳遞,更好的體現(xiàn)面向?qū)ο笏枷?,通常會在傳統(tǒng)三層的基礎(chǔ)上增加一個業(yè)務(wù)實體 Model項,稱為模型層。它包含與數(shù)據(jù)庫表對應(yīng)的實體類。傳統(tǒng)的三層架構(gòu)如圖2所示。[[2]]

        2.2 基于LINQ to SQL的三層架構(gòu)

        LINQ to SQL是操縱數(shù)據(jù)庫重要的技術(shù),在LINQ to SQL中,關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模型映射到開發(fā)人員所使用的編程語言表示的對象模型,對對象模型的操作就是對關(guān)系數(shù)據(jù)庫的操作。

        要實現(xiàn)LINQ to SQL,首先必須根據(jù)現(xiàn)有關(guān)系數(shù)據(jù)庫的元數(shù)據(jù)創(chuàng)建對象模型。而利用對象關(guān)系設(shè)計器(O/R設(shè)計器)創(chuàng)建的對象模型包含了傳統(tǒng)的三層架構(gòu)中的實體類。因此,可以根據(jù)傳統(tǒng)的三層架構(gòu)建立基于LINQ to SQL 三層體系結(jié)構(gòu)如圖3所示。

        其中,DataLinq層主要包括實體類和DataContext類。通常情況下,一個實體類對應(yīng)數(shù)據(jù)庫中的一張表,利用實體類的實例在不同的層之間作為數(shù)據(jù)對象進行數(shù)據(jù)傳輸。而O/R設(shè)計器生成的強類型DataContext,它表示LINQ to SQL框架的主入口點,用于在實體類與數(shù)據(jù)庫之間傳送和接收數(shù)據(jù)。[[3]]

        3 基于LINQ的三層架構(gòu)的實現(xiàn)endprint

        本文以學(xué)生信息管理系統(tǒng)“登錄”模塊為例來說明基于LINQ 的 WINFORM系統(tǒng)三層架構(gòu)的具體實現(xiàn)。

        3.1 數(shù)據(jù)庫

        利用Sql Server2005創(chuàng)建名為mySchool的數(shù)據(jù)庫,該數(shù)據(jù)庫包含六張表,分別為管理員表(Admin)、學(xué)生表(Student)、教師表(Teacher)、年級表(Grade)、成績表(Result)和課程表(Subject)。在此僅以管理員表為例。管理員表結(jié)構(gòu)如表1所示:

        3.2 基于LINQ的三層架構(gòu)的搭建

        利用Visual Studio 2008創(chuàng)建一個WinForm項目,其步驟如下:

        1)新建表示層項目,選擇WinForm窗體,將其命名為mySchool。

        2)創(chuàng)建業(yè)務(wù)邏輯層項目,選擇類庫,將其命名為mySchool.BLL。

        3)創(chuàng)建數(shù)據(jù)訪問層項目,選擇類庫,將其命名為mySchool.DAL。

        4)創(chuàng)建對象模型項目,選擇類庫,將其命名為mySchool.DataLinq。

        5)添加層之間的依賴關(guān)系。表示層添加對邏輯處理層、 DataLinq的項目引用。邏輯處理層添加對數(shù)據(jù)訪問層和 DataLinq的項目引用。數(shù)據(jù)訪問層添加對System.Data.Linq和DataLinq的項目引用;基于Linq的三層架構(gòu)如圖4所示。

        3.3 基于LINQ的三層架構(gòu)功能的實現(xiàn)

        1) 創(chuàng)建對象模型

        在DataLinq層添加LINQ to SQL類,并命名為mySchool.dbml。然后利用對象關(guān)系設(shè)計器,從數(shù)據(jù)庫中,把表拖動到對象關(guān)系設(shè)計器的界面上,這時就會生成一個實體類,該類包含了與表的字段對應(yīng)的屬性。對象關(guān)系設(shè)計器生成的對象模型如圖5所示。

        圖5 對象關(guān)系設(shè)計器生成的對象模型

        2) 數(shù)據(jù)訪問層實現(xiàn)

        創(chuàng)建了對象模型后,就可以操作數(shù)據(jù)庫了。針對模型層中的類,數(shù)據(jù)訪問層有一個對應(yīng)的數(shù)據(jù)訪問類。例如,針對Admin實體類,有一個對應(yīng)的adminServices類,用以處理有關(guān)Admin表的數(shù)據(jù)。創(chuàng)建的類結(jié)構(gòu)和Linq to SQL中的查詢?nèi)缦拢?/p>

        public class adminServices

        {private static mySchoolDataContext da=new mySchoolDataContext();

        public static Admin getAdmin(Admin admin)

        {try

        {var result = from newAdmin in da.Admin

        where newAdmin.LoginId == admin.LoginId

        select newAdmin;

        return result.Single();

        }

        catch (Exception ex)

        {throw ex;

        }}}

        3) 業(yè)務(wù)邏輯層實現(xiàn)

        業(yè)務(wù)邏輯層提供對各個業(yè)務(wù)的處理,接收表示層的數(shù)據(jù),通過個性化需求的處理,傳遞給數(shù)據(jù)層處理相應(yīng)事務(wù),針對項目應(yīng)用的業(yè)務(wù)規(guī)則、合法性校驗等進行處理。對于Admin類的業(yè)務(wù)處理,創(chuàng)建的adminManager類結(jié)構(gòu)如下:

        public class adminManager

        {public static bool getAdmin(Admin admin)

        {Admin newAdmin = adminServices.getAdmin(admin);

        if (newAdmin == null)

        {return false;

        }

        else if (newAdmin.LoginPwd == admin.LoginPwd)

        {return true;

        }

        else

        {return false;

        }}}

        4) 表示層實現(xiàn)

        表示層提供與用戶交互的界面,將數(shù)據(jù)依據(jù)不同的功能,傳遞給業(yè)務(wù)邏輯層中不同的對象。根據(jù)登錄功能操作的流程,在“登錄”按鈕的Click事件中,編寫如下的驗證方法:

        private void btLogin_Click(object sender, EventArgs e)

        {

        Admin admin = new Admin();

        admin.LoginId = this.txtLoginId.Text.Trim();

        admin.LoginPwd = this.txtLoginPwd.Text.Trim();

        if (adminManager.getAdmin(admin))

        {

        frmMainWindows fMM = new frmMainWindows();

        fMM.Show();

        }

        else

        {

        MessageBox.Show("賬號或者密碼錯誤,請重新輸入!");

        return;

        }}

        從上面的代碼中可以看到,并沒有出現(xiàn)具體的用戶驗證,而是通過調(diào)用業(yè)務(wù)邏輯層中的adminManager.getAdmin方法來實現(xiàn)的。總之,在表示層中處理的主要是與用戶交互相關(guān)的界面操作,而相應(yīng)的功能實現(xiàn)則需要通過調(diào)用業(yè)務(wù)邏輯層中的內(nèi)容來實現(xiàn)。

        4 結(jié)束語

        本文通過一個簡單實例, 描述了 LINQ 在三層架構(gòu)軟件開發(fā)模型下的應(yīng)用。在以往三層架構(gòu)系統(tǒng)開發(fā)過程中,軟件開發(fā)人員必須自己建立相應(yīng)的實體類并直接對數(shù)據(jù)庫操作,而基于LINQ的分層架構(gòu)直接與對象模型交互而無需直接與數(shù)據(jù)庫交互。對于不同的數(shù)據(jù)源,它都采用同樣的訪問方式。通過簡單易用的接口,它不僅大大提高了軟件開發(fā)的效率,而且可以安全地消除來自數(shù)據(jù)庫應(yīng)用程序的SQL注入攻擊,增強了應(yīng)用程序的安全性。

        參考文獻:

        [1] 劉乃琦,郭小芳 ASP.NET應(yīng)用開發(fā)與實踐[M].北京:人民郵電出版社,2013.

        [2] 程光華.Web應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2011.

        [3] 張聯(lián)鋒.陳文臣 ASP.NET3.5程序設(shè)計與項目實踐[M].北京:電子工業(yè)出版社,2011.

        本文以學(xué)生信息管理系統(tǒng)“登錄”模塊為例來說明基于LINQ 的 WINFORM系統(tǒng)三層架構(gòu)的具體實現(xiàn)。

        3.1 數(shù)據(jù)庫

        利用Sql Server2005創(chuàng)建名為mySchool的數(shù)據(jù)庫,該數(shù)據(jù)庫包含六張表,分別為管理員表(Admin)、學(xué)生表(Student)、教師表(Teacher)、年級表(Grade)、成績表(Result)和課程表(Subject)。在此僅以管理員表為例。管理員表結(jié)構(gòu)如表1所示:

        3.2 基于LINQ的三層架構(gòu)的搭建

        利用Visual Studio 2008創(chuàng)建一個WinForm項目,其步驟如下:

        1)新建表示層項目,選擇WinForm窗體,將其命名為mySchool。

        2)創(chuàng)建業(yè)務(wù)邏輯層項目,選擇類庫,將其命名為mySchool.BLL。

        3)創(chuàng)建數(shù)據(jù)訪問層項目,選擇類庫,將其命名為mySchool.DAL。

        4)創(chuàng)建對象模型項目,選擇類庫,將其命名為mySchool.DataLinq。

        5)添加層之間的依賴關(guān)系。表示層添加對邏輯處理層、 DataLinq的項目引用。邏輯處理層添加對數(shù)據(jù)訪問層和 DataLinq的項目引用。數(shù)據(jù)訪問層添加對System.Data.Linq和DataLinq的項目引用;基于Linq的三層架構(gòu)如圖4所示。

        3.3 基于LINQ的三層架構(gòu)功能的實現(xiàn)

        1) 創(chuàng)建對象模型

        在DataLinq層添加LINQ to SQL類,并命名為mySchool.dbml。然后利用對象關(guān)系設(shè)計器,從數(shù)據(jù)庫中,把表拖動到對象關(guān)系設(shè)計器的界面上,這時就會生成一個實體類,該類包含了與表的字段對應(yīng)的屬性。對象關(guān)系設(shè)計器生成的對象模型如圖5所示。

        圖5 對象關(guān)系設(shè)計器生成的對象模型

        2) 數(shù)據(jù)訪問層實現(xiàn)

        創(chuàng)建了對象模型后,就可以操作數(shù)據(jù)庫了。針對模型層中的類,數(shù)據(jù)訪問層有一個對應(yīng)的數(shù)據(jù)訪問類。例如,針對Admin實體類,有一個對應(yīng)的adminServices類,用以處理有關(guān)Admin表的數(shù)據(jù)。創(chuàng)建的類結(jié)構(gòu)和Linq to SQL中的查詢?nèi)缦拢?/p>

        public class adminServices

        {private static mySchoolDataContext da=new mySchoolDataContext();

        public static Admin getAdmin(Admin admin)

        {try

        {var result = from newAdmin in da.Admin

        where newAdmin.LoginId == admin.LoginId

        select newAdmin;

        return result.Single();

        }

        catch (Exception ex)

        {throw ex;

        }}}

        3) 業(yè)務(wù)邏輯層實現(xiàn)

        業(yè)務(wù)邏輯層提供對各個業(yè)務(wù)的處理,接收表示層的數(shù)據(jù),通過個性化需求的處理,傳遞給數(shù)據(jù)層處理相應(yīng)事務(wù),針對項目應(yīng)用的業(yè)務(wù)規(guī)則、合法性校驗等進行處理。對于Admin類的業(yè)務(wù)處理,創(chuàng)建的adminManager類結(jié)構(gòu)如下:

        public class adminManager

        {public static bool getAdmin(Admin admin)

        {Admin newAdmin = adminServices.getAdmin(admin);

        if (newAdmin == null)

        {return false;

        }

        else if (newAdmin.LoginPwd == admin.LoginPwd)

        {return true;

        }

        else

        {return false;

        }}}

        4) 表示層實現(xiàn)

        表示層提供與用戶交互的界面,將數(shù)據(jù)依據(jù)不同的功能,傳遞給業(yè)務(wù)邏輯層中不同的對象。根據(jù)登錄功能操作的流程,在“登錄”按鈕的Click事件中,編寫如下的驗證方法:

        private void btLogin_Click(object sender, EventArgs e)

        {

        Admin admin = new Admin();

        admin.LoginId = this.txtLoginId.Text.Trim();

        admin.LoginPwd = this.txtLoginPwd.Text.Trim();

        if (adminManager.getAdmin(admin))

        {

        frmMainWindows fMM = new frmMainWindows();

        fMM.Show();

        }

        else

        {

        MessageBox.Show("賬號或者密碼錯誤,請重新輸入!");

        return;

        }}

        從上面的代碼中可以看到,并沒有出現(xiàn)具體的用戶驗證,而是通過調(diào)用業(yè)務(wù)邏輯層中的adminManager.getAdmin方法來實現(xiàn)的??傊?,在表示層中處理的主要是與用戶交互相關(guān)的界面操作,而相應(yīng)的功能實現(xiàn)則需要通過調(diào)用業(yè)務(wù)邏輯層中的內(nèi)容來實現(xiàn)。

        4 結(jié)束語

        本文通過一個簡單實例, 描述了 LINQ 在三層架構(gòu)軟件開發(fā)模型下的應(yīng)用。在以往三層架構(gòu)系統(tǒng)開發(fā)過程中,軟件開發(fā)人員必須自己建立相應(yīng)的實體類并直接對數(shù)據(jù)庫操作,而基于LINQ的分層架構(gòu)直接與對象模型交互而無需直接與數(shù)據(jù)庫交互。對于不同的數(shù)據(jù)源,它都采用同樣的訪問方式。通過簡單易用的接口,它不僅大大提高了軟件開發(fā)的效率,而且可以安全地消除來自數(shù)據(jù)庫應(yīng)用程序的SQL注入攻擊,增強了應(yīng)用程序的安全性。

        參考文獻:

        [1] 劉乃琦,郭小芳 ASP.NET應(yīng)用開發(fā)與實踐[M].北京:人民郵電出版社,2013.

        [2] 程光華.Web應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2011.

        [3] 張聯(lián)鋒.陳文臣 ASP.NET3.5程序設(shè)計與項目實踐[M].北京:電子工業(yè)出版社,2011.

        本文以學(xué)生信息管理系統(tǒng)“登錄”模塊為例來說明基于LINQ 的 WINFORM系統(tǒng)三層架構(gòu)的具體實現(xiàn)。

        3.1 數(shù)據(jù)庫

        利用Sql Server2005創(chuàng)建名為mySchool的數(shù)據(jù)庫,該數(shù)據(jù)庫包含六張表,分別為管理員表(Admin)、學(xué)生表(Student)、教師表(Teacher)、年級表(Grade)、成績表(Result)和課程表(Subject)。在此僅以管理員表為例。管理員表結(jié)構(gòu)如表1所示:

        3.2 基于LINQ的三層架構(gòu)的搭建

        利用Visual Studio 2008創(chuàng)建一個WinForm項目,其步驟如下:

        1)新建表示層項目,選擇WinForm窗體,將其命名為mySchool。

        2)創(chuàng)建業(yè)務(wù)邏輯層項目,選擇類庫,將其命名為mySchool.BLL。

        3)創(chuàng)建數(shù)據(jù)訪問層項目,選擇類庫,將其命名為mySchool.DAL。

        4)創(chuàng)建對象模型項目,選擇類庫,將其命名為mySchool.DataLinq。

        5)添加層之間的依賴關(guān)系。表示層添加對邏輯處理層、 DataLinq的項目引用。邏輯處理層添加對數(shù)據(jù)訪問層和 DataLinq的項目引用。數(shù)據(jù)訪問層添加對System.Data.Linq和DataLinq的項目引用;基于Linq的三層架構(gòu)如圖4所示。

        3.3 基于LINQ的三層架構(gòu)功能的實現(xiàn)

        1) 創(chuàng)建對象模型

        在DataLinq層添加LINQ to SQL類,并命名為mySchool.dbml。然后利用對象關(guān)系設(shè)計器,從數(shù)據(jù)庫中,把表拖動到對象關(guān)系設(shè)計器的界面上,這時就會生成一個實體類,該類包含了與表的字段對應(yīng)的屬性。對象關(guān)系設(shè)計器生成的對象模型如圖5所示。

        圖5 對象關(guān)系設(shè)計器生成的對象模型

        2) 數(shù)據(jù)訪問層實現(xiàn)

        創(chuàng)建了對象模型后,就可以操作數(shù)據(jù)庫了。針對模型層中的類,數(shù)據(jù)訪問層有一個對應(yīng)的數(shù)據(jù)訪問類。例如,針對Admin實體類,有一個對應(yīng)的adminServices類,用以處理有關(guān)Admin表的數(shù)據(jù)。創(chuàng)建的類結(jié)構(gòu)和Linq to SQL中的查詢?nèi)缦拢?/p>

        public class adminServices

        {private static mySchoolDataContext da=new mySchoolDataContext();

        public static Admin getAdmin(Admin admin)

        {try

        {var result = from newAdmin in da.Admin

        where newAdmin.LoginId == admin.LoginId

        select newAdmin;

        return result.Single();

        }

        catch (Exception ex)

        {throw ex;

        }}}

        3) 業(yè)務(wù)邏輯層實現(xiàn)

        業(yè)務(wù)邏輯層提供對各個業(yè)務(wù)的處理,接收表示層的數(shù)據(jù),通過個性化需求的處理,傳遞給數(shù)據(jù)層處理相應(yīng)事務(wù),針對項目應(yīng)用的業(yè)務(wù)規(guī)則、合法性校驗等進行處理。對于Admin類的業(yè)務(wù)處理,創(chuàng)建的adminManager類結(jié)構(gòu)如下:

        public class adminManager

        {public static bool getAdmin(Admin admin)

        {Admin newAdmin = adminServices.getAdmin(admin);

        if (newAdmin == null)

        {return false;

        }

        else if (newAdmin.LoginPwd == admin.LoginPwd)

        {return true;

        }

        else

        {return false;

        }}}

        4) 表示層實現(xiàn)

        表示層提供與用戶交互的界面,將數(shù)據(jù)依據(jù)不同的功能,傳遞給業(yè)務(wù)邏輯層中不同的對象。根據(jù)登錄功能操作的流程,在“登錄”按鈕的Click事件中,編寫如下的驗證方法:

        private void btLogin_Click(object sender, EventArgs e)

        {

        Admin admin = new Admin();

        admin.LoginId = this.txtLoginId.Text.Trim();

        admin.LoginPwd = this.txtLoginPwd.Text.Trim();

        if (adminManager.getAdmin(admin))

        {

        frmMainWindows fMM = new frmMainWindows();

        fMM.Show();

        }

        else

        {

        MessageBox.Show("賬號或者密碼錯誤,請重新輸入!");

        return;

        }}

        從上面的代碼中可以看到,并沒有出現(xiàn)具體的用戶驗證,而是通過調(diào)用業(yè)務(wù)邏輯層中的adminManager.getAdmin方法來實現(xiàn)的??傊?,在表示層中處理的主要是與用戶交互相關(guān)的界面操作,而相應(yīng)的功能實現(xiàn)則需要通過調(diào)用業(yè)務(wù)邏輯層中的內(nèi)容來實現(xiàn)。

        4 結(jié)束語

        本文通過一個簡單實例, 描述了 LINQ 在三層架構(gòu)軟件開發(fā)模型下的應(yīng)用。在以往三層架構(gòu)系統(tǒng)開發(fā)過程中,軟件開發(fā)人員必須自己建立相應(yīng)的實體類并直接對數(shù)據(jù)庫操作,而基于LINQ的分層架構(gòu)直接與對象模型交互而無需直接與數(shù)據(jù)庫交互。對于不同的數(shù)據(jù)源,它都采用同樣的訪問方式。通過簡單易用的接口,它不僅大大提高了軟件開發(fā)的效率,而且可以安全地消除來自數(shù)據(jù)庫應(yīng)用程序的SQL注入攻擊,增強了應(yīng)用程序的安全性。

        參考文獻:

        [1] 劉乃琦,郭小芳 ASP.NET應(yīng)用開發(fā)與實踐[M].北京:人民郵電出版社,2013.

        [2] 程光華.Web應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2011.

        [3] 張聯(lián)鋒.陳文臣 ASP.NET3.5程序設(shè)計與項目實踐[M].北京:電子工業(yè)出版社,2011.

        猜你喜歡
        三層架構(gòu)數(shù)據(jù)模型
        面板數(shù)據(jù)模型截面相關(guān)檢驗方法綜述
        加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
        電子測試(2017年12期)2017-12-18 06:35:36
        基于“三層架構(gòu)”理論的教學(xué)設(shè)計案例分析
        良好的信息系統(tǒng)體系結(jié)構(gòu)模式對網(wǎng)絡(luò)安全監(jiān)察與維護技術(shù)的方法的探討
        ASP.NET三層架構(gòu)體系分析與應(yīng)用
        基于SSH 的實驗室管理系統(tǒng)設(shè)計與實現(xiàn)
        面向集成管理的出版原圖數(shù)據(jù)模型
        一種顧及級聯(lián)時空變化描述的土地利用變更數(shù)據(jù)模型
        免费人成网站在线观看欧美| 亚洲欧美综合在线天堂| 又爽又黄禁片视频1000免费| 国产内射合集颜射| 91综合久久婷婷久久| 青青青国产免A在线观看| 在线无码免费看黄网站| 按摩师玩弄少妇到高潮hd| 精品国产一区二区三区毛片| 国产在线观看免费不卡视频| 日韩亚洲在线观看视频| 精品亚洲一区二区区别在线观看| www国产亚洲精品| 免费欧洲毛片a级视频老妇女 | 在线观看国产视频午夜| 国产精品白浆在线观看免费| 日本乱偷人妻中文字幕| 成人亚洲性情网站www在线观看| 色yeye在线观看| 久久久免费精品国产色夜| 日本一区二区三区高清视| 亚洲精品有码日本久久久| 天天躁夜夜躁狠狠躁婷婷| 亚洲精品少妇30p| 美女把尿囗扒开让男人添| 久久人妻公开中文字幕| 日韩最新在线不卡av| av天堂手机一区在线| 一区二区在线观看日本视频| 亚洲第一狼人天堂网亚洲av| 国产精品无码aⅴ嫩草| 国产熟妇人妻精品一区二区动漫| 中文字幕精品久久久久人妻红杏1 丰满人妻妇伦又伦精品国产 | 国产精品女同久久久久久| 水蜜桃视频在线观看入口 | 国产伦精品一区二区三区妓女| 久久欧美与黑人双交男男| 狠狠亚洲超碰狼人久久老人| 亚洲国产av午夜福利精品一区| 青青草亚洲视频社区在线播放观看| 免费大黄网站|