Я надеюсь производить некоторый HTML к веб-странице с помощью F#. Какие-либо идеи?
Чтобы дать конкретный «HOWTO», я попытался создать простое приложение ASP.NET MVC, которое реализует ключевые части в F #. Как отмечено в указанном ответе, лучший способ использовать F # для веб-разработки - это создать веб-приложение C # и переместить все типы, реализующие фактическое поведение, в библиотеку F #.
Хотя можно создать веб-проект непосредственно на F #, существует множество ограничений (например, несовершенный intellisense и, возможно, другие проблемы), поэтому управление файлами aspx
на C #, вероятно, лучше.
Вот что я сделал (используя Visual Studio 2010):
Контроллерах
есть файл HomeController.cs
, который содержит функции для домашней страницы (загрузка данных и т. Д.). Вы можете удалить файл - мы его повторно реализуем. в F #. 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 могла легко его найти.
Файл Views \ Home \ Index.aspx
из проекта C # определяет пользовательский интерфейс и использует данные, которые вы задали для словаря ViewData
из вашего проекта F #.
Этот «HOWTO» показывает, как использовать F # для написания ASP.NET MVC, но шаги по созданию обычного приложения WebForms будут по существу такими же:создайте веб-приложение C # и переместите реализующие классы в библиотеку F #, на которую будет ссылаться веб-приложение C # (которое на самом деле не будет содержать много кода C #).
Если кто-то заинтересован в более подробном обсуждении, я написал статью на эту тему:
В статье показано относительно простое веб-приложение MVC, созданное в F #. Контроллеры и модель реализованы в отдельной библиотеке F # (вместе с сопоставлением маршрутов). В примере также показано, как использовать LINQ из F # для доступа к данным (включая некоторые хитрые приемы, такие как составление цитат).