版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、A核心技術(shù)思想(Copyright yyaccp Email:renfuming741寶典在手,再大的風也不怕)A核心技術(shù)思想 (以下技術(shù)知識點皆由本人整理和補充,不足之處,請上網(wǎng)核對,共115道)1、概述反射和序列化反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態(tài)地創(chuàng)建類型的實例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象中獲取類型。然后,可以調(diào)用類型的方法或訪問其字段和屬性序列化:序列化是將對象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^程。例如,可以序列化一個對象,然后使用 HTTP 通過 Internet 在客戶端和服務(wù)器之間傳輸該對象。在另一端,
2、反序列化將從該流重新構(gòu)造對象。2.如何把一個array復(fù)制到arrayList里 方法一、使用foreach循環(huán),將array數(shù)組中的數(shù)據(jù)逐步放入ArrayList的對象中; 方法二、使用Copy方法,進行數(shù)據(jù)的復(fù)制; 方法三、使用ArrayList的adpater的方法 ,將整個Array對象封裝到ArrayList對象中。/ author:renfumingpublic static void Main(string renargs)int arrayInt=new int1,2,3,4;ArrayList arrlistInt=new ArrayList(); /方法一foreach(i
3、nt a in arrayInt)arrlistInt.Add(a);Console.WriteLine(arrlistInt2.ToString();/輸出3/方法二:ArrayList arrlistInt2=new ArrayList();arrlistInt2=ArrayList.Adapter(arrayInt);Console.WriteLine(arrlistInt22.ToString();/輸出3 /逆向轉(zhuǎn)換Array resultArr=(int)arrlistInt2.ToArray(typeof(int);Console.WriteLine(resultArr.GetV
4、alue(2);/輸出33.datagrid.datasouse可以連接什么數(shù)據(jù)源 dataset,datatable,dataview,IList等接口類型的對象4. new有幾種用法 第一種:new Class(),新建一個類的對象,但是此類必須的又可訪問的構(gòu)造函數(shù) 第二種:顯式覆蓋基類的方法:public new Menthod()5.概述o/r mapping 的原理利用反射,配置 將類于數(shù)據(jù)庫表映射O/RMapping(有學習曲線,沒有工具支持會相當大):存在的時間已經(jīng)很長,我認為它的最主要的作用是關(guān)系型數(shù)據(jù)庫的反設(shè)計關(guān)系型數(shù)據(jù)庫的設(shè)計就是要把現(xiàn)實中的對象和對象間關(guān)系設(shè)計成實體和實體
5、間的關(guān)系映射。而O/RMapping恰好相反,它是把實體和實體間的關(guān)系映射還原回對象和對象間的關(guān)系。6.類成員有( )種可訪問形式可訪問性:public ,protected ,private,internal可能還有其他的訪問形式,具體的情況視編碼需要而定7.用sealed修飾的類有什么特點sealed 修飾符用于防止從所修飾的類派生出其它類。如果一個密封類被指定為其他類的基類,則會發(fā)生編譯時錯誤。密封類不能同時為抽象類。sealed 修飾符主要用于防止非有意的派生,但是它還能促使某些運行時優(yōu)化。具體說來,由于密封類永遠不會有任何派生類,所以對密封類的實例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬
6、調(diào)用來處理。8.列舉ADO.NET中的五個主要對象,并簡單描述connection,command,dataReader,transaction,dataset .其上對于各種對象,連接不同的數(shù)據(jù)庫將會有不同的對象變體Connection: 數(shù)據(jù)庫的連接需要此對象Command:執(zhí)行數(shù)據(jù)表變化的命令dataReader和dataset主要是對數(shù)據(jù)庫的表信息進行兩種不同方式的讀取,具體的讀取得區(qū)別,后面將會有講解9.執(zhí)行下面代碼后:String strTemp =yyaccpx 某某某;Int i System.Text.Encoding.Default.GetBytes(strTemp).Le
7、ngth;Int j = strTemp.Length;結(jié)果:i=(14 ) ;j=(11 )i=(14 ) ;j=(11 ) 中文在內(nèi)存中占兩個字節(jié)但是只算是一個字符10.C#中,string str = null 與 string str =,請盡量用文字說明區(qū)別。(要點:說明詳細的內(nèi)存空間分配)string str = 在棧中存取地址,在堆中存放對象的值而String str=null;僅僅在內(nèi)存棧中分配了空間11.詳述.NET里class和struct的異同!class:放在屬于引用類型,故其存放于內(nèi)存的堆中 Struct屬于值類型,其存放于棧中,作為參數(shù)傳遞的時候?qū)儆谥祩鬟f類與結(jié)構(gòu)有
8、很多相似之處:結(jié)構(gòu)可以實現(xiàn)接口,并且可以具有與類相同的成員類型。然而,結(jié)構(gòu)在幾個重要方面不同于類:結(jié)構(gòu)為值類型而不是引用類型,并且結(jié)構(gòu)不支持繼承。結(jié)構(gòu)的值存儲在“在堆棧上”或“內(nèi)聯(lián)”。細心的程序員有時可以通過聰明地使用結(jié)構(gòu)來增強性能。12.概述.NET里對 remoting 和 webservice 兩項技術(shù)的理解和實際中的應(yīng)用。其實現(xiàn)的原理并沒有本質(zhì)的區(qū)別,在應(yīng)用開發(fā)層面上有以下區(qū)別:1、Remoting可以靈活的定義其所基于的協(xié)議,如果定義為HTTP,則與Web Service就沒有什么區(qū)別了,一般都喜歡定義為TCP,這樣比Web Service稍為高效一些2、Remoting不是標準,而
9、Web Service是標準;3、Remoting一般需要通過一個WinForm或是Windows服務(wù)進行啟動,而Web Service則需要IIS進行啟動。4、在VS.net開發(fā)環(huán)境中,專門對Web Service的調(diào)用進行了封裝,用起來比Remoting方便我建議還是采用Web Service好些,對于開發(fā)來說更容易控制Remoting一般用在C/S的系統(tǒng)中,Web Service是用在B/S系統(tǒng)中后者還是各語言的通用接口相同之處就是都基于XML為了能清楚地描述Web Service 和Remoting之間得區(qū)別,我打算從他們的體系結(jié)構(gòu)上來說起: Web Service大體上分為5個層次:
10、 1. Http傳輸信道 2. XML的數(shù)據(jù)格式 3. SOAP封裝格式 4. WSDL的描述方式 5. UDDI 總體上來講,.NET 下的 Web Service結(jié)構(gòu)比較簡單,也比較容易理解和應(yīng)用: 一般來講在.NET結(jié)構(gòu)下的WebService應(yīng)用都是基于.net framework以及IIS的架構(gòu)之下,所以部署(Dispose)起來相對比較容易點. 從實現(xiàn)的角度來講, 首先WebService必須把暴露給客戶端的方法所在的類繼承于:System.Web.Services.WebService這個基類 其次所暴露的方法前面必須有WebMethod或者WebMethodAttribute
11、WebService的運行機理 首先客戶端從服務(wù)器的到WebService的WSDL,同時在客戶端聲稱一個代理類(Proxy Class) 這個代理類負責與WebService服務(wù)器進行Request 和Response 當一個數(shù)據(jù)(XML格式的)被封裝成SOAP格式的數(shù)據(jù)流發(fā)送到服務(wù)器端的時候,就會生成一個進程對象并且把接收到這個Request的SOAP包進行解析,然后對事物進行處理,處理結(jié)束以后再對這個計算結(jié)果進行SOAP包裝,然后把這個包作為一個Response發(fā)送給客戶端的代理類(Proxy Class),同樣地,這個代理類也對這個SOAP包進行解析處理,繼而進行后續(xù)操作。 這就是We
12、bService的一個運行過程。 下面對.net Remoting進行概括的闡述: .net Remoting 是在DCOM等基礎(chǔ)上發(fā)展起來的一種技術(shù),它的主要目的是實現(xiàn)跨平臺、跨語言、穿透企業(yè)防火墻,這也是他的基本特點,與WebService有所不同的是,它支持HTTP以及TCP信道,而且它不僅能傳輸XML格式的SOAP包,也可以傳輸傳統(tǒng)意義上的二進制流,這使得它變得效率更高也更加靈活。而且它不依賴于IIS,用戶可以自己開發(fā)(Development)并部署(Dispose)自己喜歡的宿主服務(wù)器,所以從這些方面上來講WebService其實上是.net Remoting的一種特例。ASP.NE
13、T Web 服務(wù)基礎(chǔ)結(jié)構(gòu)通過將 SOAP 消息映射到方法調(diào)用,為 Web 服務(wù)提供了簡單的 API。通過提供一種非常簡單的編程模型(基于將 SOAP 消息交換映射到方法調(diào)用),它實現(xiàn)了此機制。ASP.NET Web 服務(wù)的客戶端不需要了解用于創(chuàng)建它們的平臺、對象模型或編程語言。而服務(wù)也不需要了解向它們發(fā)送消息的客戶端。唯一的要求是:雙方都要認可正在創(chuàng)建和使用的 SOAP 消息的格式,該格式是由使用 WSDL 和 XML 架構(gòu) (XSD) 表示的 Web 服務(wù)合約定義來定義的。. NET Remoting 為分布式對象提供了一個基礎(chǔ)結(jié)構(gòu)。它使用既靈活又可擴展的管線向遠程進程提供 .NET 的完全
14、對象語義。ASP.NET Web 服務(wù)基于消息傳遞提供非常簡單的編程模型,而 .NET Remoting 提供較為復(fù)雜的功能,包括支持通過值或引用傳遞對象、回調(diào),以及多對象激活和生命周期管理策略等。要使用 .NET Remoting,客戶端需要了解所有這些詳細信息,簡而言之,需要使用 .NET 建立客戶端。.NET Remoting 管線還支持 SOAP 消息,但必須注意這并沒有改變其對客戶端的要求。如果 Remoting 端點提供 .NET 專用的對象語義,不管是否通過 SOAP,客戶端必須理解它們。13.什么是code-behind技術(shù)對于每一個Aspx文件可以相對應(yīng)一個CS文件類,asp
15、x繼承自對應(yīng)的CodeBehind類,在編譯時,CodeBhind類編譯到webui工程對應(yīng)的dll中,而aspx頁面中的內(nèi)含代碼和aspx一起編譯到temporary.dll中,被客戶端瀏覽器訪問。14.概述三層結(jié)構(gòu)體系webUI層:封裝基本的頁面布局形式,即表示層DataAccess(DAO)層:數(shù)據(jù)訪問層,利用各種相關(guān)的技術(shù),與底層數(shù)據(jù)庫進行交互Business層:業(yè)務(wù)邏輯層,封裝整個程序的業(yè)務(wù)邏輯代碼,主要與DAO層相關(guān)聯(lián)Model 層: 封裝程序領(lǐng)域?qū)ο?,該層可以在上面的三層之間進行很好的交互這只是基本的三層架構(gòu)設(shè)計,如果利用設(shè)計模式,則可以在此基礎(chǔ)上進行靈活的變化如何實現(xiàn)MVC模式
16、,舉例說明! 在A 中實現(xiàn)MVC模式,相對于 JAVA沒有那么快捷,但是仍是可以實現(xiàn)的且由于代碼隱藏和事件驅(qū)動得引入,意義不時很大,具體的實現(xiàn),可以利用HttpHandler,如此,則應(yīng)在Web.config文件中配置相關(guān)的節(jié)點/Author:renfuming 16.值類型和引用類型的區(qū)別?C# 支持兩種類型:“值類型”和“引用類型”。 值類型(如 char、int 和 float)、枚舉類型和結(jié)構(gòu)類型。 引用類型包括類 (Class) 類型、接口類型、委托類型和數(shù)組類型。 值類型與引用類型的區(qū)別在于值類型的變量直接包含其數(shù)據(jù),而引用類型的變量則存儲對象引用。對于引用類型,兩個變量可能引用同
17、一個對象,因此對一個變量的操作可能影響另一個變量所引用的對象。對于值類型,每個變量都有自己的數(shù)據(jù)副本,對一個變量的操作不可能影響另一個變量17.了解程序集強簽名嗎?用強名稱來給程序集簽名即謂之程序集強簽名! 通過簽發(fā)具有強簽名的程序集合,可以確保名稱的全局唯一性!因為強名稱是依賴于唯一的密鑰對來確保名稱的唯一性,其他人不會生成與你相同的程序集名稱(不同的私鑰產(chǎn)生的名稱不同) 強名稱保護程序集的版本沿襲,因為強名稱的唯一性能夠確保沒有其他人能夠生成你的程序集的后續(xù)版本 強名稱提供可靠的完整性檢查,通過.NET Framework安全檢查后,可以確保程序集內(nèi)容在生成后未被更改過! 要注意的是,具有
18、強名稱的程序集引用其他程序集,如果這個程序集沒有強名稱,那么具有強名稱的程序集所帶來的好處,并依舊會產(chǎn)生DLL沖突!因此具有強名稱的程序集只能引用其他具有強名稱的程序集。 18. C#中接口和類有什么區(qū)別?接口是負責功能的定義,項目中通過接口來規(guī)范類,操作類以及抽象類的概念!而類是負責功能的具體實現(xiàn)!在類中也有抽象類的定義,抽象類與接口的區(qū)別在于:抽象類是一個不完全的類,類里面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進一步的專業(yè)化。但接口是一個行為的規(guī)范,里面的所有東西都是抽象的!一個類只可以繼承一個基類也就是父類,但可以實現(xiàn)多個接口19.View State 的作用和實現(xiàn)方式?設(shè)置
19、是否要保存控件的狀態(tài),其功能的實質(zhì)是利用隱藏表單域?qū)崿F(xiàn) 如果設(shè)為false且在Page_Load中沒有重新綁定數(shù)據(jù)的話,只要頁面一刷新,控件的內(nèi)容就沒了 如果設(shè)為true,則頁面會保存控件的內(nèi)容 在一些不需要保存狀態(tài)的頁面中最好把它設(shè)為false,為什設(shè)為true會增加服務(wù)器的負擔 隱藏域20.在ASP.net中可以利用哪些對象存儲狀態(tài)?幾種維持狀態(tài)的對象應(yīng)用場合以及優(yōu)缺點?主要用Application,session,viewstate,cookie,cache。 Application:應(yīng)用程序級別的共享變量,優(yōu)點是應(yīng)用程序一開啟該站點都能訪問此變量。缺點:所有對此進行寫入操作要加鎖,由此
20、共享變量鎖帶來的內(nèi)存開銷只有此應(yīng)用程序關(guān)閉才能結(jié)束。 Session:維護用戶個人的狀態(tài)信息,優(yōu)點:個人所從事活動,如登錄信息,購物車信息等較安全而且又服務(wù)器維護較穩(wěn)定。缺點:維持http連接的sessionID仍然有缺陷,同時為每個用戶維護狀態(tài)信息,服務(wù)器內(nèi)存開銷很大。 Viewsate:如4所說,在一些場合能體現(xiàn)它的特點,但同時帶來的缺點:影響整個頁面的速度以及隱藏字段未加密。 Cookie:優(yōu)點是將狀態(tài)信息維護在客戶端的一個文本文件,不需要耗用服務(wù)器的內(nèi)存,是目前各大網(wǎng)站主要采用的方式。 缺點:由于其將狀態(tài)信息存貯在客戶端,很可能由別人破解此文件而獲得此人的個人隱私和機密信息。其受限大小
21、為4K. Cache:優(yōu)點是提供的此功能很強大,如文件緩存依賴、API依賴、數(shù)據(jù)庫依賴以用于存貯數(shù)據(jù)變化而更換緩存狀態(tài)數(shù)據(jù)。提供存儲周期從httpcontext到httpruntime。缺點:耗用服務(wù)器內(nèi)存。Request21.簡單說說 ASP.NET 中基于表單的身份驗證方式的用法?配置文件提供對站點那些目錄的保護以及登錄頁面,當訪問該目錄的文件時,如果用戶未認證通過,將轉(zhuǎn)入登錄頁面, 用戶輸入用戶名和密碼,將此參數(shù)傳入認證模塊authentication,該模塊負責認證,如果通過將isauthentication設(shè)置為true,并返回用戶的identity對象,此時頁面將轉(zhuǎn)入初始請求頁,如
22、果未通過,將不允許訪問此目錄。22.是否了解 URL Rewrite?請簡要說明其原理和在 ASP.NET 中的實現(xiàn)方式?一般放在httpmodule中applicatioin_request事情中,當每次http請求,將此URL定位到重寫的url函數(shù)中并返回重寫后的URL地址。主要用于當我們站點板塊移動時由于鏈接仍然指向舊地址,故可以重定向到新的地址,當然查詢參數(shù)也可以重寫。url-mapping配置23. 在超過10萬條記錄的頁面顯示時,你如何處理分頁,有多少種替代方案?一般根據(jù)頁面選擇的第幾頁PageIndex,以及服務(wù)端配置文件配置的每頁行數(shù)PageSize,通過傳入?yún)?shù)傳入存貯過程,
23、由其返回相應(yīng)行數(shù)pagesize的記錄。即每一頁數(shù)據(jù)都由服務(wù)端返回??梢岳镁彺鍯ache,將數(shù)據(jù)一次加載,在結(jié)合2.0中數(shù)據(jù)庫緩存方式,跟蹤數(shù)據(jù)庫表的信息的變化,自動更新緩存信息 對于數(shù)據(jù)分野頁,也可以利用gridview的數(shù)據(jù)邦定控件的自動分頁的方式24. DataReader和DataSet的異同?Daatareader和datatset都是通過從數(shù)據(jù)源取數(shù)據(jù)。不同點:datareader提供只進行流的方式讀取數(shù)據(jù)。Dataset提供一種容器里面主要由表以及表關(guān)系,由適配器來提供從數(shù)據(jù)源取得數(shù)據(jù)填充到此容器的表中。DataReader和DataSet最大的區(qū)別在于,DataReader使
24、用時始終占用SqlConnection,在線操作數(shù)據(jù)庫.任何對SqlConnection的操作都會引發(fā)DataReader的異常.因為DataReader每次只在內(nèi)存中加載一條數(shù)據(jù),所以占用的內(nèi)存是很小的.因為DataReader的特殊性和高性能.所以DataReader是只進的.你讀了第一條后就不能再去讀取第一條了.DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接.讀取完畢即放棄數(shù)據(jù)庫連接.因為DataSet將數(shù)據(jù)全部加載在內(nèi)存中.所以比較消耗內(nèi)存.但是確比DataReader要靈活.可以動態(tài)的添加行,列,數(shù)據(jù).對數(shù)據(jù)庫進行回傳更新操作25. 你會利用那些工具進行數(shù)據(jù)庫的性能分析及
25、其優(yōu)化?說說你覺得優(yōu)化數(shù)據(jù)庫需要注意的方面。比如:如何設(shè)計優(yōu)化查詢?yōu)橹?、插入更新為主的表。我主要通過執(zhí)行計劃以及索引優(yōu)化以及客戶統(tǒng)計和服務(wù)器跟蹤工具來檢測從SQL到索引、硬盤IO和時間等信息。 對于查詢?yōu)橹鞯谋?,首先對?shù)據(jù)量的大小有一定的估計,當達到一定程度應(yīng)采用水平分區(qū),有的根據(jù)主鍵有的根據(jù)時間段來區(qū)分。由于此表往往插入更新不是太快,可對適當字段采用索引并且填充因子可以盡量大。SQL優(yōu)化等。 對于插入更新為主的表,我覺得健壯性更重要,只要根據(jù)標準外部采用存貯過程就可以了。26. 數(shù)據(jù)庫某表主鍵自增,是很常見的情形。在ASP. Net或C#程序中,要求向該表插入一條記錄,并馬上從該表查出這條記
26、錄。不能使用時間戳,請問你如何實現(xiàn)?插入一條記錄會返回identity,通過它就是該記錄的主鍵,再select一下就可以了27.Xhtml的三種DOCTYPE分別有什么含義?請說明。簡單說明各個情況下,那些標簽可以使用,那些不可以使用?XHTML 1.0 提供了三種DTD聲明可供選擇:W3C規(guī)范過渡的(Transitional):要求非常寬松的DTD,它允許你繼續(xù)使用HTML4.01的標識(但是要符合xhtml的寫法)。完整代碼如下:嚴格的(Strict):要求嚴格的DTD,你不能使用任何表現(xiàn)層的標識和屬性,例如。完整代碼如下:框架的(Frameset):專門針對框架頁面設(shè)計使用的DTD,如果
27、你的頁面中包含有框架,需要采用這種DTD。完整代碼如下:28.請舉例說明XHtml代碼規(guī)范,越多越好。1.所有的標記都必須要有一個相應(yīng)的結(jié)束標記以前在HTML中,你可以打開許多標簽,例如和而不一定寫對應(yīng)的和來關(guān)閉它們。但在XHTML中這是不合法的。XHTML要求有嚴謹?shù)慕Y(jié)構(gòu),所有標簽必須關(guān)閉。如果是單獨不成對的標簽,在標簽最后加一個/來關(guān)閉它。例如: 2.所有標簽的元素和屬性的名字都必須使用小寫與HTML不一樣,XHTML對大小寫是敏感的,和是不同的標簽。XHTML要求所有的標簽和屬性的名字都必須使用小寫。例如:必須寫成 。大小寫夾雜也是不被認可的,通常dreamweaver自動生成的屬性名字
28、onMouseOver也必須修改成onmouseover。3.所有的XML標記都必須合理嵌套同樣因為XHTML要求有嚴謹?shù)慕Y(jié)構(gòu),因此所有的嵌套都必須按順序,以前我們這樣寫的代碼: 必須修改為: 就是說,一層一層的嵌套必須是嚴格對稱。4.所有的屬性必須用引號括起來在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。例如: 必須修改為: 特殊情況,你需要在屬性值里使用雙引號,你可以用,單引號可以使用',例如: 5.把所有和&特殊符號用編碼表示任何小于號(),不是標簽的一部分,都必須被編碼為& g t ; 任何與號(&),不是實體的一部分的,都必須被編碼為& a
29、 m p; 注:以上字符之間無空格。6.給所有屬性賦一個值XHTML規(guī)定所有屬性都必須有一個值,沒有值的就重復(fù)本身。例如: 必須修改為: 7.不要在注釋內(nèi)容中使“-”“-”只能發(fā)生在XHTML注釋的開頭和結(jié)束,也就是說,在內(nèi)容中它們不再有效。例如下面的代碼是無效的: 用等號或者空格替換內(nèi)部的虛線。 以上這些規(guī)范有的看上去比較奇怪,但這一切都是為了使我們的代碼有一個統(tǒng)一、唯一的標準,便于以后的數(shù)據(jù)再利用。29. 客戶端與瀏覽器:如果讓你做一個TreeView控件,你的思路我會采用javascript來做,主要采用htc。 數(shù)據(jù)通過XML. 通過htc操作XML并定義一些方法如:load、addn
30、ode、deletenode、updatenode、selectednode等方法一些屬性如對圖標、節(jié)點位置、節(jié)點前復(fù)選框等屬性,也會提供一些默認事件如修改節(jié)點前后刷新等。30.談?wù)務(wù)搲奶焓襂M和各種網(wǎng)站程序的交互與刷新思路的差異與共同點。IM交互式信息通信 ajax刷新思路,對于集中刷新方式,應(yīng)該有部分和全部刷新的區(qū)別這個希望大家上網(wǎng)去找詳細的資料31.談?wù)剬SE的認識。目前Web Service廣泛采用Https來保障安全,但是該方法也有很多的缺點,尤其是應(yīng)用于現(xiàn)在越來越復(fù)雜的Web Service安全需求。1.Https提供的是點對點安全保護,而Web Service的特點就是消息往
31、往就要經(jīng)過多個中介才能到達最終的服務(wù)提供方,每個中介還有可能對消息做出些處理,也就是說它需要的是端到端的保護。這顯然是Https所不能提供的。2.Https是在傳輸層提供的安全,而不是在消息層面,也就是只有在傳輸?shù)倪^程中才有消息才是安全的(加密的),而一旦到達了終點就是明文的了。比如可以從消息隊列中將重要的信息竊取出來。3.在Https的建立完共享密鑰后,傳遞消息的時候并沒有使用數(shù)字簽名技術(shù),所以也就無法得到抗否認性的能力。而這又是在電子商務(wù)中不可豁缺的。4.由于Https提供的是傳輸層的安全,當然也就不可能達到消息安全所需要的靈活性的要求。比如加密消息中的部分元素;用不同的密鑰加密消息的不同
32、部分,從而讓不同的消息接受者查看與之對應(yīng)的信息。因此,為了適應(yīng)Web Service對安全的特殊要求,IBM和MS等公司共同制定了WS-Security規(guī)范。重新回顧安全問題的三個概念:Confidentiality(機密性), Integrity(完整性), Authentication(身份鑒別),在Web Service使用SOAP(XML 格式)作為消息傳輸協(xié)議的背景下,分別產(chǎn)生了XML Digital Signature,XML Encryption和SAML(XML格式的Security Token), 而WS-Security則是如何將他們組合起來以滿足Web Service安全
33、需求的一套規(guī)范Web Services Enhancements 2.0 for Microsoft .NET (WSE)是一個用來建設(shè)Web服務(wù)的.NET類庫,它支持最新的Web服務(wù)協(xié)議,包括WS-Security、WS-SecureConversation、WS-Trust、WS-Policy、WS-SecurityPolicy、WS-Addressing和 WS-Attachments。 WSE可使開發(fā)人員跨安全平臺建設(shè)可升級的、安全的Web服務(wù)。它支持用傳輸?shù)姆绞桨l(fā)送SOAP消息,而不是HTTP。另一個特點是具有建立SOAP路由器的功能,SOAP消息被發(fā)送給SOAP路由器,路由器再將工
34、作交付給托管該服務(wù)的Web服務(wù)器。32. 你用過哪些版本控制工具-各位同學兄弟可以根據(jù)自己的實際情況,談?wù)撘恍┳约涸谑褂眠@些工具時所遇到的問題以及體會TFS(ASP.Net)、cvs、svn33. 在開發(fā)中你利用那些工具進行單元測試和模塊測試NUNIT和PDM.頁面測試 httpunuit34如何進行Bug管理由一個BUG跟蹤平臺,提供該程序的各個模塊的BUG,以及級別,以及解決時間等信息35. 如何生成和管理開發(fā)文檔一般用NDOC來生成文檔,大部分文檔主要還是Word為主。主要是各個模塊以及版本的控制等36.請用代碼簡單描述一下Singleton、抽象工廠、策略模式、Composite(任選
35、三個)的設(shè)計模式的概念Singleton 單一模式所有類共享一個實例下面這種實現(xiàn)方式對多線程來說是安全的,同時線程不是每次都加鎖,只有判斷對象實例沒有被創(chuàng)建時它才加鎖,有了我們上面第一部分的里面的分析,我們知道,加鎖后還得再進行對象是否已被創(chuàng)建的判斷。它解決了線程并發(fā)問題,同時避免在每個 Instance 屬性方法的調(diào)用中都出現(xiàn)獨占鎖定。它還允許您將實例化延遲到第一次訪問對象時發(fā)生。實際上,應(yīng)用程序很少需要這種類型的實現(xiàn)。大多數(shù)情況下我們會用靜態(tài)初始化。這種方式仍然有很多缺點:無法實現(xiàn)延遲初始化。/author:renfuming public sealed class Singleton 2
36、 3 static Singleton instance=null; 4 static readonly object padlock = new object(); 6 Singleton()10 public static Singleton Instance12 get14 if (instance=null)16 lock (padlock)18 if (instance=null)20 instance = new Singleton();21 22 23 24 return instance;25 26 27抽象工廠(工廠方法)using System;/author:renfum
37、ingnamespace TestStrategypublic interface IFactoryvoid Method();public class MyProductA:IFactorypublic MyProductA()Console.WriteLine(已經(jīng)生產(chǎn)產(chǎn)品A);public void Method()Console.WriteLine(實現(xiàn)產(chǎn)品A的具體功能!);public class MyProductB:IFactorypublic MyProductB()Console.WriteLine(已經(jīng)生產(chǎn)產(chǎn)品B);public void Method()Console.W
38、riteLine(實現(xiàn)產(chǎn)品B的具體功能!);public class CreateProductAFractorypublic static MyProductA CreateProductA()return new MyProductA();public class CreateProductBFractorypublic static MyProductB CreateProductB()return new MyProductB();public class TestFactorypublic static void Main(string args)IFactory ifact=Cre
39、ateProductAFractory.CreateProductA();ifact.Method();Console.WriteLine(-);ifact=CreateProductBFractory.CreateProductB();ifact.Method();策略模式:屬于對象行為型模式,主要針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使得他們可以相互替換。策略模式適合用于當一個應(yīng)用程序需要實現(xiàn)一種特定的服務(wù)或者功能,而且該程序有多種不同的實現(xiàn)方式可以使用時使用。策略模式中有三個對象:1、 環(huán)境對象:該類中實現(xiàn)了對抽象策略中定義的接口或者抽象類的引用。2、 抽象策略對
40、象:他可以又接口或者抽象類進行實現(xiàn)3、 具體策略對象:他封裝了實現(xiàn)對同一動作不同功能的不同算法;利用策略模式構(gòu)建的應(yīng)用程序,可以根據(jù)用戶配置等內(nèi)容,選擇不同算法來實現(xiàn)應(yīng)用程序的功能,具體的選擇由環(huán)境對象來完成。采用這種方式可以避免由于使用條件語句而帶來的代碼混亂,提高應(yīng)用程序的靈活性和條理性。using System;/author:renfumingnamespace TestStrategypublic interface Strategyvoid PrintCount(string fruitName,int count);public class MyChoilceA:Strategy
41、public void PrintCount(string fruitName,int count)Console.WriteLine(0實現(xiàn)5折后的價格是:1,fruitName,count*0.5);public class MyChoiceB:Strategypublic void PrintCount(string fruitName, int count)Console.WriteLine(0實現(xiàn)6折后的價格是:1,fruitName,count*0.6);public class MyChoiceC:Strategypublic void PrintCount(string fru
42、itName, int count)Console.WriteLine(0實現(xiàn)7折后的價格是:1,fruitName,count*0.7);public class ChoiceContextStrategy objStrategy;public ChoiceContext(Strategy obj)this.objStrategy=obj;public void Execute(string name,int count)this.objStrategy.PrintCount(name,count);class MyTestClassSTAThreadstatic void Main(str
43、ing args)ChoiceContext objA=new ChoiceContext(new MyChoilceA();objA.Execute(蘋果,1000);ChoiceContext objB=new ChoiceContext(new MyChoiceB();objB.Execute(香蕉,1000);ChoiceContext objC=new ChoiceContext(new MyChoiceC();objC.Execute(橘子,1000);上面的例子是我自己寫的,有不足之處,請自己網(wǎng)上更正!37.如果你是一位軟件架構(gòu)師,您將如何去搭建一個符合n-tie的架構(gòu)?并請描述
44、一下您搭建的每一層的作用。(注意:請您考慮項目中有WebService的情況)主要根據(jù)實際情況來決定搭建的層數(shù)以及各層的規(guī)格。 一般情況下,可如下搭: 數(shù)據(jù)層:主要提供數(shù)據(jù)服務(wù),該層繼承實體的接口并定制自己的數(shù)據(jù)提取和存儲。并根據(jù)數(shù)據(jù)庫類型如sqlserver、oracle等來建立此層服務(wù)。執(zhí)行邏輯我個人偏好采用存貯過程。 業(yè)務(wù)層:由于定制的實體的屬性和操作實體的方法已由數(shù)據(jù)層獲得和執(zhí)行,故業(yè)務(wù)邏輯組件對此實體進行組合以滿足上層對業(yè)務(wù)邏輯組件的調(diào)用,webservice也是建在此層,以用于提供數(shù)據(jù)服務(wù)和邏輯執(zhí)行。表示層:一般定制不同的容器控件,以用于加載從業(yè)務(wù)層不同類型的數(shù)據(jù)便于呈現(xiàn)。當然也要
45、此層的風格以及各種顯示設(shè)置,webservice顯示頁面建在層,通過加載對指定目錄的webservice提供的方法用于呈現(xiàn)。38.可否簡要的介紹 2.0 Membership,WebPart和C#的匿名函數(shù)和泛型等你認為.net 2.0自己感興趣的內(nèi)容,希望可以簡要地闡述其中的特點(本題非常的重要)1 Membership:成員管理主要提供了一套對用戶信息、用戶角色、用戶配置信息的用戶系統(tǒng)。通過MembershipConfigHandler加載配置文件中公有的基礎(chǔ)信息,對配置文件中的信息進行了嚴格的邊界檢查和類型檢查。通過MembershipProvider提供了實現(xiàn)membership的抽象
46、方法以及配置信息。由SqlMembershipProvider繼承MembershipProvider來實現(xiàn)sqlclient的數(shù)據(jù)提供服務(wù)。業(yè)務(wù)和實現(xiàn)相剝離,以利于擴展。當然里面有很多特點也有很多細節(jié)等。 2 WebPart:主要提供頁面布局和自定義以及換皮膚的功能。通過定義主題Theme來決定整體的布局風格,以及版面通過設(shè)定不同的區(qū)域Zone來決定版面各塊的區(qū)域設(shè)置。通過不同的skin和css來確定風格。讓用戶能夠保存自己的個人設(shè)置以及回復(fù)默認設(shè)置的功能。 3 匿名函數(shù):使用匿名方法可以減少因?qū)嵗兴枰拈_銷,1.0中使用委托必須實例化委托并且必須將所調(diào)用的類和方法作為參數(shù)傳入也即命
47、名方法,當然如果所調(diào)用的委托具有多變性應(yīng)該還采用命名方法。 4 泛型:一般用于集合類。由于以前集合類數(shù)據(jù)都由framework隱式轉(zhuǎn)化為object類型,這種開銷很大。而用泛型,你就可以指定傳入對象類型,而用于生成強類型的數(shù)據(jù)集,這樣各種操作就可以使用指定類型的特性和優(yōu)勢了,自然速度也快了很多。當然接口、方法、類等都同樣使用這種方式5 編譯模型除了1.0支持的批編譯,也提供新的編譯模式。 6 在httpmodule和httphander的處理速度要比以前1.0要快。 7 在請求響應(yīng)輸出中,將緩沖區(qū)由宿主進程移到本機內(nèi)存,可以消除資源瓶頸。 8 其緩存模型提供了數(shù)據(jù)庫依賴和緩存后替功能。 9 與
48、IIS6.0集中能提供更好的性能,主要體現(xiàn)在緩存和緩沖操作上。39.A中的內(nèi)建對象Page對象:Web Form 網(wǎng)頁在執(zhí)行的時候會被編譯成Page 對象,Page對象通知來設(shè)置與網(wǎng)頁有關(guān)的屬性、方法和事件; Response對象:用來決定服務(wù)器端在什么時候或如何輸出數(shù)據(jù)到客戶端; Request對象:用來捕獲由客戶端返回服務(wù)器的數(shù)據(jù); Server對象:提供服務(wù)器端最基本的屬性和方法; Application對象:用來記錄不擊客戶端共享的變量; Session對象:用來記錄各客戶端的專用變量; Cookies對象:為Web應(yīng)用程序保存訪問者相關(guān)信息40.NET具有跨平臺的性質(zhì)嗎?現(xiàn)在是否可以
49、在UNIX平臺上廣泛的應(yīng)用?非常了不起的工具INET,實現(xiàn).NET跨平臺!執(zhí)行摘要微軟的.NET是一套連接信息、人、系統(tǒng)、設(shè)備的軟件技術(shù)。此新一代的技術(shù)是基于Web服務(wù)和小模塊創(chuàng)建的應(yīng)用,可以使任何應(yīng)用彼此互連并且能連接到Internet上的其他大型應(yīng)用。.NET的基礎(chǔ)核心是集成開發(fā)設(shè)備(IDE), Visual Studio.NET和一種新的應(yīng)用執(zhí)行環(huán)境-Microsoft .net開發(fā)框架。這些系統(tǒng)使開發(fā)人員能夠像靈活使用 Visual Basic 和C#一樣開發(fā)強大的應(yīng)用程序和Web服務(wù)。 但是有局限的一點是:用.net開發(fā)的應(yīng)用程序必須運行于.net服務(wù)器或者客戶端。如果所有的用戶都按
50、照.NET運行環(huán)境技術(shù)標準化這也許可行,但是實際上當然不是這樣。成千上百萬臺電腦運行的是Linux、Unix, OS X 和其他操作系統(tǒng),而這種環(huán)境不是.NET應(yīng)用程序的標準化運行環(huán)境。因此軟件開發(fā)組織需要考慮: 如何有效利用它們的 Microsoft開發(fā)人員和Visual Studio.NET的技術(shù)特征和優(yōu)勢但是仍然可以訪問非微軟服務(wù)器, PC機,手提電腦和移動設(shè)備?怎樣才能使他們用.NET編寫的程序運行時不受運行環(huán)境的局限? Stryon公司開發(fā)的iNET解決了這一難題。iNET可以使應(yīng)用程序和Web服務(wù)在Visual Basic 和C#下開發(fā),但發(fā)布于任何支持Java的運行環(huán)境,網(wǎng)絡(luò)主機
51、也從IBM網(wǎng)絡(luò)服務(wù)器擴展到Linux和Unix的服務(wù)器。有了iNET技術(shù),開發(fā)人員既可以利用Visual Studio .net開發(fā)環(huán)境的優(yōu)勢,但是又不局限于Microsoft的運行環(huán)境。 41.寫出global.asax文件的主要用途?作用和asp的global.asa一樣,它可以使我們執(zhí)行應(yīng)用程序一層事件的代碼,如:application_start等等,使你可以在這些事件中作一些自定義的處理;也可以定義應(yīng)用程序一層的變量,如:Session等,這在整個應(yīng)用程序中起作用。 42.列出web.config的常用的配置段,并對每個配置段進行簡要的說明。Web.config文件是一個XML文本文件,它用來儲存 A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非拉國家的獨立和振興課件 華東師大版
- 旅行團自愿不買擺渡車的協(xié)議書
- 創(chuàng)意目錄篇課件
- 《跟腱斷裂護理查房》課件
- 電機與電力拖動課件-第6章
- 2024年度版權(quán)維權(quán)合同范本2篇
- 2025年貴州貨運從業(yè)資格考試試題及答案大全解析
- 2024年度水穩(wěn)材料采購與知識產(chǎn)權(quán)保護合同3篇
- 2025年阿壩道路運輸從業(yè)人員資格考試內(nèi)容有哪些
- 《工作流程集合》課件
- 江南大學《高分子化學實驗》2022-2023學年第一學期期末試卷
- 18古詩三首《書湖陰先生壁》說課稿2024-2025學年統(tǒng)編版語文六年級上冊
- 精神病藥物與藥物性肝損傷
- 證券投資購買(出售)授權(quán)書
- 自動售貨機項目營銷計劃書
- 小動物怎樣過冬課件
- 創(chuàng)先爭優(yōu)活動先進典型選樹實施方案
- 餐飲服務(wù)電子教案 學習任務(wù)5 斟酒技能(1)-徒手斟酒
- 2024年度工作總結(jié)模板
- 汽車吊起重吊裝方案
- 電商平臺產(chǎn)品質(zhì)量保障服務(wù)合同
評論
0/150
提交評論