Подтвердить что ты не робот

Зачем создавать проект библиотеки классов ASP.NET 5?

Я пытаюсь понять, что представляет собой проект ASP.NET 5 Class Library (vNext) С# для ASP.NET. Зачем создавать проект с помощью этого шаблона, а не только обычный проект С# "Библиотека классов"?

Мне нравятся новые функции, такие как файл project.json, а не файл .csproj и т.д., но не кажется правильным создавать библиотеку классов "ASP.NET", когда проект не имеет ничего общего с ASP.NET или IIS и т.д. Это всего лишь проект для уровня бизнес-логики. Новый веб-сайт WebApi ASP.NET в конечном итоге будет ссылаться на этот проект, но это не актуально на данный момент.

Это просто плохо названо? Следует ли это просто называть "библиотекой классов vNext" и не использовать значок, похожий на веб-приложение?

4b9b3361

Ответ 1

Зачем создавать проект библиотеки классов ASP.NET 5?

Существует несколько преимуществ проектов ASP.NET 5 Class Library (.kproj) над проектами библиотеки классов (.csproj):

  • Библиотеки классов ASP.NET 5 легко поддерживают кросс-компиляцию проектов для нескольких целей, таких как aspnet50, aspnetcore50, net45 и различные другие переносимые библиотеки классов. Это включает в себя богатую поддержку Visual Studio для Intellisense, чтобы уведомить вас, какие API-интерфейсы доступны для каких целей.
  • Пакеты NuGet автоматически создаются, что очень часто встречается с библиотеками классов.
  • Лучшая производительность, когда дело касается таких вещей, как автоматическое обновление обозревателя решений при изменении файловой системы. Меньше конфликтов в исходном управлении при попытке слить конфликтующие изменения в файле *.csproj.
  • Может быть скомпилирована кросс-платформенная (отчасти потому, что она не зависит от MSBuild)

Вы можете ссылаться на проект *.csproj из проекта *.kproj(это было сделано намного проще с новым предварительным просмотром Visual Studio 2015), но это всегда было возможно с помощью некоторых ручных шагов.

Почему у этого имени есть "ASP.NET"?

Что касается названий, это реликвия истории, которая скоро будет решена. Новый тип проекта полезен далеко за пределами приложений ASP.NET 5. Ожидайте увидеть новые имена в будущем представлении Visual Studio:

  • Приложение .NET Console (кросс-платформенная)
  • Библиотека классов .NET(кросс-платформенная)

Обновление 5/13/2015

С выпуском Visual Studio 2015 RC вы можете увидеть обновленные имена шаблонов проекта:

  • Библиотека классов (пакет)
  • Консольное приложение (пакет)

Они используют файл project.json и среду выполнения .NET(DNX) для сборки, запуска и пакета (в пакет NuGet) проекта.

Эти шаблоны проектов продолжают отображаться в диалоговом окне "Новый проект" под "Web" node, но теперь также отображаются в основном "Visual С#" node.

VS2015 RC Class Lib / Console App templates

Ответ 2

Это интересное наблюдение, текущий шаблон будет генерировать библиотеку классов, совместимую с временем выполнения ASP.NET 5. Вы не получите это из обычной библиотеки классов С#.

Я зарегистрировал следующую проблему для отслеживания этого вопроса дизайна - https://github.com/aspnet/Home/issues/281

Ответ 3

Из того, что я понимаю, одно преимущество заключается в том, что конечным продуктом проекта библиотеки классов ASP.NET 5 является пакет NuGet (а не только сборка .dll).

Вы можете создать пакет NuGet, щелкнув правой кнопкой мыши проект в Visual Studio 2015 и выбрав опцию "Опубликовать...". Или вы можете использовать "KPM pack" в командной строке.

Кроме того, у вас есть возможность использовать среду выполнения ASP.NET 5 Core, чтобы ваша библиотека могла запускать межплатформенную платформу.