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

.NET *

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

Сначала показывать
Порог рейтинга

Есть ли жизнь без тестов?

Разработка веб-сайтов *Программирование *Совершенный код *.NET *C# *
Это история про то, как нам удалось написать довольно сложную business-critical систему, и добиться, чтобы она была стабильной даже без юнит-тестов (WAT?!).
Читать дальше →
Всего голосов 36: ↑32 и ↓4 +28
Просмотры 7.9K
Комментарии 54

Новости

Упрощение сложной фильтрации в LINQ с помощью шаблона «Спецификация» и библиотеки XSpecification

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

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

Исходники традиционно на https://github.com/xumix/XSpecification, пакеты на Nuget.

Теперь к деталям: данная либа будет полезна, в первую очередь, для тех, кого есть большое количество бизнес-логики при фильтрации или множество параметров фильтрации. Как пример бэкенд для грида типа такого https://reactdatagrid.io/demo или фильтра типа такого https://i.imgur.com/Jw5UAFz.png.

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

22 новых фичи C# — каким будет C# 11+

Программирование *.NET *C# *

1. Полуавтоматические свойства и ключевое словоfield.
2. Модификатор уровня доступа file.
3. Первичные конструкторы для классов и структур.
4. Паттерн-матчинг для списков.
5. Атрибуты для Main в программах с top level statement.
6. Сырые строки без экранирования внутри строки для удобства работы с json, xml, html и регулярными выражениями.
7. Строковые литералы для UTF-8.
8. Паттерн-матчинг для Span<char>.
9. Перенос строк в выражениях интерполяции.
10. Возможность перегрузки операторов с проверкой на переполнение
11. Оператор побитового сдвига вправо без знака >>>.
12. Доступ к параметрам методов nameof.
13.nameof для членов экземпляров.
14. Ключевое слово required для обязательно инициализируемых свойств и полей.
15. Автоматическая инициализация свойств структур значением по-умолчанию.
16. generic-атрибуты.
17. локальные переменные и параметры только для чтения.
18. Кэширование делегатов при использовании method group для статических методов.
19. Поля с значением хранящимся по ссылке.
20.params Span<T>/params ReadOnlySpan<T>/params IEnumerable<T> в объявлении методов чтобы избежать лишних неявных созданий массива в куче и копирований коллекций.
21. Удаление оператора проверки параметров на null !!.
22. Предупреждения для имен типов полностью в нижнем регистре.

Внутри — разбор каждой фичи и сценарии применения.

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

Инверсия зависимости и System.Data.Common.DbDataReader

.NET *ASP *C# *

Если мы не используем EF (такое случается), то нам нужно как-то устроить загрузку объектов из базы данных. Вариант: берём DataSet, делаем ему SomeDataAdapter.fill(...), а из него берём данные для строительства нужных объектов. При этом класс, который умеет заполнять DataSet, не знает, для объектов какого класса он это делает. Абстракция, низкая связанность, всё хорошо.

Однако, мы ждём, пока заполнится DataSet, только после этого можем начать

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

GraphQL и почти все-все-все. Часть 1:)

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


Введение:


Все чаще слышу об использовании GraphQL, но так как последнее время все рабочее время уходило на Xamarin + GRPC + ASP.NET Core, технология казалась для меня загадочно манящей и очень не известной, потому решил опробовать ее на нескольких языках, чтобы увидеть какие плюсы и минусы в разных подходах. Начать решил с родного и любимого C# + Hot Chocolate, но планирую так же попробовать Typescript + Prisma, Kotlin + graphql-kotlin, и возможно что-то другое.
Поехали
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 3.4K
Комментарии 1

Зачем нужен статический анализ? Разбираем на примере ошибки из Akka.NET

Блог компании PVS-Studio .NET *C# *

0940_AkkaNET_Error_ru/image1.png


"Статический анализ нужно использовать регулярно, а не только перед релизами… Чем раньше найдена ошибка, тем дешевле её исправление..." – вы уже слышали это 100 раз. Сегодня ещё раз ответим на вопрос "зачем?". Поможет нам ошибка из проекта Akka.NET.

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

История одного НЕ-ОТВЕТА на stackoverflow

.NET *C# *

Недавно наткнулся на stackoverflow на такой вопрос Need to check if code contains certain identifiers и в ходе размышлений преобразился из «маленького помощника Санты» в «адвоката дьявола». Что, конечно, гораздо веселее. Но мораль не в этом.

Читать далее
Всего голосов 46: ↑45 и ↓1 +44
Просмотры 20K
Комментарии 22

Сказка про Guid.NewGuid()

Блог компании Контур Высокая производительность *Программирование *.NET *Алгоритмы *

C#. Guid.NewGuid(). Linux. Windows. Randomness or Uniqueness. RNG and PRNG. Performance. Benchmarking.

Цель нашей сегодняшней сказки — развлечься как следует. Детективная история в поисках потерянного перфоманса с красивым финалом и эффектным результатом непосредственно связана с набором слов из предыдущего абзаца.

Читать далее
Всего голосов 69: ↑67 и ↓2 +65
Просмотры 10K
Комментарии 33

Делаем клоны сервисов вместе

.NET *Управление проектами *Управление сообществом *Развитие стартапа

Как вы все знаете, многие ИТ-компании покидают Россию. И как вы, возможно, догадываетесь, многие разработчики в России в спешном порядке разрабатывают аналоги закрывающихся (и даже не только закрывающихся) сервисов. 

В статье я порассуждаю о сервисе, который призван сделать это более эффективно.

Читать далее
Всего голосов 45: ↑4 и ↓41 -37
Просмотры 8.3K
Комментарии 34

Как подружить MATLAB DLL и C#

.NET *C# *Matlab *
Tutorial

Когда есть желание пользоваться m-файлами на стороне, например, впихнуть хорошо работающие методы аппроксимации из Curve Fitting Toolbox в какую нибудь стороннюю свою разработку, можно скомпилировать dll-библиотеку и использовать ее по своему разумению.

Данная статья - кратко по шагам действия.

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

Roslyn-анализатор для преобразования кода из Regex в новый Regex Source Generator

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

Source generators (генераторы исходного кода) — это часть платформы Roslyn, которая появилась в .NET 5. Они позволяют анализировать существующий код и создавать новые файлы с исходным кодом, которые в свою очередь могут добавляться в процесс компиляции.

В .NET 7 появилась новая функиональность для регулярных выражений, которая позволяет генерировать исходный код для проверки регулярного выражения во время компиляции с помощью специального source generator. Генерация исходного кода во время компиляции, а не во время выполнения, имеет несколько преимуществ:

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

В .NET 7 Preview 3 доступны обновления ASP.NET Core

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

Среди улучшений ASP.NET Core поддержка фильтров обработчиков маршрутов Minimal API, повышение тестируемости обработчиков маршрутов Minimal API, биндинг в контроллерах MVC и контроллерах API с помощью TryParse и не только. Материалом из блога разработчиков делимся к старту курса по разработке на C#.

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

Секреты .Net-приложения в Яндекс.Облаке: Lockbox

.NET *C# *Облачные сервисы
Tutorial

Наверное, в любых проектах есть необходимость использования различных секретных данных - строки подключения к БД, АПИ-ключи внешних сервисов и т.д.. К сожалению, до сих пор далеко не всегда разработчики заботятся о соответствующей защите этих данных: на прошлой неделе Гитхаб даже выкатил функцию push protection, чтобы у пользователя был ещё один рубеж защиты от проникновения этих данных в репозиторий.

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

Давайте добавим работу с секретами из Яндекс.Облака в .Net Core приложение в виде одного из источников конфигурации.

Интересненько
Рейтинг 0
Просмотры 1.4K
Комментарии 2

Властелин структур

Программирование *.NET *C# *Математика *Функциональное программирование *
✏️ Технотекст 2021

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

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

Повторная проверка Unity статическим анализатором PVS-Studio

Блог компании PVS-Studio .NET *C# *Unity *

Unity – один из самых популярных игровых движков. С его помощью создаётся множество отличных межплатформенных проектов. С нашей последней проверки его исходного кода прошло почти 4 года. Пришло время узнать, что удастся найти интересного в этот раз.

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

Переход от традиционного монолитного десктоп приложения к гибридной модели

Блог компании Альфа-Банк Анализ и проектирование систем *.NET *C# *Финансы в IT

У нас в Альфа-Банке в брокерском направлении уже достаточно давно существует терминал для профессиональной работы на бирже. Терминал представляет собой полноценное рабочее место профессионального трейдера. Есть и инструменты технического анализа, и алгоритмическая торговля (торговые роботы), и скальперский стакан. Приложение писалось и поддерживалось на протяжении длительного периода времени различными командами. В последние несколько лет в связи с активным притоком клиентов на российские торговые площадки возникла необходимость развития и доработки этого терминала.

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

Анонс стрима 07.04.22: Сжать данные в SQL Server в десятки раз, а ускорить запросы в сотни

.NET *SQL *Microsoft SQL Server *Администрирование баз данных *

У меня в планах на этот год на Хабре было опубликовать пару статей по колумсторам и XML. Материала за годы накопилось предостаточно и выходило на 30..40 страниц текста - фактически мини-книга. Но когда за окном Градами и прочей дичью херячили месяц... оно как-то не складывалось настроиться на конструктив. Вначале агрессия на виновников этой дичи, потом паника за близких... печаль что все планы порушились и непонятно что ждать. А сейчас прям совсем ровно на все жизненные трудности ибо как-то получается разруливать все и помогать людям.

Так вот... со знакомым решили вернуться к прежней теме и постримить сегодня о колумсторах. Без политики, срача и прочего. Очень много шутеек о том как живеться в условиях спецоперации и немного полезной инфы о колумсторах на SQL Server.

Кто хочет из коллег послушать: https://www.youtube.com/watch?v=wXH3fUN0PsM

You are welcome!

...
Всего голосов 19: ↑14 и ↓5 +9
Просмотры 2.4K
Комментарии 9

Проблемы работы с Entity Framework на Blazor Server

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

Blazor Server - технология для простого написания Web-систем на платформе .Net. Для удобной работы с базами данных была создана библиотека Entity Framework, которая позволяет работать программисту напрямую с моделями, не задумываясь об SQL-запросах. Но всё ли так хорошо, если соединить Blazor и EF?

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

Запуск фоновых задач в asp.net core

Программирование *.NET *ASP *C# *
Tutorial

Небольшой обзор стандартных средств запуска бэкграунд-задач в аспнет приложениях — что есть, чем отличается, как пользоваться. Встроенный механизм запуска таких задач строится вокруг интерфейса IHostedService и метода-расширения для IServiceCollection — AddHostedService. Но есть несколько способов реализовать фоновые задачи через этот механизм (и ещё несколько неочевидных моментов поведения этого механизма).

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 6.8K
Комментарии 10

OverScript — язык программирования, написанный на C#

Программирование *.NET *C# *

Привет! Меня зовут Дмитрий, я написал на C# свой интерпретируемый язык программирования, который назвал — OverScript. Это си-подобный язык со статической типизацией. Сразу скажу, что это не прототип, а готовый проект. Весь код на 100% мой. Я подробно не интересовался, как написаны другие языки, поэтому вся реализация интерпретатора это моя чистая импровизация. Мой подход неконвенциональный, поэтому к техническим аспектам стоит относиться без ассоциаций с тем, что вы могли ранее видеть в других языках, несмотря на то, что некоторые вещи могут казаться знакомыми.


image

Читать дальше →
Всего голосов 27: ↑21 и ↓6 +15
Просмотры 17K
Комментарии 90

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

Работа

.NET разработчик
71 вакансия