Простая веб-разработка.NET с F#

Я надеюсь производить некоторый HTML к веб-странице с помощью F#. Какие-либо идеи?

7
задан Matthew H 2 May 2010 в 20:18
поделиться

2 ответа

Чтобы дать конкретный «HOWTO», я попытался создать простое приложение ASP.NET MVC, которое реализует ключевые части в F #. Как отмечено в указанном ответе, лучший способ использовать F # для веб-разработки - это создать веб-приложение C # и переместить все типы, реализующие фактическое поведение, в библиотеку F #.

Хотя можно создать веб-проект непосредственно на F #, существует множество ограничений (например, несовершенный intellisense и, возможно, другие проблемы), поэтому управление файлами aspx на C #, вероятно, лучше.

Вот что я сделал (используя Visual Studio 2010):

  • Создайте новый проект C # «Веб-приложение ASP.NET MVC 2». Это создает новый проект C # с некоторым начальным шаблоном и несколькими страницами. Я проигнорирую страницу, которая обрабатывает учетные записи (вы можете удалить ее).
  • В Контроллерах есть файл HomeController.cs , который содержит функции для домашней страницы (загрузка данных и т. Д.). Вы можете удалить файл - мы его повторно реализуем. в 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 могла легко его найти.

Файл Views \ Home \ Index.aspx из проекта C # определяет пользовательский интерфейс и использует данные, которые вы задали для словаря ViewData из вашего проекта F #.

Этот «HOWTO» показывает, как использовать F # для написания ASP.NET MVC, но шаги по созданию обычного приложения WebForms будут по существу такими же:создайте веб-приложение C # и переместите реализующие классы в библиотеку F #, на которую будет ссылаться веб-приложение C # (которое на самом деле не будет содержать много кода C #).

10
ответ дан 6 December 2019 в 09:59
поделиться

Если кто-то заинтересован в более подробном обсуждении, я написал статью на эту тему:

В статье показано относительно простое веб-приложение MVC, созданное в F #. Контроллеры и модель реализованы в отдельной библиотеке F # (вместе с сопоставлением маршрутов). В примере также показано, как использовать LINQ из F # для доступа к данным (включая некоторые хитрые приемы, такие как составление цитат).

9
ответ дан 6 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: