Главная » Архив меток: .NET

Архив меток: .NET

[Из песочницы] Внедрение зависимостей в сервис Apache Ignite.NET

Разрабатывая различные приложения, использующие популярную библиотеку Castle Windsor для внедрения зависимостей и Apache Ignite.NET в качестве «ключика», который открывает дверь в «облачные» вычисления, я столкнулся с небольшим неудобством: у меня не было никакой возможности внедрить зависимость в сервис, запускаемый через так называемый Service Grid. Apache Ignite. Причина по которой это происходит довольна банальна. Так как этот процесс никаким образом не ...

Читать далее »

Баг при работе TextBox.GetLineText в .NET WPF

Для проведения исследований работы программ и ОС существует очень много различного инструментария. Виртуальные машины, IDE, умные блокноты, IDA, radare, hex-редакторы, pe-редакторы, и даже одних утилит Sysinternals больше сотни — все это сделано для облегчения многих рутинных операций. Но иногда наступает момент, когда ты понимаешь, что среди всего этого многообразия тебе не хватает небольшой утилитки, которая просто сделает банальную и нехитрую ...

Читать далее »

[DotNetBook] События об исключительных ситуациях и как на пустом месте получить StackOverflow и ExecutionEngineException

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

Читать далее »

[Перевод] Переопределение Equals и GetHashCode. А оно надо?

Если вы знакомы с C#, то, скорее всего, знаете, что необходимо всегда переопределять Equals, а также GetHashCode, чтобы избежать снижения производительности. Но что будет, если этого не сделать? Сегодня сравним производительность при двух вариантах настройки и рассмотрим инструменты, помогающие избегать ошибок. Насколько серьезна эта проблема? Не каждая потенциальная проблема с производительностью влияет на время выполнения приложения. Метод Enum.HasFlag не очень ...

Читать далее »

«Я бесполезный дурак и хочу уволиться» — 10 вопросов программисту, пилотный выпуск

Привет, Хабр! Не хотим снова устраивать споры и читать морали, но правда остается правдой — тысячи крутых технарей сидят в тени, а их истории запрятаны в чулан. Помните историю про Стива Джобса и Денниса Ритчи? Отныне будем регулярно брать интервью у людей, про которых не пишут в СМИ и за которыми не гоняются в соцсетях. Мы в редакции Хабра намерены ...

Читать далее »

[DotNetBook]: Span, Memory и ReadOnlyMemory

NET CLR, и . Этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе . За ссылками — добро пожаловать по кат. NET в целом. Memory<T> и ReadOnlyMemory<T> Первое — тип Memory<T> не содержит ограничения ref в заголовке типа. Визуальных отличий Memory<T> от Span<T> два. Однако эта маленькая разница создает огромную разницу в поведении и возможностях ...

Читать далее »

[DotNetBook] Исключения: архитектура системы типов

NET CLR, и . С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе . За ссылками — добро пожаловать по кат. NET в целом. Архитектура исключительной ситуации Этот вопрос интересен по многим причинам. Наверное, один из самых важных вопросов, который касается темы исключений — это вопрос построения архитектуры исключений в вашем приложении. Это свойство ...

Читать далее »

Internal DSL & Expression Trees — динамическое создание функций serialize, copy, clone, equals (Часть I)

Разбор выражений помогает построить структуры представления (они же структуры представления проблемно-ориентированного языка Internal DSL), а кодогенерация позволяет динамически создавать эффективные функции — наборы инструкций задаваемые структурами представления. Статья посвящена двойному применению API Expression Trees — для разбора выражений и для генерации кода. На примере serialize покажу как можно оптимизировать сериализацию (по сравнению с потоковыми сериализаторами) в классической ситуации, когда "предварительное" ...

Читать далее »

[Перевод] Что можно найти в чужом коде? Подборка полезных материалов по .NET

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

Читать далее »

[DotNetBook] Span: новый тип данных .NET

NET CLR, и . С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе . NET в целом (уже готово около 200 страниц книги, так что добро пожаловать в конец статьи за ссылками). Так почему же сейчас выходит очередной API для работы с неуправляемым кодом если по сути он существовал уже много-много лет? Как язык, ...

Читать далее »