自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

2009年8月51CTO駐站專家周金橋老師精彩問(wèn)答

原創(chuàng)
開(kāi)發(fā) 后端
51CTO開(kāi)發(fā)頻道推出“駐站專家”欄目,致力于打造專家級(jí)的用戶體驗(yàn)。8月我們將請(qǐng)到國(guó)內(nèi).NET方面的專家周金橋老師為大家答疑解惑,本文是8月駐站專家的經(jīng)典問(wèn)題總結(jié)。

2009年8月51CTO駐站專家周金橋老師簡(jiǎn)介

周金橋,網(wǎng)名周公,微軟2008年7月MVP,51CTO專家堂成員。微軟山西.NET俱樂(lè)部技術(shù)負(fù)責(zé)人。超過(guò)6年的Web開(kāi)發(fā)經(jīng)驗(yàn),擅長(zhǎng)ASP.NET、程序性能和安全優(yōu)化。

點(diǎn)擊進(jìn)入活動(dòng)原帖

經(jīng)典問(wèn)題

從工程的角度上說(shuō),我認(rèn)為代碼的可維護(hù)性與可讀性是極其重要的,因此我認(rèn)為在開(kāi)發(fā)過(guò)程中應(yīng)該盡可能采用代碼量少的解決方案。對(duì)于CRUD類的需求,asp.net提供的數(shù)據(jù)控件和數(shù)據(jù)源控件正好滿足我的要求。

我的系統(tǒng)設(shè)計(jì)完全面向?qū)ο?,在使用?shù)據(jù)控件的時(shí)候就有出一點(diǎn)問(wèn)題,請(qǐng)指教。舉例來(lái)說(shuō):假設(shè)有一個(gè)訂單系統(tǒng)

系統(tǒng)流程圖


訂單冊(cè)O(shè)rderRegister負(fù)責(zé)對(duì)訂單進(jìn)行CRUD操作,現(xiàn)在我要實(shí)現(xiàn)創(chuàng)建訂單的功能。

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

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

這種情況實(shí)際中不少見(jiàn),不過(guò)說(shuō)實(shí)在話我從來(lái)不在真實(shí)項(xiàng)目中使用數(shù)據(jù)源控件(數(shù)據(jù)源控件是一種針對(duì)初學(xué)者的、小型的網(wǎng)站使用),復(fù)雜的情況下盡可能使用Repeater數(shù)據(jù)綁定控件或者干脆不用任何數(shù)據(jù)綁定控件。

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

至于查詢一般就使用視圖,這樣避免每次查詢時(shí)都要寫(xiě)大量的SQL語(yǔ)句。

經(jīng)典問(wèn)題二

有關(guān)屬性編輯框與Form.Designer.cs問(wèn)題

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

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

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

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

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

有一個(gè)開(kāi)源的C#編寫(xiě)的C#的IDE,如果有興趣,你可以下載來(lái)看看,研究一下。

經(jīng)典問(wèn)題三

我在項(xiàng)目中遇到一個(gè)奇怪的問(wèn)題,今天加班弄了一天也沒(méi)有解決,郁悶死了,希望在這里能找到答案~~~

和數(shù)據(jù)量比較大有關(guān),我的一個(gè)aspx頁(yè)面在跑完服務(wù)器代碼后,過(guò)了7,8分鐘才顯示出內(nèi)容,有時(shí)甚至達(dá)到10分鐘,正常顯示后,畫(huà)面中有個(gè)'Save' 服務(wù)器按鈕,該按鈕有客戶端的clientclick事件和服務(wù)器端的onclick事件,我在點(diǎn)擊該按鈕后,跑了客戶端代碼后就直接跳出顯示一個(gè) “the page cannot be displayed”的無(wú)法顯示的頁(yè)面了,當(dāng)然該頁(yè)面的屬性地址里顯示的還是"Save"時(shí)的頁(yè)面,即同一個(gè)頁(yè)面??蛻舳四_本中包含的內(nèi)容只是提示 confirm,是否要保存,是的話就返回true.

另外,我用數(shù)據(jù)量小一些的來(lái)測(cè)試,就是過(guò)了1,2分鐘就頁(yè)面就可以顯示數(shù)據(jù)的。點(diǎn)擊“Save”按鈕就沒(méi)問(wèn)題,主要是出現(xiàn)問(wèn)題的那個(gè)數(shù)據(jù),在點(diǎn)擊 “Save”時(shí)根本就沒(méi)跑服務(wù)器端的代碼,但是在***次加載該頁(yè)的時(shí)候,即page_load時(shí),是有跑后臺(tái)代碼的,所以我真不知道問(wèn)題是出在哪里了,是不是由于長(zhǎng)時(shí)間響應(yīng)后才顯示頁(yè)面,導(dǎo)致了頁(yè)面的代碼丟失,無(wú)法提交數(shù)據(jù),所以出現(xiàn)了只跑了客戶端的代碼,而沒(méi)有跑服務(wù)器端代碼,然后直接顯示空白頁(yè)或是本身的一個(gè)"the page cannot be displayed" 無(wú)法顯示的頁(yè)面呢?

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

1、確認(rèn)是否利用了Page.IsPostBack屬性來(lái)區(qū)分頁(yè)面的***加載事件,實(shí)際上并不是每次都需要控件對(duì)因服務(wù)器控件的回傳事件導(dǎo)致頁(yè)面的加載進(jìn)行響應(yīng)的。

2、是否使用了正確的數(shù)據(jù)分頁(yè)機(jī)制。你提到數(shù)據(jù)量少時(shí)加載過(guò)程費(fèi)時(shí)較短,我感覺(jué)似乎跟你的數(shù)據(jù)加載方式有關(guān)系??赡軘?shù)據(jù)量比較大,而你在顯示時(shí)不管需要不需要把全部數(shù)據(jù)都提取出來(lái)了,導(dǎo)致效率的降低。

請(qǐng)見(jiàn)我給有關(guān)文章數(shù)據(jù)分頁(yè)方面文章的鏈接:用AjaxPro實(shí)現(xiàn)無(wú)刷新翻頁(yè)效果及數(shù)據(jù)庫(kù)分頁(yè)技術(shù)介紹

在實(shí)際項(xiàng)目中經(jīng)常會(huì)遇到一個(gè)表里有幾K、幾M以上的數(shù)據(jù),而呈現(xiàn)給用戶時(shí)并不會(huì)一下子都顯示出來(lái),所以都是分批展示給用戶,這樣一來(lái)可以減小網(wǎng)絡(luò)傳輸量,二來(lái)也減輕服務(wù)器壓力。

經(jīng)典問(wèn)題四

想再問(wèn)下在控件使用方面~特別是富控件的使用~周老師有沒(méi)有什么比較好的經(jīng)驗(yàn)!還有周老師感覺(jué)在比較大的門戶類型項(xiàng)目中哪些控件***少用~或者不用~ ...

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

對(duì)于這個(gè)問(wèn)題要看實(shí)際項(xiàng)目情況了,一般來(lái)說(shuō)使用控件會(huì)降低對(duì)開(kāi)發(fā)人員的要求(比如對(duì)HTML/CSS/JS等方面的要求),但是如果處理不當(dāng)有可能增加了服務(wù)器的處理負(fù)擔(dān)。

對(duì)于負(fù)責(zé)的富控件在實(shí)際項(xiàng)目中我們一般用得比較上,而是有經(jīng)驗(yàn)豐富的程序員用HTML/CSS/JS來(lái)實(shí)現(xiàn)類型的效果,在開(kāi)發(fā)過(guò)程中再根據(jù)實(shí)際要求輸出生成控件的那段代碼。在《ASP.NET夜話》中就有一個(gè)我用JS實(shí)現(xiàn)的類似于WinForm中的選項(xiàng)卡時(shí)效果的例子,就是我當(dāng)初寫(xiě)的。

【編輯推薦】

  1. .NET VS Java平臺(tái)之爭(zhēng)的理性思考
  2. .NET C# DES入門淺析
  3. .NET寫(xiě)入文本文件的操作淺析
  4. .NET自定義控件應(yīng)該如何實(shí)現(xiàn)?
  5. 淺析.NET 4.0和Visual Studio 2010多定向支持
責(zé)任編輯:彭凡 來(lái)源: 51CTO
相關(guān)推薦

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-19 11:47:03

2009年9月計(jì)算機(jī)等2009年9月等級(jí)考試

2009-09-16 14:31:19

三級(jí)網(wǎng)絡(luò)技術(shù)計(jì)算機(jī)等級(jí)考試

2015-07-30 06:08:32

51ctoopenstack五周年

2009-05-24 07:37:28

軟考答案2009年上半年

2011-01-13 14:55:48

周金橋

2009-04-29 14:57:28

系統(tǒng)分析師預(yù)測(cè)題軟考

2011-06-19 12:15:27

2009-11-06 14:47:45

程序員軟考模擬題

2011-06-12 21:25:01

51CTO一周要聞分析

2009-09-16 14:31:19

四級(jí)網(wǎng)絡(luò)工程師計(jì)算機(jī)等級(jí)考試

2012-10-10 10:00:14

2013-05-27 00:39:07

2009-09-16 14:29:34

三級(jí)網(wǎng)絡(luò)技術(shù)計(jì)算機(jī)等級(jí)考試

2013-08-30 13:44:26

開(kāi)發(fā)月刊開(kāi)發(fā)電子雜志
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)