Как стать автором
Обновить
2.75
Рейтинг

ASP *

Технология создания веб-приложений и веб-сервисов

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Blazor WebAssembly: динамическое создание компонентов по JSON описанию

.NET *ASP *C# *WebAssembly *
Tutorial

В заметке описан способ динамического добавления на страницу компонентов по JSON-описанию с помощью DynamicComponent из ASP.NET Core 6.0 (в настоящее время в статусе Preview).

Динамическое создание компонентов пригодится например при реализации конструктора форм:

• Форма описывается JSON-ом;

• Элементы (или контролы) формы не ограничены предустановленным набором. Контролы можно добавлять, в том числе подгружать из других dll-библиотек.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 2.6K
Комментарии 1

Распределяем нагрузку в зависимости от URL

Системное администрирование *ASP *IIS *

Имеем ASP.NET web приложение. Проблема в том, что приложение может выполнять как "обычные" запросы так и тяжелые запросы построения отчетов. Все запросы по умолчанию выполняются в одном Application Pool. И в случае обработки запросов на построение отчетов страдает производительность.

Задача: вынести построение отчетов в отдельный Application Pool на отдельный домен. Допустим основной сайт расположен на домене main.domain.xyz. Нам требуется все GET запросы содержащие в URL /Reports/Run обрабатывать на другом домене reports.domain.xyz.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 1.3K
Комментарии 0

Мониторинг и наблюдаемость в облачных приложениях ASP.NET Core

Блог компании OTUS ASP *C# *
Перевод

Распределенные приложения сложны и влекут за собой свой собственный караван трудностей с отладкой и исправлением проблем в продакшене. Хотя микросервисная архитектура и дает возможность справляться силами меньшей команды, которая работает автономно и фокусируется на разных областях бизнеса, из-за своего распределенного характера она подкидывает нам новые проблемы. Например, в случае возникновения проблемы во время бизнес-транзакции, запрос необходимо отслеживать от начала и до конца, что может охватывать несколько служб и инфраструктур. Некоторые из трудностей таковы:

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 2.6K
Комментарии 0

ASP.NET Core 6 и серверы аутентификации

Блог компании OTUS .NET *ASP *C# *
Перевод

Мы начали поставлять IdentityServer4 в .NET 3.0 как часть нашего шаблона для поддержки выдачи JWT токенов для SPA и Blazor приложений. Через некоторое время после того, как мы выпустили продукт, команда IdentityServer сделала объявление об изменении лицензии для будущих версий IdentityServer на взаимную публичную лицензию (RPL) — лицензию, в которой код по-прежнему является открытым, но если он используется в коммерческих целях, необходимо покупать платную лицензию. Такой подход распространен в мире опенсорсного кода, где получать стабильный доход может быть достаточно трудно, поскольку ваш проект становится вашей работой на полную ставку.

Двумя вескими причинами, по которым мы решили поставлять IdentityServer, было четко выраженное желание сообщества не конкурировать с уже существующим опенсорсным проектом и глубокое понимание IdentityServer области идентификации. Команда .NET не является экспертом по OAuth и OIDC, поскольку мы сосредоточены на предоставлении строительных блоков для вашего приложения и отправной точке, с которой вы можете добиться успеха. Создание и поддержка сервера аутентификации - это постоянная задача, и у Microsoft уже есть команда и продукт в этой области, Azure Active Directory, который позволяет бесплатно использовать 500 000 объектов. Команда ASP.NET считает, что управляемое облачное решение остается лучшим практическим решением для разработчиков — безопасность управляется, учетные данные не хранятся локально, что сопряжено с риском, а новые фичи, такие как аутентификация без пароля, бесшовно вплетаются в ваш рабочий процесс аутентификации. Однако мы также понимаем, что облачное решение может быть невозможно для некоторых клиентов из-за проблем с нормативными требованиями или суверенитетом данных.

Читать далее
Всего голосов 14: ↑4 и ↓10 -6
Просмотры 4.6K
Комментарии 3

Тест пропускной способности ASP.NET Core 5.0 в Kestrel, IIS, Nginx и Caddy

Блог компании RUVDS.com Программирование *Nginx *ASP *
Перевод
Начиная с версии 2.2. ASP.NET Core поддерживает режим внутрипроцессного размещения приложения (InProcess) в IIS, направленный на улучшение производительности кода. Рик Страл написал статью, в которой подробно исследовал эту тему. С тех пор прошло три года, теперь платформа ASP.NET Core добралась до версии 5.0. Как это повлияло на производительность ASP.NET Core-проектов на различных серверах?


Узнать подробности
Всего голосов 39: ↑36 и ↓3 +33
Просмотры 5.4K
Комментарии 21

Опенсорсные инструменты и пакеты для работы с HTTP API

Блог компании OTUS Программирование *.NET *ASP *C# *
Перевод

Мы продолжаем серию статей о создании HTTP API с помощью .NET 5. В предыдущей статье мы рассмотрели создание обнаруживаемых HTTP API с помощью ASP.NET Core 5 Web API. В этой статье мы рассмотрим пакеты и инструменты для работы с HTTP API с открытым исходным кодом. Ну что ж, приступим!

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 3.8K
Комментарии 2

Сравнение производительности ASP.NET Core-проектов на Linux и Windows в службе приложений Azure. Продолжение

Блог компании RUVDS.com ASP *Серверная оптимизация *Серверное администрирование *Microsoft Azure
Перевод
В моём предыдущем материале речь шла о сравнении производительности ASP.NET Core-приложений, запускаемых в Windows и в среде Linux + Docker, работающих в службе приложений Azure. Эта тема интересна многим — поэтому я решил написать продолжение.



Я снова провёл испытания, используя подход, отличающийся от прежнего лучшей воспроизводимостью, такой, который даёт более надёжные результаты. Теперь я генерирую веб-нагрузку на серверы с помощью облачных инструментов Azure Cloud Agents, применяя Visual Studio и VSTS. И, более того, в то время как ранее я выполнял тесты с использованием HTTP, теперь тестирование проводилось с применением HTTPS.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 4.9K
Комментарии 7

Сравнение производительности ASP.NET Core-проектов на Linux и Windows в службе приложений Azure

Блог компании RUVDS.com ASP *Серверная оптимизация *Серверное администрирование *Microsoft Azure
Перевод
Что быстрее — ASP.NET Core-приложение, развёрнутое в Docker-контейнере на Linux, или такая же программа, но запущенная на Windows-сервере, учитывая то, что всё это работает в службе приложений Azure? Какая из этих конфигураций предлагает более высокий уровень производительности, и о каком «уровне производительности» можно говорить?


Читать дальше →
Всего голосов 48: ↑46 и ↓2 +44
Просмотры 7.5K
Комментарии 8

6 вещей, которые не стоит делать в ASP.NET контроллерах

Блог компании OTUS .NET *ASP *C# *
Из песочницы
Перевод

«Ваши .NET контроллеры должны быть тонкими»

Ох уж эта вечно повторяемая банальность, обросшая тоннами недосказанности.

Почему они должны быть тонкими? Какой в этом плюс? Как сделать их тонкими, если они сейчас не такие? Как сохранить их тонкими?

Мне интересно!
Всего голосов 27: ↑19 и ↓8 +11
Просмотры 8.4K
Комментарии 28

Партнерские отношения, каналы распространения и продажи продукта: Курс «Создание программного продукта и управление его

ASP *
Привет, Хабр! Сегодня в продолжение темы продакт-менеджмента мы поговорим о выстраивании партнерских отношений, поиске каналов и, конечно, о святая святых любого бизнеса — о продажах. В этом посте вы найдете информацию о работе с дистрибьюторами, выстраивании стратегии продаж, примеры win-loss анализа и многое другое. Так что всех заинтересованных прошу под кат!
Читать дальше →
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 500
Комментарии 1

Учим ASP.NET Core новым трюкам на примере Json Rpc 2.0

Разработка веб-сайтов *.NET *ASP *C# *Микросервисы *

Хотите добиться нестандартного поведения от aspnet core? Мне вот понадобилось добавить прозрачную поддержку Json Rpc. Расскажу о том, как я искал решения для всех хотелок, чтобы вышло красиво и удобно. Может быть, вам пригодятся знания о разных точках расширения фреймворка. Или о тонкостях поддержки Json Rpc, даже на другом стеке/языке.


В результате получилась библиотека, которая позволяет работать с Json Rpc, вообще не задумываясь, что он спрятан под капотом. При этом пользователю не нужно уметь ничего нового, только привычный aspnet mvc.

Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 4.6K
Комментарии 6

Обновления ASP.NET Core в .NET 6 Preview 1

Блог компании Microsoft Веб-дизайн *Разработка веб-сайтов *.NET *ASP *

Новая версия .NET, 6 Preview 1, уже доступна и готова к вашей оценке. Это первая предварительная версия .NET 6, следующего крупного обновления платформы .NET. Ожидается, что .NET 6 поступит в полноценный доступ в ноябре этого года и будет выпуском с долгосрочной поддержкой (LTS).

Если вы работаете с Windows и используете Visual Studio, мы рекомендуем установить последнюю предварительную версию Visual Studio 2019 16.9. Если вы используете macOS, мы рекомендуем установить последнюю предварительную версию Visual Studio 2019 для Mac 8.9.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 9.2K
Комментарии 20

Реализуем глобальную обработку исключений в ASP.NET Core приложении

Блог компании OTUS Программирование *.NET *ASP *C# *
Перевод

Сегодня в этой статье мы обсудим концепцию обработки исключений в приложениях ASP.NET Core. Обработка исключений (exception handling) — одна из наиболее важных импортируемых функций или частей любого типа приложений, которой всегда следует уделять внимание и правильно реализовывать. Исключения — это в основном средства ориентированные на обработку рантайм ошибок, которые возникают во время выполнения приложения. Если этот тип ошибок не обрабатывать должным образом, то приложение будет остановлено в результате их появления.

В ASP.NET Core концепция обработки исключений подверглась некоторым изменениям, и теперь она, если можно так сказать, находится в гораздо лучшей форме для внедрения обработки исключений. Для любых API-проектов реализация обработки исключений для каждого действия будет отнимать довольно много времени и дополнительных усилий. Но мы можем реализовать глобальный обработчик исключений (Global Exception handler), который будет перехватывать все типы необработанных исключений. Преимущество реализации глобального обработчика исключений состоит в том, что нам нужно определить его всего лишь в одном месте. Через этот обработчик будет обрабатываться любое исключение, возникающее в нашем приложении, даже если мы объявляем новые методы или контроллеры. Итак, в этой статье мы обсудим, как реализовать глобальную обработку исключений в ASP.NET Core Web API.

Читать далее
Всего голосов 15: ↑7 и ↓8 -1
Просмотры 4.7K
Комментарии 7

Что из себя представляет класс Startup и Program.cs в ASP.NET Core

Блог компании OTUS Программирование *.NET *ASP *C# *
Перевод

Program.cs — это место, с которого начинается приложение. Файл Program.cs в ASP.NET Core работает так же, как файл Program.cs в традиционном консольном приложении .NET Framework. Файл Program.cs является точкой входа в приложение и отвечает за регистрацию и заполнение Startup.cs, IISIntegration и создания хоста с помощью инстанса IWebHostBuilder, метода Main.

Global.asax больше не входит в состав приложения ASP.NET Core. В ASP.NET Core заменой файла Global.asax является файл Startup.cs. 

Файл Startup.cs - это также точка входа, и он будет вызываться после выполнения файла Program.cs на уровне приложения. Он обрабатывает конвейер запросов. Класс Startup запускается в момент запуска приложения.

Читать далее
Всего голосов 14: ↑8 и ↓6 +2
Просмотры 7K
Комментарии 9

Разница между AddTransient, AddScoped и AddSingleton в ASP.NET Core

Блог компании OTUS .NET *ASP *C# *
Перевод

Понимание жизненного цикла внедряемых зависимостей в приложениях ASP.Net Core очень важно. Как мы знаем, внедрение зависимостей (DI - Dependency Injection) - это метод достижения слабой связанности между объектами и их коллабораторами, или зависимостями. Чаще всего классы объявляют свои зависимости через конструктор, в рамках реализации принципа явных зависимостей (Explicit Dependencies Principle). Этот подход известен как «constructor injection».

Чтобы реализовать внедрение зависимостей, нам нужно настроить DI-контейнер с классами, которые участвуют во внедрении зависимостей. DI-контейнер должен решать, возвращать ли новый инстанс сервиса или предоставить уже существующий. Мы выполняем это действие с помощью метода ConfigureServices в классе startup.

Читать далее
Всего голосов 16: ↑6 и ↓10 -4
Просмотры 9.7K
Комментарии 6

Фильтры действий, или Как просто улучшить читаемость кода

Блог компании Аркадия Программирование *.NET *ASP *C# *


Введение


В свободное от работы время я, как и многие другие разработчики, занимаюсь созданием своих приложений, чтобы опробовать самые последние технологии, создать что-то полезное для повседневного использования или просто открыть для себя что-то новое. Одним из таких проектов было веб-приложение, которое обрабатывало данные, введённые пользователем, и планировало выполнение задач, основанных на введённых данных. Так как личные проекты не ограничены во времени, то мне хотелось по возможности избавить проект от всех раздражающих моментов. И одним из таких моментов были повторяющиеся строчки кода в методах контроллера. Я начал искать решение этой проблемы и наткнулся на фильтры. Идея использования фильтров для поддержания чистоты кода показалась мне не только интересной и эффективной, но в то же время простой, поэтому я решил поделиться этой информацией с вами.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 5.8K
Комментарии 3

Простое и удобное журналирование ошибок для сайтов на .NET Core

Open source *.NET *ASP *

Возможно, многим знакома библиотека ELMAH (Error Logging Modules and Handlers), которая позволяет организовать простое журналирование ошибок для любого сайта, созданного с помощью .NET Framework.



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


Но это же opensource проект! Несколько выходных в работе над форком, и вот готова первая версия ELMAH работающая под .NET Core.


С тех пор много воды утекло, и признаюсь, я несколько забросил свой pet-проект. Однако, сейчас выдалась небольшая передышка между проектами, мне удалось внести существенные улучшения и хочу познакомить уважаемых «хабравчан» с новой версией ElmahCore.

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 4.8K
Комментарии 12

Как готовить Cake, используя только Frosting

.NET *ASP *C# *Разработка под Linux *DevOps *

Итак, Cake. Многие слышали, многие хотели попробовать, но откладывали. Конечно, если ты все время работал на TeamCity или на Jenkins и продолжаешь, то зачем переизобретать то, что уже отлично работает? Люби свою жизнь и радуйся. Но вот, допустим, в твоей любимой жизни появился новый проект, новый дедлайн, минимум сторипойнтов до релиза, а опыта с новым сборщиком нет? Мне в этом случае и пригодился Cake.

Я сразу оговорюсь, что эта статья не подтолкнет сразу на использование Cake, как меня, и многих моих коллег не подтолкнули статьи, которые выходили ранее. По большей части потому что на него нет смысла переходить в проекте, который не приносит боль и который работает стабильно. Собираете в своем любимом Jenkins и все идет нормально. Но пусть после этой статьи в голове отложится, что Cake существует. Он в очередной раз никуда не делся, он умеет уже многое и работать с ним все проще. Гораздо проще, чем было раньше.

На что похож Cake? Наверное, любой разработчик, не погрязший в мире .Net, найдет свою аналогию: gradle, gulp, golang make. Make-системы не откровение в 2020 году. Это всегда было удобно, а значит — нужно и правильно. Мир .Net долгое время был обделен такими средствами. Фактически был и есть до сих пор MSBuild, но у него есть очень-очень много недостатков. Основной - кто вообще умеет им пользоваться из рядовых разработчиков? И какова целесообразность его освоения? Какие-то базовые и нужные всем вещи явно проще делать на билд-сервере. Наверное, кому-то он и удобен, но я уверен, что значимая часть коммьюнити предпочтет MSBuild'у освоить новый билд-сервер. Один раз написать конфиг и забыть как страшный сон.

А что если бы существовала make-система с DSL на C#, автокомплитом и прочими фишками типизированного языка? Да, я про Cake. В частности сейчас пойдет разговор про библиотеку Cake.Frosting, являющуюся одним из раннеров make-системы.

Подробней про доступные раннеры можно прочитать тут: Cake Runners

С Frosting все привычно — самодокументирующийся Api с которым почти сразу находишь общий язык. Методы расширения, загружаемые из Nuget — на любой случай жизни, структура проекта, похожая на смесь тестов или бенчмарков и хоста Asp. Все решения угадываются сразу, все как дома.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.7K
Комментарии 12

Как создать простое Rest API на .NET Core

.NET *ASP *C *
Из песочницы

Введение

Всем привет, в данной статье будет рассказано, как с использованием технологии C# ASP.NET Core написать простое Rest Api. Сделать Unit-тесты на слои приложений. Отправлять Json ответы. Также покажу, как выложить данное приложение в Docker.

В данной статье не будет описано, как делать клиентскую часть приложения. Здесь я покажу только серверную.

Читать далее
Всего голосов 15: ↑9 и ↓6 +3
Просмотры 23K
Комментарии 9

Тестируем веб-API ASP.NET Core

Блог компании OTUS .NET *ASP *API *Тестирование веб-сервисов *
Перевод

При проектировании и разработке широкого спектра API с использованием ASP.NET Core 2.1 Web API важно понимать, что это только первый этап в создании продуктивного и стабильного решения. Наличие стабильной среды для вашего решения также очень важно. Ключ к отличному решению заключается не только в правильном построении API, но и в его тщательном тестировании, чтобы исключить возможность негативного опыта у пользователей во время использования вашего API.

Эта статья является продолжением моей предыдущей статьи для InfoQ под названием «Продвинутая архитектура веб-API ASP.NET Core». Не беспокойтесь, вам не нужно вникать в предыдущую статью, чтобы разобраться с тестированием в этой, но она может помочь вам лучше понять, как я спроектировал обсуждаемое здесь решение. На протяжении последних нескольких лет я много времени размышлял о тестировании, создавая API для клиентов. Знание архитектуры веб-API ASP.NET Core 2.1 может помочь и вам расширить ваше понимание.

Солюшн и весь код из примеров в этой статье можно найти в моем GitHub репозитории.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 8K
Комментарии 11

Вклад авторов