asp.net基礎(chǔ)知識掃盲篇
asp.net基礎(chǔ)知識篇-中文掃盲篇
1、.net是什么?
.net全稱.net framework是一個開發(fā)和運行環(huán)境,
該戰(zhàn)略是微軟的一項全新創(chuàng)意,
它將使得“互聯(lián)網(wǎng)行業(yè)進入一個更先進的階段,
.net不是一種編程語言. 簡單說就是一組類庫框架,
.net開發(fā)支持c#、vb.net、j#、jsript和managed c++等。
c#是.net framework框架支持的一種主力開發(fā)語言,
可用于開發(fā)asp.net網(wǎng)站, windows 程序,控制臺程序,甚至于手機軟件
2、asp.net、.net和c#的關(guān)系是怎樣的?
.net 分成兩個方面:
(1)winform
(2)webform
asp.net就是屬于webform,也就是平時說的b/s模式的開發(fā)。
而winform就是屬于c/s模式。
.net有很多種語言組成,比如c#、 vb.net、j#、jsript、managed c++
但是都是運行在.net framework run time底下的。
asp.net 可以用c#或vb.net來開發(fā)。
編譯后形成clr,通過服務(wù)器的iis+.net framework再次編譯來運行。
c#是開發(fā)語言.
總之,asp.net是.net framework環(huán)境下的動態(tài)網(wǎng)頁編程技術(shù),
.net framework是.net的基礎(chǔ)框架,
visual studio.net是用于開發(fā)軟件的一個集成環(huán)境(ide)。
當然后續(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è)計的一種編程語言,
c#(讀做‘csharp')。它基于c/c++,是面向?qū)ο蟮摹?/p>
沒有指針,有垃圾回收機制,會自動釋放內(nèi)存空間。
學(xué)習(xí)c#并不必須有c語言的基礎(chǔ),不過,如果你學(xué)過c語言,
那會事半功倍的,因為他們之間有很多語法是一樣的。
c#支持的基本類型和c++很相似,包括int, long,
float, double, char, string, arrays, structs和 classes等。
5、asp.net環(huán)境的安裝
(1)、其實現(xiàn)在一般的電腦都可以安裝,至于操作系統(tǒng)目前
.net支持的平臺有windows,至于linux和unix的支持正在開發(fā)中.
(2)、運行環(huá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的安裝時間比較長要耐心等待。
(4)、試運行
安裝完成后,試著運行一個簡單的asp.net編寫的小程序,以便確定安裝是否成功。
6、bin文件夾下的dll可以做什么?
(1)它是自動生成的,不用自己添加。
(2)作用:bin文件夾中包含項目中所用到的所有引用的類庫,支持服務(wù)器等內(nèi)容dll的全稱是dynamic link library, 中文叫做“動態(tài)鏈接文件”。
7、.net主要的優(yōu)點有哪些?
.net的主要優(yōu)點有跨語言,跨平臺,安全,以及對開放互聯(lián)網(wǎng)標準和協(xié)議的支持.
.net支持多種語言的互操作,即在一種語言下開發(fā)的組件,
可在另一組件下通過面向?qū)ο蟮睦^承而得以重用.
.net通過將各語言先編譯成中間語言(il),
然后再執(zhí)行時用即時(just in time)編譯器將之編譯成本地平臺代碼來實現(xiàn)異構(gòu)平臺下對象的互操作,
.net通過公共語言運行庫clr(common language runtime)來實現(xiàn)資源對象,類型的安全.
.net通過對http,xml等internet標準的支持提供在異構(gòu)網(wǎng)絡(luò)環(huán)境下獲取遠程服務(wù),
連接遠程設(shè)備,交互遠程應(yīng)用的編程界面
8、asp.net和asp的區(qū)別?
asp.net和asp的最大區(qū)別在于編程思維的轉(zhuǎn)換以及功能的增強。
asp使用vb/js這樣的弱類型、面向結(jié)構(gòu)的腳本語言混合html來編程,
而非面向?qū)ο?,這就明顯產(chǎn)生以下幾個問題:
1、代碼邏輯混亂,難于管理。
2、代碼的可重用性差:由于是面向結(jié)構(gòu)的編程方式,并且混合html,
所以可能頁面原型修改一點,整個程序都需要修改,代碼重用性差。
3、弱類型造成潛在的出錯可能。
以上是asp語言本身的弱點,在功能方面asp同樣存在問題:
第一是功能太弱,一些底層操作只能通過組件來完成
第二缺乏完善的糾錯/調(diào)試功能
asp.net理論上可以使用任何編程語言包括c#,vb.net、js、、j#、managed c++等等,
最合適的編程語言還是ms為.net frmaework專門推出的c#
優(yōu)點如下:
(1)是面向?qū)ο蟮木幊陶Z言,簡單易學(xué)。
(2)具有面向?qū)ο缶幊陶Z言的一切特性,比如封裝性、繼承性、多態(tài)性等等,
封裝性使得代碼邏輯清晰,并且應(yīng)用到asp.net上就可以使業(yè)務(wù)邏輯和html頁面分離;
繼承性和多態(tài)性使得代碼的可重用性大大提高
(3)c#還提供了完善的調(diào)試/糾錯體系。
9、做項目時數(shù)據(jù)庫類型的選擇?
當前流行的數(shù)據(jù)庫有:sql server,mysql,oracle,db2。
vs項目中大多是選擇以下四種:
sql2000簡單實用,功能完全夠?qū)W習(xí)時使用,可通過命令行快速打開;
sql2005功能全面,但安裝麻煩,體積大,剛打開數(shù)據(jù)庫的時候比較慢,啟動之后就快了許多;
sql2008新出的數(shù)據(jù)庫,功能肯定比前兩者強大,建議使用sql2005的用戶升級 到sql2008;
access體積小、部署方便(不用啟動服務(wù)等)使用方便簡單.
10、asp.net中經(jīng)常使用的控件有哪些?
label控件用來顯示文本的控件。label控件不能接收鼠標或是鍵盤輸入。
textbox控件來顯示和更新任務(wù)數(shù)據(jù),用戶輸入內(nèi)容。
button按鈕控件當用戶單擊或者點擊一個按鈕時,即會觸發(fā)click事件
listbox和combobox控件外觀不同,但功能極為相似,允許用戶進行選擇,不允許輸入文本。
11、.net開發(fā)工具都有哪些?
現(xiàn)在主流是visual studio 2012/2013/2014/2015,
vs提供了下列幾個版本:標準版、專業(yè)版、tools for office 和 team system 版。
還有c# builder只應(yīng)用于大型企業(yè)開發(fā),
支持一些微軟的vs.net都不支持的企業(yè)級功能。
還有一款免費的開發(fā)工具web matrix,這款自動感知能力弱到幾乎沒有,
適合開發(fā)頁面和代碼不分開的那種頁面,可以提高獨立寫代碼的水平。
不過他帶有.net類庫瀏覽器,以及一個數(shù)據(jù)庫開發(fā)的控件,也算是有些特點。
入門初學(xué)者vs.net會很容易上手,
當然,還有就是高手只用記事本咯!
12、為什么.net程序第一次運行比較慢?
aspx頁面在運行時,第一次訪問時要進行編譯。
當你再次運行時,由于緩存機制,速度就會正常了。
13、c#的命名規(guī)范
主要有pascal和camel兩種
pascal:單詞的首字母大寫,如producttype;
camel:首個單詞的首字母小寫,其余單詞的首字母大寫,如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、如何判斷一個程序是否開源或者是有源文件?
都有對應(yīng)的.cs文或vb文件
有項目文件和解決方案文件
bin文件下所有的dll文件或是引用的組件有對應(yīng)的源碼
asp.net基礎(chǔ)知識篇-技術(shù)問答
1.簡述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。
答:private : 私有成員, 在類的內(nèi)部才可以訪問。
protected : 保護成員,該類內(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#中的委托是什么?事件是不是一種委托?
答:委托可以把一個方法作為參數(shù)代入另一個方法。
委托可以理解為指向一個函數(shù)的引用。
事件是一種特殊的委托
4.override與重載的區(qū)別
答:重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進行多次重載以適應(yīng)不同的需要
override 是在子類對基類中函數(shù)的重寫。為了適應(yīng)需要。
5.如果在一個b/s結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用session、cookie、application,您有幾種方法進行處理?
答 : this.server.transfer, response. redirect()―querystring
6.描述一下c#中索引器的實現(xiàn)過程,是否只能根據(jù)數(shù)字進行索引?
答:不是??梢杂萌我忸愋?。
7.用.net做b/s結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?
答:一般為3層:數(shù)據(jù)訪問層,業(yè)務(wù)層,表示層。
數(shù)據(jù)訪問層對數(shù)據(jù)庫進行增刪查改。
業(yè)務(wù)層一般分為二層,業(yè)務(wù)表觀層實現(xiàn)與表示層的溝通,業(yè)務(wù)規(guī)則層實現(xiàn)用戶密碼的安全等。
表示層為了與用戶交互例如用戶添加表單。
優(yōu)點: 分工明確,條理清晰,易于調(diào)試,而且具有可擴展性。
缺點: 增加成本。
8.什么叫應(yīng)用程序域?
答:應(yīng)用程序域可以理解為一種輕量級進程。起到安全的作用。占用資源小。
9.cts、cls、clr分別作何解釋?
答:cts是通用類型系統(tǒng)(common type system)
clr是公共語言運行時(common language runtime)
cls是公共語言定義(common language specification)
10.什么是裝箱和拆箱?
答:從值類型接口轉(zhuǎn)換到引用類型裝箱。從引用類型轉(zhuǎn)換到值類型拆箱。
11.什么是受管制的代碼?
答:unsafe:非托管代碼。不經(jīng)過clr運行。
12.什么是強類型系統(tǒng)?
答:rtti:類型識別系統(tǒng)。
13.net中讀寫數(shù)據(jù)庫需要用到那些類?他們的作用?
答:dataconnection:連接數(shù)據(jù)庫
dataset:數(shù)據(jù)存儲器。
datacommand:執(zhí)行語句命令。
dataadapter:數(shù)據(jù)的集合,用于填充數(shù)據(jù)。
14.asp.net的身份驗證方式有哪些?分別是什么原理?
答:windwos(默認)用iis…from(窗體)用帳戶…passport(密鑰)
15.什么是code-behind技術(shù)?
答:代碼后植。
16.在.net中,配件的意思是?
答:程序集。(中間語言,源數(shù)據(jù),資源,裝配清單)
17.常用的調(diào)用webservice的方法有哪些?
答:1.使用wsdl.exe命令行工具。
2.使用vs.net中的add web reference菜單選項
18…net remoting 的工作原理是什么?
答:服務(wù)器端向客戶端發(fā)送一個進程編號,一個程序域編號,以確定對象的位置。
19.在c#中,string str = null 與 string str = “” 請盡量使用文字或圖象說明其中的區(qū)別。
答:string str = null 是不給他分配內(nèi)存空間,而string str = “” 給它分配長度為空字符串的內(nèi)存空間。
20.請詳述在dotnet中類(class)與結(jié)構(gòu)(struct)的異同?
答:class可以被實例化,屬于引用類型,是分配在內(nèi)存的堆上的,struct屬于值類型,是分配在內(nèi)存的棧上的。
21.sqlserver服務(wù)器中,給定表 table1 中有兩個字段 id、lastupdatedate,id表示更新的事務(wù)號,lastupdatedate表示更新時的服務(wù)器時間,請使用一句sql語句獲得最后更新的事務(wù)號。
答:select id from table1 where lastupdatedate = (select max(lastupdatedate) from table1)
22.簡要談一下您對微軟.net 構(gòu)架下remoting和webservice兩項技術(shù)的理解以及實際中的應(yīng)用。
答:ws主要是可利用http,穿透防火墻。而remoting可以利用tcp/ip,二進制傳送提高效率。
關(guān)于asp.net基礎(chǔ)知識掃盲篇的文章就介紹至此,更多相關(guān)asp.net基礎(chǔ)知識內(nèi)容請搜索碩編程以前的文章,希望大家多多支持碩編程!