tag net mvc asp .net f# asp.net-core

.net - mvc - render partial asp net core



Proyecto ASP.NET Core 1.0 F# (2)

Creo que lo que estás buscando es --lang switch.

Así que el único cambio para obtener el proyecto F # base será:

dotnet new --lang fsharp

Luego puede seguir la respuesta de Pavel para la lógica ASP.NET real.

Editar :

Por cierto, fsharp también puede reemplazarse con f# y fs , como se menciona en el PR.

Y hay otro issue , que propone cambios a dotnet new para permitir plantillas.

Edición 2 :

Las nuevas herramientas soportan más plantillas:

Templates Short Name Language Tags -------------------------------------------------------------------------------------- Console Application console [C#], F# Common/Console Class library classlib [C#], F# Common/Library Unit Test Project mstest [C#], F# Test/MSTest xUnit Test Project xunit [C#], F# Test/xUnit Empty ASP.NET Core Web Application web [C#] Web/Empty MVC ASP.NET Core Web Application mvc [C#], F# Web/MVC Web API ASP.NET Core Web Application webapi [C#] Web/WebAPI Solution File sln Solution

Ejemplo de uso:

X:/>dotnet new mvc -n MyFsharpProject -lang F# Content generation time: 309.5706 ms The template "MVC ASP.NET Core Web Application" created successfully.

¿Alguien podría compartir el proyecto de aplicación ASP.NET Core que está trabajando en F #?

Para implementar una demostración mínima en C #, tenemos que hacer lo siguiente:

mkdir aspnetcoreapp cd aspnetcoreapp dotnet new

Luego edita project.json :

{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }, "Microsoft.AspNetCore.Server.Kestrel": "1.0.0" }, "imports": "dnxcore50" } } }

Luego realice la dotnet restore dotnet y use el siguiente código:

Startup.cs :

using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; namespace aspnetcoreapp { public class Startup { public void Configure(IApplicationBuilder app) { app.Run(context => { return context.Response.WriteAsync("Hello from ASP.NET Core!"); }); } } }

Program.cs :

using System; using Microsoft.AspNetCore.Hosting; namespace aspnetcoreapp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); host.Run(); } } }

A continuación, ejecute dotnet run . ¿Alguien podría darme una pista sobre cómo hacer lo mismo en F #?


He estado explorando el nuevo .net core recientemente y me enfrenté a la misma pregunta. En realidad, es bastante fácil hacer eso.

Agregue F # runtime referencias en su project.json :

{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true, "compilerName": "fsc", "compile": "**/*.fs" }, "dependencies": { "Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160509", "Microsoft.AspNetCore.Server.Kestrel": "1.0.0" }, "tools": { "dotnet-compile-fsc": { "version": "1.0.0-preview2-*", "imports": [ "dnxcore50", "portable-net45+win81", "netstandard1.3" ] } }, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } }, "imports": [ "portable-net45+win8", "dnxcore50" ] } } }

Luego ponga el código a continuación en su Program.fs .

open System open Microsoft.AspNetCore.Hosting open Microsoft.AspNetCore.Builder open Microsoft.AspNetCore.Hosting open Microsoft.AspNetCore.Http type Startup() = member this.Configure(app: IApplicationBuilder) = app.Run(fun context -> context.Response.WriteAsync("Hello from ASP.NET Core!")) [<EntryPoint>] let main argv = let host = WebHostBuilder().UseKestrel().UseStartup<Startup>().Build() host.Run() printfn "Server finished!" 0

Por cierto, es muy importante definir su clase de Inicio como el type Startup() no el type Startup . De lo contrario, el tiempo de ejecución de Kestrel se bloqueará durante el inicio.