Я начинаю переработку набора фреймворков для использования .NET Core. Думал, что я буду ждать RC2 и очень хочу застрять.
Я пользуюсь случаем, чтобы встать близко и лично с системой сборки, конфигурациями, кодировать все с нуля, чтобы получить более глубокое понимание и не иметь ненужного багажа, который мне не нужен/нужен. Однако отсутствие документации делает это довольно сложным. Поэтому я хотел спросить здесь, где, без сомнения, умные люди .NET Core скрываются;)
Я знаю, что этот вопрос длинный, и у него много вопросов. Но на него можно было ответить, я чувствую себя по одной ссылке на документацию, или несколько строк сукцинта от кого-то в курсе. Спасибо за поддержку, и я надеюсь, что это может стать полезным ресурсом для других пользователей на одной лодке, пытаясь понять хороший подход к .NET Core.
Сначала global.json
. Я хочу, чтобы несколько проектов и компонентов находились в одном и том же "решении". Через другой вопрос SO я нашел эту скрытую ссылку: http://dotnet.github.io/docs/project-model/global-json-reference.html - но, похоже, нет никакого инструмента VS для настройки или использования этого с нуля.
1) Вопросы global.json
A) В какой системе сборки эти документы ссылаются? dotnet build
? (Помощь для этого говорит, что он просто создает проект - если он делает "решения" - если это еще имя - он просто запускает dotnet build
поверх всех дочерних папок?).
B) Многие примеры имеют свойство "sdk"
, но EF Core не имеет его, а новые документы с одним предложением - не ссылаются на него. В официальном руководстве по перенастройке RC2 для ASP.NET Core есть оно. Это все еще вокруг или нет? Если да, то зачем это нужно? Что его использует? Каковы его варианты?
Далее, до project.json
и фреймворки. Я хочу понять варианты здесь для фреймворков. Есть ли список? Официальное руководство? dotnet new
использует netcoreapp1.0
; "официальные документы" используют пример dnxcore50
и этого обсуждения GH за последний месяц, также поднимает вопрос netcore1.0
как возможность для фреймворков (vs apps).
Кроме того, imports
. Меня совершенно озадачивает именование - речь в документах о том, что это список других фреймворков, совместимых с проектом.
2) Вопросы проекта project.json -
A) Где я могу найти обновленный или поддерживаемый список или набор советов вокруг вариантов структуры?
B) Если мое понимание цели import
верное, почему это так называется? Если нет, что именно он импортирует?
C) Почему существует свойство import
для каждого свойства framework
? Если он указывает на то, что весь проект совместим с другой структурой, это будет лучше всего размещаться на верхнем уровне project.json
, no?
D) Как мне решить, какие опции import
использовать? dotnet new
имеет только dnxcore50
- какие пакеты должны удовлетворять? Этот парень предлагает dotnet5.6
, dnxcore50
и portable-net45+win8
!
Наконец, я строю библиотеки классов, тестовые проекты, консольные утилиты. Так..
3) ссылки и пакеты
A) Всегда ли я хочу Microsoft.NETCore.App
согласно dotnet new
? Существуют ли другие базовые варианты? Руководство по выбору? Список?
B) В документах ничего не говорится о опции type
(build
, platform
). Есть ли какие-либо рекомендации по этим вопросам?
C) Некоторые из моих проектов будут использовать ASP.NET. Где лучше всего найти правильные пакеты для ссылки? На NuGet существует миллион версий и пакетов. В этом руководстве говорится только о ссылках Microsoft.AspNetCore.Server.Kestrel
- и единственная вещь ASP.NETty, которая ссылается на Microsoft.AspNetCore.Hosting
. Означает ли это, что один пакет является частью ASP.NET?