#video #aspnet
C# настолько разносторонний язык программирования, что на нём даже можно писать обычные веб приложения, используя платформу .NET Framework. В данном плейлисте с помощью C# и ASP.NET мы научимся создавать сложные веб-сайты и приложения.
https://bit.ly/2DMJoY3
C# настолько разносторонний язык программирования, что на нём даже можно писать обычные веб приложения, используя платформу .NET Framework. В данном плейлисте с помощью C# и ASP.NET мы научимся создавать сложные веб-сайты и приложения.
https://bit.ly/2DMJoY3
⚡2👍1
#docker #aspnet
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://bit.ly/2QkvB1C
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://bit.ly/2QkvB1C
Medium
Introducing ASP.NET Core with Docker
Hello .Net world!
#docker #aspnet
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://prglb.ru/48kuw
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://prglb.ru/48kuw
Medium
Introducing ASP.NET Core with Docker
Hello .Net world!
#video #aspnet
C# настолько разносторонний язык программирования, что на нём даже можно писать обычные веб приложения, используя платформу .NET Framework. В данном плейлисте с помощью C# и ASP.NET мы научимся создавать сложные веб-сайты и приложения.
https://bit.ly/2DMJoY3
C# настолько разносторонний язык программирования, что на нём даже можно писать обычные веб приложения, используя платформу .NET Framework. В данном плейлисте с помощью C# и ASP.NET мы научимся создавать сложные веб-сайты и приложения.
https://bit.ly/2DMJoY3
#docker #aspnet
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://prglb.ru/48kuw
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://prglb.ru/48kuw
Medium
Introducing ASP.NET Core with Docker
Hello .Net world!
#video #aspnet
C# настолько разносторонний язык программирования, что на нём даже можно писать обычные веб приложения, используя платформу .NET Framework. В данном плейлисте с помощью C# и ASP.NET мы научимся создавать сложные веб-сайты и приложения.
https://prglb.ru/28af5
C# настолько разносторонний язык программирования, что на нём даже можно писать обычные веб приложения, используя платформу .NET Framework. В данном плейлисте с помощью C# и ASP.NET мы научимся создавать сложные веб-сайты и приложения.
https://prglb.ru/28af5
#advanced #aspnet
Работаем с базой данных на ASP NET Core 2.1 MVC, используя ADO NET.
https://prglb.ru/1xlih
Работаем с базой данных на ASP NET Core 2.1 MVC, используя ADO NET.
https://prglb.ru/1xlih
#docker #aspnet
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://bit.ly/2QkvB1C
Если вы хотите удобно разрабатывать, то вам не обойтись без контейнерной системы Docker. Из данной статьи вы узнаете, как развёртывать приложения на ASP.NET внутри контейнера.
https://bit.ly/2QkvB1C
Medium
Introducing ASP.NET Core with Docker
Hello .Net world!
#вакансия #it #Csharp #aspnet #docker #kubernetes #unittests #git #cicd #on-premise #cloud
🔎 ABBYY ищет Senior Software Developer (C#).
Офис/удаленка, Москва, полный рабочий день
💰Зарплата: от 200 000 до 300 000 рублей в месяц.
Присылай резюме нашему HR – Маше в tg: @MashaGruntovich или на почту mariia.gruntovich@abbyy.com
🎸Стек технологий:
• docker + k8s (AKS в Azure);
• MSSQL / PostgreSQL / Redis / Azure BlobStorage;
• VCS - Git, CI – Azure DevOps Server, постановка задач в Jira;
• ELK + Grafana для логов и телеметрии.
Что делает команда:
Мы создаем backend для продукта по обработке документов с микросервисной архитектурой, который работает on-prem и в облаке. Сервис горизонтально масштабируется и работает 24/7. Стартовая конфигурация кластера - сотни машин в Azure, которые обрабатывают документы.
• Пишем сервисы на NET Core 3.1, покрываем их интеграционными и unit-тестами.
• Заботимся о масштабируемости и отказоустойчивости. Обрабатываем негативные ситуации.
💪 Мы ожидаем:
• Высшее техническое образование;
• Опыт веб-разработки не менее 3 лет;
• Отличное знание C#, NET Core;
• Опыт работы с ORM (у нас linq2db);
• Умение спроектировать подсистему продукта и аргументировать свое решение;
• Умение писать код, который легко читать и поддерживать;
• UnitTests, Git, CI/СD.
Хорошо, если умеешь, если нет - научим:
• Работать с PostgreSQL/MSSQL, Redis;
• Разрабатывать и масштабировать высоконагруженные веб-сервисы;
• Формировать архитектуру облачных решений;
• Работать с Docker и Kubernetes.
🍰 Мы предлагаем:
• ДМС со стоматологией, врач в офисе, полис выезжающих за рубеж;
• Обучение: сертификации, английский язык, Linkedin Learning;
• Своя парковка на территории технопарка;
• Гибкое начало дня;
• Премии по результатам работы;
• Активности: беговой клуб, спортивные команды, йога;
• Тимбилдинги и просто уютные командные посиделки.
🔎 ABBYY ищет Senior Software Developer (C#).
Офис/удаленка, Москва, полный рабочий день
💰Зарплата: от 200 000 до 300 000 рублей в месяц.
Присылай резюме нашему HR – Маше в tg: @MashaGruntovich или на почту mariia.gruntovich@abbyy.com
🎸Стек технологий:
• docker + k8s (AKS в Azure);
• MSSQL / PostgreSQL / Redis / Azure BlobStorage;
• VCS - Git, CI – Azure DevOps Server, постановка задач в Jira;
• ELK + Grafana для логов и телеметрии.
Что делает команда:
Мы создаем backend для продукта по обработке документов с микросервисной архитектурой, который работает on-prem и в облаке. Сервис горизонтально масштабируется и работает 24/7. Стартовая конфигурация кластера - сотни машин в Azure, которые обрабатывают документы.
• Пишем сервисы на NET Core 3.1, покрываем их интеграционными и unit-тестами.
• Заботимся о масштабируемости и отказоустойчивости. Обрабатываем негативные ситуации.
💪 Мы ожидаем:
• Высшее техническое образование;
• Опыт веб-разработки не менее 3 лет;
• Отличное знание C#, NET Core;
• Опыт работы с ORM (у нас linq2db);
• Умение спроектировать подсистему продукта и аргументировать свое решение;
• Умение писать код, который легко читать и поддерживать;
• UnitTests, Git, CI/СD.
Хорошо, если умеешь, если нет - научим:
• Работать с PostgreSQL/MSSQL, Redis;
• Разрабатывать и масштабировать высоконагруженные веб-сервисы;
• Формировать архитектуру облачных решений;
• Работать с Docker и Kubernetes.
🍰 Мы предлагаем:
• ДМС со стоматологией, врач в офисе, полис выезжающих за рубеж;
• Обучение: сертификации, английский язык, Linkedin Learning;
• Своя парковка на территории технопарка;
• Гибкое начало дня;
• Премии по результатам работы;
• Активности: беговой клуб, спортивные команды, йога;
• Тимбилдинги и просто уютные командные посиделки.
👍6
💡Фильтры в ASP.NET Core
Фильтры используются для выполнения действий до или после выполнения метода действия, что позволяет добавлять сквозные задачи, такие как логирование, авторизация, обработка исключений и многое другое.
В пайплайне обработки запросов есть несколько фильтров, включая:
1️⃣ Фильтры авторизации
2️⃣ Фильтры ресурсов
3️⃣ Фильтры исключений
4️⃣ Фильтры действий
5️⃣ Фильтры результатов
Подробности — в карточах. Про фильтры эндпоинтов в ASP.NET Core 7 читайте в отдельном посте.
#aspnet #tip by Nabi Karampoor
Фильтры используются для выполнения действий до или после выполнения метода действия, что позволяет добавлять сквозные задачи, такие как логирование, авторизация, обработка исключений и многое другое.
В пайплайне обработки запросов есть несколько фильтров, включая:
1️⃣ Фильтры авторизации
2️⃣ Фильтры ресурсов
3️⃣ Фильтры исключений
4️⃣ Фильтры действий
5️⃣ Фильтры результатов
Подробности — в карточах. Про фильтры эндпоинтов в ASP.NET Core 7 читайте в отдельном посте.
#aspnet #tip by Nabi Karampoor
👍26❤2💯1
💡 В ASP.NET Core 8 завезли middleware для поддержки тайм-аутов запросов
Новая возможность позволяет устанавливать тайм-ауты запросов на отдельных эндпоинтах, контроллерах или динамически для каждого запроса.
#aspnet #tip by Nabi Karampoor
Новая возможность позволяет устанавливать тайм-ауты запросов на отдельных эндпоинтах, контроллерах или динамически для каждого запроса.
#aspnet #tip by Nabi Karampoor
👍51🔥20❤1
💡 Не храните
Таким образом, вы можете гарантировать, что каждый поток получит свой собственный экземпляр объекта
📌 Это считается лучшей практикой по нескольким причинам:
✔️ Безопасность потоков: получение
✔️ Управление памятью:
✔️ Тестируемость: получение
#dotnet #aspnet #tip by Nabi Karampoor
HttpContext
в поле, вместо этого извлекайте его из IHttpContextAccessor
всякий раз, когда это необходимо, и используйте его только в области действия метода или блока кода, который его требует.Таким образом, вы можете гарантировать, что каждый поток получит свой собственный экземпляр объекта
HttpContext
и что он не будет общим для потоков.📌 Это считается лучшей практикой по нескольким причинам:
✔️ Безопасность потоков: получение
HttpContext
из IHttpContextAccessor
при необходимости гарантирует, что каждый поток имеет свой собственный экземпляр.✔️ Управление памятью:
HttpContext
имеет большое количество связанных с ним объектов и ресурсов, поэтому получение HttpContext
только при необходимости позволяет избежать ненужного использования памяти.✔️ Тестируемость: получение
HttpContext
с помощью IHttpContextAccessor
упрощает написание модульных тестов. #dotnet #aspnet #tip by Nabi Karampoor
👍56🤔7🥱4❤1
💡 Организуйте ваш файл Program.cs в проектах ASP.NET Core
Вы можете установить пакет👇
1️⃣ Реализуйте интерфейс IServiceCo
2️⃣ Пометьте сборки с помощью интерфейса
3️⃣ Используйте метод расширения BuildIt<T>
#dotnet #aspnet #tip by Nabi Karampoor
Вы можете установить пакет
ServiceCollectionInstaller
, который служит точкой входа для вашего приложения ASP.NET Core. Это альтернатива использованию известных вам Extension Methods
$ dotnet add package ServiceCollectionInstaller --version 1.0.2
1️⃣ Реализуйте интерфейс IServiceCo
llectionInstaller для каждо
й части конфигураций вашего сервиса, которые вам нужны2️⃣ Пометьте сборки с помощью интерфейса
3️⃣ Используйте метод расширения BuildIt<T>
в WebAppl
icationBuilder
4️⃣ Запус
тите приложение, установщик автоматически найдет все классы-установщики и настроит ваши сервисы#dotnet #aspnet #tip by Nabi Karampoor
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔22❤🔥6👍5🥱2
.gitignore
в .NETВо время разработки у вас может накопиться множество файлов, которые не предназначены для включения в систему контроля версий, включая:
🔹Скомпилированные бинарные файлы (*.dll, *.exe)
🔹Промежуточные выходные данные сборки (например, каталоги
obj/
и bin/
)🔹Каталоги NuGet-пакетов (например,
/packages/
)🔹Файлы проектов Visual Studio (например,
*.suo
, *.user
)✅ Исправить это можно одной командой:
dotnet new gitignore
#dotnet #aspnet #tip by Nabi Karampoor
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥8❤🔥1
Стандартный способ реализации обработки исключений в ASP.NET Core — использование middleware. Middleware позволяет добавлять логику до или после выполнения HTTP-запросов. Для реализации обработки исключений достаточно добавить оператор
try-catch
в middleware и возвращать ошибку HTTP-ответа. ASP.NET Core 8 добавляет новую абстракцию
IExceptionHandler
для управления исключениями. Этот интерфейс имеет только один метод TryHandleAsync
, который пытается обработать указанное исключение в рамках ASP.NET Core pipeline. Если исключение можно обработать, метод должен возвращать true
, если нет — false
. Это позволяет реализовывать кастомную логику обработки исключений для различных сценариев.IExceptionHandler
в пайплайн запросов ASP.NET Core необходимо сделать две вещи:1. Зарегистрировать сервис
IExceptionHandler
с помощью DI.2. Зарегистрировать
ExceptionHandlerMiddleware
в пайплайне запросов.builder.Services.AddExceptionHandler<GlobalExceptionHandler>();
builder.Services.AddProblemDetails();
app.UseExceptionHandler();
Можно добавить несколько реализаций
IExceptionHandler
, и они будут вызываться в порядке регистрации. Это может быть полезно, например, при использовании исключений для управления потоком.#dotnet #aspnet #tip by Milan Jovanovic
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🥰3👏2🤔2❤1
Если у вас есть проблемы с производительностью LINQ-запросов, обратите внимание на новую фичу EF Core 5.0 под названием Query Splitting.
📌 Вызываем метод
AsSplitQuery
:dbContext
.Orders
.Include(order => order.LineItems)
.ThenInclude(lineItem => lineItem.Dimensions)
.AsSplitQuery()
.First(order => order.Id == orderId);
В этом случае EF Core сгенерирует следующие SQL-запросы:
SELECT o.*
FROM Orders o
WHERE o.Id = @orderId;
SELECT li.*
FROM LineItems li
JOIN Orders o ON li.OrderId = o.Id
WHERE o.Id = @orderId;
SELECT d.*
FROM LineItemDimensions d
JOIN LineItems li ON d.LineItemId = li.Id
JOIN Orders o ON li.OrderId = o.Id
WHERE o.Id = @orderId;
Для каждого оператора Include у нас есть отдельный SQL-запрос. Преимущество в том, что мы не дублируем данные при извлечении из БД.
📌 Включаем разделение запросов для всех запросов:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
"CONNECTION_STRING",
o => o.UseQuerySplittingBehavior(
QuerySplittingBehavior.SplitQuery)));
Все создаваемые EF Core запросы будут разделенными. Чтобы вернуться к одному запросу, нужно вызвать метод
AsSingleQuery
:dbContext
.Orders
.Include(o => o.LineItems)
.ThenInclude(li => li.Dimensions)
.AsSingleQuery()
.First(o => o.Id == orderId);
🔸Не существует гарантии согласованности для нескольких SQL-запросов. Вы можете столкнуться с проблемой, если одновременно с запросом происходит параллельное обновление.
🔸Чтобы смягчить это, вы можете обернуть запросы внутри транзакции, но это приведет только к проблемам с производительностью в других местах.
🔸Каждый запрос требует сетевого обращения. Если задержки при обращении к БД высоки, это может снизить производительность.
#dotnet #aspnet #tip by Milan Jovanovic
Please open Telegram to view this post
VIEW IN TELEGRAM
Milan Jovanović
How To Improve Performance With EF Core Query Splitting
I recently ran into an issue with Entity Framework Core. The query I was running was constantly timing out. So I used a new EF Core feature called Query Splitting to significantly improve my performance.
👍26🤔3❤1
💡 Вы используете Health Checks в ваших веб-приложениях? Если нет, пора воспользоваться этой мощной функцией 💪
🔧 Функциональность:
Health Checks предоставляют простой и стандартный способ мониторинга работоспособности вашего приложения и его зависимостей, таких как базы данных, кэш и внешние сервисы. Они позволяют легко предоставлять эндпоинты для проверки работоспособности, которые могут быть использованы инструментами мониторинга, упрощая обнаружение и устранение проблем.
🚀 Преимущества:
1️⃣ Повышение надежности приложения
2️⃣ Быстрое обнаружение и устранение проблем
3️⃣ Лучший пользовательский опыт за счет сокращения времени простоя
4️⃣ Упрощение мониторинга и обслуживания
📚 Лучшие практики:
✅ Реализуйте кастомные проверки работоспособности для удовлетворения специфических потребностей вашего приложения
✅ Используйте теги для категоризации проверок работоспособности и упрощения мониторинга
✅ Установите соответствующие коды ответов и типы содержимого для эндпоинтов проверки работоспособности
✅ Обеспечьте надлежащую аутентификацию и авторизацию для доступа к эндпоинтам проверки работоспособности
#dotnet #csharp #aspnet #tip by Adem Sahin
🔧 Функциональность:
Health Checks предоставляют простой и стандартный способ мониторинга работоспособности вашего приложения и его зависимостей, таких как базы данных, кэш и внешние сервисы. Они позволяют легко предоставлять эндпоинты для проверки работоспособности, которые могут быть использованы инструментами мониторинга, упрощая обнаружение и устранение проблем.
🚀 Преимущества:
1️⃣ Повышение надежности приложения
2️⃣ Быстрое обнаружение и устранение проблем
3️⃣ Лучший пользовательский опыт за счет сокращения времени простоя
4️⃣ Упрощение мониторинга и обслуживания
📚 Лучшие практики:
✅ Реализуйте кастомные проверки работоспособности для удовлетворения специфических потребностей вашего приложения
✅ Используйте теги для категоризации проверок работоспособности и упрощения мониторинга
✅ Установите соответствующие коды ответов и типы содержимого для эндпоинтов проверки работоспособности
✅ Обеспечьте надлежащую аутентификацию и авторизацию для доступа к эндпоинтам проверки работоспособности
#dotnet #csharp #aspnet #tip by Adem Sahin
👍21👏1