簡體   English   中英

在服務器控件中分離Javascript

[英]Separating Javascript in Server Control

我試圖通過將已經非常復雜的“ Web用戶控件”遷移到單獨的獨立“服務器控件”項目中來重構代碼。 此外,控件內部還包含一些javascript邏輯。

因此,我想從以下方面獲得一些建議:

  1. 如何以及在何處放置(遷移)來自Web用戶控件的現有javascript邏輯?
  2. 如何邏輯上和干凈地分離ASP.net頁面的現有javascript? 任何目錄結構建議將不勝感激。

請忍受我,因為我是一個初學者。

善良的成績

這個問題的答案很長,很復雜,並且因情況而異。 盡管如此,在像這樣的代碼庫上工作之后,我還是學到了一些東西:

  1. 編寫測試:對於任何舊版代碼庫都是必不可少的。 您必須在更改代碼之前編寫測試。 如果您所說的緊密結合,那么當您所做的更改的微小副作用開始逐漸進入生產階段時,不編寫測試將使您進入項目2個月。

  2. 使javascript不引人注目:將所有javascript放入.js文件中,使其遠離服務器並遠離結構。 這樣,編寫服務器端代碼時,您無需擔心的其他事情。

  3. 分而治之:這可能是任何人都可以給您的最佳提示。 我曾經從事過一個項目,該項目有5000個代碼行文件,而html,javascript和visual basic卻混雜在一起。 在那里我了解到,通過將這些大型類提取到100行文件中,我可以更好地理解每個塊的意圖並輕松找到重復對象。

  4. 擁有一個便捷的BA:有時整個網頁/類都被弄得很臟,以至於重寫部分內容是使其恢復可維護狀態的唯一方法。 擁有一個能夠解釋業務邏輯的人真的很重要,因為在這種情況下,因為他們可以告訴您一堂課應該做什么,為什么要這樣做以及什么部分已經過時。 在我所討論的同一項目中,我們開始重寫某些頁面。 在那里擁有BA的權限使我們可以刪除大約30%的代碼,因為它已經過時了。 在25萬行代碼庫上進行30%的工作確實很有用,尤其是在臨近最后期限的情況下。

  5. 不要使用Web控件,請使用html / jquery和處理程序:asp.net Web控件不能很好地適應Web標准。 它們不能與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技術有扎實的了解,並希望在將舊項目加快與最新行業標准的速度方面經驗豐富。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM