Pull to refresh

Comments 30

Например, можно в развернутом приложении заменить зависимый проект на его исходники.
На самом деле в запущенном приложении нельзя. Типы уже обработаны JIT и лежат в памяти, на них есть ссылки, у них есть состояние и т. п. Там ограничений ещё больше чем у Edit&Continue в студийном отладчике.
Касательно «запущенного» приложения врать не буду, не проверял.
Но при запуске из студии изменения подхватываются сразу, без компиляции. Возможно это студия добавляет какой-то вотчер. Но факт в том, что есть загрузчик проекта/зависимости на основе Roslyn'a. Раньше был только загрузчик сборок с IL.
В «развернутое» приложении можно очень легко подложить исходники самого AspNet5 и дебагать. Для это надо просто скопировать папку проекта рядом со своим и все.
Студия даже Razor-овские вьюшки не всегда после запуска поменять даёт (по крайней мере у меня CTP6 просто блокирует редактор в ряде случаев), не то что весь стек ASP.NET без перезапуска заменить
утверждение, что ASP.NET 5 не зависит от System.Web, вообще кажется очевидным
Проблема с «зависимостью» от System.Web была не в том, что подключается сборка из GAC, а в том, что весь код был завязан на System.Web.HttpRuntime, который в плане замены веб-сервера и вообще контроля над происходящим убог донельзя. Сейчас там OWIN. Переход с HttpRuntime на OWIN ортогонален всему остальному.
Строго говоря OWIN в AspNet5 нет. OWIN это интерфейс, на котором основывался проект Katana в частности, легший в основу AspNet5. Все очень похоже безусловно.
Я не говорил, что проблема зависимости от System.Web в GAC. Конечно, проблема в зависимости от IIS. Но в рамках AspNet5 (о чем я и питался написать) сделано намного больше, чем просто «отвязать asp.net от IIS». Фактически товарищи испекли новый .NET.
Да, есть адаптеры OWIN к AspNet5. И AspNet5 к OWIN. Но по факту это разные вещи.
Выглядит интересно.
Есть (будут ли) какие-то автоматические способы перевода текущих приложений c ASP.NET MVC 5 на ASP.NET 5?
Или там и текущая реализация заведётся без проблем?
Есть пакет Microsoft.AspNet.Mvc.WebApiCompatShim, который облегчает портацию WebApi. Подробней тут.
Майкрософт говорит, что все очень легко портируется с MVC5 на MVC6. По факту все сильно зависит от приложения. Чем больше инфраструктурных вещей в нем, тем сложнее. Я вторую неделю портирую и ни конца ни края. Вообще номер версии 6 не должен обманывать. Фактически это другой фреймворк. Там все по-другому. Очень похоже, но по-другому.
Начать стоит отсюда: aspnet.readthedocs.org/en/latest/index.html
Самое печально, что берешь какой-то тип, типа FormDataCollection или HttpCookieCollection (который напрямую не связан с изменившимися концепциями — там хоть понятно куда бежать), а его нет. И что вместо него не понятно. Правда когда разбираешь, понимаешь, что теперь все лучше. Но от этого не легче ))
Чет мне кажется не успеют они все это запилить к релизу 15й студии. Судя по количеству багов в проекте Roslyn на гитхабе и вообще активности, еще годик-другой придется фигачить, уж больно кардинально все поменяли.
Ну в принципе не страшно, если не успеют. Теперь всё идет как отдельные nuget-пакеты, которые обновляются независимо от студии. Но вообще да, фундаментальность изменений поражает.
У меня сейчас на CTP6/vnext_beta3 небольшой пилотный проектик, в принципе, уже вполне можно жить, если с нуля писать сразу на нём.
А мы попробовали и поняли, что не выйдет пока у нас с vnext любви. Слишком мало пока либ эту штуку поддерживают, а докер контейнеры слишком часто падают. Поэтому пока на 4.6 с верой в будущее
Так ведь если не использовать aspnetcore50, а использовать полный .NET(aspnet50) то можно использовать любые либы, разве не так?
Там все равно по-моему не все гладко, у нас не заработал LightInject, еще что то. В общем пока в продакшн мы это не потащим
Любопытно, я думал все будет запускаться с полпинка на полном фрейморке. Свое приложение пока не пробовал. И, да, для продакшена еще рано.
Маленькая деталь — web.config больше нет ))
Ну или так скажем: хостинг не читает его, т.о. ConfigurationManager не видит ничего из него.
Вот тут на SO человек воркэраунд предлагает.
А расскажете ли с нуля для новичков?
А то я студию поставил, посмотрел, понял что все изменилось кардинально, испугался и убег ждать релиза и официального нового гайда, хоть по блиотеке книг, хоть дисков…
Удалось кому-нибудь уже запустить на линуксе?
PS: Название ASP NET 5 конечно совершенно дурацкое.
Да, народ во всю запускает на Mono.
Вот на dotnetConf сессия хорошая была: channel9.msdn.com/Events/dotnetConf/2015/ASPNET-5-Deep-Dive
Собственно уже есть официальный Docker контейнер с AspNet5: blogs.msdn.com/b/webdev/archive/2015/01/14/running-asp-net-5-applications-in-linux-containers-with-docker.aspx

Хорошие посты были у чувака тут: blog.markrendle.net/fun-with-asp-net-5-linux-docker-part-3/ (но сейчас блог засуспенжен — кончился триал на ghost.org )) )
Mono не считается, он давно работает. Я имел ввиду coreclr.
А. Без Mono пока кажется еще не пашет.
Хотя в репозитории coreclr уже видно, что билд под Linux проходит…
Там мало что на линуксе собирается, mscorlib и corefx (собственно BCL) пока собирается на винде и копируется в линукс.
Проблема в том что собранный хеловорд сыпет ошибками и в винде и в линуксе Unable to load DLL 'api-ms-win-core-processenvironment-l1-1-0.dll'. Это т.н. api sets, которые появляются только с Win8.
Видимо пока не сделали полный билд на линуксе где то все застревает в зависимостях от OS и студии, хотя об этом не написано и это совсем не очевидно.
Зато ошибка и колстэк эквиваленты в разных ОС :)
Одна и та же ошибка на разные ОС — не это ли обещанная кросс-платформенность! ))
На coreclr + kestrel (это web сервер) запускается.
Как-то странно ты считаешь. Я вижу 15-мегабайтный пакет KRE-CoreCLR-amd64.1.0.0-beta1.nupkg, а почти всё остальное — он же, но распакованный.

Проверил сам:
35 файлов. 12 мегабайт.

>ls -ltR
.:
total 2
drwxr-xr-x 4 Ark Administrators 0 Apr 23 02:18 approot
-rwxr-xr-x 1 Ark Administrators 621 Apr 23 02:18 ConsoleApp2
-rw-r--r-- 1 Ark Administrators 160 Apr 23 02:18 ConsoleApp2.cmd

./approot:
total 1
drwxr-xr-x 3 Ark Administrators 0 Apr 23 02:18 src
drwxr-xr-x 3 Ark Administrators 0 Apr 23 02:18 packages
-rw-r--r-- 1 Ark Administrators 147 Apr 23 02:18 global.json

./approot/src:
total 4
drwxr-xr-x 3 Ark Administrators 4096 Apr 23 02:18 ConsoleApp2

./approot/src/ConsoleApp2:
total 5
drwxr-xr-x 3 Ark Administrators 0 Apr 23 02:18 Properties
-rw-r--r-- 1 Ark Administrators 310 Apr 23 02:18 ConsoleApp2.kproj.user
-rw-r--r-- 1 Ark Administrators 1493 Apr 23 02:18 ConsoleApp2.kproj
-rw-r--r-- 1 Ark Administrators 232 Apr 23 02:15 Program.cs
-rw-r--r-- 1 Ark Administrators 322 Apr 23 02:15 project.json

./approot/src/ConsoleApp2/Properties:
total 4
drwxr-xr-x 2 Ark Administrators 4096 Apr 23 02:18 PublishProfiles

./approot/src/ConsoleApp2/Properties/PublishProfiles:
total 6
-rw-r--r-- 1 Ark Administrators 995 Apr 23 02:18 FS.pubxml
-rw-r--r-- 1 Ark Administrators 488 Apr 23 02:18 FS.pubxml.user
-rw-r--r-- 1 Ark Administrators 3239 Apr 23 02:18 FS-publish.ps1

./approot/packages:
total 4
drwxr-xr-x 3 Ark Administrators 4096 Apr 23 02:18 kre-clr-win-x86.1.0.0-beta3

./approot/packages/kre-clr-win-x86.1.0.0-beta3:
total 3070
drwxr-xr-x 3 Ark Administrators 8192 Apr 23 02:18 bin
-rw-r--r-- 1 Ark Administrators 3134418 Feb 5 16:53 kre-clr-win-x86.1.0.0-beta3.nupkg
-rw-r--r-- 1 Ark Administrators 724 Feb 5 16:23 kre-clr-win-x86.1.0.0-beta3.nuspec

./approot/packages/kre-clr-win-x86.1.0.0-beta3/bin:
total 7566
drwxr-xr-x 5 Ark Administrators 4096 Apr 23 02:18 lib
-rwxr-xr-x 1 Ark Administrators 61920 Feb 5 16:14 Microsoft.Framework.ApplicationHost.dll
-rwxr-xr-x 1 Ark Administrators 23008 Feb 5 16:14 Microsoft.Framework.Runtime.Loader.dll
-rwxr-xr-x 1 Ark Administrators 33760 Feb 5 16:14 Microsoft.Framework.Runtime.Roslyn.Common.dll
-rwxr-xr-x 1 Ark Administrators 117728 Feb 5 16:14 Microsoft.Framework.Runtime.Roslyn.dll
-rwxr-xr-x 1 Ark Administrators 367072 Feb 5 16:14 Microsoft.Framework.Runtime.dll
-rwxr-xr-x 1 Ark Administrators 42464 Feb 5 16:14 Microsoft.Net.Http.Client.dll
-rwxr-xr-x 1 Ark Administrators 118240 Feb 5 16:14 klr.exe
-rwxr-xr-x 1 Ark Administrators 113120 Feb 5 16:14 kre.clr.dll
-rwxr-xr-x 1 Ark Administrators 52192 Feb 5 16:14 kre.clr.managed.dll
-rwxr-xr-x 1 Ark Administrators 52704 Feb 5 16:14 kre.host.dll
-rwxr-xr-x 1 Ark Administrators 59592 Feb 5 14:59 Microsoft.CodeAnalysis.CSharp.Desktop.dll
-rwxr-xr-x 1 Ark Administrators 3975352 Feb 5 14:59 Microsoft.CodeAnalysis.CSharp.dll
-rwxr-xr-x 1 Ark Administrators 191160 Feb 5 14:59 Microsoft.CodeAnalysis.Desktop.dll
-rwxr-xr-x 1 Ark Administrators 1529512 Feb 5 14:59 Microsoft.CodeAnalysis.dll
-rwxr-xr-x 1 Ark Administrators 507392 Feb 5 14:59 Newtonsoft.Json.dll
-rwxr-xr-x 1 Ark Administrators 230624 Feb 5 14:59 System.Collections.Immutable.dll
-rwxr-xr-x 1 Ark Administrators 256216 Feb 5 14:59 System.Reflection.Metadata.dll
-rw-r--r-- 1 Ark Administrators 471 Feb 5 14:59 k.cmd
-rw-r--r-- 1 Ark Administrators 188 Feb 5 14:59 kpm.cmd
-rw-r--r-- 1 Ark Administrators 289 Feb 5 14:59 kre.clr.config

./approot/packages/kre-clr-win-x86.1.0.0-beta3/bin/lib:
total 0
drwxr-xr-x 2 Ark Administrators 0 Apr 23 02:18 Microsoft.Framework.DesignTimeHost
drwxr-xr-x 2 Ark Administrators 0 Apr 23 02:18 Microsoft.Framework.PackageManager
drwxr-xr-x 2 Ark Administrators 0 Apr 23 02:18 Microsoft.Framework.Project

./approot/packages/kre-clr-win-x86.1.0.0-beta3/bin/lib/Microsoft.Framework.DesignTimeHost:
total 115
-rwxr-xr-x 1 Ark Administrators 117728 Feb 5 16:14 Microsoft.Framework.DesignTimeHost.dll

./approot/packages/kre-clr-win-x86.1.0.0-beta3/bin/lib/Microsoft.Framework.PackageManager:
total 536
-rwxr-xr-x 1 Ark Administrators 548320 Feb 5 16:14 Microsoft.Framework.PackageManager.dll

./approot/packages/kre-clr-win-x86.1.0.0-beta3/bin/lib/Microsoft.Framework.Project:
total 50
-rwxr-xr-x 1 Ark Administrators 51168 Feb 5 16:14 Microsoft.Framework.Project.dll

>du -sh
12M.
Я особо не мудрствовал в подсчете:
get-childitem -Recurse |? {$_.Attributes -notcontains 'Directory'} | Measure-Object -property Length -sum
Все DNX хранятся в профиле юзера: C:\Users\Shrike\.dnx\runtimes
В старых версиях (для VS CTP6 по-прежнему): C:\Users\Shrike\.k\runtimes

rbenv, virtualenv и сейчас наконец присоединяется .net
Sign up to leave a comment.

Articles