Um ein bestimmtes "HOWTO" zu geben, habe ich versucht, eine einfache ASP.NET MVC-Anwendung zu erstellen, die die wichtigsten Teile in F # implementiert. Wie in der referenzierten Antwort erwähnt, besteht die beste Methode zur Verwendung von F # für die Webentwicklung darin, eine C # -Webanwendung zu erstellen und alle Typen, die das tatsächliche Verhalten implementieren, in eine F # -Bibliothek zu verschieben.
Obwohl es möglich ist, direkt F # web project zu erstellen, gibt es viele Einschränkungen (z. B. nicht perfektes intellisense und möglicherweise andere Probleme), daher ist die Verwaltung der aspx
-Dateien in C # wahrscheinlich eine bessere Idee.
Hier ist, was ich getan habe (mit Visual Studio 2010):
HomeController.cs
Datei in Controllers
, die Funktionalität für die Homepage enthält (Laden von Daten usw.) Sie können die Datei löschen - wir werden sie in F # neu implementieren. System.Web.Mvc.dll
und andere, die von diesem referenziert werden (der F # -Compiler wird Ihnen sagen, welche Sie benötigen). Module1.fs
hinzu - dies implementiert die ursprüngliche HomeController
, die früher in C # geschrieben wurde. Der Quelltext sieht so aus:
%Vor%Dies ist einfach eine Neuimplementierung des ursprünglichen C # -Codes (Erstellen einer einzelnen Klasse). Ich habe den ursprünglichen C # -Namespace verwendet, damit das MVC-Framework es leicht finden kann.
Die Datei Views\Home\Index.aspx
aus dem C # -Projekt definiert die Benutzeroberfläche und verwendet die Daten, die Sie in Ihrem F # -Projekt für das ViewData
-Wörterbuch festgelegt haben.
Dieses "HOWTO" zeigt, wie F # zum Schreiben von ASP.NET MVC-Anwendungen verwendet wird, aber die Schritte zum Erstellen einer normalen WebForms-Anwendung sind im Wesentlichen die gleichen - erstellen Sie eine C # -Webanwendung und verschieben Sie die implementierenden Klassen in F # library wird von der C # -Webanwendung referenziert (die nicht wirklich viel C # -Code enthält).
Falls jemand an einer ausführlicheren Diskussion interessiert ist, habe ich einen Artikel zu diesem Thema geschrieben:
Der Artikel zeigt eine relativ einfache MVC-Webanwendung, die in F # erstellt wurde. Controller und Modell sind in einer separaten F # -Bibliothek implementiert (zusammen mit dem Routen-Mapping). Das Beispiel zeigt auch, wie Sie LINQ aus F # für den Datenzugriff verwenden (einschließlich einiger ordentlicher Tricks wie der Zusammensetzung von Zitaten).