Обновить
117.41

C# *

Объектно-ориентированный язык программирования

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

Возвращаемся на Гроув-Стрит. Анализ движка Grand Theft Auto: San Andreas на Unity

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

Серия Grand Theft Auto стала культовой в игровой индустрии, а San Andreas — одной из самых запоминающихся частей для многих игроков. Время проходит, но фанаты всё так же преданы игре. Кто-то достаёт старый и пыльный диск с ностальгией, а некоторые заходят ещё дальше. Сегодня проверим фанатский перенос GTA: San Andreas на движок Unity с помощью статического анализатора PVS-Studio!

Начать миссию →

Как принимать платежи в Telegram | Оплата без всяких токенов и асинхронная обработка платежа

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

Как принимать платежи на своем сайте или в telegram используя библиотеку yoomoney-api.

Читать далее

«Внешние» сортировки: что это, зачем это и как это реализовать?

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

Статья про внешние сортировки слиянием. Что это вообще такое, зачем это нужно и как это реализовать? На все эти вопросы я постарался ответить в данной статье, а также привёл примеры кода, написанного на C# 11.

Читать далее

Что нового в .NET 8?

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

.NET 8 вышел в релиз, значит можно начинать переносить свои проекты на новую версию. В этой статье мы рассмотрим новые улучшения и фишки: C# 12, производительность, Native AOT, GC, новые типы, направленные на повышение производительности, NuGet Audit и прочее.

Читать далее

В каких аспектах улучшилась производительность в ASP NET Core 8

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

ASP.NET Core 8 и .NET 8 обогатились многочисленными потрясающими нововведениями, благодаря которым повышается производительность. В этом посте мы подчеркнём некоторые улучшения, сделанные в ASP.NET Core, и покажем, как с их помощью можно нарастить скорость и эффективность работы веб-приложения. Этот пост можно считать продолжением Performance improvements in ASP.NET Core 7, выходившего в прошлом году. Естественно, при его подготовке я также вдохновлялся постом Performance Improvements in .NET 8. Многие из перечисленных улучшений также прямо или косвенно способствуют повышению производительности ASP.NET Core.

Читать далее

Книга «Blazor в действии» в правильном переводе команды DotNetRu

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

Совместно с издательством ДМК Пресс мы, сообщество DotNetRu, рады сообщить об окончании работы над переводом новой книги «Blazor в действии» Криса Сэйнти.

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

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

Читать далее

Гуманитарий с 0 знаний в программировании. 3 часть. Первые шаги в C# (и слегка Unity)

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

Фрустрация + неизвестность + подготовка к госам/диплома + изучение C# = достаточный уровень напряжения и стресса.

Что этот ждуниор нам расскажет...

Использование расширения VS Code «PVS-Studio» для эффективной борьбы с ошибками в C# коде

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

VS Code — это знакомый многим редактор кода, главная особенность которого — возможность дополнить свой функционал с помощью множества полезных расширений. Одно из них теперь помогает эффективнее находить ошибки не только в C, С++, но и в C# коде.

Читать далее

Оплата в Telegram | API Yoomoney С#

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

Как принимать платежи, узнать информацию о счете, историю платежей и др. используя библиотеку yoomoney-api.

Читать далее

EF Core. Как 1 строчка может добавить x4 к быстродействию запросов к БД?

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

Многие, кто использует EF Core в работе в качестве ORM (Object-Relational Mapping) встречаются с множеством прелестей этого инструмента.

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

Читать далее

Дизайним абилки как в X-COM

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

Через абилки в X-COM реализована большая часть взаимодействия оперативников с окружением во время миссий. Стрельба, перезарядка, навыки, активация предметов, важных для цели миссии, и даже открытие дверей сделано через абилки.

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

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

Узнать как

.NET 7 против российской криптографии. Часть 2. Штампы времени

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

Практически неотъемлемой частью формирования электронной подписи стало формирование штампов времени (TS) на подпись. С их помощью обеспечивается доверенное подтверждение времени подписания документа. Со штампами времени в .NET 7 та же беда, что и с CMS-сообщениями - отсутствие нативной поддержки российских алгоритмов хэширования и электронной подписи на уровне фреймворка. Но, благо, старый добрый WinAPI и здесь поможет обойти проблему.

Читать далее

Как я писала программу на C#, которая шифрует текст по принципу «Квадрат Полибия»

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

В Древней Греции (2 век до н.э.) был известен шифр, называемый "Квадрат Полибия". Шифровальная таблица представляла собой квадрат с пятью столбцами и пятью строками, которые нумеровались цифрами от 1 до 5. В каждую клетку такого квадрата записывалась одна буква. В результате каждой букве соответствовала пара чисел, и шифрование сводилось к замене буквы парой чисел. Для латинского алфавита "Квадрат Полибия" имеет вид:

1 2 3 4 5

1 A B C D E
2 F G H J,I K
3 L M N O P
4 Q R S T U
5 V W X Y Z

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

Вообще "Квадрат Полибия" может иметь разный вид, но сегодня поговорим о создании программы с данной ранее таблице. Мы будем делать нашу программу в Visual Studio 2019, но для каких-нибудь 2020 и т.п. тоже подойдет.

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

И так, нам для работы нужны будут следующие библиотеки:

System;//основная
System.Collections.Generic;//основная
System.Linq;//основная
System.Text;//основная
System.Threading.Tasks;//основная
System.IO;//для записи и чтения файла
System.Threading;//основная

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

Читать далее что-то интересное

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

Как провести курс для разработчиков (за 1.5 млн) в маленькой компании и не сойти с ума

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

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

Читать далее

Microsoft PowerToys: Король GitHub среди C# проектов с C++ ошибками

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

Microsoft PowerToys – это мощный и полезный инструмент. Он не только упрощает некоторые сценарии работы с Windows, но и привносит новые. А еще он занимает первую строчку топа по звездам на GitHub среди C# проектов. Посмотрим, насколько хорошо пишут код его разработчики, и узнаем, при чём здесь C++!

Читать далее

Микросервис отправки писем через smtp Yandex .Net Web Api MailKit

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

Эта статья предназначена для новичков и рассматривает микросервис отправки писем через smtp Yandex с использованием .Net Web Api и MailKit. В ней будет рассмотрено, как настроить и использовать данный микросервис для отправки писем с помощью почтового сервиса через существующий почтовый ящик Яндекса.

Ссылки для понимания и работы

GitHub Документация Яндекс

Дерево проекта:

Читать далее

C# делегаты изнутри. Можно ли расширить С++ стандарт для поддержки делегатов в стиле C#

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

Чисто техническая статья, рассматривается тема, которая заявлена в заголовке, плюс разные практические методы, которые в этом будут полезны.

Тему предваряет обзор материалов, которые я использовал при написании своей статьи, в одном из которых есть сравнение C# делегатов с техникой которая заменяет их использование на Java, которое я тоже собираюсь проанализировать в конце.

Читать далее

CRC — это просто (деление столбиком)

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

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

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

Но это простой путь слишком просто - так не интересно (да и лишних часов на таску надо тоже поставить). Поэтому решил усложнить себе жизнь разобраться в работе CRC!

Читать далее

Уязвимость XXE в .NET 6 SDK: с чем боролись…

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


Современный .NET даёт разработчикам защиту от XXE из коробки: парсишь себе XML и не забиваешь голову всякими DTD, сущностями и связанной с ними безопасностью. Разве не прекрасно? Однако жизнь — штука с иронией...


Под катом — разбор по кусочкам XXE из .NET 6 SDK: код, причины дефекта безопасности, фикс.

Читать дальше →

Архитектура unity проектов

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

За всю карьеру удалось поработать на множестве игровых проектов в качестве лида. За более чем 5 лет удалось насмотреться на разные подходы к созданию проектов.

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

Не волнуйтесь, никаких SOLID и других изотерических практик. Коротко, по делу, подкрепленное использованием на нескольких проектах.

Читать далее

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