Estou tentando descobrir o que um projeto "ASP.NET 5 Class Library" (vNext) C # tem a ver com ASP.NET. Por que criar um projeto com este modelo em vez de apenas um projeto normal de "Biblioteca de classes" em C #?
Eu gosto dos novos recursos, como o arquivo project.json em vez do arquivo .csproj etc, mas não parece certo criar uma biblioteca de classes "ASP.NET" quando o projeto não tem nada a ver com ASP.NET ou IIS etc. .É apenas um projeto para a camada de lógica de negócios. Um novo site WebApi ASP.NET eventualmente fará referência a este projeto, mas isso não é relevante neste ponto.
É apenas mal nomeado? Deve ser chamado apenas de "vNext Class Library" e não usar um ícone que se pareça com um aplicativo da web?
Respostas:
Por que criar um projeto ASP.NET 5 Class Library?
Existem vários benefícios dos projetos de biblioteca de classes do ASP.NET 5 ( .kproj) em relação aos projetos de biblioteca de classes ( .csproj):
aspnet50
,aspnetcore50
,net45
, e várias outras variações de biblioteca de classe portátil. Isso inclui suporte avançado do Visual Studio para Intellisense para notificar quais APIs estão disponíveis para quais destinos.Você pode fazer referência a um projeto * .csproj a partir de um projeto * .kproj (isso ficou muito mais fácil com a nova visualização do Visual Studio 2015), mas sempre foi possível com algumas etapas manuais.
Por que o nome contém "ASP.NET"?
No que diz respeito aos nomes, é uma relíquia da história que em breve será abordada. O novo tipo de projeto é útil muito além dos aplicativos ASP.NET 5. Espere ver novos nomes em uma futura visualização do Visual Studio:
Atualização 13/05/2015
Com o lançamento do Visual Studio 2015 RC, você pode ver os nomes dos modelos de projeto atualizados:
Eles usam o
project.json
arquivo e o .NET Execution Environment (DNX) para criar, executar e empacotar (em um pacote NuGet) o projeto.Esses modelos de projeto continuam a aparecer na caixa de diálogo Novo projeto sob o nó "Web", mas agora também aparecem no nó "Visual C #" principal.
fonte
Esta é uma observação interessante, o modelo atual irá gerar uma biblioteca de classes compatível com ASP.NET 5 runtime. Você não consegue isso na biblioteca de classes C # normal.
Registrei o seguinte problema para rastrear esta questão de design - https://github.com/aspnet/Home/issues/281
fonte
Pelo que entendi, um benefício é que o produto final do projeto ASP.NET 5 Class Library é um pacote NuGet (em vez de apenas o assembly .dll).
Você pode gerar o pacote NuGet clicando com o botão direito do mouse no projeto no Visual Studio 2015 e escolhendo a opção "Publicar ...". Ou você pode usar o "pacote KPM" na linha de comando.
Além disso, você tem a capacidade de usar o tempo de execução do ASP.NET 5 Core para que sua biblioteca possa ser executada em várias plataformas.
fonte