新聞中心
.Net Framework中有多特殊的功能值得我們?nèi)ド钊氲难芯俊1热缃裉煳覀兿虼蠹医榻B的范式以及.Net Framework托管等等。大家可以通過本文介紹的內(nèi)容對.Net Framework有一個深入的理解程度。#t#

成都創(chuàng)新互聯(lián)服務(wù)項目包括自貢網(wǎng)站建設(shè)、自貢網(wǎng)站制作、自貢網(wǎng)頁制作以及自貢網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,自貢網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到自貢省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
昨天一家外包公司的技術(shù)人員給我打電話,問了一些數(shù)據(jù)庫的知識,他問我知道什么叫范式嗎?我說不知道。他又問我你知道數(shù)據(jù)庫的底層操作嗎?我說不知道。當時他問范式我確實是沒反映過來,他問數(shù)據(jù)庫的底層操作我是不知道他指的底層操作是什么東西,后來上網(wǎng)查查資料,基本對底層操作有了一個了解。
一般來說,關(guān)系型數(shù)據(jù)庫的范式分為***至第六范式,我們平常用到的也就是***、第二、第三范式。關(guān)系型數(shù)據(jù)庫必需滿足***范式,否則就不是關(guān)系型數(shù)據(jù)庫。
***范式指的就是一條記錄應(yīng)該是一行,而不是放到一列,比如公司信息有公司名稱、公司地址、聯(lián)系電話、傳真等,這些信息應(yīng)該都放到一行,而不是在一列,這就是***范式。
第二范式指的是一條記錄應(yīng)該有一個唯一區(qū)別的字段,也就是主鍵了,我們在數(shù)據(jù)庫常的主鍵有自增量、GUID等,主鍵也是索引鍵。
第三范式實際上就是關(guān)系庫中用得最多的了,一對多,多對多都屬于第三范式范疇,這樣可能不太好理解。我們這么講吧,比如說產(chǎn)品的信息中有一個與廠商相關(guān)的信息,這個廠商的信息包括名稱、地址、電話等,那么我們就應(yīng)該將廠商的信息獨立出來作為一個表,在產(chǎn)品信息表中只一個索引與廠商表的主鍵相匹配。
一般來說,我們在建表的過程中,第二范式與第三范式用得最多,***范式幾乎很少用,因為沒有主鍵的記錄幾乎是沒有意義的。但我們在建庫的時候是否一定要合乎某一范式呢?我給的答案是No,建庫一定要符合實際情況,而不是死搬硬套建庫要符合第三范式這個原則。第三范式確實有他的好處,如減少數(shù)據(jù)冗余,但我們也不能忽略第三范式給我們帶來的麻煩,如更加復(fù)雜的Sql語句,我們在查詢的時候需要用到聯(lián)接查詢或者子查詢才能得到結(jié)果,這樣在使用.Net框架開發(fā)中并不太好處理;又如多表查詢會減慢速度。所以我們在建庫的時候應(yīng)該根據(jù)實際情況來確定是用第三范式還是第二范式,像我先提到的廠商信息與產(chǎn)品信息,就一定要使用第三范式。
關(guān)于第二個問題,就是數(shù)據(jù)庫的底層操作,我當時不明白他說的數(shù)據(jù)庫底層是什么東西,后來到網(wǎng)上一查,數(shù)據(jù)庫的底層就是數(shù)據(jù)庫的一些系統(tǒng)表、插入及更新數(shù)據(jù)等。
Sql Server在建一個庫的時候,每一個庫都會有一些系統(tǒng)表,如Sys_Objects、Sys_Columus等,這些表是干嘛的呢,這些表是描述你所建表、存儲過程、觸發(fā)、索引等的信息的,也就是說,你所有建立的表都是保存在系統(tǒng)表中,例如Sys_Columus保存表的列信息。
另一個是數(shù)據(jù)庫的插入數(shù)據(jù)方式,當數(shù)據(jù)在插入時,會有一條臨時數(shù)據(jù)(inserted);在更新數(shù)據(jù)時,會先刪除原有的記錄,將新的記錄再插進去;而刪除數(shù)據(jù)就是直接刪除了。所以觸發(fā)時,數(shù)據(jù)庫的動作只有inserted和updated兩種,根據(jù)這兩種特性,在寫觸發(fā)時很有用的。
還有第三個問題,不記得是哪家公司問我了,是關(guān)于.Net Framework托管的問題,我當是以為是回調(diào)機制的托管,因為在C#中是有一個托管的,但他實際問的是.Net的代碼托管。
要想了解.Net Framework托管,我們需要從.Net的工作機制說起,.Net實際是上將你編寫的代碼編譯成中間語言(MSIL),也就是說不管你使用C#還是.Net,都會編譯成為一個MSIL,而不是本地機器碼(根據(jù)特定的操作系統(tǒng)與特定的硬件環(huán)境生成的二進制代碼)。
在運行的程序的時候,首先必需啟動.Net Framework(隨操作系統(tǒng)啟動的一個服務(wù))來運行你的程序,也就是說.Net Framework是一個環(huán)境,你的程序不是運行在操作系統(tǒng)中,而是運行在.Net Framework中。.Net Framework會把你的程序編譯成與本地機器相符合的二進制碼,叫做Just-in-time(JIT,運行時編譯),運行時編譯是一種按需編譯的機制。
這個過程就是.Net Framework托管了,在你的程序被.Net Framework托管的時候,.Net Framework會為你的程序提供垃圾回收機制,直到運行的程序生命周期結(jié)束。***,說一句,其實概念性的東西有時候還是很有用,特別是你在找工作的時候,因為他們一般會考這些,所以要多記一些術(shù)語、概念、名詞,呵呵
網(wǎng)站名稱:.NetFramework托管問題詳解
本文URL:http://www.dlmjj.cn/article/dppsdsp.html


咨詢
建站咨詢
