溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

.NET的架構(gòu)有哪些

發(fā)布時間:2021-09-13 16:37:32 來源:億速云 閱讀:186 作者:chen 欄目:編程語言

這篇文章主要講解了“.NET的架構(gòu)有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“.NET的架構(gòu)有哪些”吧!

  .NET有哪些架構(gòu)

  1)首先還是先來介紹一下實(shí)體層吧,就是我們通常所說的Entity

  實(shí)體就是我們在開發(fā)項目過程中所要涉及的一些對象。把這些所要涉及的對象(如:新聞名稱,新聞上傳時間,供稿人,上傳文件的名稱等),都抽象成一個類。使用封裝字段方法,我們可以在視圖層通(主要是視圖層)過實(shí)例化對象的方法,來給我們的對象的屬性賦值。

  簡單的看一段代碼吧,可能會能夠更加的清楚,明白

  publicclassNewsModel

  {

  //新聞編號

  privateintnNewsId;

  publicintNNewsId

  {

  get{returnnNewsId;}

  set{nNewsId=value;}

  }

  //新聞名稱

  privatestringstrNewsName;

  publicstringStrNewsName

  {

  get{returnstrNewsName;}

  set{strNewsName=value;}

  }

  }

  這里的NewsModel就是一個關(guān)于新聞的實(shí)體類,其中聲明了兩個private的屬性字段(一定要是private,防止非法賦值),使用public的構(gòu)造函數(shù),可以在外部給字段賦值。

  下面的就是在視圖層來實(shí)例化對象,根據(jù)需要來給字段賦值,看下面的一段代碼:

  NewsModelnewModel=newNewsModel();

  newModel.StrNewsName=this.TextBox1.Text;

  當(dāng)然了,這僅僅是一段代碼,其中并沒有給字段nNewsId賦值,因?yàn)槲野阉鳛閿?shù)據(jù)庫的id地段,已經(jīng)設(shè)置成自動增長。這樣,就完成了視圖層對實(shí)體層的調(diào)用。

  .NET有哪些架構(gòu)

  2)數(shù)據(jù)庫訪問層

  數(shù)據(jù)庫庫訪問層,顧名思義,就是主要來完成對數(shù)據(jù)庫的訪問,等一系類的對數(shù)據(jù)庫操作的類。為什么要單獨(dú)的把對數(shù)據(jù)庫的操作抽象成一個單獨(dú)的類,我個人理解是因?yàn)樵谡麄€項目的開發(fā)過程中,不僅僅需要一次訪問數(shù)據(jù)庫,而是需要多次,如果每次都編寫數(shù)據(jù)庫訪問代碼的話,會增加程序員的個人工作量,而且對于代碼的易用性和簡潔性來說肯定是非常糟糕的。當(dāng)然來可能還有其它的一些優(yōu)點(diǎn),我暫時還沒有發(fā)現(xiàn)。

  既然是對數(shù)據(jù)庫的操作類,而且對數(shù)據(jù)庫的操作,無非就是四種:增刪改查。所以一個能提供增刪改查的通用類是必不可少的。這就是我們經(jīng)常所說的,通用數(shù)據(jù)庫訪問類(很多的程序員都喜歡把這個類命名為SqlHelper,既然是名字,都是可以隨意起的,只要不違反C#語法命名規(guī)范,當(dāng)然這樣命名也是有好處,就是可以使其他程序員根據(jù)類的名稱,大概判斷出這個類是要干什么的)。

  當(dāng)然了,我這次做自己項目的時候,所寫的數(shù)據(jù)庫訪問類就沒有我上次看周金橋老師的書,然后模仿寫的數(shù)據(jù)庫訪問類那么的復(fù)雜了(《【ASP.NET開發(fā)】ASP.NET對SQLServer的通用數(shù)據(jù)庫訪問類》)。當(dāng)然了,我這里的數(shù)據(jù)庫訪問類,主要還是為了簡介,和易用,只要滿足我自己當(dāng)前項目的需要就可以了,不是每做一個項目,都要寫一個功能全面的數(shù)據(jù)庫訪問類。

  代碼如下,請大家參考,更喜歡哪個訪問類,自己可以根據(jù)自己口味,或者需要,直接用也可以:

  ///

  ///創(chuàng)建一個SqlHelper的數(shù)據(jù)庫訪問通用類,完成對數(shù)據(jù)庫的所有操作

  ///

  publicclassSqlHelper

  {

  //定義數(shù)據(jù)庫的連接字符串

  privatestaticreadonlystringconnectionString=ConfigurationManager.ConnectionStrings["strConnectionString"].ConnectionString;

  ///

  ///創(chuàng)建方法,完成對數(shù)據(jù)庫的非查詢的操作

  ///

  ///sql語句

  ///傳入的參數(shù)

  ///

  publicstaticintExecuteNonQuery(stringsql,paramsSqlParameter[]parameters)

  {

  using(SqlConnectioncon=newSqlConnection(connectionString))

  {

  con.Open();

  using(SqlCommandcmd=con.CreateCommand())

  {

  cmd.CommandText=sql;

  cmd.Parameters.AddRange(parameters);

  stringstr=sql;

  returncmd.ExecuteNonQuery();

  }

  }

  }

  ///

  ///完成查詢的結(jié)果值

  ///

  ///sql語句

  ///傳入的參數(shù)數(shù)組

  ///

  publicstaticintExecuteScalar(stringsql,paramsSqlParameter[]parameters)

  {

  using(SqlConnectioncon=newSqlConnection(connectionString))

  {

  con.Open();

  using(SqlCommandcmd=con.CreateCommand())

  {

  cmd.CommandText=sql;

  cmd.Parameters.AddRange(parameters);

  returnConvert.ToInt32(cmd.ExecuteScalar());

  }

  }

  }

  ///

  ///主要執(zhí)行查詢操作

  ///

  ///執(zhí)行的sql語句

  ///參數(shù)數(shù)組

  ///

  publicstaticDataTableExecuteDataTable(stringsql,paramsSqlParameter[]parameters)

  {

  using(SqlConnectioncon=newSqlConnection(connectionString))

  {

  con.Open();

  using(SqlCommandcmd=con.CreateCommand())

  {

  cmd.CommandText=sql;

  cmd.Parameters.AddRange(parameters);

  SqlDataAdapteradapter=newSqlDataAdapter(cmd);

  DataTabledt=newDataTable();

  adapter.Fill(dt);

  returndt;

  }

感謝各位的閱讀,以上就是“.NET的架構(gòu)有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對.NET的架構(gòu)有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI