2009年11月22日 星期日

C#轉VB asp.net 1.x 注意事項

  1. 使用工具:http://codeconverter.sharpdevelop.net/SnippetConverter.aspx所提供的線上轉換功能。

  2. 檔名的變更:

  3. 要將 ~.~.cs 的檔名全改成 ~.~.vb
    要將 ~.csproj 改成 ~.vbproj
    要將 ~.csproj.webinfo 改成 ~.vbproj.webinfo

  4. 修改方案內容

  5. 方案檔中的 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = 要換成
    Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = ,因為「FAE04EC0-301F-11D3-BF4B-00C04F79EFBC」是應 C# ! 如果沒有修改,就要使用「開啟專案」方式來啟動專案,之後再另存方案


  6. 改 "c#" 或 "~.cs" 成 "vb" (~.cs 改成 ~.vb,~是指其對應的檔名)

  7. 通常在 ~.aspx, ~.ascx, ~.asax 內都有:
    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="DotNetGraph.ascx.cs" <%@ Control Language="vb" AutoEventWireup="false" Codebehind="DotNetGraph.ascx.vb" 可以用尋找檔案方式,找 內有 .vs 及 c# 的檔案


  8. 改 ~.sln 中的 "http://SERVER/WEB/PROJECT.csproj" 成 "http://SERVER/WEB/PROJECT.vbproj"

  9. 這項不改,會出現 開啟的是 web 專案,必須指定url 路徑 之類的錯誤)

  10. 改 ~.vbproj (原名為 ~.csproj) 內容的
    區段中的 檔名 ~~.cs 都改成 ~~.vb

  11. 改 ~.vbproj.webinfo的內容 (原名為 ~.csproj.webinfo)

  12. <web urlpath="http://SERVER/WEB/PROJECT.csproj"> 改成 <web urlpath="http://SERVER/WEB/PROJECT.vbproj">

  13. 要將 ~.vb 中[Object]改成 object;[string]改成 string

  14. obj IsNot Nothing 要改成 not (obj is Nothing)
    Convert.~~ 要用 C~~ 取代,例如: Convert.toInt16 要 改成 CInt, Convert.ToString 要 改成 CStr


  15. 如果發現 EventArgs 及 Exception 未定義的錯誤,請加入限制詞 System.
    即改成 System.EventArgs 及 System.Exception 或在檔頭加入 Imports System


  16. 如果有使用 Using End Using 的區塊,需將 Using 區塊轉成一般陳述,有關使用的資源需自行加入釋放的命令

  17. vb.Net 1.0 不支援 Using ... End Using 的用法

  18. Type.DataType(var) 的陳述改用 (var).DataType 方式來取得資料型別


  19. 在 C# 中可以用 =IF(cond,TRUE, FALSE) 的方式傳回值,在VB中要改成 =IIF(cond,TRUE, FALSE),同時要 Imports Microsoft.VisualBasic 之命名空間


  20. TryCast 可以在 ASP.NET2.0中使用,但在 1.x 須改用 CType 或 DirectCast


  21. 如果在 .aspx 中使用

  22. ((DataRowView)Container.DataItem)["ShowName"]
    則改用
    DirectCast(Container.DataItem, DataRowView)("ShowName")

以上是我個人改寫 C# 成 VB 的asp.net 的經驗!
其它問題(有發現再補上!)
  1. 改成VB後,常會有 Namespace 對應不上的問題,要視偵錯情況調整!

沒有留言:

張貼留言