Различия между .Net Full framework и .Net Core Framework 4.5, используемыми K runtime?

Я видел видео, представляющее ASP.NET vNext, и не отставал от недавних сообщений в блоге анонса, но подробная информация о том, что была удалена из полной структуры, выглядит тонкой. Вот что я думаю, что знаю до сих пор:

  • Он намного меньше (11 МБ против > 200 МБ): http://davidzych.com/2014/05/24/getting-started-with-asp-net-vnext/
  • Сильное именование отсутствует: http://jeremydmiller.com/2014/06/09/final-thoughts-on-nuget/
  • Он сбросил System.Web
  • Он включает объединенный MVC и WebAPI (однако я не считаю, что это часть самой структуры, а скорее зависимости, которые могут быть указаны)
  • Зависимости полностью управляются через project.json, в той мере, в какой база

Мы в основном смотрим на структуру, которая в основном включает в себя не что иное, как в mscorlib в полной структуре, а все остальное поставляется через управление пакетами? И если это так, почему нужно конкретно настраивать рамки, как описано здесь? http://blogs.msdn.com/b/webdev/archive/2014/06/17/dependency-injection-in-asp-net-vnext.aspx

Ответ 1

Причина, по которой они конкретно нацелены на NET45 в указанной вами ссылке, заключается в том, что AutoFac создан и имеет зависимость от .NET 4.5. Без NET45 код не будет компилироваться.

Мое предположение заключается в том, что когда vNext становится все ближе и ближе к выпуску Autofac (и StructureMap, и Castle Windsor и...), выпустят версию, нацеленную на облачную оптимизированную среду, чтобы удалить зависимость.

Ответ 2

Насколько я понимаю,.NET Framework - это полная инфраструктура, которую мы знаем и любим со всеми реализациями Windows и с большим количеством кода, который мы обычно не используем, как они объясняют в некоторых видео XML-синтаксический анализатор.

В .NET Core они удалили все ненужные реализации /dependecies и оставили только базовые. который также позволяет использовать кросс-платформу (еще не), поэтому в будущем можно было бы рассматривать как единственную структуру: CORE Framework и работать на любом устройстве. Их февральский форум поддержки дают массу информации и понимания их целей и целей.

Я рассматриваю это как переход, когда некоторые функции доступны только на полной платформе, а во фьючерсах можно ожидать, что все функции доступны для .NET Core.

С точки зрения Microsoft, если они хотят отпустить, скажем, Entity Framework для мобильных устройств (EF7 нацелен на это), они должны избавиться от всех реализаций окон, от EF и его зависимостей (Framework). Таким образом, они создали зависимость от неокнов в структуре, что также помогает установке нескольких фреймов и устранению некоторых проблем с обновлением структуры, поскольку они в основном изолированы от системы, лежащей в приложении. Новые проблемы появятся как несколько копий одной и той же структуры на одном компьютере для каждого приложения, поэтому они работают над тем, что называется Smart Sharing.

Этот пост может помочь вам и дать вам некоторое представление специально этой части:

Структура .NET Core состоит из двух основных компонентов, которые добавьте и расширьте возможности .NET Framework следующим образом:

  • Продолжительность:

Построен на той же базе кода, что и .NET Framework CLR. Включает такие же GC и JIT (RyuJIT) не включают такие функции, как Application Домены или безопасность доступа к коду. Время выполнения поставляется на NuGet (Пакет Microsoft.CoreCLR)

  1. Библиотеки базового класса:

Являются тем же кодом, что и библиотеки классов .Net Framework, но не содержат зависимости, поэтому они имеют меньшую площадь. Доступно на NuGet (Пакет System. *)

и я думаю, вы уже прочитали Введение .NET Core от Microsoft.

Что касается вашей озабоченности в отношении определения конкретной структуры, так это то, что прямо сейчас не все работает на Core CLR, поэтому вы должны выбрать, какой из них использовать, или вы можете настроить таргетинг на оба и использовать разные реализации.

Как сейчас, CORE работает только в Windows; в моно-структуре нет поставщика SQLLite для инфраструктуры сущностей, но он работает на Core, поэтому вы можете использовать, например, InMemory или Azure EF, и выбирать в зависимости от среды, в которой работает ваше приложение.

Как говорит Скотт Г-н на обложке сообщества, они предполагают будущее, в котором нет моно-рамки или полной структуры, есть только Core, но это займет время, если это когда-либо произойдет.

Ответ 3

Я не могу найти исходный источник, отличный от комментария Дэвида Фаулера (я считаю) на презентации из NDC, но CoreCLR, используемый K Runtime, на самом деле является реинкарнацией CLR, используемой Silverlight 2. Он использовался потому что он маленький и предназначен для кросс-платформы. Здесь есть дополнительная информация: fooobar.com/info/547756/...