您好,登錄后才能下訂單哦!
這篇文章主要講解了“.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ù)庫的非查詢的操作
///
///
///
///
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é)果值
///
///
///
///
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í)行查詢操作
///
///
///
///
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)注!
免責(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)容。