ASP.NET vNext - reutilização de pacotes NuGet existentes

votos
1

Embora Congratulo-me com o movimento ASP.NET vNext pela Microsoft (incluindo o movimento multi-plataforma), eu tenho uma grande questão: o NuGet pacotes ecossistema existente pode ser reutilizado, ou não vNext exigem pacotes NuGet específicas, devido ao uso de um subconjunto específico do .NET Framework?

Publicado 26/10/2014 em 08:22
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Você pode absolutamente usar pacotes NuGet existentes. No final do dia, tudo depende do que quadro lhe são dirigidas. Se suas metas de aplicação aspnet50, por exemplo, você pode facilmente consumir pacotes NuGet que são compatíveis com NET 4.5 e superior existente (dependendo de qual versão do framework .NET que você instalou). Aqui está um exemplo de arquivo project.json que indica MongoDB .NET consumo Client a partir nuget.org:

{
    "name": "AspNet.Identity.MongoDB",
    "version": "1.0.0-beta1",
    "dependencies": {
        "Microsoft.AspNet.Identity": "3.0.0-*",
        "mongocsharpdriver": "1.9.2"
    },
    "aspnet50": {
      "dependencies": { }
    }
}

Como eu só tenho um quadro (aspnet50), que vai funcionar sem problemas, mesmo se eu tiver a referência mongocsharpdriver para todos os frameworks.

Você pode usar essa abordagem para facilitar a sua mudança para ASP.NET vNext (como eu fiz com a minha implementação MongoDB ASP.NET Identidade ) desde bibliotecas como MongoDB .NET cliente provavelmente precisará de algum tempo para ser compatível com aspnetcore50.

Se eu estava visando múltiplos frameworks, eu teria o pacote específico instalado somente para esse quadro. Aqui está um exemplo:

{
    "dependencies": {
        "Kestrel": "1.0.0-*",
        "Microsoft.AspNet.Mvc": "6.0.0-*",
        "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-*",
        "Microsoft.AspNet.Server.IIS": "1.0.0-*",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-*",
        "Microsoft.AspNet.StaticFiles": "1.0.0-*",
    },
    "commands": {
        "web": "Microsoft.AspNet.Hosting server=Microsoft.AspNet.Server.WebListener server.urls=http://localhost:5001",
        "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5000"
    },
    "frameworks": {
        "aspnet50": {
            "dependencies": {
                "Microsoft.Framework.DependencyInjection.Autofac": "1.0.0-*",
                "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-*"
            }
        },
        "aspnetcore50": {
            "dependencies": { }
        }
    },
    "webroot": "wwwroot"
}

Observe que o pacote Microsoft.Framework.DependencyInjection.Autofac só é instalado para aspnet50. Não estará disponível quando você está compilando a aplicação sob aspnetcore50. É claro que com essa abordagem, você precisará ifdef para o seu caminho para a vitória, dependendo do caso de uso como é feito aqui .

Respondeu 26/10/2014 em 08:30
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more