2013-10-02 36 views
0

我試圖通過將「Web用戶控件」遷移到單獨的獨立「服務器控件」項目中來重構我的代碼。而且,控件裏面還有一些javascript邏輯。在服務器控制中分離Javascript

所以,我想就得到一些建議:

  1. 如何以及在哪裏放置(遷移)從Web用戶控件現有的JavaScript邏輯?
  2. 如何從邏輯上清楚地分離現有的ASP.net頁面的JavaScript?任何目錄結構的建議將不勝感激。

請忍受我,因爲我是一個非常初學者。

類Regrads

+0

這真的取決於你的JavaScript,所以告訴我們你的代碼。 –

回答

1

回答這個問題是長期的,複雜的,從各有不同的情況。不過,在這樣的代碼庫工作過,這裏有幾件事我瞭解到:

  1. 寫入測試:任何遺留代碼庫是必不可少的。您必須在更改代碼之前編寫測試。如果它與你說的那樣緊密結合,那麼當你的變化的小副作用開始蔓延到生產時,不寫測試會給你地獄2個月。

  2. make javascript不顯眼:將所有javascript放入.js文件中,遠離服務器,遠離結構。這樣在編寫服務器端代碼時就不用擔心了。

  3. 分而治之:這可能是任何人都可以給你的最好的提示。我曾經在一個擁有5000個代碼行文件的項目上工作,其中html,javascript和visual basic都混雜在一個醜陋的混亂中。在那裏我瞭解到,通過將這些大型課程提取到100行文件中,我可以更好地理解每個模塊的意圖並輕鬆找到模糊。

  4. 有一個BA方便:有時整個網頁/類是如此的破壞,重寫它的一部分是唯一的方法,使其恢復到可維護狀態。有人能夠解釋業務邏輯真的很重要,特別是在這些情況下,因爲他們可以告訴你班級應該做什麼,爲什麼這樣做,哪些部分已經過時。在我剛纔討論的同一個項目中,我們開始重寫某些頁面。與我們在一起的學士學位讓我們刪除了大約30%的代碼,因爲它已經過時了。在25萬行代碼庫上完成30%的工作是非常有用的,特別是在截止日期即將到來時。

  5. 請勿使用網頁控件,請使用html/jquery和處理程序:asp.net網頁控件不適合使用網頁標準。他們不喜歡Ajax,並且不喜歡SPA面向對象。如果你正在對此進行重構,請將web控件替換爲它們的html輸入等價物,然後使用javascript(jQuery,ext/sencha,dojo等)添加所需的行爲。在服務器上,您可以編寫可以使用AJAX調用的處理程序。

  6. 你不應該單獨做:你應該成爲一個團隊的一部分,有一個架構師設置路線圖和模式使用;一個知道javascript,html和一些.Net的前端開發人員;知道c#和.Net的後端開發人員,以及SQL Server或數據庫技術以及知道html5和css的設計人員,因此他可以提出更好的方法來構建文檔。

  7. 你可能不應該這樣做:如果你是一個像你這樣的初學者,你應該在正確的Web項目上工作,並學習如何編寫正確的代碼。我當然並不是想侮辱你,但這是一項艱鉅的任務,具有很多複雜性和無數陷阱。這些項目通常是由VB6程序員在過去十年初期儘快進入網絡潮流開發的應用程序,因此有很多程序代碼被複制並粘貼到多個類和奇怪的做事方式中,就好像編碼人員對OOP知之甚少(讓我們面對現實吧,大多數VB開發人員不會或至少在ASP.net第一次出現時纔會這樣做)。負責人應該是一位經驗豐富的ASP.Net開發人員,他對現代Web技術有着深刻的理解,並且希望能夠通過最新的行業標準加快傳統項目的速度。