成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

2009年8月51CTO駐站專家周金橋老師精彩問答

原創
開發 后端
51CTO開發頻道推出“駐站專家”欄目,致力于打造專家級的用戶體驗。8月我們將請到國內.NET方面的專家周金橋老師為大家答疑解惑,本文是8月駐站專家的經典問題總結。

2009年8月51CTO駐站專家周金橋老師簡介

周金橋,網名周公,微軟2008年7月MVP,51CTO專家堂成員。微軟山西.NET俱樂部技術負責人。超過6年的Web開發經驗,擅長ASP.NET、程序性能和安全優化。

點擊進入活動原帖

經典問題

從工程的角度上說,我認為代碼的可維護性與可讀性是極其重要的,因此我認為在開發過程中應該盡可能采用代碼量少的解決方案。對于CRUD類的需求,asp.net提供的數據控件和數據源控件正好滿足我的要求。

我的系統設計完全面向對象,在使用數據控件的時候就有出一點問題,請指教。舉例來說:假設有一個訂單系統

系統流程圖


訂單冊OrderRegister負責對訂單進行CRUD操作,現在我要實現創建訂單的功能。

ASP.NET的數據控件對于平面對象(只包含基本類型屬性的對象)支持的很好,而對于我這種立體型對象設計顯示支持的不太好。我現在采用的方式是在數據控件中再嵌套一個數據控件。外層用于操作Order,內層用于操作OrderItem。但在實際開發中有非常多的細節問題需要處理。我希望可以了解到,您對這種設計,在頁面上是如何處理的?

駐站專家周金橋老師精彩回答:

這種情況實際中不少見,不過說實在話我從來不在真實項目中使用數據源控件(數據源控件是一種針對初學者的、小型的網站使用),復雜的情況下盡可能使用Repeater數據綁定控件或者干脆不用任何數據綁定控件。

在某些操作過程中可能會需要對兩個甚至兩個以上的數據表進行操作,針對這種情況我一般是采用存儲過程,這樣可以保證一致性:要么所有的操作都成功,要么都不成功(使用事務)。

至于查詢一般就使用視圖,這樣避免每次查詢時都要寫大量的SQL語句。

經典問題二

有關屬性編輯框與Form.Designer.cs問題

控件通過屬性編輯框修改屬性后,是如何自動更新到Form.Designer.cs的?

駐站專家周金橋老師精彩回答:

通過屬性編輯框修改屬性之后,就會自動修改*.Designer.cs中的代碼,這部分代母具體位置就是位于

  1. #region Windows 窗體設計器生成的代碼  
  2. ///   
  3. /// 設計器支持所需的方法 - 不要  
  4. /// 使用代碼編輯器修改此方法的內容。  
  5. /// 
  6.  
  7. private void InitializeComponent()  
  8. {  
  9. //控件屬性設置代碼  
  10. }  
  11. #endregion 

在C#中不是有事件嗎?當你在屬性編輯器中編輯屬性完成之后,就會激發一個事件,這樣就知道是哪個屬性發生了變化了,就可以在源代碼中修改相應的源代碼的值了。當然,我沒有看VS這個IDE的源代碼(實際上也不可能看到),但是我想他們大概是采用了類似的思路和方法。

有一個開源的C#編寫的C#的IDE,如果有興趣,你可以下載來看看,研究一下。

經典問題三

我在項目中遇到一個奇怪的問題,今天加班弄了一天也沒有解決,郁悶死了,希望在這里能找到答案~~~

和數據量比較大有關,我的一個aspx頁面在跑完服務器代碼后,過了7,8分鐘才顯示出內容,有時甚至達到10分鐘,正常顯示后,畫面中有個'Save' 服務器按鈕,該按鈕有客戶端的clientclick事件和服務器端的onclick事件,我在點擊該按鈕后,跑了客戶端代碼后就直接跳出顯示一個 “the page cannot be displayed”的無法顯示的頁面了,當然該頁面的屬性地址里顯示的還是"Save"時的頁面,即同一個頁面。客戶端腳本中包含的內容只是提示 confirm,是否要保存,是的話就返回true.

另外,我用數據量小一些的來測試,就是過了1,2分鐘就頁面就可以顯示數據的。點擊“Save”按鈕就沒問題,主要是出現問題的那個數據,在點擊 “Save”時根本就沒跑服務器端的代碼,但是在***次加載該頁的時候,即page_load時,是有跑后臺代碼的,所以我真不知道問題是出在哪里了,是不是由于長時間響應后才顯示頁面,導致了頁面的代碼丟失,無法提交數據,所以出現了只跑了客戶端的代碼,而沒有跑服務器端代碼,然后直接顯示空白頁或是本身的一個"the page cannot be displayed" 無法顯示的頁面呢?

駐站專家周金橋老師精彩回答

1、確認是否利用了Page.IsPostBack屬性來區分頁面的***加載事件,實際上并不是每次都需要控件對因服務器控件的回傳事件導致頁面的加載進行響應的。

2、是否使用了正確的數據分頁機制。你提到數據量少時加載過程費時較短,我感覺似乎跟你的數據加載方式有關系。可能數據量比較大,而你在顯示時不管需要不需要把全部數據都提取出來了,導致效率的降低。

請見我給有關文章數據分頁方面文章的鏈接:用AjaxPro實現無刷新翻頁效果及數據庫分頁技術介紹

在實際項目中經常會遇到一個表里有幾K、幾M以上的數據,而呈現給用戶時并不會一下子都顯示出來,所以都是分批展示給用戶,這樣一來可以減小網絡傳輸量,二來也減輕服務器壓力。

經典問題四

想再問下在控件使用方面~特別是富控件的使用~周老師有沒有什么比較好的經驗!還有周老師感覺在比較大的門戶類型項目中哪些控件***少用~或者不用~ ...

駐站專家周金橋老師精彩回答:

對于這個問題要看實際項目情況了,一般來說使用控件會降低對開發人員的要求(比如對HTML/CSS/JS等方面的要求),但是如果處理不當有可能增加了服務器的處理負擔。

對于負責的富控件在實際項目中我們一般用得比較上,而是有經驗豐富的程序員用HTML/CSS/JS來實現類型的效果,在開發過程中再根據實際要求輸出生成控件的那段代碼。在《ASP.NET夜話》中就有一個我用JS實現的類似于WinForm中的選項卡時效果的例子,就是我當初寫的。

【編輯推薦】

  1. .NET VS Java平臺之爭的理性思考
  2. .NET C# DES入門淺析
  3. .NET寫入文本文件的操作淺析
  4. .NET自定義控件應該如何實現?
  5. 淺析.NET 4.0和Visual Studio 2010多定向支持
責任編輯:彭凡 來源: 51CTO
相關推薦

2009-11-09 16:39:17

51CTO駐站專家

2009-12-04 13:32:36

51CTO駐站專家

2009-10-09 11:16:39

51CTO駐站專家

2010-01-19 09:53:44

51CTO駐站專家

2010-01-19 11:21:20

51CTO駐站專家

2009-03-22 10:57:48

CCNA視頻教程下載

2009-09-16 14:31:19

三級網絡技術計算機等級考試

2009-09-19 11:47:03

2009年9月計算機等2009年9月等級考試

2009-04-29 14:57:28

系統分析師預測題軟考

2011-01-13 14:55:48

周金橋

2015-07-30 06:08:32

51ctoopenstack五周年

2009-09-16 14:31:19

四級網絡工程師計算機等級考試

2009-05-24 07:37:28

軟考答案2009年上半年

2011-06-19 12:15:27

2009-11-06 14:47:45

程序員軟考模擬題

2011-06-12 21:25:01

51CTO一周要聞分析

2012-10-10 10:00:14

2009-05-24 13:29:30

2009年上半年軟考試2009年上半年軟考答軟考

2016-06-12 13:48:33

51CTO

2011-08-18 08:56:35

開發月刊
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲免费视频在线观看 | 亚洲日本欧美日韩高观看 | www日| 欧美日韩久 | 国产精品福利视频 | 无码日韩精品一区二区免费 | 国产精品久久久久一区二区三区 | 亚洲欧美国产精品久久 | 国产91一区二区三区 | 国产精品资源在线 | 99re99| 在线观看www高清视频 | 福利网址 | av资源中文在线 | 欧美日日 | 久久久91精品国产一区二区三区 | 国产免费拔擦拔擦8x高清 | 粉嫩av | 9久久精品| 国产美女福利在线观看 | 国产精品久久久久一区二区三区 | 国产精品日韩欧美 | 日韩精品a在线观看图片 | 在线观看视频一区 | 亚洲欧美视频一区 | 91在线看 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 超碰在线播 | 狠狠干美女 | 欧美黑人体内she精在线观看 | 日批日韩在线观看 | 一区精品视频在线观看 | 日韩精品在线播放 | 亚洲乱码一区二区 | 在线观看中文字幕一区二区 | 一区二区三区精品在线视频 | 欧美网站一区 | 日韩福利 | 999久久久免费精品国产 | 日韩精品在线视频 | 91欧美激情一区二区三区成人 |