国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

.net面試題整理

2019-11-08 03:10:54
字體:
來源:轉載
供稿:網友

1.      談談你對MVC和三層架構的理解。

 

MVC即模型、視圖、控制器,模型表示業務數據及業務處理,用來封裝數據及行為;視圖是用戶看到并與之交互的界面;控制器接受用戶輸入并調用模型和視圖去完成用戶的請求。使用MVC有利于關注點分離,自動化UI測試成為了可能。

三層架構即表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。區分層次的目的即為了“高內聚,低耦合”的思想。表現層通俗講就是展現給用戶的界面,業務邏輯層即針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。數據訪問層:該層所做事務直接操作數據庫,針對數據的增添、刪除、修改、更新、查找等。

 

2.      在MVC中如何保持sessions?

 

可使用tempdata、viewdata、viewbag三種方式。其中tempdata:在不同的控制器或動作間轉換時保持數據。另外,進行頁面轉向時,tempdata可以保持數據,它是一個內部的Session變量。Viewdata:可以在控制器和視圖間保持數據。Viewbag:它是視圖數據的動態包裝,使用viewbag不需要類型轉換,它使用的是內部動態關鍵詞。

 

3.      MVC中如何做輸入驗證?

 

在M層使用數據模型的屬性標簽形如[Required],在C層使用ModelState.IsValid屬性檢查數據是否正確,也可在C層使用javascript進行數據驗證。

 

4.      已經有了aspX,為什么還要Razor?哪個更好?

 

Razor是一個輕量級的視圖引擎,MVC3引入,相比ASPX,Razor更干凈、輕量級、語法更簡單,只需要使用@關鍵字,如@DataTime.Now

 

5.      MVC有多少種不同類型的結果類型,請詳細描述。

 

有12種,最主要的是ActionResult類,它是一個基礎類,它有11個子類型。

ViewResult  - 給響應流渲染指定的視圖

PartialViewResult  - 給響應流渲染指定的局部視圖

EmptyResult  - 返回空的響應結果。

RedirectResult  - 執行一個HTTP轉向到指定的URL。

RedirectToRouteResult  -執行一個HTTP轉向到一個URL,這個URL由基于路由數據的路由引擎來決定

JsonResult  - 序列化一個ViewData對像到JSON格式。

JavascriptResult  - 返回一段Javascript代碼,它可以在客戶端執行。

ContentResult  - 寫內容到響應流,不需要視圖支持。

FileContentResult  - 返回一個文件到客戶端。

FileStreamResult  - 返回一個文件到客戶端,它提供的是流。

FilePathResult  - 返回一個文件到客戶端。

 

6.      以下兩種異常處理方式有什么區別?try {} catch(){throw;}  try{}catch(Exception ex){Throw ex;}

 

前者catch無參數,可以捕獲所有異常,只有throw關鍵字,表示拋出當前catch語句捕獲的異常。

后者catch有參數,可以捕獲所有以Exception類派生的異常,throw 變量名;拋出的是Exception異?;駿xception派生的類型

 

7.      C#中的委托是什么?事件是不是一種委托?

 

委托是將一種方法作為參數傳入到另一種方法。事件是一種特殊的委托。委托聲明的關鍵字是Delegate。

 

8.      用接口或父類作為輸入的參數有什么好處?返回值如果是接口是為了什么?

 

接口或父類作為參數,所有繼承了此接口或父類的類都可以使用,即你給此方法傳參數的時候,可以把繼承了這個接口或父類的類的實例傳給這個方法??梢砸淮涡詡魅攵喾N字段、方法等而不用定義多個形參。

接口作為返回值,返回的是實現接口的對象。

 

9.      C#和JS的閉包。

 

閉包的概念是內層的函數可以引用包含在它外層的函數的變量,即使外層函數的執行已經終止。但該變量提供的值并非變量創建時的值,而是在父函數范圍內的最終值。

C#閉包可理解為跨作用域訪問函數內變量,那么如何避免閉包陷阱呢?C#中普遍的做法是,將匿名函數引用的變量用一個臨時變量保存下來,然后在匿名函數中使用臨時變量。參考:http://www.cnblogs.com/jiejie_peng/p/3701070.html

JS閉包,在js中的我的理解就是函數嵌套函數,當內部函數在定義它的作用域的外部被引用時,就創建了該內部函數的閉包 ,如果內部函數引用了位于外部函數的變量,當外部函數調用完畢后,這些變量在內存不會被釋放,因為閉包需要它們。參考:http://www.myexception.cn/javascript/2042903.html

 

10.  Ajax操作怎么處理session過期?

 

當session過期時,我們獲取請求頭信息值判斷是否為ajax請求,如果是,我們可以返回特定格式的JSON數據,客戶端可以對此數據處理,發現session失效,可以跳轉到其他頁面如登陸等。

 

11.  簡要談一下你對微軟.Net架構下remoting和webservice兩項技術的理解及實際中的應用。

 

Remoting可以利用TCP/IP,二進制傳送提高效率,webservice可利用http,穿透防火墻。

遠程邏輯調用,remoing接口只能用在.net remoting是.net 中用來跨越machine,PRocess, appdomain 進行方法調用的技術,對于三成結構的程序,就可以使用remoting技術來構建.它是分布應用的基礎技術.相當于以前的DCOM

WebService是一種構建應用程序的普通模型,并能在所有支持internet網通訊的操作系統上實施。Web Service令基于組件的開發和web的結合達到最佳,基于組件的對象模型。

 

 

12.  Sleep()和wait()有什么區別?

 

 

1. sleep是線程類Thread 的方法,它是使當前線程暫時睡眠,可以放在任何位置。

而wait,它是使當前線程暫時放棄對象的使用權進行等待,必須放在同步方法或同步塊里。

2.Sleep使用的時候,線程并不會放棄對象的使用權,即不會釋放對象鎖,所以在同步方法或同步塊中使用sleep,一個線程訪問時,其他的線程也是無法訪問的。

而wait是會釋放對象鎖的,就是當前線程放棄對象的使用權,讓其他的線程可以訪問。

3.線程執行wait方法時,需要其他線程調用Monitor.Pulse()或者Monitor.PulseAll()進行喚醒或者說是通知等待的隊列。

而sleep只是暫時休眠一定時間,時間到了之后,自動恢復運行,不需另外的線程喚醒.

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰顺县| 永福县| 宝应县| 石城县| 安吉县| 西华县| 普兰店市| 墨脱县| 南澳县| 南雄市| 淄博市| 珲春市| 将乐县| 高雄县| 海丰县| 怀宁县| 星座| 金阳县| 铜川市| 新邵县| 丰镇市| 万年县| 清河县| 巩义市| 易门县| 黄大仙区| 山西省| 长岭县| 汤阴县| 温州市| 红原县| 宣恩县| 兴山县| 九寨沟县| 前郭尔| 定州市| 西乌珠穆沁旗| 石渠县| 雷山县| 仲巴县| 阳西县|