.NET不可不知的的基礎名詞

什麼叫應用程序域?什麼是託管代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別作何解釋?IL分別是什麼含義.
應用程序域應用程序域爲安全性、可靠性、版本控制以及卸載程序集提供了隔離邊界。應用程序域通常由運行庫宿主創建,運行庫宿主負責在運行應用程序之前引導公共語言運行庫。應用程序域提供了一個更安全、用途更廣的處理單元, 公共語言運行庫可使用該單元提供應用程序之間的隔離。                                                    託管代碼 使用基於公共語言運行庫的語言編譯器開發的代碼稱爲託管代碼;託管代碼具有許多優點,例如:跨語言集成、跨語言異常處理、增強的安全性、版本控制和部署支持、簡化的組件交互模型、調試和分析服務等。 裝箱和拆箱  裝箱和拆箱使值類型能夠被視爲對象。對值類型裝箱將把該值類型打包到 Object 引用類型的一個實例中。這使得值類型可以存儲於垃圾回收堆中。拆箱將從對象中提取值類型。     重載   每個類型成員都有一個唯一的簽名。方法簽名由方法名稱和一個參數列表(方法的參數的順序和類型)組成。只要簽名不同,就可以在一種類型內定義具有相同名稱的多種方法。當定義兩種或多種具有相同名稱的方法時,就稱作重載。  CTS通用類型系統 (common type system)  一種確定公共語言運行庫如何定義、使用和管理類型的規範。 CLR公共語言運庫  .NET Framework 提供了一個稱爲公共語言運行庫的運行時環境,它運行代碼並提供使開發過程更輕鬆的服務。 CLS公共語言規範 要和其他對象完全交互,而不管這些對象是以何種語言實現的,對象必須只向調用方公開那些它們必須與之互用的所有語言的通用功能。爲此定義了公共語言規範 (CLS),它是許多應用程序所需的一套基本語言功能。  強類型  C# 是強類型語言;因此每個變量和對象都必須具有聲明類型。IL,中間語言,也稱MSIL,微軟中間語言,或CIL,通用中間語言;所有.NET源代碼(不管用哪種語言編寫)在進行編譯時都被編譯成IL。在應用程序運行時被即時(Just-In-Time,JIT)編譯器處理成爲機器碼,被解釋及執行。
6.net中讀寫數據庫需要用到那些類?他們的作用?
答:DataSet:數據存儲器。
DataCommand:執行語句命令。
DataAdapter:數據的集合,用語填充。
7.ASP.net的身份驗證方式有哪些?分別是什麼原理?
答:Windows身份驗證提供程序        提供有關如何將Windows 身份驗證與 Microsoft Internet 信息服務 (IIS) 身份驗證結合使用來確保ASP.NET 應用程序安全的信息。Forms身份驗證提供程序    提供有關如何使用您自己的代碼創建應用程序特定的登錄窗體並執行身份驗證的信息。使用 Forms 身份驗證的一種簡便方法是使用ASP.NET 成員資格和 ASP.NET 登錄控件,它們一起提供了一種只需少量或無需代碼就可以收集、驗證和管理用戶憑據的方法。 Passport 身份驗證提供程序提供有關由 Microsoft 提供的集中身份驗證服務的信息,該服務爲成員站點提供單一登錄和核心配置                                                                                                                   
8.什麼是Code-Behind技術?答:代碼後植。
9.在.net中,配件的意思是?答:程序集。(中間語言,源數據,資源,裝配清單)
10.常用的調用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。  2.使用VS.NET中的Add Web Reference菜單選項
11..net Remoting 的工作原理是什麼?
答:服務器端向客戶端發送一個進程編號,一個程序域編號,以確定對象的位置。
12.請詳述在dotnet中類(class)與結構(struct)的異同?
答:(Class可以被實例化,屬於引用類型,是分配在內存的堆上的,Struct屬於值類型,是分配在內存的棧上的.)結構與類共享幾乎所有相同的語法,但結構比類受到的限制更多:儘管結構的靜態字段可以初始化,結構實例字段聲明還是不能使用初始值設定項。結構不能聲明默認構造函數(沒有參數的構造函數)或析構函數。    結構的副本由編譯器自動創建和銷燬,因此不需要使用默認構造函數和析構函數。實際上,編譯器通過爲所有字段賦予默認值(參見默認值表)來實現默認構造函數。結構不能從類或其他結構繼承。結構是值類型 -- 如果從結構創建一個對象並將該對象賦給某個變量,變量則包含結構的全部值。複製包含結構的變量時,將複製所有數據,對新副本所做的任何修改都不會改變舊副本的數據。由於結構不使用引用,因此結構沒有標識 -- 具有相同數據的兩個值類型實例是無法區分的。C# 中的所有值類型本質上都繼承自 ValueType,後者繼承自 Object。  編譯器可以在一個稱爲裝箱的過程中將值類型轉換爲引用類型。                          結構具有以下特點:  l 結構是值類型,而類是引用類型。 2。向方法傳遞結構時,結構是通過傳值方式傳遞的,而不是作爲引用傳遞的。3.與類不同,結構的實例化可以不使用 new 運算符。4. 結構可以聲明構造函數,但它們必須帶參數。5 。 一個結構不能從另一個結構或類繼承,而且不能作爲一個類的基。所有結構都直接繼承自 System.ValueType,後者繼承自 System.Object。6  結構可以實現接口。                         7        在結構中初始化實例字段是錯誤的。                                             13abstract class和interface有什麼區別?
答:聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類爲它們父類中的所有抽象方法提供實現,否則它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類可以在類中實現這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作爲引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。                                  13.值類型和引用類型的區別?
基於值類型的變量直接包含值。將一個值類型變量賦給另一個值類型變量時,將複製包含的值。這與引用類型變量的賦值不同,引用類型變量的賦值只複製對對象的引用,而不復制對象本身。所有的值類型均隱式派生自 System.ValueType。         與引用類型不同,從值類型不可能派生出新的類型。但與引用類型相同的是,結構也可以實現接口。 與引用類型不同,值類型不可能包含 null 值。然而,可空類型功能允許將null 賦給值類型。 每種值類型均有一個隱式的默認構造函數來初始化該類型的默認值。          值類型主要由兩類組成:結構、枚舉         結構分爲以下幾類:Numeric(數值)類型、整型、浮點型、decimal、bool、用戶定義的結構。                        引用類型的變量又稱爲對象,可存儲對實際數據的引用。聲明引用類型的關鍵字:class、inte***ce、delegate、內置引用類型:object、string             14.如何理解委託
委託類似於 C++函數指針,但它是類型安全的。委託允許將方法作爲參數進行傳遞。委託可用於定義回調方法。委託可以鏈接在一起;例如,可以對一個事件調用多個方法。方法不需要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作爲參數傳遞,以代替單獨定義的方法。
15.啓動一個線程是用run()還是start()?
答:啓動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。這並不意味着線程就會立即運行。run()方法可以產生必須退出的標誌來停止一個線程。
16.接口是否可繼承接口?抽象類是否可實現(implements)接口?抽象類是否可繼承實體類(concrete class)?
答:接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。
17.構造器Constructor是否可被override?
答:構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
18.是否可以繼承String類?                  答:String類是final類故不可以繼承。
19.try {}裏有一個return語句,那麼緊跟在這個try後的finally{}裏的code會不會被執行,什麼時候被執行,在return前還是後?                    答:會執行,在return前執行。                        20.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。
47.當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。
48.abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
答:都不能。
49.List, Set, Map是否繼承自Collection接口?           答:List,Set是Map不是
50.Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用==還是equals()?它們有何區別?
答:Set裏的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和類型相配的話,返回真值。
51.數組有沒有length()這個方法?String有沒有length()這個方法?
答:數組沒有length()這個方法,有length的屬性。String有有length()這個方法。
52.sleep() 和wait() 有什麼區別?
答:sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿後,線程不一定立即恢復執行。這是因爲在那個時刻,其它線程可能正在運行而且沒有被調度爲放棄執行,除非(a)“醒來”的線程具有更高的優先級(b)正在運行的線程因爲其它原因而阻塞。wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。                     54.談談final,finally, finalize的區別。
答:final—修飾符(關鍵字)如果一個類被聲明爲final,意味着它不能再派生出新的子類,不能作爲父類被繼承。因此 一個類不能既被聲明爲 abstract的,又被聲明爲final的。將變量或方法聲明爲final,可以保證它們在使用中 不被改變。被聲明爲final的變量必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明爲 final的方法也同樣只能使用,不能重載
finally—再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會 執行,然後控制就會進入 finally 塊(如果有的話)。
finalize—方法名。Java 技術允許使用finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理 工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的 ,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
55.如何處理幾十萬條併發數據?
答:用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個存儲過程來獲取.
56.Session有什麼重大BUG,微軟提出了什麼方法加以解決?
答:是iis中由於有進程回收機制,系統繁忙的話Session會丟失,可以用Sateserver或SQL Server數據庫的方式存儲Session不過這種方式比較慢,而且無法捕獲Session的END事件。
57.進程和線程的區別?
答:進程是系統進行資源分配和調度的單位;線程是CPU調度和分派的單位,一個進程可以有多個線程,這些線程共享這個進程的資源。
58.堆和棧的區別?
答:棧:由編譯器自動分配、釋放。在函數體中定義的變量通常在棧上。
堆:一般由程序員分配釋放。用new、malloc等分配內存函數分配得到的就是在堆上。
59.成員變量和成員函數前加static的作用?
答:它們被稱爲常成員變量和常成員函數,又稱爲類成員變量和類成員函數。分別用來反映類的狀態。比如類成員變量可以用來統計類實例的數量,類成員函數負責這種統計的動作。
60.ASP。NET與ASP相比,主要有哪些進步?答:asp解釋形,aspx編譯型,性能提高,有利於保護源碼。

66.軟件開發過程一般有幾個階段?每個階段的作用?答:需求分析,架構設計,代碼編寫,QA,部署      74.什麼是虛函數?什麼是抽象函數?
答:虛函數:沒有實現的,可由子類繼承並重寫的函數。抽象函數:規定其非虛子類必須實現的函數,必須被重寫。
75.什麼是XML?
答:XML即可擴展標記語言。eXtensible Markup Language.標記是指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種信息的文章等。如何定義這些標記,即可以選擇國際通用的標記語言,比如HTML,也可以使用象XML這樣由相關人士自由決定的標記語言,這就是語言的可擴展性。XML是從SGML中簡化修改出來的。它主要用到的有XML、XSL和XPath等。
76.什麼是Web Service?UDDI?
答:Web Service便是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵守具體的技術規範,這些規範使得Web Service能與其他兼容的組件進行互操作 監聽和發送消息,WEB客戶端是被動的,等待客戶端的發送請求,web服務器端響應並處理回發
  web service支持返回的數據類型:1所有的簡單數據類型,如:int,string,bool等;2對象:數據集DataSet,注意,在.Net 1.1裏是不支持DataTable的,而在2.0裏是可以的。UDDI 的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。 (Web Service 是指經過將內部邏輯進行封裝後的一組特定功能的特定的組件,它可由網絡上的其他系統使用。其他系統可通過Web Service 所暴露的接口調用這些功能來請求數據或執行操作。由於 Web Service 基於XML的標準技術,因此它是連接和開發分佈式系統的極好方法。Web Service 技術爲企業集成分佈式系統(異構的操作系統、新舊運用軟件和環境)提供靈活的解決方案。)                                          79.ADO.net中常用的對象有哪些?                                                         ADO.NET的對象主要包括:DataSet,DataTable,DataColumn,DataRow,和DataRelation。
      DataSet:這個對象是一個集合對象,它可以包含任意數量的數據表,以及所有表的約束、索引和關係。所有這些信息都以XML的形式存在,我們可以處理、遍歷、搜索任意或者全部的數據。
      DataTable:這個對象代表着可以在DataSet對象內找到的所有表
      DataColumn:表包含與列有關的信息,包括列的名稱、類型和屬性。我們可以按照下面的方式創建DataColumn對象,指定數據類型,然後把列加入到表
      DataRow:要填充一個表,我們可以使用命令的自動數據綁定功能,或者也可以手工添加行
      DataRelation:這個對象代表着兩個表之間的父-子關係。關係建立在具有同樣數據類型的列上DataSet對象:表示內存中數據的緩存,可以把它想像成一個臨時的數據庫,它裏可以存多個表(DataTable),而且是斷開式的,不用每進行一次操作就對數據庫進行更新,從而提高了效率。
DataReader對象:它與DataSet最大的不同是有連接式的,每次對數據庫進行存取都會影響到數據庫。
Connection對象:用於連接數據庫的對象,表示到數據源的一個唯一的連接。
Command對象:表示要對數據庫執行的一個SQL語句或一個存儲過程。
DataAdapter對象:該對象是與DataSet配合使用的對象,用於把表填充到DataSet,和更新DataSet等。Ado.net   是ado的一個後續升級版本,利用它可以操作數據庫中的數據! 
  VB.net   是VB6.0的一個後續升級版本,它可以直接開發Windows應用程序 
  ASP.net   是用於開發WEB應用程序的!                                                      80.什麼是code-Behind技術。答:ASPX,RESX和CS三個後綴的文件,這個就是代碼分離.實現了HTML代碼和服務器代碼分離.方便代碼編寫和整理.
81.什麼是SOAP,有哪些應用。
答:simple object access protocal,簡單對象接受協議.以xml爲基本編碼結構,建立在已有通信協議上(如http,不過據說ms在搞最底層的架構在tcp/ip上的soap)的一種規範Web Service使用的協議..
82.C#中 property 與 attribute的區別,他們各有什麼用處,這種機制的好處在哪裏?
答:一個是屬性,用於存取類的字段,一個是特性,用來標識類,方法等的附加性質
83.XML 與 HTML 的主要區別
答:1. XML是區分大小寫字母的,HTML不區分。2. 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結尾,那麼你可以省略</p>或者</li>之類的結束 標記。在XML中,絕對不能省略掉結束標記。
3. 在XML中,擁有單個標記而沒有匹配的結束標記的元素必須用一個 / 字符作爲結尾。這樣分析器就知道不用 查找結束標記了。4. 在XML中,屬性值必須分裝在引號中。在HTML中,引號是可用可不用的。
5. 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應的值。             98..net的錯誤處理機制是什麼?
答:.net錯誤處理機制採用try->catch->finally結構,發生錯誤時,層層上拋,直到找到匹配的Catch爲止。110.大概描述一下ASP。NET服務器控件的生命週期                                    答:初始化 加載視圖狀態 處理回發數據 加載 發送回發更改通知 處理回發事件 預呈現 保存狀態 呈現 處置 卸載                                                                           114.HashMap和Hashtable的區別。
答:HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable.                       120.重載與覆蓋的區別?
答:1、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的重載是同一個類中方法之間的關係,是水平關係 2、覆蓋只能由一個方法,或只能由一對方法產生關係;方法的重載是多個方法之間的關係。
3、覆蓋要求參數列表相同;重載要求參數列表不同。4、覆蓋關係中,調用那個方法體,是根據對象的類型(對象對應存儲空間類型)來決定;重載關係,是根據調 用時的實參表與形參表來選擇方法體的。       abstract class和interface有什麼區別?
答:聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類爲它們父類中的所有抽象方法提供實現,否則它們也是抽象類爲。取而代之,在子類中實現該方法。知道其行爲的其它類可以在類中實現這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作爲引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。
1. 簡述 private、 protected、 public、 internal 修飾符的訪問權限。
答 . private : 私有成員, 在類的內部纔可以訪問。protected : 保護成員,該類內部和繼承類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。internal: 在同一命名空間內可以訪問。
2 .列舉ASP.NET 頁面之間傳遞值的幾種方式。答. 1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session變量3.使用Server.Transfer                                                        override與重載的區別
答 :override 與重載的區別。重載是方法的名稱相同。參數或參數類型不同,進行多次重載以適應不同的需要.Override 是進行基類中函數的重寫。爲了適應需要。
6.如果在一個B/S結構的系統中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進行處理?答 :this.Server.Transfer                                                       19.請敘述constreadonly的區別每一個class至多只可以定義一個static構造函數,並且不允許增加訪問級別關鍵字,參數列必須爲空。 爲了不違背編碼規則,通常把static數據成員聲明爲private,然後通過statci property提供讀寫訪問。const 關鍵字用於修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數聲明引入給定類型的一個或多個常數。 const數據成員的聲明式必須包含初值,且初值必須是一個常量表達式。因爲它是在編譯時就需要完全評估。const成員可以使用另一個const成員來初始化,前提是兩者之間沒有循環依賴。readonly在運行期評估賦值,使我們得以在確保“只讀訪問”的前提下,把object的初始化動作推遲到運行期進行。readonly 關鍵字與 const 關鍵字不同: const 字段只能在該字段的聲明中初始化。readonly 字段可以在聲明或構造函數中初始化。因此,根據所使用的構造函數,readonly 字段可能具有不同的值。另外,const 字段是編譯時常數,而 readonly 字段可用於運行時常數。 readonly 只能在聲明時或者構造函數裏面初始化,並且不能在 static 修飾的構造函數裏面。                       試介紹ASP.NET頁面之間數據傳遞的幾種方法                                                   1)Request.QueryString   在ASP時代,這個是較常用的方法,到了ASP.NET,好像用的人不多了,但是不管怎麼說,這是一個沒有過時,且很值得推薦的方法,因爲不管是ASP還是ASP.NET,最基本的都還是基於HTTp協議的。 缺點是非常明顯的,讓在多個頁面傳遞時,可能就Request不到了                                                                         2)Session   這個是最常用的一個方法,Session的優點是使用簡單,缺點是佔用服務器資源,因爲每一個Session都意味這服務器需要維護相應客戶的會話信息,自然如果登錄的用戶多了,那麼將非常佔用服務器資源。另外Session還有一個缺點,默認的如果你登錄後20分鐘內沒有任何動作,服務器自動會取消該會話,所以那時你又需要登錄。3)Application   這個在ASP時代還是比較常用的,主要用去存儲全局變量,例如數據庫鏈接信息,到了ASP.NET時代,用的不多,至少我好象一直沒有用過。4)Cookie
   這個是我的最愛,Cookie最大的特點是由客戶端維護,不用佔用服務器資源,而且你可以設定用戶登錄時,Cookie的有效期,例如一天,這樣在一天內你不用擔心繫統再讓你登錄。當然Cookie也有缺點,那就是安全性,因爲Cookie在客戶端,確實有些軟件可以分析Cookie的登錄信息,所以你寫入Cookie的內容不要過於敏感,例如不要存儲密碼,還有作爲安全,寫入Cookie的內容最好要加密。5)Viewstate
   ASP.NET新增的,Viewstate使用簡單,缺點是隻能夠在同一個頁面使用,在ASP.NET2.0裏這個問題可以使用Button的PostBackUrl進行結果。6)Cache使用Cache存儲數據還想不多,但是畢竟也是一種手段,另外,在使用Cache存儲DataSet時,其實還是引用而不是內容的拷貝。

5:Web頁面間傳值有幾種方法?(1)★Session (2)★Cookie (3)★Application (4)★URL地址中的參數(5)通過隱藏字段來傳遞數據 (6)★Server.Transfer (7)通過序列化對象                   11:簡述B/S及C/S的本質區別1:C/S(Client/Server)客戶機和服務器結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到Client 端和Server端來實現,降低了系統的通訊開銷。對客戶機的要求有限制,需要針對客戶機的系統而開發不同的版本,重用率低2:B/S(Browser/Server)結構即瀏覽器和服務器結構。用戶工作界面是通過WWW瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。
 C/S是美國Borland公司最早研發,B/S是美國微軟公司研發。
 C/S架構軟件的優勢與劣勢(1)、應用服務器運行數據負荷較輕。 (2)、數據的儲存管理功能較爲透明。 (3)、C/S架構的劣勢是高昂的維護成本且投資大。
 B/S架構軟件的優勢與劣勢(1)、維護和升級方式簡單。 (2)、成本降低,選擇更多。
 (3)、應用服務器運行數據負荷較重。                                                          3,C/S與B/S區別Client/Server是建立在局域網的基礎上的,Browser/Server是建立在廣域網的基礎上的。(1)、硬件環境不同: C/S一般建立在專用的網絡上,小範圍裏的網絡環境,局域網之間再通過專門服務器提供連接和數據交換服務。 B/S建立在廣域網之上的,不必是專門的網絡硬件環境,例如電話上網,租用設備,信息自己管理,有比C/S更強的適應範圍,一般只要有操作系統和瀏覽器就行。(2)、對安全要求不同 C/S一般面向相對固定的用戶羣,對信息安全的控制能力很強。一般高度機密的信息系統採用C/S結構適宜,可以通過B/S發佈部分可公開信息。 B/S建立在廣域網之上,對安全的控制能力相對弱,面向是不可知的用戶羣。(3)、對程序架構不同 C/S程序可以更加註重流程,可以對權限多層次校驗,對系統運行速度可以較少考慮。B/S對安全以及訪問速度的多重的考慮,建立在需要更加優化的基礎之上。比C/S有更高的要求,B/S結構的程序架構是發展的趨勢,從MS的.Net系列的BizTalk2000Exchange2000等,全面支持網絡的構件搭建的系統。SUN和IBM推的JavaBean構件技術等,使B/S更加成熟。 (4)、軟件重用不同C/S程序可以不可避免的整體性考慮,構件的重用性不如在B/S要求下的構件的重用性好。 B/S對的多重結構,要求構件相對獨立的功能。能夠相對較好的重用。就如買來的餐桌可以再利用,而不是做在牆上的石頭桌子。(5)、系統維護不同 系統維護是軟件生存週期中,開銷大,相當重要                                                                                                                                                               8.請編程實現一個冒泡排序算法?
        答:int [] array= new int ;
        int temp = 0 ;
        for (int i = 0 ; i <array.Length - 1 ; i++)
        {                                                                               for(int j = i + 1 ; j < array.Length ; j++)
        {
        if (array[j] < array[i])
        {
        temp = array[i] ;
        array[i] = array[j] ;
        array[j] = temp ;
        }}}

4.NEW有幾種方法?答:第一種:new Class();    第二種:覆蓋方法public new XXXX(){} ;第三種:new 約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。                           13.概述.NET中的GC機制。答:GC的全稱是garbage collection,中文名稱垃圾回收,是.NET中對內存管理的一種功能。垃圾回收器跟蹤並回收託管內存中分配的對象,定期執行垃圾回收以回收分配給沒有有效引用的對象的內存。當使用可用內存不能滿足內存請求時,GC會自動進行。在進行垃圾回收時,垃圾回收器會首先搜索內存中的託管對象,然後從託管代碼中搜索被引用的對象並標記爲有效,接着釋放沒有被標記爲有效的對象並收回內存,最後整理內存將有效對象挪動到一起                             14.ASP.NET中常見內置對象?答:Resqponse、Request、Server、Session、Acclication、Cookie                17.什麼是強類型系統?      答:RTTI:類型識別系統。                                      4.概述反射和序列化   反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然後,可以調用類型的方法或訪問其字段和屬性序列化:序列化是將對象轉換爲容易傳輸的格式的過程。例如,可以序列化一個對象,然後使用 HTTP 通過 Internet 在客戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。                                             13.  請解釋web.config文件中的重要節點

appSettings包含自定義應用程序設置。system.web 系統配置compilation動態調試編譯設置

customErrors自定義錯誤信息設置authentication身份驗證,此節設置應用程序的身份驗證策略。

authorization授權, 此節設置應用程序的授權策略.

 

9.在c#中using和new這兩個關鍵字有什麼意義,請寫出你所知道的意義?
Using 引入一個名子空間,或在使用了一個對像後自動調用其IDespose,New 實例化一個對像,或修飾一個方法,表此方法完全重寫此方法

2.如何把一個array複製到arrayList裏

foreach( object o in array )arrayList.Add(o);

3.datagrid.datasouse可以連接什麼數據源 [dataset,datatable,dataview]

dataset,datatable,dataview , Ilist

7.用sealed修飾的類有什麼特點sealed 修飾符用於防止從所修飾的類派生出其它類。如果一個密封類被指定爲其他類的基類,則會發生編譯時錯誤。密封類不能同時爲抽象類。sealed 修飾符主要用於防止非有意的派生,但是它還能促使某些運行時優化。具體說來,由於密封類永遠不會有任何派生類,所以對密封類的實例的虛擬函數成員的調用可以轉換爲非虛擬調用來處理。

1在.Net中所有可序列化的類都被標記爲__[serializable]___?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章