2009-11-12 86 views
3

多年來,我的目標是將ASP/VBScript轉移到「更好」的語言 - 我的偏好是C#,因爲我有C技能 - 但我會考慮其他語言(包括PHP等,所以不只是DotNet)移植(單片)經典ASP到ASP.Net

目標是讓代碼庫以一種語言爲我們做更多的事情。我討厭在VBScript中輸入數據的缺失,我想要許多不同的「容器對象」 - 而不僅僅是一個Dictionary對象,等等 - 事實上,我想知道爲什麼在80年代從Basic轉換爲C,以及然後C++一段時間後,我設法移回到基本到00。 (我可以在VBScript中編寫容器對象,但是我的直覺是,它們的運行速度會很慢;我們在頁面渲染中使用了HTML的「片段」緩存,ASP應用對象是一個漂亮的鈍器!)

我的ASP/VBScript是一個單一的大型應用程序,基本上是一個「引擎」來提供網頁內容。

它已經做了很多年了,現在ASP代碼很少改變。 (所以我確實需要證明移動它,或者只是用VBScript生活「永遠」)

它是從MS SQL數據庫中的數據驅動的。

只有一個.ASP頁面(由多個包含文件組成)。

根據查詢字符串參數從數據庫加載頁面的Skin和CMS模板,運行合適的數據庫Sprocs以獲取合併到CMS模板中的數據。

有關頁面的數據(使用方法等)也會從數據庫中檢索,以及訪問權限的詳細信息等。

從我看過一些這些東西可能會使遷移變得容易:

ASP會話不使用 - 會話cookie被用來從DB(獲取會話數據,所以我可以很容易地共享會話半和與ASPX

- 半

的VBScript使用OPTION整個顯式的,所以所有的變量是預定義的。

所有輸出是經由回覆於(實際上大多數內容被合併成一個單一的變量,然後輸出)。有沒有混合HTML和<%服務器代碼%>。

我有一些VBScript類,但不是很多。

我有很多VBScript函數和一些子例程。

我有一個測試套件。這會捕捉來自瀏覽器的屏幕截圖,並將它們與主圖像進行比較 - 因此我有能力進行迴歸測試。

我沒有資源做一個完整的重寫;現有代碼的維護需要在遷移過程中繼續進行;但是說99%的工作是在CMS或SQL Sprocs中,所以對ASP代碼的更改很少。

我已閱讀MS的實用程序將ASP代碼遷移到VB.NET。鑑於我的代碼是100%的VBScript,並沒有混合的HTML /腳本,我會感謝意見,這是否會幫助我很多或一點?

我很樂意重構在VBscript中保持一段時間,以便稍後更輕鬆地遷移到DotNet(但我需要知道我的目標是在做什麼:))。例如,我可以將一些/所有的功能移動到一個COM對象上,並且可能會這麼零碎嗎?

感謝您的幫助

+1

對於每個句子,文本牆和段落之間都有一條細線。 – maxpower47 2009-11-12 18:21:19

+3

我比較喜歡這一段文字。 – 2009-11-12 18:23:54

+0

第二段有兩句話:)散文不是我的強項,對不起。 – Kristen 2009-11-13 08:29:53

回答

4

我有我保持直到去年大ASP經典的內部網,這是越來越老了,但仍然在ASP經典的添加新的作品,因爲有這麼多的庫代碼已經投入。如果您不經常更改ASP代碼並進行某種形式的測試,那麼您已經有了一個很好的設置。 (我不得不承認這是我第一次聽說過截圖方法)。如果一切都從DataBase驅動並工作。不要打破它。

PHP會給你同樣的變體類型問題,但會給你一個世界的選擇和選擇,使ASP經典看起來像一個孩子玩具。開箱PHP是我所需要做的一切。

ASP.net是一個BIG框架。充分理解它並不是一件容易的事情,它經常給我帶來驚喜。它會嘗試爲來自窗體環境的開發人員自動執行某些操作,當您從一種非常精確的渲染方法中獲得非常刺激的效果時,就像您聽到的聲音一樣。我發現自己一直在與技術戰鬥,直到ASP.net MVC出現。它更適合我的想法,因爲它是如何工作的,並按照我的要求做了什麼,僅此而已。 C#是一種非常棒的語言,具有出色的功能,如果您能找到合適的作品,DOT.net框架可以讓您做任何事情。有這麼多的東西,你會發現自己偶爾會寫一些已經在框架中完成的東西,只是在完成自己的實現後才發現它。

實際上,遷移可能會導致一些有趣的問題。即使您可以像ASP經典頁面一樣運行ASP.net頁面,您仍然會失去環境的許多好處。話雖如此,但我確實做了一些測試,試圖將相關網站遷移到ASP.net,並設法繞過大多數絆腳石,並得出結論認爲這樣的遷移實際上只是「單純的工作」。完成這種遷移所需的工時數量雖然使承諾不可行。

就我個人而言,我不會建議這樣的遷移,除非你有幾個ASP.net項目成功地帶,並知道asp.net帶來的陷阱。

我還沒有看到你提到的ASP到ASP.net轉換工具,但很想獲得它的鏈接。

如果您留在VBScript中,並且不知道AX(ASP Xtreme Evolution)項目here我可以高度建議尋找靈感來獲得過去/幾個ASP經典「限制」和庫的靈感它提供的功能。

+0

一直在閱讀「ASP Xtreme Evolution」,看起來很有趣,而JSON/URL rerwite(無論如何都在看)等等都是有用的東西;感謝你和其他評論。 ASP到ASP.NET的遷移鏈接:http://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/ – Kristen 2009-11-13 08:46:51

+0

從微軟的ASP到ASP.net轉換工具在1.0 &1.1框架日。在轉換過程中發生的事情是,帶有所有VBScript的經典ASP頁面將更改爲與當前HTML標記交織的內嵌VB.net標記。儘管有效地轉換了這一點,但如果您使用的是COM對象和其他類型,轉換工具將無法處理這些項目。之後需要進行大量的清理工作,但您仍然沒有從清潔的aspx頁面開始的好處。 – Chris 2010-09-08 13:28:23

0

如果您正在尋找一種方法來證明管理項目的合理性,那麼尋找傳統ASP開發人員繼續維護應用程序將變得越來越困難。任何有選擇的開發人員都可能不會選擇維護使用VBScript構建的應用程序。開展這項工作的開發人員可能認爲這是暫時的,並繼續尋找其他工作。

儘管我還沒有聽說過微軟的任何事情,但他們決定完全退休的經典ASP還不算太多年。