Исходный код ASP.NET vNext опубликован на Github

    Компания Microsoft сделала шаг навстречу разработчикам, выложив на Github исходный код следующей версии ASP.NET (vNext), а также примеры приложений, демонстрационные образцы новых функций и документацию.

    О публикации кода в открытом доступе под свободной лицензией Apache 2 компания сообщила позавчера. Исходники старой версии ASP.NET и раньше частично были опубликованы на http://aspnetwebstack.codeplex.com/, и предполагалось, что vNext окажется там же. Но всё-таки выбрали Github.

    ASP.NET vNext — обновлённая версия ASP.NET с оптимизацией для облачных веб-приложений. Новый фреймворк должен упростить разработку приложений, а также существенно повысить их производительность. Репозиторий содержит обновлённые версии MVC, Web API, Web Pages, SignalR и EF.

    Изучение предлагается начать с вводного раздела Home. В репозитории представлены образцы кода и документация. Образцы должны помочь разобраться в некоторых из новых функций ASP.NET и сразу попробовать их в деле. В частности, примеры новых функций находятся в репозитории Entropy.

    К тому же, это и хорошая помощь для новичков: есть шаблоны простых приложений, которые можно редактировать: ConsoleApp, HelloWeb и HelloMvc.

    На скриншоте — приложение ASP.NET vNext Hello World запущено из терминала, после каждой правки в Visual Studio и обновления браузера оно заново компилируется и обновляется. Приложение оптимизировано для облачного хостинга.



    Как вариант, то же приложение можно исполнить стандартным способом из Visual Studio, когда автоматически запускаются веб-сервер и браузер.



    Примеры более сложных приложений на ASP.NET с открытым кодом: MVC Music Store и BugTracker.

    Конфигурационный файл NuGet.config в репозитории ссылается на фид MyGet, где перечислены все пакеты в разработке, он постоянно обновляется.

    Кроме ASP.NET, компания Microsoft анонсировала и .NET vNext, где появится возможность компилировать программы C# 6 и VB компиляторами Roslyn. Здесь же будет новый компилятор .NET Native для компиляции перед исполнением нативных приложений Windows Store, а ещё эффективный JIT-компилятор .NET Next Generation JIT (RyuJIT), повышающий производительность и десктопных, и серверных приложений.
    Support the author
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 24

      +10
      В презентации показали запуск этого дела на маке. Завелось после правки 2 строк в конфигурации.
        0
        Тоже смотрел эту презентацию. Но из нее не ясно как запустить на Маке исполняемый файл веб-сервера.
        И правильно ли я понял, что в ближайшие месяцы они выложат веб-сервер для linux который позволит хостит asp.net mvc приложения на линукс-хостинге? Типа bye bye iis!
          0
          Я подозреваю, что там обычный HttpListener используется.
            +1
            Да, используют в качестве хоста вот эту штуку — github.com/Bobris/Nowin
              0
              По сути там Nancy. Да и разработчики там из того же комьюнити.
              update: там — Project K
                –1
                Вообще не понял написанного вами, если честно. Пожалуйста, изложите мысль более развёрнуто.
                Касетельно нэнси — её в основном пилят достаточно адекватный и профессиональный thecodejunkie и наркоман grumpydev (сей персонаж считает допустимым тот факт, что ошибки при сериализации ответа и рендеринге вьюшки принципиально невозможно нормально обработать средствами фреймворка, молча рендерит ошибки компилятора в качестве ответа сервера и т. п.). Причём тут Nowin и разработчики ASP.NET мне не особо ясно.
                  +1
                  В участниках Project K — Damian Hickey, который также работает над Nancy и за пивом рассказал, что благодаря этому и ряду других проектов попал в этот проект.
                  github.com/orgs/aspnet/members
            +2
            Веб-сервер на Linux как бы и сейчас есть, например nginx + Mono-FastCGI или Apache + mod_mono. Или даже nginx + xsp.

            На самом деле, главная фишка новой платформы — KRuntime, этакий CLR в песочнице. Учитывая, что на Mono сейчас работает далеко не 100% функционала, доступного в .NET (требует костылей или вовсе никак), это очень упрощает жизнь. Может быть, и не все будет так гладко, но тут уж не привыкать.
              +4
              mono-fastcgi-server и xsp — страшные тормоза. И дело даже не в том, что сетевой стек небыстрый (поверх HyperFastCGI ASP.NET работает вполне неплохо), а в том, что очень неоптимально передаются запросы между AppDomain-ами, и есть ещё несколько ботлнеков, которыми никто не занимается. Самое шустрое что есть сейчас для обработки сырых запросов — мой враппер над встроенным в libevent HTTP-сервером. Поверх него есть хост для NancyFx (мы используем в production уже полгода), но по идее сделать поддержку OWIN — дело одного-двух вечеров. Мы с автором HyperFastCGI обсуждали некий унифицированный хост для ASP.NET с заменяемым http-сервером, но это дело заглохло из-за нехватки времени.
                0
                А насколько страшные тормоза? Можно узнать порядок цифр? То есть на данный момент нет возможности использовать ASP.NET приложение на Mac/Linux? Я NancyFx ковыряю периодически сам фреймворк нравится, но запускать в production не пробовал.
                  0
                  Я скинул ссылку на бенчмарки же. Там есть запуск NancyFx поверх обычного моновского ASP.NET-хоста и поверх моего враппера над libevent2, разница производительности в 23 раза. HyperFastCGI даст прирост тоже немаленький, автор там обошёл несколько ботлнеков (например, приложение и http-сервер живут в одном AppDomain). Он (автор HyperFastCGI) сейчас проводит рефакторинг этого дела с целью дать возможность подключать сторонние реализации http-сервера, использовать вместо System.Web OWIN, разхардкодить настройки и т. п. У меня так же в планах переехать с libevent на libwebsite, которая умеет сокеты. Если всё будет хорошо, то через пару месяцев будет достаточно быстрая реализация хоста без привязки к fastcgi.

                    0
                    Оу, не заметил ссылку. Пардон. Это очень интересно, но пока почему-то ссылка не открывается. Было бы неплохо по результатам работы пост на хабре.
                  0
                  Спасибо за наводку на HyperFastCGI! С ним, наконец-то, удалось настроить keepalive на nginx, что дало прирост req/s для MVC4 приложения в 1.5 раза (115.6 против 177.2). Это, хоть и не отменяет факта, что IIS все равно сильно быстрее (~400), само по себе уже хорошо.
                    0
                    Как-то маловато. У нас инстанс приложения на NancyFx на виртуалке на херцеровской железке выдаёт на простых запросах (там, где надо 1-2 запроса к базе) порядка 900-1000 rps, там, где нет необходимости в запросах е БД — 5-6К rps. Попробуйте посмотреть, что у вас с настройками пула потоков и пула соединений к БД, вполне вероятно, что именно в них что-то и упирается.
            +13
            Я хоть и не использую ASP.NET, но новость, считаю, отличная. Надеюсь, что наконец-то у Java будет полноценный конкурент на платформах, отличных от Win.
              +2
              Вот бы полноценно работало на MAC, плюс к этому IDE от jetbrains — цены бы небыло!
                0
                А вы попробуйте Xamarin, может быть уже работает. Я тут игрался как-то с некоторыми open source проектами (библиотеки и консольные приложения) — отлично открываются в Xamarin, никаких лицензий не нужно, так как это не мобильная разработка.
                  0
                  А Xamarin уже позволяет без танцев с бубном создавать бандлы для проектов, чтобы не требовался Моно в комплекте? Месяц назад смотрел — как были проблемы, так и остались.
                    0
                    Mkbundle в mono вроде идет в комплекте, там даже xamarin не нужен.
                    Или вы про другие бандлы?
                      0
                      В маковской версии от mkbundle толку мало. Я подозреваю, что ему для нормальной сборки бинарника нужен всё-таки GCC, так как XCode со всему тулзами ему не хватает. Надо попробовать на виртуалке, так как не могу произвольно доустанавливать софт на подопытной машине, там другие сборки делаются.
                      0
                      Как RaveNoX сказал — все идет в комплекте. Поставил и работает. По крайней мере так было у меня.
                        0
                        Т.е. вы на чистую систему с XCode поставили MDE и у вас не возникло проблем со сборкой статического бинарника???

                        Я столкнулся вот с такой штукой — скорее всего — не я один:

                        stackoverflow.com/questions/23089844/mono-3-4-0-mkbundle-under-mac-os-x-failed?rq=1

                        Если подскажете, как у вас собирается бандл — буду очень признателен.
                          0
                          У меня нормально собирается бандл. Там с версии 3.4 надо указать флаг на линковку с Foundation и Obj-C Runtime
                          Из описания к релизу
                          Breaking changes

                          mkbundle on Mac OS X now must always link against the Objective-C Runtime (-lobjc, however, it is recommended to link against the Foundation framework as well (-framework Foundation).
                    0
                    XamrinStudio очень неплоха. Они довольно активно ее дорабатывают. И mono под маком хорошо работает. Есть небольшие косяки, но их быстро исправляют и они не критичные .(Работаю с Xamarin.Mac)

                  Only users with full accounts can post comments. Log in, please.