Dot-Net
使用 F# 進行簡單的 .NET Web 開發
我正在尋找使用 F# 將一些 HTML 輸出到網頁。有任何想法嗎?
為了給出一些特定的“HOWTO”,我嘗試創建一個簡單的 ASP.NET MVC 應用程序,它實現了 F# 中的關鍵部分。如參考答案中所述,使用 F# 進行 Web 開發的最佳方法是創建 C# Web 應用程序並將實現實際行為的所有類型移動到 F# 庫。
儘管可以直接創建 F# Web 項目,但存在許多限制(例如,不完美的智能感知和可能的其他問題),因此
aspx在 C# 中管理文件可能是一個更好的主意。這是我所做的(使用 Visual Studio 2010):
- 創建一個新的 C# 項目“ASP.NET MVC 2 Web 應用程序”。這將創建一個新的 C# 項目,其中包含一些初始模板和一些頁面。我將忽略處理帳戶的頁面(您可以將其刪除)。
- 中有一個
HomeController.cs文件Controllers,其中包含首頁的功能(載入數據等)。您可以刪除該文件 - 我們將在 F# 中重新實現它。- 添加新的“F# 庫”項目並添加對 ASP.NET MVC 程序集的引用。其中有很多(請參閱 C# 項目),但最重要的是,您將需要
System.Web.Mvc.dll以及該項目引用的其他內容(F# 編譯器會告訴您需要哪些)。- 現在,將下面的程式碼添加到
Module1.fs- 這實現了原來HomeController用 C# 編寫的 .原始碼如下所示:
namespace MvcApplication1.Controllers open System open System.Web.Mvc [<HandleError>] type HomeController() = inherit Controller() member x.Index() = x.ViewData.["Message"] <- "Welcome from F#" x.View() :> ActionResult member x.About() : ActionResult = x.View() :> ActionResult這只是對原始 C# 程式碼的重新實現(創建單個類)。我使用了原始的 C# 命名空間,以便 MVC 框架可以輕鬆找到它。
C# 項目中的文件
Views\Home\Index.aspx定義使用者界面並使用您從 F# 項目中設置到ViewData字典的數據。這個“HOWTO”展示瞭如何使用 F# 編寫 ASP.NET MVC 應用程序,但是創建一個普通的 WebForms 應用程序的步驟基本相同 - 創建一個 C# Web 應用程序並將實現類移動到 F# 庫中,將被引用來自 C# Web 應用程序(實際上不會包含太多 C# 程式碼)。