суббота, 5 апреля 2025 г.

BinarySerialization, Giga

BinarySerialization, Giga

https://giga.chat/link/gcsOiYjKbS

BinaryFormatter и связанная с ним бинарная сериализация были исключены из основного дистрибутива .NET Core начиная с версии .NET 5.

Это было сделано по соображениям безопасности, так как бинарная сериализация считалась уязвимой для атак,

связанных с десериализацией незащищенных данных.

История исключения BinaryFormatter:

  1. До .NET Core 3.1: BinaryFormatter был доступен и использовался для бинарной сериализации.
  2. .NET 5: BinaryFormatter был удален из основной поставки .NET, но остался доступным через отдельный NuGet-пакет:
  3. System.Runtime.Serialization.Formatters.
  4. .NET 6 и новее: BinaryFormatter остается доступным через тот же NuGet-пакет,
  5. однако его использование настоятельно не рекомендуется из-за потенциальных уязвимостей.

Почему исключили BinaryFormatter?

Бинарная сериализация через BinaryFormatter имеет ряд серьезных недостатков с точки зрения безопасности:

  • Уязвимость к атакам на десериализацию: Злоумышленник может передать вредоносные данные,
  • которые приведут к выполнению произвольного кода при десериализации.
  • Неопределенность формата данных: Формат сериализованных данных может меняться от версии к версии,
  • что делает его ненадежным для долгосрочного хранения данных.
  • Производительность: BinaryFormatter медленнее и менее эффективен по сравнению с современными форматами сериализации,
  • такими как JSON или Protobuf.

Альтернативы BinaryFormatter:

Если тебе нужна сериализация данных, существуют более безопасные и эффективные альтернативы:

  1. JSON: Использование форматов, таких как JSON, через библиотеки вроде Newtonsoft.Json или System.Text.Json.
  2. Protobuf: Протокол буферов (Protocol Buffers) — эффективный и компактный формат сериализации.
  3. XML Serialization: Сериализация в XML формат, хотя она также имеет свои недостатки.

воскресенье, 30 марта 2025 г.

WPF, MVVM, Book, Tutorial, Learn, MS

WPF, MVVM, Book, Tutorial, Learn, MS

https://learn.microsoft.com/ru-ru/dotnet/maui/tutorials/notes-mvvm/?view=net-maui-9.0&tutorial-step=1

https://learn.microsoft.com/ru-ru/dotnet/maui/tutorials/notes-mvvm/?view=net-maui-9.0&tutorial-step=2

file:///F:/DownLoads/trnt/Wpf/B1/Mastering%20Windows%20Presentation%20Foundation%20Second%20Edition%20-%20Sheridan%20Yuen%20-%202020/Mastering%20Windows%20Presentation%20Foundation%20Second%20Edition%20-%20Sheridan%20Yuen%20-%202020.pdf

F:\DownLoads\trnt\Wpf\B1\Mastering Windows Presentation Foundation Second Edition - Sheridan Yuen - 2020

F:\DownLoads\Wpf\Mastering Windows Presentation Foundation Second Edition - Sheridan Yuen - 2020

суббота, 29 марта 2025 г.

C#, top-level, statements

C#, top-level, statements


https://learn.microsoft.com/en-us/dotnet/core/tutorials/top-level-templates


// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

---------------------------------------------
using System; namespace MyApp { internal class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }

--------------------------------------

namespace MyProject; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }