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)槭窍蛳录嫒荩钥梢韵螺d最新的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ū)別。
答:string str = null 是不給他分配內(nèi)存空間,而string str = “” 給它分配長度為空字符串的內(nèi)存空間。
20.請?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í)間,請使用一句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)容請搜索碩編程以前的文章,希望大家多多支持碩編程!