• Есть перевод книги Building Web Applications with Visual Studio 2017 Using .NET Core and Modern JavaScript Frameworks?

    @denismaster
    npm install -g yo generator-aspnetcore-spa
    mkdir <dirname>
    cd <dirname>
    yo aspnetcore-spa


    Либо

    dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
    dotnet new angular


    Создаст скелет проекта на выбор, с любым популярным фреймворком.
    Ответ написан
    4 комментария
  • Изучение React или Angular?

    @denismaster
    Angular 1, он же AngularJS - это устаревшая версия, не совместимая с другими

    Angular (он же Angular 2, его более новая версия Angular 4 и ожидаемые Angular 5 и 6) это современная версия, по сути большой фреймворк. Ориентирован на Enterprise-приложения, но может использоваться и в других видах проектов. Из плюсов - строгая типизация(Typescript), много всяких удобных средств для решения проблем доступно сразу, из коробки. Из минусов - достаточно большой размер бандла, но есть техники, как сделать его очень маленьким, а также не самые лучшие StackTrace при отладке. Активно разрабатывается и достаточно популярен.

    React - это не фреймворк, а по сути просто библиотека для работы с ui. Поэтому при работе с ней часто используются другие библиотеки, Redux, Flux, Mobx, Redux-Saga и другие. Из плюсов - высокая скорость рендеринга, популярность. Из минусов - необходимость поддержки зоопарка библиотек для приложения, многое не доступно и придется искать по просторам сети в поисках нужного пакета. Еще из минусов(но это очень субьективный минус) - JSX, и писанина HTML внутри js, что напоминает о не лучшем прошлом с php.

    Vuejs - более легковесна, чем react c его зверинцем или огромный angular, самая маленькая и очень быстрая.
    Также поддерживает компонентный подход. Шаблоны больше похожи на Angular, чем на React. Пока еще не популярна так сильно, как другие 2, но это скоро поменяется.

    Все 3 предназначены для решения одной задачи, а выбор между ними часто субьективен. Каждая из библиотек в чем то хороша, а в чем то нет.
    Ответ написан
  • Как расширить класс (добавить новый атрибут к объекту класса) программно?

    @denismaster
    можно stage['checked'] использовать.
    Либо (stage as any).checked
    Наконец, можно определить интерфейс IChecked и типизировать:
    stage: Stage & IChecked
    Ответ написан
    Комментировать
  • Какой сборщик мусора используется в Net Native?

    @denismaster
    https://github.com/dotnet/corert
    Я думаю тут можно узнать в подробностях про все аспекты .NET Native и AOT-компиляции для .NET, а про реализацию GC - тут.
    Ответ написан
    Комментировать
  • Написать компилятор на C# или C++ или Python?

    @denismaster
    Видел парня на хабре. В 11 лет не каждый может такого достичь, как он, но все же.

    Итак, вы хотите написать компилятор. Это не так сложно, как кажется(иначе не было бы такого количества языков).
    1. Понадобится выучить, что такое грамматики, формальные и регулярные языки, контекстно-свободные грамматики и так далее. Необходимо достаточно глубоко понимать, что это и для чего. Также нужны знания структур данных, ассемблера, паттернов проектирования.
    2. Для опыта необходимо посмотреть грамматики современных языков, благо, они есть в свободном доступе. Пример раз, пример 2
    3. На основе полученных знаний, а также опыта изучения грамматик существующих языков необходимо написать свою грамматику
    4. К этому моменту вы сильно подрастете, если не физически, то скиллом уж точно, поэтому заведите себе хобби или девушку, чтобы отвлекаться от этой дребедени, иначе сойдете с ума.
    5. На основе данной грамматики пишется на любом известном вам языке лексер и парсер, которые переводят эту грамматику в набор токенов(задача лексера), а парсер эти токены в Абстрактное Синтаксическое Дерево (Abstract Syntax Tree)
    6. На основе данного дерева вы можете проводить анализ кода, проверку на ошибки, оптимизации.
    7. Данное дерево мы можем трансформировать в другую форму. После чего на его основе сгенерировать код, который мы хотим получить.
    8. Крайне советую посмотреть исходники открытых компиляторов, например, Roslyn для шарпа или аналогов для других языков, чтобы посмотреть, как оно вообще работает.


    В одиночку написать компилятор для языка высокого уровня достаточно сложно, поэтому советую выбрать язык, который вам нравится, но который вы хотели бы поменять, изучить теоретическую часть, а дальше идти на гитхаб к проекту компилятора для вашего языка и делать пулл-реквесты. Заодно вы получите опыт командной разработки, глубокие знания самого языка, который вам нравится.

    И да, придется оооочень много читать, а также хороший английский, на русском намного меньше литературы по данной специфике.
    Ответ написан
    6 комментариев
  • Какие знания нужны для прохождения собеседования Начинающий .NET?

    @denismaster
    К начинающим очень больших требований не предоставляют.
    Будет полезно следующее:
    • Структуры данных и алгоритмы. Нужно уметь разбираться, что такое массив, список, дерево, хеш-таблица в общем виде, понимать для чего они, какие у них плюсы и минусы относительно друг друга, как с ними работать.
    • Навыки работы с базой данной.. Тоже, требуется понимание основ, никто от вас степени DBA не потребует. Основы SQl, возможно простейшее понимание Join
    • Базовые знания по .NET. Сюда входит ООП, знания простых нюансов, например, почему множественное наследование это плохо и почему его нет в c#, что вообще такое платформа .NET, ее основные отличия от других платформ. Сюда же базовое понимание того, как работает Web-сервер, если вакансия на ASP.NET.

    На самом-то деле, в каждой компании по-разному, и по-настоящему универсального рецепта все равно не найти)
    Пробуйте, будьте уверены в своих силах, покажите, что вы заинтересованы в дальнейшем изучении дотнета, и все будет хорошо)
    А выше уже скинули ссылку на хорошую подборку вопросов.
    Ответ написан
    Комментировать
  • Насколько пригоден ASP.NET Core для стартового проекта?

    @denismaster
    Добрый день! Поднимали уже два проекта на asp.net core, остались довольны. В целом технология готова, многое что еще не допилили - допиливают активно, работает стабильно.
    По вашим вопросам:
    • Реализация BCL в целом почти полная, все что нужно в 90% случаев уже давно есть, обработка данных, криптография и рефлексия поддерживается.
    • Возможно запустить asp.net core поверх полного дотнета, можно и так. Проблем в целом нет, без каких либо проблем тот же код, если не использует что-то специфичное, запускается и на других платформах.
    • PInvoke не применяли, но в интернете довольно много успешных историй его применения, в частности, фреймворк Avalonia его успешно применяет вроде как.
    • Kestrel отлично справляется в связке с nginx, да и сам по себе годен. Работает быстро.

    Как по мне, будущее за .NET Core. Использовать его уже реально.
    Ответ написан
    1 комментарий
  • Какой есть аналог VCL из RAD Studio для Mac OS?

    @denismaster
    VCL с потрохами завязан на Windows API, а его под Mac нет.
    Используйте FireMonkey или Lazarus.
    Ответ написан
    Комментировать
  • Какие есть альтернативы компонетнтам MindFusion для встраивания интерактивных блок-схем в дэсктопные C# приложения?

    @denismaster
    Лучший вариант - написать свою библиотеку, максимально оптимизированную под задачу.
    В свое время реализовывал жутко производительную библиотеку для схожих целей, вдохновился этой статьей.
    gliffer.ru/articles/net--redaktor-vektornoy-grafik...
    Ответ написан