Рубрика «asp.net core» - 6

На прошлой неделе мы анонсировали расписание выхода RC2/ RTM версий .NET Core и ASP.NET. Сейчас, когда мы уже выпустили RC2, я бы хотел раскрыть чуть больше подробностей о переходе .NET Core с проектов типа .xproj/project.json на .csproj/MSBuild.

MSBuild

Когда команда ASP.NET начала работу над ASP.NET 5 (ASP.NET Core уже), то одной из главных целей была возможность легкого создания и разработки приложений на Windows, Mac и Linux. Это повлекло за собой создание систем проектов .xproj/project.json. Ключевыми фичами были:

  • Отсутствие перечисления файлов в проекте
  • Легкость редактирования файла проекта без IDE
  • Создание Nuget –пакета, используя только проект
  • Кросс-компиляция для разных версий фреймворка
  • Легкость переключения ссылок/зависимостей

Продолжая разработку, мы расширяли роль самого .NET Core:

  • .NET Core стал платформой для Universal Windows Applications (UWP)
  • .NET Core стал кросс-платформенным набором инструментов для создания как консольных приложений, так и библиотек
  • Microsoft приобрела Xamarin, чтобы .NET разработчики могли создавать iOS и Android приложения (прим. переводчика: речь идет о бесплатности Xamarin tools)

Как это влияет на project.json? Одним из ключевых принципов .NET как платформы — возможность совместного использования кода нашими разработчиками во всех моделях приложений .NET (WinForms, WPF, UWP, ASP.NET, IOS, Android и т.д.). Это создает ряд проблем: хоть project.json отлично подходит для создания веб-приложений и библиотек классов, но в то же время не позволяет унификацию с другими моделями приложений.
Читать полностью »

Будучи исторически погруженным в вопросы разработки модульных приложения на ASP.NET, первое что я сделал, когда вышел ASP.NET Core RC2 – постарался перевести на него свой модульный фреймворк ExtCore. И вот тут оказалось, что в новой версии все изменилось и старые подходы из RC1 больше не работают, зато появились новые интересные возможности, о которых я и хочу рассказать.

Если коротко, то разработка модульных приложений в RC2 очень упрощена. Благодаря новой возможности «части приложения» (application parts), вы легко можете разделить свой большой проект на несколько более мелких и затем свободно компоновать их. Особенно это удобно при работе с областями (areas), которые и так изолируют набор контроллеров, представлений и прочих ресурсов — каждую область теперь можно выделить в отдельный проект. Насколько я понял (в частности, из aspnet/Mvc#4089), реализация ориентирована именно на разделение большого проекта на маленькие и только в части MVC. Остальное все-таки придется писать самому.

Читать полностью »

Сегодня мы выпускаем первую, экспериментальную и ознакомительную версию отладчика для набора инструментов ASP.NET Core CLI в составе редактора Visual Studio Code. Вначале я должен упомянуть несколько вещей:

Этот первый выпуск поддерживает точки останова, пошаговое выполнение, отслеживание переменных и стеки вызовов.

Экспериментальная функция отладки .NET Core в Visual Studio Code - 1

Однако, .NET Core и функции отладки находятся на ранних этапах разработки, поэтому в VS Code отсутствует ряд возможностей, привычных для пользователей IDE Visual Studio. Вот некоторые особенности редактора:
Читать полностью »

Мы продолжаем нашу колонку по теме ASP.NET Core очередной публикацией от Дмитрия Сикорского ( DmitrySikorsky) — руководителя компании «Юбрейнианс» из Украины. В этот раз Дмитрий продолжает рассказ о своем опыте разработки модульного кроссплатформенного фреймворка на базе ASP.NET Core. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев

В предыдущей статье я уже рассказывал об ExtCore — небольшом фреймворке для разработки модульных и расширяемых приложений на ASP.NET Core. В этой статье я постараюсь более подробно остановится на процессе разработки приложения на его основе.

Основное приложение

Первым делом создадим новый пустой проект на ASP.NET Core 1.0:

Готовим ASP.NET Core: подробнее про работу с модульным фреймворком - 1

Читать полностью »

Решили мы с другом поучаствовать в мировом хакатоне, проходящем в рамках hack.summit() 2016. На хабре есть статья посвящённая этому событию.

В правилах на сайте было сказано, что финальный проект должен будет находится на виртуальной машине Кодинга, и всё бы хорошо, да только вот платформа Кодинга использует в качестве операционной системы Ubuntu, а мы пишем на технологиях майкрософта. Встал вопрос отказа от участия или испытания asp.net 5 на coreclr. Выбрали второе и началось более близкое знакомство с новшествами появившимися в этой версии.

На сайте майкрософта дана в общем-то понятная инструкция как установить dnx для Linux (по счастью как раз для Ubuntu 14.04), хотя с некоторыми проблемами пришлось столкнуться, как говорится «первый блин — комом», поэтому хотелось бы привести ниже последовательность шагов которая привела к рабочему результату.

Подготовка ASP.NET 5 (Core) проекта и DNX окружения для участия в хакатоне в рамках hack.summit() 2016 на Koding.com - 1

Читать полностью »

С удовольствием анонсирую проведение интенсива по теме ASP.NET Core в рамках конференции Microsoft DevCon 2016, которая пройдет 25-26 мая в Подмосковье.

Анонс интенсива по ASP.NET Core в рамках конференции Microsoft DevCon 2016 - 1


Интенсивы – это новый формат на конференции, который предложит участникам в течение целого дня глубокое погружение в определенную тему с обязательным практическим участием.

Мы очень рады анонсировать докладчиков и организаторов интенсива по ASP.NET: Джон Гэллоуэй — старший технологический евангелист, Microsoft США, Сергей Пугачев — консультант по техническим решениям, Google, Игорь Сычев — инженер премьер поддержки разработки, Microsoft Россия, Владимир Юнев — старший технологический евангелист, Microsoft Россия.

Подробнее о содержании интенсива ниже.
Читать полностью »

Мы продолжаем нашу колонку по теме ASP.NET Core публикацией от Станислава Ушакова ( JustStas) — team lead из компании DataArt. В статье Стас рассказывает о способах создания своих собственных тег-хелперов в ASP.NET Core. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев

В прошлый раз мы рассмотрели уже существующие в ASP.NET Core 1.0 тег-хэлперы. В этот раз мы рассмотрим создание собственных тег-хэлперов, что может упростить генерацию небольших переиспользуемых участков HTML-разметки.

Готовим ASP.NET Core: создаем собственный Tag Helper - 1

Введение

Формально тег-хэлпером является любой класс, наследующий от интерфейса ITagHelper.На практике напрямую от ITagHelper наследовать не надо, удобнее наследовать от класса TagHelper, переопределяя метод Process / ProcessAsync, которые рассмотрим по ходу статьи.
Читать полностью »

Мы продолжаем нашу колонку по теме ASP.NET Core очередной публикацией от Дмитрия Сикорского ( DmitrySikorsky) — руководителя компании «Юбрейнианс» из Украины. В этот раз Дмитрий рассказывает о своем опыте разработки модульного кроссплатформенного фреймворка на базе ASP.NET Core. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев

Из-за специфики моей задачи, последнее время достаточно много приходится размышлять о модульной и расширяемой архитектуре веб-приложений на ASP.NET Core (а до этого — на ASP.NET предыдущей версии). В результате появился ExtCore — небольшой кроссплатформенный фреймворк с открытым кодом, позволяющий буквально простым подключением NuGet-пакета превратить ваше веб-приложение в модульное и расширяемое.

Готовим ASP.NET Core: создаем свой кроссплатформенный модульный фреймворк - 1

Основные возможности

ExtCore умеет обнаруживать и использовать типы (а также, представления и статический контент), определенные как в проектах (в виде исходного кода или NuGet-пакетов), на которые есть явные ссылки в зависимостях, так и в проектах, которые размещены в определенной папке в виде скомпилированных DLL-сборок.

Для удобства, опционально, эти проекты могут быть условно объединены в расширения (т. е. каждое расширение может состоять из одного или многих проектов). Также, каждое расширение может иметь класс (в одном из проектов), реализующий интерфейс IExtension, а ExtCore, в свою очередь, позволяет в любой момент получить доступный набор экземпляров всех классов, реализующих этот интерфейс. Эти классы можно использовать для предоставления метаданных, описывающих расширения, инициализации расширений (например, регистрации маршрутов) и т. д.

Хотя непосредственно сам фреймворк и не содержит какого-либо функционала, связанного с работой с данными, но все, что для этого необходимо (в т. ч. единый контекст хранилища для всех расширений), реализовано в расширении ExtCore.Data, о котором ниже.
Читать полностью »

Мы рады поделиться с вами очередной статьей из серии статей о платформе ASP.NET Core (ранее ASP.NET 5). В этот раз Вячеслав Бобик — .NET-разработчика из компании Radario, продолжит свой рассказ о платформе рассказом про применение ASP.NET с контейнерами Docker. Все статьи цикла вы всегда можете найти тут #aspnetcolumn — Владимир Юнев

image

Кам нам известно, ASP.NET Core, можно(и даже нужно) запускать не только на Windows, но так же на Mac и Linux. Что это нам дает? Например можем запаковать наше приложение со всеми его зависимостями в docker контейнер и удобно разворачивать его на тестовыхрабочих средах. Мы не будем рассматривать о том что такое docker и как его устанавливать, а вместо этого попробуем собрать образ с ASP.NET Core.

Подготавлием тестовое приложение

У нас есть выбор на чем запускать наше первое ASP.NET Core приложение: на mono или на coreclr. Я выберу второй вариант, так как это модно, стильно, молодежно.

По традиции созданим пустой ASP.NET Core проект:
Читать полностью »

Мы продолжаем нашу колонку по теме ASP.NET Core очередной публикацией от Дмитрия Сикорского ( DmitrySikorsky) — руководителя компании «Юбрейнианс» из Украины. В своей статье Дмитрий рассказывает об опыте работы со статическим контентом в виде ресурсов вне основной сборки проекта в ASP.NET Core. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев

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

Подготовка проекта с ресурсами

Во-первых, нам необходим проект с ресурсами. Для примера, добавим в ресурсы один CSS-файл (который будет делать весь текст на странице красным) и одну картинку. Для этого нам понадобятся сами файлы, а также, примерно следующая строка в файле project.json нашего проекта:

"resource": [ "Styles/**", "Images/**" ]

Вот и все, теперь после сборки проекта все содержимое папок Styles и Images превратится в ресурсы (очевидно, что можно указать действительно конкретные файлы, а не целые папки, если в этом есть необходимость).

aspnetcolumngithubСовет! Вы можете попробовать все самостоятельно или загрузив исходный код из GitHub https://github.com/DmitrySikorsky/AspNet5Resources.

Кстати, при добавлении файлов в ресурсы «древовидность» их расположения становится «плоской», и все символы «» в пути к файлу превращаются в точки. Т. е. информация об исходном расположении утрачивается (учитывая, что имена файлов могут содержать точки). Например, добавленный в ресурсы файл Stylestest.css в проекте AspNet5Resources.Resources будет иметь следующее имя (регистр имеет значение):

AspNet5Resources.Resources.Styles.test.css

К счастью, нам не понадобится каждый раз писать имя сборки (в данном случае это AspNet5Resources.Resources) при получении контента из ресурсов. Для этого при создании EmbeddedFileProvider оно указывается в качестве базового пространства имен (об этом ниже).
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js