Как стать автором
Обновить
75.67

.NET *

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

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

Миграция json файлов

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.1K

Прорыв в миграции JSON файлов: как мой новый open source плагин перевернул процесс переноса данных пользователей!

Читать далее
Всего голосов 20: ↑7 и ↓13-4
Комментарии17

Решение проблемы дымки на изображениях с использованием .NET: Простой и эффективный подход

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.9K

Простое .NET решение для четких фото: избавьтесь от дымки или тумана на изображениях всего за несколько шагов!

Читать далее
Всего голосов 10: ↑9 и ↓1+11
Комментарии18

Отправляем GC в отпуск и создаем эксзепляры классов .NET сами

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.1K

Придерживаясь великой цитаты "правила созданы для того, чтобы их нарушать", давайте нарушим какие-то основополагающие правила CLR. Как на счет того, чтобы послать GC с его работой в отставку и самим заняться размещением в памяти экземпляров классов? Заодно разберемся, как все это работает где-то там под капотом CLR.

Читать далее
Всего голосов 38: ↑37 и ↓1+45
Комментарии32

Деплой .NET приложений для самых маленьких. Часть 0

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров11K

Давным-давно, когда Linux был ещё на ядре 2.6, а PHP5 был глотком свежего воздуха, я впервые заинтересовался миром веб-технологий. Читал учебники, статьи, зависал на форумах, но все равно мало мог понять как код, который я вижу на экране, превращается в волшебные сайты с кнопками, формами и анимациями. Узнал про LAMP и его аналоги для Windows, узнал, что, оказывается, есть хостинги, где такие сайты размещаются. Как только появился внешний интернет без трафика, я поспешил перенести свои локальные поделия во внешний мир, попутно узнав про замечательный протокол FTP. Просто мир волшебных открытий был для меня, особенно когда узнал, что не нужно писать свой форум с нуля, а можно использовать что-то из phpBB, vBulletin и других уже готовых движков.

И когда я много лет спустя переключился в мир .NET, перечисленные ранее умения сыграли со мной злую шутку – я долго не мог понять, как мне найти хостинг для .NET приложений. Почему все известные мне хостинги с лёгкостью предоставляли возможность развернуть PHP приложения, причём даже предлагая какие-то предустановленные версии CMS, но днём с огнём не сыщешь хостинг под .NET. Мое непонимание принципа развертывания приложений усугубляли статьи, которые предлагали их размещать в подходящих сервисах типа Heroku, Digital Ocean или Azure – ведь это так просто и дешево…

Поэтому предлагаю максимально подробно рассмотреть вопрос публикации .NET приложений в арендованном VPS.

Читать далее
Всего голосов 26: ↑22 и ↓4+26
Комментарии31

Истории

Кошмар нефалема. Исследуем ошибки в коде эмулятора сервера Diablo 3

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.7K

Преследуя Диабло, нефалем попадает в очередную западню Белиала. Погруженный в смертельный кошмар владыкой обмана, герой должен повторить былые победы над воплощениями зла, чтобы пробудиться. Однако в этот раз из-за необъяснимых искажений реальности, свойственных кошмарам, он обречён на поражение. Но вдруг к нему на помощь является загадочное существо, а вместе с ним возвращается и надежда.

Читать далее
Всего голосов 11: ↑11 и ↓0+14
Комментарии7

Интероперабельность с нативным кодом через платформу .NET

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.4K

Привет, Хабр!

Часто некоторые проекты требуют от нас все более новых подходов к решению задач. Одна из таких задач - эффективное взаимодействие управляемого кода .NET с нативным кодом, которое позволяет по максимуму использовать ресурсы ОС и другого ПО, написанного не на .NET.

Интероперабельность необходима для использования уже существующих библиотек, написанных на C, C++ или других языках, которые выполняют важные или высокопроизводительные функции. Таким образом открывается возможность интеграции .NET-приложений с различными системными компонентами и устройствами, доступ к которым возможен только через нативные API.

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

Читать далее
Всего голосов 15: ↑13 и ↓2+16
Комментарии1

Новое в Pure.DI

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.4K

Эта статья о том, что появилось нового в генераторе исходного кода Pure.DI с момента выхода предыдущей статьи Pure.DI v2.1. Помимо исправления некоторых ошибок основной акцент был сделан на упрощении использования API для настройки генерации кода. Появилась возможность определить корни композиции обобщенных типов. Добавились накопители, что решило вопрос утилизации объектов со временем жизни отличным от Lifetime.Singleton и Lifetime.Scoped. Удалось улучшить производительность методов Resolve() и корней композиции.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии2

Вычислительные выражения: Реализуем Delay и Run

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров898

Скотт Влащин продолжает рассказ о вычислительных выражениях в F#. Вычислительные выражения очень похожи на монады из Haskell, но у них есть свои особенности.

Одной из необычных особенностей Haskell являются ленивые (отложенные) вычисления. В F# вычисления энергичные, как и в большинстве других языков, поэтому там нельзя просто так взять и "прервать" вычисление.

Но если очень хочется, то можно. В этой статьей Скотт рассказывает, как сделать ленивые вычислительные выражения в F#.

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

OpenAI API – получить ответ ChatGPT на C#

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.6K

В мире развивающегося искусственного интеллекта доступ к таким технологиям, как ChatGPT от OpenAI, становится все более востребованным. Для облегчения процесса взаимодействия с этим инструментом я запилил класс AmChat, который предоставляет простой и удобный способ отправки запросов к API ChatGPT и получения ответов. В этой статье мы рассмотрим особенности класса AmChat и его использование для быстрого и эффективного получения ответов от ChatGPT в вашем коде на C#.

Класс AmChat имеет только один публичный метод – GetAnswer, который является статическим и асинхронным. Этот метод принимает вопрос в качестве параметра и возвращает ответ от ChatGPT.

Благодаря тому, что метод GetAnswer является статическим и асинхронным, его использование становится очень простым и удобным. Программист может вызвать этот метод и дождаться ответа с помощью ключевого слова await, что значительно упрощает код и делает его более читаемым.

AmChat обеспечивает надежную обработку возможных ошибок, которые могут возникнуть при взаимодействии с API ChatGPT. Это позволяет повысить стабильность и надежность приложений, использующих этот класс.

Рассмотрим пример использования класса AmChat:

Читать далее
Всего голосов 8: ↑1 и ↓7-4
Комментарии3

DDD простыми словами

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров38K

Часто в больших компания всё поделено на большие системы. А если система «Legacy», т.е. устаревшая, то часто внутри неё собрано очень много разнородного функционала. По сути такие системы представляют из себя монолитных монстров.

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

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

Команды сильно специализированы на конкретную систему и не могут участвовать в доработке никакой другой системы.

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

Можно ли исправить ситуацию коренным образом?

Читать далее
Всего голосов 18: ↑8 и ↓100
Комментарии41

События в .NET: стандартная реализация, альтернативы, и причем тут сахар

Время на прочтение17 мин
Количество просмотров6.4K

События – это объекты, которые получают уведомления о некотором действии в разрабатываемом ПО и могут запускать реакции на это действие. Разработчик может определить эти действия, добавив к событию обработчик. Разберем в этом материале само понятие событий в .NET и разные способы работы с ними.

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

Книги по C# для новичков в разработке: что стоит почитать в 2024 году

Время на прочтение3 мин
Количество просмотров13K

Разработчикам любого уровня нужно постоянно учиться — смотреть, слушать и читать всё, что может пригодиться для развития и становления в качестве специалиста. Особенно это касается новичков в разработке, ведь им нужно освоить огромное количество информации. И книги — один из лучших источников её получения. Под катом расскажем о 5 хороших книгах по C#, которые стоит прочесть начинающему программисту.

Читать далее
Всего голосов 17: ↑17 и ↓0+22
Комментарии7

Об ИС «Управления проектами» или как мы боролись с ограничениями SharePoint в legacy проекте

Время на прочтение5 мин
Количество просмотров1.4K

В этой статье мы опишем наш опыт работы с очень большой системой управления проектами, реализованной на SP, с какими ограничениями мы столкнулись и как добились похудения данной ИС.

Читать далее
Всего голосов 8: ↑8 и ↓0+9
Комментарии4

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Вычислительные выражения: Реализуем Combine

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров1.2K

Вычислительные выражения — поистине неисчерпаемая тема. Мы научились возвращать пустые значения, а теперь нам предстоит разобраться, как возвращать множественные. Скотт Влащин рассказывает, как использовать метод Combine.

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

Жабарий — социальная игра с нейросетью в телеграмме

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.6K

Помню 2 курс, я начинаю кроме технических знаний на лекциях, постигать мир настольных игр. "Эволюция", "Колонизаторы", "Мафия", и много много других интересных и не очень настольных игр.

И вот среди других интересных и не очень, попался мне "Иманджинариум". Идея игры мне показалась гениальна и проста, загадывать ассоциации к картинке, но сама игра не зацепила.

Прошло 10 лет, и в ChatGPT появилась возможность через Dalle генерировать картинки, у меня появилась идея.

А что если сыграть в Имаджинариум наоборот. Сгенерировать картинку, и попробовать отгадать фразу, по которой она сгенерировалась?

Читать далее
Всего голосов 7: ↑5 и ↓2+6
Комментарии2

NET hosting. Обзор вариантов и пример деплоя приложения

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.1K

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

Читать далее
Всего голосов 12: ↑10 и ↓2+11
Комментарии8

Музыкальное время и MIDI

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.5K

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

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии13

Просто, но быстро. Телеграм бот на коленке

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров12K

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

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

Не страшно! В этой статье я поделюсь с вами всеми этапами создания собственного фреймворка для телеграм-бота с использованием C#.

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии14

Вычислительные выражения: Реализуем Zero и Yield

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров1.7K

Шестая статья из цикла про вычислительные выражения. Скотт Влащин начинает рассказывать детали реализация, и это в два раза интереснее, чем раньше.

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

Оцениваем сложность алгоритмов на C# по памяти и времени с примерами

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров9K

Продолжаем говорить о производительности и оптимизации кода. Сегодня поговорим о том, как и зачем оценивать сложность алгоритмов,  а также наглядно покажем, как эта сложность влияет на производительность кода.

Читать далее
Всего голосов 9: ↑6 и ↓3+4
Комментарии20

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

Работа

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