Asp.net基礎(chǔ)知識(shí)掃盲篇
asp.net基礎(chǔ)知識(shí)篇-中文掃盲篇
1、.NET是什么?
.Net全稱.NET Framework是一個(gè)開發(fā)和運(yùn)行環(huán)境,
該戰(zhàn)略是微軟的一項(xiàng)全新創(chuàng)意,
它將使得“互聯(lián)網(wǎng)行業(yè)進(jìn)入一個(gè)更先進(jìn)的階段,
.NET不是一種編程語言. 簡單說就是一組類庫框架,
.NET開發(fā)支持C#、VB.NET、J#、Jsript和Managed C++等。
C#是.NET Framework框架支持的一種主力開發(fā)語言,
可用于開發(fā)ASP.NET網(wǎng)站, Windows 程序,控制臺(tái)程序,甚至于手機(jī)軟件
2、ASP.NET、.NET和C#的關(guān)系是怎樣的?
.NET 分成兩個(gè)方面:
(1)WinForm
(2)WebForm
ASP.NET就是屬于WebForm,也就是平時(shí)說的B/S模式的開發(fā)。
而WinForm就是屬于C/S模式。
.NET有很多種語言組成,比如C#、 VB.NET、J#、Jsript、Managed C++
但是都是運(yùn)行在.NET FrameWork Run Time底下的。
Asp.NET 可以用C#或VB.NET來開發(fā)。
編譯后形成CLR,通過服務(wù)器的IIS+.NET FrameWork再次編譯來運(yùn)行。
C#是開發(fā)語言.
總之,ASP.NET是.NET Framework環(huán)境下的動(dòng)態(tài)網(wǎng)頁編程技術(shù),
.NET Framework是.NET的基礎(chǔ)框架,
Visual Studio.NET是用于開發(fā)軟件的一個(gè)集成環(huán)境(IDE)。
當(dāng)然后續(xù)出來了Windows Phone/WPF等。
3、.NET開發(fā)是用什么語言?
.NET聲稱支持市面上20多種語言,
但目前只有微軟官方發(fā)布的C#,VB.NET,J#, Jsript和Managed C++
Tips:C#是主流哦。
4、為什么大部分用C#語言開發(fā).NET?
C#是Microsoft公司設(shè)計(jì)的一種編程語言,
C#(讀做‘Csharp')。它基于C/C++,是面向?qū)ο蟮摹?/p>
沒有指針,有垃圾回收機(jī)制,會(huì)自動(dòng)釋放內(nèi)存空間。
學(xué)習(xí)C#并不必須有C語言的基礎(chǔ),不過,如果你學(xué)過C語言,
那會(huì)事半功倍的,因?yàn)樗麄冎g有很多語法是一樣的。
C#支持的基本類型和C++很相似,包括int, long,
float, double, char, string, arrays, structs和 classes等。
5、ASP.NET環(huán)境的安裝
(1)、其實(shí)現(xiàn)在一般的電腦都可以安裝,至于操作系統(tǒng)目前
.NET支持的平臺(tái)有Windows,至于Linux和Unix的支持正在開發(fā)中.
(2)、運(yùn)行環(huán)境下載,因?yàn)槭窍蛳录嫒?,所以可以下載最新的Framework框架
.NET Framework 3.5下載地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=21
.NET Framework 4.0下載地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=17718
.NET Framework 4.5下載地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=30653
.NET Framework 4.6.2下載地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=53345
(3)、安裝過程
首選安裝MDAC,再安裝SDK,SDK的安裝時(shí)間比較長要耐心等待。
(4)、試運(yùn)行
安裝完成后,試著運(yùn)行一個(gè)簡單的ASP.NET編寫的小程序,以便確定安裝是否成功。
6、Bin文件夾下的DLL可以做什么?
(1)它是自動(dòng)生成的,不用自己添加。
(2)作用:bin文件夾中包含項(xiàng)目中所用到的所有引用的類庫,支持服務(wù)器等內(nèi)容DLL的全稱是Dynamic Link Library, 中文叫做“動(dòng)態(tài)鏈接文件”。
7、.NET主要的優(yōu)點(diǎn)有哪些?
.NET的主要優(yōu)點(diǎn)有跨語言,跨平臺(tái),安全,以及對(duì)開放互聯(lián)網(wǎng)標(biāo)準(zhǔn)和協(xié)議的支持.
.NET支持多種語言的互操作,即在一種語言下開發(fā)的組件,
可在另一組件下通過面向?qū)ο蟮睦^承而得以重用.
.NET通過將各語言先編譯成中間語言(IL),
然后再執(zhí)行時(shí)用即時(shí)(Just In Time)編譯器將之編譯成本地平臺(tái)代碼來實(shí)現(xiàn)異構(gòu)平臺(tái)下對(duì)象的互操作,
.NET通過公共語言運(yùn)行庫CLR(Common Language Runtime)來實(shí)現(xiàn)資源對(duì)象,類型的安全.
.NET通過對(duì)HTTP,XML等Internet標(biāo)準(zhǔn)的支持提供在異構(gòu)網(wǎng)絡(luò)環(huán)境下獲取遠(yuǎn)程服務(wù),
連接遠(yuǎn)程設(shè)備,交互遠(yuǎn)程應(yīng)用的編程界面
8、ASP.NET和ASP的區(qū)別?
ASP.NET和ASP的最大區(qū)別在于編程思維的轉(zhuǎn)換以及功能的增強(qiáng)。
ASP使用VB/JS這樣的弱類型、面向結(jié)構(gòu)的腳本語言混合html來編程,
而非面向?qū)ο?,這就明顯產(chǎn)生以下幾個(gè)問題:
1、代碼邏輯混亂,難于管理。
2、代碼的可重用性差:由于是面向結(jié)構(gòu)的編程方式,并且混合html,
所以可能頁面原型修改一點(diǎn),整個(gè)程序都需要修改,代碼重用性差。
3、弱類型造成潛在的出錯(cuò)可能。
以上是ASP語言本身的弱點(diǎn),在功能方面ASP同樣存在問題:
第一是功能太弱,一些底層操作只能通過組件來完成
第二缺乏完善的糾錯(cuò)/調(diào)試功能
ASP.NET理論上可以使用任何編程語言包括C#,VB.NET、JS、、J#、Managed C++等等,
最合適的編程語言還是MS為.NET Frmaework專門推出的C#
優(yōu)點(diǎn)如下:
(1)是面向?qū)ο蟮木幊陶Z言,簡單易學(xué)。
(2)具有面向?qū)ο缶幊陶Z言的一切特性,比如封裝性、繼承性、多態(tài)性等等,
封裝性使得代碼邏輯清晰,并且應(yīng)用到ASP.NET上就可以使業(yè)務(wù)邏輯和Html頁面分離;
繼承性和多態(tài)性使得代碼的可重用性大大提高
(3)C#還提供了完善的調(diào)試/糾錯(cuò)體系。
9、做項(xiàng)目時(shí)數(shù)據(jù)庫類型的選擇?
當(dāng)前流行的數(shù)據(jù)庫有:Sql server,MySql,Oracle,DB2。
VS項(xiàng)目中大多是選擇以下四種:
Sql2000簡單實(shí)用,功能完全夠?qū)W習(xí)時(shí)使用,可通過命令行快速打開;
Sql2005功能全面,但安裝麻煩,體積大,剛打開數(shù)據(jù)庫的時(shí)候比較慢,啟動(dòng)之后就快了許多;
Sql2008新出的數(shù)據(jù)庫,功能肯定比前兩者強(qiáng)大,建議使用Sql2005的用戶升級(jí) 到Sql2008;
ACCESS體積小、部署方便(不用啟動(dòng)服務(wù)等)使用方便簡單.
10、ASP.NET中經(jīng)常使用的控件有哪些?
Label控件用來顯示文本的控件。Label控件不能接收鼠標(biāo)或是鍵盤輸入。
TextBox控件來顯示和更新任務(wù)數(shù)據(jù),用戶輸入內(nèi)容。
Button按鈕控件當(dāng)用戶單擊或者點(diǎn)擊一個(gè)按鈕時(shí),即會(huì)觸發(fā)Click事件
ListBox和ComboBox控件外觀不同,但功能極為相似,允許用戶進(jìn)行選擇,不允許輸入文本。
11、.net開發(fā)工具都有哪些?
現(xiàn)在主流是Visual Studio 2012/2013/2014/2015,
VS提供了下列幾個(gè)版本:標(biāo)準(zhǔn)版、專業(yè)版、Tools for Office 和 Team System 版。
還有C# builder只應(yīng)用于大型企業(yè)開發(fā),
支持一些微軟的vs.net都不支持的企業(yè)級(jí)功能。
還有一款免費(fèi)的開發(fā)工具web matrix,這款自動(dòng)感知能力弱到幾乎沒有,
適合開發(fā)頁面和代碼不分開的那種頁面,可以提高獨(dú)立寫代碼的水平。
不過他帶有.net類庫瀏覽器,以及一個(gè)數(shù)據(jù)庫開發(fā)的控件,也算是有些特點(diǎn)。
入門初學(xué)者VS.NET會(huì)很容易上手,
當(dāng)然,還有就是高手只用記事本咯!
12、為什么.NET程序第一次運(yùn)行比較慢?
aspx頁面在運(yùn)行時(shí),第一次訪問時(shí)要進(jìn)行編譯。
當(dāng)你再次運(yùn)行時(shí),由于緩存機(jī)制,速度就會(huì)正常了。
13、C#的命名規(guī)范
主要有Pascal和Camel兩種
Pascal:單詞的首字母大寫,如ProductType;
Camel:首個(gè)單詞的首字母小寫,其余單詞的首字母大寫,如productType)
以下是一些常用的C#成員及其推薦命名方法:
類class:Pascal
枚舉類型enum:Pascal記住,是以Pascal命名,切勿包含Enum
委托delegate:Pascal以Pascal命名,不以任何特殊字符串區(qū)別于類名、函數(shù)名
接口interface:Pascal注:總是以"I"前綴開始,后接Pascal命名
方法function: Pascal
命名空間namespace: Pascal比如:usingExcelQuicker.Framework
屬性:Pascal
參數(shù):Camel 首字母小寫
常量const: Camel 字母全部大寫
局部變量:Camel 聲明變量是以str開頭
數(shù)據(jù)成員:Camel 以m開頭+Pascal命名規(guī)則,如mProductType(m意味member)
14、如何判斷一個(gè)程序是否開源或者是有源文件?
都有對(duì)應(yīng)的.CS文或VB文件
有項(xiàng)目文件和解決方案文件
BIN文件下所有的dll文件或是引用的組件有對(duì)應(yīng)的源碼
asp.net基礎(chǔ)知識(shí)篇-技術(shù)問答
1.簡述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。
答:private : 私有成員, 在類的內(nèi)部才可以訪問。
protected : 保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。
internal: 在同一程序集(命名空間)內(nèi)可以訪問。
2 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
答:1.使用QueryString, 如…?id=1; response. Redirect()…
2.使用Session變量
3.使用Server.Transfer
4.使用Cookie
5.使用Application
3.C#中的委托是什么?事件是不是一種委托?
答:委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。
委托可以理解為指向一個(gè)函數(shù)的引用。
事件是一種特殊的委托
4.override與重載的區(qū)別
答:重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要
Override 是在子類對(duì)基類中函數(shù)的重寫。為了適應(yīng)需要。
5.如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理?
答 : this.Server.Transfer, Response. Redirect()—QueryString
6.描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引?
答:不是??梢杂萌我忸愋?。
7.用.net做B/S結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?
答:一般為3層:數(shù)據(jù)訪問層,業(yè)務(wù)層,表示層。
數(shù)據(jù)訪問層對(duì)數(shù)據(jù)庫進(jìn)行增刪查改。
業(yè)務(wù)層一般分為二層,業(yè)務(wù)表觀層實(shí)現(xiàn)與表示層的溝通,業(yè)務(wù)規(guī)則層實(shí)現(xiàn)用戶密碼的安全等。
表示層為了與用戶交互例如用戶添加表單。
優(yōu)點(diǎn): 分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。
缺點(diǎn): 增加成本。
8.什么叫應(yīng)用程序域?
答:應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。
9.CTS、CLS、CLR分別作何解釋?
答:CTS是通用類型系統(tǒng)(Common Type System)
CLR是公共語言運(yùn)行時(shí)(Common language runtime)
CLS是公共語言定義(Common Language Specification)
10.什么是裝箱和拆箱?
答:從值類型接口轉(zhuǎn)換到引用類型裝箱。從引用類型轉(zhuǎn)換到值類型拆箱。
11.什么是受管制的代碼?
答:unsafe:非托管代碼。不經(jīng)過CLR運(yùn)行。
12.什么是強(qiáng)類型系統(tǒng)?
答:RTTI:類型識(shí)別系統(tǒng)。
13.net中讀寫數(shù)據(jù)庫需要用到那些類?他們的作用?
答:DataConnection:連接數(shù)據(jù)庫
DataSet:數(shù)據(jù)存儲(chǔ)器。
DataCommand:執(zhí)行語句命令。
DataAdapter:數(shù)據(jù)的集合,用于填充數(shù)據(jù)。
14.ASP.net的身份驗(yàn)證方式有哪些?分別是什么原理?
答:Windwos(默認(rèn))用IIS…From(窗體)用帳戶…Passport(密鑰)
15.什么是Code-Behind技術(shù)?
答:代碼后植。
16.在.net中,配件的意思是?
答:程序集。(中間語言,源數(shù)據(jù),資源,裝配清單)
17.常用的調(diào)用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜單選項(xiàng)
18…net Remoting 的工作原理是什么?
答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號(hào),一個(gè)程序域編號(hào),以確定對(duì)象的位置。
19.在C#中,string str = null 與 string str = “” 請(qǐng)盡量使用文字或圖象說明其中的區(qū)別。
答:string str = null 是不給他分配內(nèi)存空間,而string str = “” 給它分配長度為空字符串的內(nèi)存空間。
20.請(qǐng)?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同?
答:Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上的。
21.SQLSERVER服務(wù)器中,給定表 table1 中有兩個(gè)字段 ID、LastUpdateDate,ID表示更新的事務(wù)號(hào),LastUpdateDate表示更新時(shí)的服務(wù)器時(shí)間,請(qǐng)使用一句SQL語句獲得最后更新的事務(wù)號(hào)。
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
22.簡要談一下您對(duì)微軟.NET 構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。
答:WS主要是可利用HTTP,穿透防火墻。而Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率。
到此這篇關(guān)于Asp.net基礎(chǔ)知識(shí)掃盲篇的文章就介紹到這了,更多相關(guān)Asp.net基礎(chǔ)知識(shí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ASP.NET中DropDownList下拉框列表控件綁定數(shù)據(jù)的4種方法
本文主要介紹了DropDownList控件4種綁定數(shù)據(jù)的基礎(chǔ)用法,希望對(duì)大家能有所幫助。2016-04-04ASP.NET中FileUpload文件上傳控件應(yīng)用實(shí)例
本文主要介紹FileUpload文件上傳控件在實(shí)際開發(fā)中經(jīng)常遇到的問題并給出解決方法,希望對(duì)大家有所幫助。2016-04-04.Net Core使用SignalR實(shí)現(xiàn)斗地主游戲
本文詳細(xì)講解了.Net Core使用SignalR實(shí)現(xiàn)斗地主游戲的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01詳解ABP框架中的數(shù)據(jù)過濾器與數(shù)據(jù)傳輸對(duì)象的使用
ABP框架是一個(gè)基于ASP.NET的Web開發(fā)框架,這里我們來詳解ABP框架中的數(shù)據(jù)過濾器與數(shù)據(jù)傳輸對(duì)象的使用,需要的朋友可以參考下2016-06-06詳解ABP框架的參數(shù)有效性驗(yàn)證和權(quán)限驗(yàn)證
ABP框架是基于ASP.NET的Web開發(fā)框架(GitHub: https://github.com/aspnetboilerplate),在ASP.NET框架之上又添加了更強(qiáng)大的功能,這里我們就來詳解ABP框架的參數(shù)有效性驗(yàn)證和權(quán)限驗(yàn)證2016-06-06搭建基礎(chǔ)結(jié)構(gòu)的ABP解決方案介紹
這篇文章介紹了搭建基礎(chǔ)結(jié)構(gòu)的ABP解決方案的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02