Обновить
86.93
Рейтинг

.NET *

Хаб со знаниями про NET Framework

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

Версионирование API в ASP.Net Core

.NET *ASP *API *C# *
Tutorial

Поддерживая существующие уже какое-то время Web API проекты, мы нередко сталкиваемся с проблемой устаревания логики методов контроллеров и необходимостью ее изменения в соответствии с новыми требованиями. Но, как правило, на момент возникновения такой необходимости, уже существует определенное число сервисов, использующих текущую реализацию наших API, и не нуждающихся в ее модернизации. Более того, такие сервисы могут легко «сломаться» при изменении используемых ими API.

Для решения такого рода проблем в ASP.Net Core существует механизм версионирования API – когда контроллеры и их методы могут существовать одновременно в разных версиях. В таком случае, те сервисы, которым достаточно существующего состояния используемых ими API, могут продолжать использовать определенные версии этих API, а для сервисов, которые требуют модернизации логики контроллеров, мы можем создавать новые параллельные версии, и все эти версии могут работать в нашем проекте одновременно.

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

Новости

Игра с null: проверка MonoGame статическим анализатором PVS-Studio

Блог компании PVS-Studio .NET *Разработка игр *C# *

Анализатор PVS-Studio уже не раз был использован для анализа кода библиотек, фреймворков и движков для разработки игр. Пришло время добавить к их списку MonoGame – низкоуровневый gamedev-фреймворк, написанный на языке C#.

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

Конфигурация сущностей в EF Core

.NET *C# *

Почти каждый (ну или почти каждый) разработчик слышал про такую технологию программирования, как ORM (англ. Oblect-Relational Mapping) или, если по-русски - объектно-реляционное отображение. Данная технология связывает базы данных с концепциями объектно-ориентированного программирования и, благодаря ей, многие разработчики уже стали забывать о работе с базами данных в чистом виде, например, создавая структуру данных непосредственно в СУБД.
Платформа .NET имеет кросплатформенную реализацию технологии ORM - Entity Framework Core (далее EF Core). С помощью данной технологии мы в принципе можем абстрагироваться от особенностей работы конкретной СУБД и в большинстве случаев, не подвергая модификации код нашего продукта перейти на любую другую СУБД.
Существует несколько вариантов конфигурирования сущностей, о которых мы и будем говорить в данной статье.

Дальнейшее рассмотрение способов конфигурирования подразумевает, что Вы уже знакомы с EF Core и можете поднять самый простой проект работающий с СУБД, использующий данную технологию.
Итак, давайте рассмотрим способы, как можно сконфигурировать сущности и отношения между ними.

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

AutoMapper: добавление и использование в проекте ASP.Net Core

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

При работе с данными (и не только) нам часто приходится сталкиваться с необходимостью копирования (маппинга) значений свойств одного объекта в новый объект другого типа.

Например предположим, что запрос к базе данных возвращает нам запись в виде объекта, представленного классом Person:

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

Минуточку внимания

Миграция проекта nopCommerce на .NET 6

.NET *Разработка под e-commerce *

Этот пост является продолжением цикла статей про обновление проекта nopCommerce - бесплатной CMS с открытым исходным кодом для создания интернет-магазинов. В этой статье мы коснемся вопросов почему мы неуклонно стараемся обновлять платформу нашего приложения. Расскажем чего мы добились в плане производительности с .NET 6 и попробуем дать практическую оценку того результата, который мы получили.

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

Индексы в C# 8

.NET *Visual Studio *C# *

Всем привет. Начиная с этой статьи начинаю цикл статей про нововведения в C# 8 версии.

Сейчас мы рассмотрим работу с индексами (Indexes). Забегая вперед, скажу, что теперь мы, C# разработчики, можем работать с индексами как в Python.

Пристегнитесь. Начинаем😎

Погнали
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 5.4K
Комментарии 30

Приключение на 20 минут: о чём надо помнить, когда затеваешь рефакторинг

Блог компании Dodo Engineering Разработка веб-сайтов *.NET *Проектирование и рефакторинг *

История об одном баге, который превратил переход с .NET Core 3.1 на .NET 6 в «приключение на 20 минут», самописной библиотеке Dodo.Primitives.Uuid, которая помогла этот баг починить, и размышления о бренности бытия важности своевременного рефакторинга и его приёмах.

Читать далее
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 7.9K
Комментарии 20

Как получил оффер от Microsoft

.NET *Алгоритмы *ООП *Распределённые системы *IT-компании

О чем эта статья

Это продолжение моих похождений по ФААНГ. Предыдущая статья была о моем опыте собеседования в Амазоне.

Здесь я тоже поделюсь всем процессом: как я попал на собеседование, все этапы, вопросы на интервью, как я готовился, некоторые детали офера, и общее впечатление от интервью. Так же будут всякие сравнения опыта собеседования в Майкрософте и в Амазоне.

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

Читать далее
Всего голосов 82: ↑74 и ↓8 +66
Просмотры 36K
Комментарии 113

Как LINQ, только быстрый и без аллокаций

.NET *C# *

Кому не нравится LINQ в C#? Встроенная и уже достаточно старая фича языка C# и рантайма .NET.

Но можем ли мы сделать более эффективную версию LINQ, чтобы и быстрее, и не кушало памяти? Давайте попробуем!

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

Тайна числа 1,5

.NET *Серверное администрирование *Компьютерное железо
«Пятничная угадайка», удивляющая своей иррациональностью и величиной цифр.

Если увеличить число процессорных ядер в 1,5 раза, не трогая ничего остального — как изменится время сборки проекта?
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры 14K
Комментарии 54

Базовые принципы Availability

PostgreSQL *Программирование *.NET *Nginx *Микросервисы *
Перевод

О чем статья

В этой статье речь пойдет о БАЗОВЫХ подходах и принципах к такому quality attribute (QA) как Availability. Никаких сложных случаев, ничего слишком сложного, только теория с двумя примерами, скипайте, если искали что-то эдакое.

Вся информация основана на парах книг, статей, и моем опыте. В конце статьи я покажу, какие именно. Также, эта статья - по суть перевод моей же статьи, только написанной на английском.

Что такое Availability?

Перед тем, как рассматривать паттерны и техники для обеспечения availability мы должны определить сам термин.

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

Почему мы теряем интерес к играм?

.NET *
Из песочницы
Перевод

На минутку мысленно вернись в те счастливые мгновения своего детства, когда игры приносили столько эмоций, впечатлений и неподдельного чистого восторга, что перед запуском каждой новой игрушки всё внутри замирало от предвкушения, остальные события окружающего мира отходили на второй план, а происходящее на экране завораживало с такой силой, будто смотришь вживую на принимающую душ Марго Робби, а не пялишь в светящиеся разноцветные пиксели монитора. 

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

Diablo, Warcraft, StarCraft, третьи Герои, первые два Фаллаута, первый/второй Half-Life, Готика, Морровинд, Сталкёр и тд и тп - все эти названия были не просто словами. Они были пропусками в иные, безумно интересные и притягательные миры, исследовать которые, казалось, можно было вечно. 

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

Инструменты тестирования для .NET и кроссплатформенных приложений

Блог компании Microsoft Программирование *.NET *Visual Studio *C# *

В повседневные инструменты тестирования добавлено несколько новых полезных функций, которые, я надеюсь, улучшат ваш внутренний цикл тестирования. Чтобы узнать больше об этих новых функциях, смотрите подробности в видеоролике «Советы и рекомендации по Visual Studio» в разделе «Тестирование». Ну или можете продолжить читать эту статью!

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

PascalABC.NET, повторная проверка

Блог компании PVS-Studio .NET *Visual Studio *C# *Разработка под Windows *

Приветствуем всех любителей чистого кода. Сегодня у нас на разборе проект PascalABC.NET. Ранее мы уже искали ошибки в этом проекте при помощи сразу двух инструментов статического анализа, а именно плагинов для SonarQube: SonarC# и PVS-Studio. Этому была посвящена статья в далёком 2017 году. В этот раз мы решили ограничиться только C# анализатором PVS-Studio последней актуальной версии и посмотреть, какие новые ошибки можно найти в PascalABC.NET сегодня. Тем более что за это время наш анализатор стал гораздо более продвинутым и обзавелся новыми возможностями поиска ошибок и потенциальных уязвимостей в коде.


0912_PascalABCNET_2_ru/image1.png

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

Представляем Q# Formatter

Блог компании Microsoft .NET *Visual Studio *C# *Квантовые технологии

За последние несколько лет, по мере развития Q#, его синтаксис развивался вместе с ним. Было внесено несколько изменений в синтаксис, которые привели к устареванию способов выполнения стандартных действий в Q#, таких как удаление круглых скобок вокруг условий цикла for. Чтобы помочь нашим пользователям обновлять свой код с помощью новейшего синтаксиса, мы добавили в QDK несколько новых функций.

Когда вы используете расширения Q# для Visual Studio или Visual Studio Code для редактирования кода Q# с устаревшим синтаксисом, рассматриваемый код будет подчеркнут зелеными волнистыми линиями, и будут доступны предложения для обновления синтаксиса. В прошлом у нас уже были предложения по обновлению каждого устаревшего фрагмента кода. В выпуске 0.21 мы добавили действие кода для обновления всего устаревшего синтаксиса в файле:

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

Исследуем .NET 6. Часть 6. Поддержка интеграционных тестов в WebApplicationFactory

.NET *ASP *C# *
Перевод

В предыдущей статье я описал обходной путь, который был добавлен в .NET 6, чтобы инструменты EF Core, которые ранее полагались на существование определённых методов, таких как CreateHostBuilder, продолжали работать с новыми минимальными API хостинга.

В этой статье я рассмотрю связанное изменение, обеспечивающее работу интеграционного тестирования с WebApplicationFactory в .NET 6. WebApplicationFactory использовала тот же класс HostFactoryResolver, что и инструменты EF Core, но потребовалось ещё несколько изменений, которые я рассмотрю в этой статье.

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

Джентльменский набор для создания WPF-приложений

.NET *C# *Разработка под Windows *

Данная статья представляет собой набор рецептов по созданию WPF приложений. Поэтому скорее всего она будет интересна начинающим разработчикам. В материале описаны основные моменты использования таких пакетов как ReactiveUI, Material Design in XAML Toolkit, LiveChart2. Примеры кода приведены из реального приложения.

Далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 10K
Комментарии 30

Реализация алгоритма Краскала на С#

Программирование *.NET *Алгоритмы *C# *Математика *
Из песочницы

В данной статье для реализации алгоритма будут рассмотрены:

1. Система хранения графа на основе List<>

2. Сортировка рёбер графа по весу

3. Система непересекающихся множеств

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

План действий

1. Сортируем имеющиеся рёбра по весу.

2. Создаём новое множество и добавляем в него первое ребро.

3. Затем пытаемся добавить каждое новое ребро в имеющееся множество, если возникает цикл - пропускаем.

4. Итоговое множество рёбер и есть искомое минимальное остовное дерево.

По сути, это и есть формулировка алгоритма Краскала. Звучит совсем просто.

Самый весёлый пункт из имеющихся - третий. Потому что проверка на появление циклов на каждом шаге будет не сильно простым занятием. Его мы модифицируем при помощи системы непересекающихся множеств.

Но для начала давайте рассмотрим систему хранения графа в программе.

Читать полностью
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 5.4K
Комментарии 6

Представляем .NET MAUI Preview 12

Блог компании Microsoft .NET *Интерфейсы *Visual Studio *C# *

Сегодня мы выпускаем 12 превью-версию .NET Multi-platform App UI со многими улучшениями качества и некоторыми новыми возможностями. По мере того, как мы приближаемся к выпуску нашей первой стабильной версии, баланс работы начинает смещаться в сторону улучшения качества и стабильности, хотя есть еще и несколько интересных нововведений, на которые стоит обратить внимание, в том числе:

Новая документация по значкам приложений, жизненному циклу приложений, кистям, элементам управления и Single Project; Обработчик FlyoutView реализован на Android; Добавлены обработчики совместимости для RelativeLayout и AbsoluteLayout; Добавлено свойство Z Index; Унификация .NET 6 — типы iOS; Расширенная панель инструментов Windows — без оболочки.

В этом выпуске также представлено крутое усовершенствование Shell. Давайте более подробно рассмотрим Shell в Preview 12.

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

Подводные камни бенчмаркинга в .NET: фрагмент книги Андрея Акиньшина

Блог компании JUG Ru Group Высокая производительность *.NET *C# *

Андрей Акиньшин @DreamWalker хорошо известен в .NET-сообществе: он мейнтейнер BenchmarkDotNet и perfolizer, член программного комитета нашей конференции DotNext, автор книги Pro .NET Benchmarking о том, как правильно бенчмаркать.

А теперь эта книга есть и на русском языке — ее перевод подготовило издательство «Питер». Сделаем важную оговорку: переводил не сам Андрей, так что русскоязычная терминология может отличаться от той, которую выбрал бы он, и «каноническим авторским вариантом» по-прежнему остаётся англоязычный. Но наверняка для многих важна сама возможность прочитать это на родном языке, поэтому с любезного разрешения Андрея и издательства мы публикуем на Хабре фрагмент перевода.

В книге много сказано о бенчмаркинге в целом, поэтому она может быть полезна для самых разных разработчиков, но мы приведём фрагмент о том, что специфично для .NET.

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

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

Работа

.NET разработчик
126 вакансий