個人總結ASP.NET必備面試題

來源:互聯網
上載者:User

標籤:for   where   成功   完成   重要   頁面   負載   觸發器   mysql   

1.你能解釋下MVC的完整流程嗎?

所有的終端使用者請求被發送到控制器。控制器依賴請求去選擇載入哪個模型,並把模型附加到對應的視圖。附加了模型資料的最終視圖做為響應發送給終端使用者。

2. 那你說一下你對MVC的理解?

MVC是一種設計模式即主要的思想,是一種功能結構模組化的一種開發思想,目的是更好的管理自己的代碼。

ASP.NET MVC是微軟對ASP.NET WebForm架構做出的徹底重構,使Web應用程式的開發更加容易,更加清楚,而推出的一種UI架構。

3.什麼是MVC中的Razor?它是一個輕量級的視圖引擎。4.LinQ是什嗎?

LINQ是一種用來進行資料訪問的編程模型,使得.NET語言可以直接支援資料查詢LINQ的目標是降低訪問資料的複雜度,

LINQ可以用統一的方法訪問不同類型的資料,可以將資料作為對象使用,能夠更好地與編程模型整合

5.Lambda運算式是什麼呢?

Lambda運算式是匿名函數,而匿名函數又是委託,所以lambda運算式就是委託。

6.EF是什嗎?

EF是微軟以Ado.net為基礎發展而來的對象關係映射的orm架構,有三種實現方式:Code First,DB First,Model First,我們常用的是DB Frist,

設計好資料庫,再進行代碼編程,通過內容物件實現互動。EF和Dapper的區別,EF是強型別的ORM架構,Dapper是弱類型的ORM架構

一、  Dapper

問題:簡述你對Dapper的瞭解?

答案:1、Dapper是一個輕量級的ORM類,代碼就一個SqlMapper.cs檔案,編譯後只有70k

        2、Dapper支援多資料庫,支援SqlServer,MySql,Oracle等

        3、Dapper文法簡單,容易上手

7、什麼是委託,事件是不是一種委託?

 1、委託可以把一個方法作為參數代入另一個方法。
     2、委託可以理解為指向一個函數的引用。
     3、事件是一種特殊的委託

delegate <函數傳回型別> <委託名> (<函數參數>)

8.c#多線程是什麼

多線程的優點:可以同時完成多個任務;可以使程式的響應速度更快;可以節省大量時間進行處理任務;可以隨時停止任務;可以設定每個任務的優先順序,以最佳化程式效能。

9.WebApi概述

Web API是在.NET Framework之上構建的Web的API的架構,Web API是一個編程介面,用於操作可通過標準HTTP方法和標題訪問的系統,

Web API需要基於.NET 3.5或更高版本才可以進行開發

10.什麼是WebService

webservice是一種跨平台,跨語言的規範,用於不同平台,不同語言開發的應用之間的互動,是基於網路的、分布式的模組化組件,它執行特定的任務,

遵守具體的技術規範。

11.預存程序是什嗎?有什麼用?有什麼優點?用什麼來調用?

預存程序是先行編譯,安全性高,也是大大提高了效率,預存程序可以重複使用以減少資料庫開發人員的工作量,複雜的邏輯我們可以使用預存程序完成,

在預存程序中我們可以使用暫存資料表,還可以定義變數,拼接sql語句,調用時,只需執行這個預存程序名,傳入我們所需要的參數即可,

12.何為觸發器?

觸發器是一種特殊的預存程序,主要是通過事件觸發而被執行。它可以強化約束來維護資料的完整性和一致性,可以追蹤資料庫內的操作從

而不允許未經許可的更新和變化。可以級聯運算,

常見的觸發器有三種:分別應用於Insert , Update , Delete 事件。

13.SQL最佳化

1.選擇最有效率的表名順序2.WHERE子句中的串連順序3.SELECT查詢中避免使用‘*‘4.減少訪問資料庫的次數5.使用DECODE函數來減少處理時間
6.用Where子句替換HAVING子句7.減少對錶的查詢使用表的別名9.用EXISTS替代IN。10.用NOT EXISTS替代NOT IN。11.用表串連替換EXISTS。
12.用EXISTS替換DISTINCT。13.用索引提高效率14.避免在索引列上使用計算15.避免在索引列上使用IS NULL和IS NOT NULL

 14..事務的作用?

事物簡單來說就是要麼一起執行,要麼就都不執行,如有一個地方出錯,全部復原,不執行
事務4大屬性:
1   原子性(Atomicity):事務是一個完整的操作。
2   一致性(Consistency):當事務完成時,資料必須處於一致狀態。
3   隔離性(Isolation):對資料進行修改的所有並發事務是彼此隔離的。
4   持久性(Durability):事務完成後,它對於系統的影響是永久性的。
T-SQL中管理事務的語句:開始事務:begin transaction提交事務commit transaction復原事務 rollback transaction
 事務分類:明確交易:用begin transaction明確指定事務的開始。
2 隱性事務:當以隱性事務模式操作時,SQL Servler將在提交或復原事務後自動啟動新事務。無法描述事務的開始,只需要提交或復原事務。
3 自動認可事務:SQL Server的預設模式,它將每條單獨的T-SQL語句視為一個事務。如果成功執行,則自動認可,否則復原。

什麼是Ajax非同步呼叫?

就是不需要載入整個頁面的資料,只請求一小部分的資料,這樣可以實現了非同步調用。

15.ORM是什嗎?

ORM,即Object-Relational Mapping(對象關係映射),它的作用是在關係型資料庫和業務實體物件之間作一個映射,
這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。
ORM方法論基於三個核心原則: 簡單:以最基本的形式建模資料。 傳達性:資料庫結構被任何人都能理解的語言文檔化。
 精確性:基於資料模型建立正確標準化的結構。
16.什麼叫做泛型?

從編程的角度說是在定義類或者方法的時候省去具體的類型,由調用者來指定,類型+泛型型別合成得到真正的類型。從實現機制上說,泛型是CLR在

運行時動態根據泛型型別建立的匿名型別。從OO設計的角度說,泛型體現了多態性。泛型使得程式員可以複用資料結構和演算法,並且適應不同的類型,

享有編譯期間的強型別檢查和文法提示。一些經典的FCL提供的泛型型別和介面:   List<T>、Dictionary<T1, T2>這個屬於複用資料結構    

IComparer<T>、IEnumerable<T>這個屬於複用演算法

17. C#中實值型別和參考型別分別有哪些? 

實值型別:結構體(數實值型別,bool型,使用者定義的結構體),枚舉,可空類型。參考型別:數組,使用者定義的類、介面、委託,object,字串。

18.在項目中如何解決高並發問題?

答案:盡量使用緩衝,包括使用者緩衝,資訊緩衝等,多花點記憶體來做緩衝,可以大量減少與資料庫的互動,提高效能。
   最佳化資料庫查詢語句。
    最佳化資料庫結構,多做索引,提高查詢效率。
    統計的功能盡量做緩衝,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。
    能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容產生靜態html來顯示)。
    解決以上問題後,使用伺服器叢集來解決單台的瓶頸問題。

19.敏捷開發?
敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方式。它並不是一門技術,而是一種開發方式,也就是一種軟體開發的流程。
它會指導我們用規定的環節去一步一步完成項目的開發。
因為它採用的是迭代式開發,所以這種開發方式的主要驅動核心是人。

20.請說明在.net中常用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。
1、session(viewstate) 簡單,但易丟失
2、application 全域
3、cookie 簡單,但可能不支援,可能被偽造
4、input type=”hidden” 簡單,可能被偽造
5、url參數簡單,顯示於地址欄,長度有限
6、資料庫穩定,安全,但效能相對弱

21.IOC容器?

IOC即控制反轉,是一種設計思想,在之前的項目中,當我們需要一個對象時,需要new一個對象,而IOC的設計思想是我們將需要的對象注入到一個容器中,
就會獲得我們所需要的資源
【擴充】:IOC和DI IOC是控制反轉,DI是依賴注入,控制反轉的解釋有些模稜兩可,而依賴注入就很明確,我們將需要的對象注入到容器中,擷取所需要的資源

22.Ado.net五大對象?

(1)Connection對象
Connection 對象就像是打仗時候的通訊兵,他們在打仗之前需要先接通司令部與各個作戰單位之間的通訊線路。之後作戰命令的擷取以及發布都要靠通訊線路來完成。
這裡的司令部就類似於伺服器,各作戰單位就類似於各應用程式。
(2)Command對象
     執行一些簡單操作命令,如:增刪改刪,即執行T-SQL語句。Command對象有幾個比較重要的方法,如ExecuteNonQuery()方法,執行增刪改命令,返回的是受影
響的行數。查詢方法有2種:一個是ExecuteReader()方法,返回一個DataReader對象。還有ExecuteScale()方法,返回首行首列值。
(3)DataAdapter對象
     資料配接器,從資料庫中檢索資料,再填充到本機資料集中。同時,我們可以利用DataAdapter,再將資料反向從DataSet中更新回資料庫。DataAdapter使用中主
要有4個命令對象比較重要。它們分別是:SelectCommand、InsertCommand、UpdateCommand、DeleteCommand。SelectCommand,主要是從資料庫中檢索資料
InsertCommand、UpdateCommand、DeleteCommand這3個命令對象主要負責把本機資料集DataSet中的資料上傳回伺服器。我們主要使用的是前者。
DataAdapter的Fill方法,用於使用DataAdapter的SelectCommand的執行結果集來填充DataSet。
(4)DataReader對象
 當我們只需要循序的讀取資料而不需要其它操作時,可以使用DataReader 對象。DataReader對象只是一次一筆向下循序地讀取資料來源中的資料,不作其它的操作
。因為DataReader 在讀取資料的時候限制了每次唯讀取一筆,而且只能唯讀,所以使用起來不但節省資源而且效率很好。此外,因為不用把資料全部傳回,
故可以降低網路的負載。但是,當我們從資料來源中一條一條的讀取資料的時候,一定記得要時刻開啟資料庫的串連。
二、DataSet對象
    DataSet 這個對象可以視為本地記憶體中的一個資料庫,可以把從資料庫中所查詢到的資料保留到本地。DataSet 的能力不只是可以儲存多個Table,
還可以透過DataAdapter 對象取得一些例如主鍵等資料表結構,並可以記錄資料表間的關聯。當我們使用DataSet讀取資料的時候,資料庫的串連是否
關閉已經無關緊要了。DataSet 對象可以說是ADO.NET 中重量級的對象,通過DataAdapter 對象這個橋樑,實現了與資料來源溝通的能力 。

個人總結ASP.NET必備面試題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.