Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

.NET дайджест #10: Build 2016, Bash on Windows, Evolve 2016, bla-bla microservices

Месяц назад прошла конференция Build 2016, на которой помимо прочего рассказали, что Xamarin теперь бесплатен для всех пользователей VS, включая Community Edition, и что под Windows теперь можно запускать программы, скомпилированные под Linux. Кто не смотрел — очень рекомендую.

.NET

Будущее C# на Build 2016.

Превью .NET 4.6.2.

Обзор .NET на Build 2016.

ASP.NET

Введение в ASP.NET Core 1.0 на Build 2016.

Node services, server-side rendering.

Что нового в Security. NDC { London }.

Анализ логов c NLog и Application Insights.

Микросервисы, DDD

Пример реализации Канбан-доски с использованием DDD, микросервисов, CQRS, ES. Написан на Java, но тем не менее можно почерпнуть для себя что-то интересное. Исходники.

Keynote о микросервисах на CodeNote.

Десятилетие DDD, CQRS и Event Sourcing на DDD Europe. На канале DDD Europe 2016 выложили еще несколько интересных видео докладов.

Микросервисы в облаке — статья CTO Azure о том, какие есть способы разворачивания микросервисов и какие поддерживаются в Azure.

Ля-ля-ля микросервисы. Что это вообще такое?

JavaScript

Поддержки Non-nullable типов в TypeScript.

JS — самый популярный язык на земле согласно опросу на StackOverflow.

Релиз TypeScript 1.8.

Как понять что такое TypeScript.

Что нового в TypeScript на Build 2016.

Пустой проект на Angular2 и TypeScript чтобы было проще начать с нуля.

Подкаст Angular2 с John Papa.

Скрипт, позволяющий понять какие CSS свойства используются на странице.

Инструменты

Релиз VS Code 1.0.

Релиз R# Ultimate 2016.1.

Git: merging vs. rebasing.

Введение в Edit and Continue с Roslyn.

Docker

Docker for Mac and Windows beta testing.

Почему стоит выбирать Docker.

ADO.NET

Улучшенный миграции в EF7..

Оптимистический блокировки в EF6.

Bash on Windows

Ubuntu на Windows.

Bash на Windows на Build 2016.

Как установить.

Разное

Разрешите себе отдыхать.

Модели развертывания приложения. Nano сервер.

Архитектура StackOverflow.

Параллельное выполнение тестов с NUnit 3.

Cloud App Security доступна для всех.

Что нового в Windows Service 2016.

Три примера неистовой нагрузки на GC. Попытка решить одну из них.

Книги

Выявление проблем с памятью.

Архитектура реактивных микросервисов.

Visual Studio Code Tipps & Tricks.

Enduring CSS — оформление стилей для большого приложения.

События

27 апреля — видеотрансляция Xamarin Evolve 2016.

Предпродажа билетов на DDD Europe 2017.

Юмор

Классические картины, изображающие программистов.


Большое спасибо всем, кто присылал интересные материалы для дайджеста!


← Предыдущий выпуск: .NET Дайджест #9
Следующий выпуск: .NET Дайджест #11

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn



13 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Пару недель назад решил поковырять ASP.NET Core и с удивлением обнаружил, что то что на github совсем другое нежели то, что поставляеться под DNX. Еще спустя пару часов понял что под DNX его собрать\запустить нельзя. Он уже как с нового года допиливаеться только под .NET CLI, которая не поддерживаеться пока ни Visual Stuido, ни VS Code.
DNX — официально устаревшая технология MS со всеми форматами зависимостей которые были. Сборка проекта стала другой, пакеты другие, все Namespace были переименованы, bootstrap ASP.NET Core поменялся и даже все платформы под которые в dnx можно было собрать проект уже Deprecated.

И все это они делают в RC. Это к размышлениям тем кто берется за эту технологию и думает как бы ее в прод раньше остальных вытолкнуть.

Про .NET CLI рассказали, по-моему, еще в конце декабря. И много говорили, о том, что они переименовали ASP.NET 5 в .NET Core 1.0 и ASP.NET Core 1.0. Этого никто не скрывал, наоборот всех предостерегали от использоватния RC1 так как там многое поменяется. Странно, что Вы это в негативном свете выдаете. Продук еще в стадии разработки. И хорошо, что они поменяли это в RC, а не после релиза.

Я думаю что для них это самих решение спонтанное, так как в релиз кандидате архитектуру рантайма никто не меняет, но маркетологи в мс не устояли перед заманухой компиляции в нативный код.
Неделю назад появился занятный пост, что все ребята, мол мы решили использовать .NET Core бренд не только для веба, и поэтому решили выкинуть старый рантайм и взять новый.
Пока ничего не работает и все разработчики IDE должны переделать поддержку того, что мы заявили как RC 1 — потому что это уже мертвая технология(DNX), и вообще только неделю назад мы собрали студию для внутренного пользования, на которой можно это завести, но зато у нас уже Release Candidate 2 есть и пару киллер фич для последующих мс конференций.

www.hanselman.com/...ateOnASPNETCore10RC2.aspx

Спасибо, интересная статья.

маркетологи в мс не устояли перед заманухой компиляции в нативный код
Они не компилят в нативный код, там точно так же есть рантайм с JIT-компиляцией.
Неделю назад появился занятный пост, что все ребята, мол мы решили использовать .NET Core бренд не только для веба, и поэтому решили выкинуть старый рантайм и взять новый.
На самом деле не неделю назад, а в конце декабря. Сначала был пост у Скотта, а потом Демьен расскадывал на NDC { London }. Оба упоминались в предыдущих дайджестах.
вообще только неделю назад мы собрали студию для внутренного пользования
До этого использовали командную строку, и с этим нет проблем.
зато у нас уже Release Candidate 2 
RC2 еще нет, над ним как раз идет работа.

Ощущение что Вы даете негативный фидбек нормально не разобравшись в вопросе.

.NET CLI как опцию предоставляет компиляцию в нативное приложение, а не только в IL.
github.com/...mentation/intro-to-cli.md

До этого использовали командную строку, и с этим нет проблем.
я собираю проект на Маке — в принципе это нормально, что на другой платформе .NET CLI зависимости и target platforms для билда не понимает никакая из существущих IDE и Omni Sharp со всеми текстовыми едиторами существующеми.
Меня очень удивило — что все это так же не поддерживаеться на Винде в Студии до сих пор.

В принципе можно забрать готовый проет из гитхаба и сделать dotnet run\restore. Но поиск зависимостей, подсветка кода, не говоря уже про отладку и запуск проекта работать не будут них.

Мне было интересно запустить и познакомиться с ASP.NET Core компонентами — для этого я поставил DNX и начал запускать приложения. когда я попытался найти на GitHub в текущей дев ветке какие-то упоминания о том что делают хуки из Startup.cs я ничего не нашел — даже добавление хоста kestrel теперь делаеться через вызов метода в коде, а и не из консоли командой web.
Когда я начал пересматривать зависимости, увидел совсем другие неймейспейсы на гитхабе, чуть вникнув в суть — выяснилось что появилась некая .NETStandartPlatform которая собержит в себе все эти новые собирки и хоститься где-то на myget у Девида Фаулера.
В DNX эту зависимости отресторить нельзя — потому что он идет под совсем другую платформу в project.json, платформы DNX типа dnxcoreclr уже deprecated.

Как мне решить эти проблемы вы не знаете случайно? У меня сложилось устойчивое впечатление что все чем ограничеваться текущий функционал asp.net core — запуск готовых демо приложений, с которыми нельзя, и лучше ничего не делать, кроме как просто запускать.

Есть еще опция изучать Deprecated версиию ASP.NET Core на основани вектки, в которую уже больше чем полгода никто не коммитит — тоже сомнительно удовольствие. Я не говорю уже про энтузиастов, которые это форкают, делают библиотеки под него, инструментарий для IDE и пишут литературу, а потом в один момент их ставят перед фактом что технология которую они делали 4 года пришлось «ощутимо улучшить» и переосмыслить и прямо в Release Candidate.

Я игрался с ASP.NET 5 еще до появления .NET CLI и переименования в .NET Core 1.0. Решил подождать пока там все устаканится и дождаться RC2. Тоже читал, что ночные билды они выкдадывют на MyGet. Можно попробовать посмотреть в эти фиды dotnet.myget.org/gallery/dotnet-core www.myget.org/gallery/aspnetrelease или похожие. Сам пока не пробовал, но, если будет время на следующей неделе попробую и отпишу.

Вот нашел чат gitter.im/...t/cli/archives/2016/01/06, может там будет что-то полезное. Но, думаю, все же пока рано с ним что-то делать так как оно сейчас сильно в разработке.

Хм.


            var c1 = new System.Collections.ArrayList();
            c1.Add(1);
            c1.Add("x");
            Console.WriteLine(c1.GetHashCode());

компиляция даёт:


/home2/netch/prog/tests/cs/hw_dn2/Program.cs(16,45): error CS0234: The type or namespace name 'ArrayList' does not exist in the namespace 'System.Collections' (are you missing an assembly reference?)

что и кому я должен указать, для самой базовой функциональности?
Почему Mono такого не требует?

BTW в .deps.json Collections есть, то есть оно его пытается подцепить.

Ну, что я могу сказать кроме того, что меня удивило использование ArrayList, возможно они решили не реализовывать этот древний класс в .NET Core.

Я заменил System.Collections.ArrayList на System.Collections.Generic.List<object> и все взлетело.

Хм. Да, починилось. Странновато, но запомним.

В общем, все как обычно в Майкрософт )

Наоборот — совсем необычно. Обычно было: обратная совместимость на первом месте, дата RC и релиза заранее известна, обычно после беты радикально уже ничего не менялось, и вендоры имели возможность (и время) спокойно подготовить\мигрировать свои технологии, чтобы к релизу все красиво запускалось. Такого разгула беспредела и хипстеров в .net не припомню — даже .нет 1.0 запускался намного более ответственно и прогнозируемо. Он был не идеален, но все знали чего ожидать на год(ы) вперед, и это немаловажный фактор при выборе платформы.

Идеи в .net core хорошие и вкусные — но то, как это все происходит и наблюдается последние пару лет, с полной неизвестностью что-где-когда, метаниями на стадиях беты и RC1 с кучей недоделок и багов, это может быть не совсем то, чего ждут от надежного поставщика платформы партнеры МС (которые и приносят ей в итоге прибыль). Известно, куда вымощена дорога из исключительно хороших намерений...

.NET Core в пререлизном состоянии и это нормально (даже отлично), что в него вносятся изменения на основании фидбэка сообщества. Уверен, что лучше подождать и получить классный продукт, чем сырое непонятно что. Тем более, что Full Framework никто не отменял.

Підписатись на коментарі