PascalABC.NET 4.1

Главное в PascalABC.NET 4.1 — интеграция .NET 10 в привычную среду разработки для Windows и поддержка NuGet-пакетов.

Дата выпуска: 20 октября 2026 года.

В версии 4.0 появилась поддержка современной платформы .NET и официальное расширение для VS Code. В версии 4.1 компиляция и запуск программ для .NET 10 доступны непосредственно в основной Windows IDE, вместе с подсказками по коду, навигацией и восстановлением пакетов. Для этого скачайте PascalABC.NET 4.1 Net10Pack для Windows.

.NET 10 в основной среде разработки

В меню «Программа» появился переключатель .NET 10. В выбранном режиме работают привычные команды компиляции, запуска и остановки программы.

Переключение на .NET 10 в меню «Программа» среды PascalABC.NET 4.1
Переключение на .NET 10 в меню «Программа».

Режим .NET Framework сохранён: можно выбирать платформу для конкретной задачи, не меняя среду разработки.

Для работы компилятора .NET 10 не требуется устанавливать .NET SDK — достаточно .NET 10 Runtime. Восстановление NuGet-пакетов также выполняется без SDK.

Переключатель .NET 10 после перезапуска IDE не сохраняется: для следующего сеанса этот режим нужно выбрать снова.

IntelliSense и навигация для .NET 10

При выборе .NET 10 доступны:

  • подсказки имён и членов типов;
  • подсказки параметров процедур, функций и методов;
  • информация об элементах программы при наведении указателя;
  • навигация по коду;
  • подсветка доступного перехода и переход по Ctrl.

Таким образом, работа с современной платформой не ограничивается компиляцией из командной строки: основные средства редактирования доступны в привычной оболочке PascalABC.NET.

Графика, Робот и Чертёжник для .NET 10

В Windows в режиме .NET 10 уже работают графические модули GraphWPF и GraphABC, а также школьные исполнители Робот и Чертёжник.

Графические программы и задания с исполнителями можно компилировать и запускать для .NET 10, выбрав этот режим в меню «Программа».

NuGet-пакеты: директива package

Библиотеку из NuGet можно подключить непосредственно в исходном тексте программы. В директиве {$package ...} указываются имя пакета и точная версия.

Например, с библиотекой NodaTime найдём дату окончания проекта, который начинается 20 октября 2026 года и длится 100 календарных дней, а также определим день недели:

{$package NodaTime 3.2.4}
uses NodaTime;

begin
  var start := new LocalDate(2026,10,20);
  var deadline := start.PlusDays(100);

  Println($'{deadline.Day}.{deadline.Month}.{deadline.Year}');
  Println(deadline.DayOfWeek.ToString);
end.

Результат:

28.1.2027
Thursday

Метод PlusDays учитывает длины месяцев и переход на следующий год. Исходная дата start не меняется: метод возвращает новое значение LocalDate. Свойство DayOfWeek определяет день недели; здесь Thursday означает четверг. Вывод даты задан явно, поэтому не зависит от регионального формата даты на компьютере.

При компиляции или запуске пакет и его транзитивные зависимости восстанавливаются автоматически. Восстановление выполняется через библиотеки NuGet, с использованием общего кеша пакетов и источников из NuGet.Config. Источник по умолчанию — nuget.org.

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

Подсказки имён пакетов и версий

Внутри директивы {$package ...} по Ctrl+Space доступны:

  • поиск имён NuGet-пакетов;
  • список доступных версий;
  • описание пакета в боковой области подсказки.

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

Подсказки NuGet-пакетов по Ctrl+Space в PascalABC.NET 4.1: выбор NodaTime, версия пакета и описание
Выбор NuGet-пакета по Ctrl+Space в директиве package.

Восстановление пакетов запускается при компиляции или выполнении программы либо при нажатии кнопки «Восстановить пакеты» в строке статуса.

Если подсказки по типам пакета нужны ещё до первой компиляции, нажмите эту кнопку.

Пример: SQLite через NuGet

Подключение Microsoft.Data.Sqlite позволяет работать с базой SQLite:

{$package Microsoft.Data.Sqlite 10.0.13}
uses Microsoft.Data.Sqlite;

begin
  var connection := new SqliteConnection('Data Source=:memory:');
  connection.Open;

  var command := connection.CreateCommand;
  command.CommandText := 'select 40 + 2';
  Println(command.ExecuteScalar);

  command.Dispose;
  connection.Dispose;
end.

Результат:

42

Программа создаёт базу данных в памяти и выполняет SQL-запрос. Пакет SQLite и его зависимости восстанавливаются по директиве в начале программы.

Пакеты с нативными зависимостями

Для Windows x64 проверена работа ряда пакетов, использующих не только управляемые сборки, но и нативные библиотеки:

  • Microsoft.Data.Sqlite;
  • Math.NET с MKL;
  • примеры ML.NET и LightGBM.

Это не означает совместимость с любым NuGet-пакетом. Пакеты, которым нужны специальные действия MSBuild, особые условия установки или платформенные компоненты, могут требовать дополнительной поддержки. Результаты проверки Windows x64 не следует автоматически переносить на другие платформы.

Публикация программы с зависимостями

Команда «Опубликовать» для .NET 10 создаёт папку publish с программой и необходимыми зависимостями. В зависимости от настроек она размещается в папке программы или в папке Output. Запуск опубликованной программы не зависит от локального NuGet-кеша компьютера разработчика.

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

Перезагрузка пользовательских DLL

В компиляторе .NET 10 реализована выгрузка и повторная загрузка подключаемых пользовательских DLL через AssemblyLoadContext.

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

Совместимость и варианты поставки

  • StandardPack остаётся вариантом для .NET Framework 4.7.2.
  • Для компиляции и запуска на .NET 10 в основной Windows IDE предусмотрена поставка Net10Pack.
  • Расширение VS Code 0.5.1 пока содержит PascalABC.NET 4.0 и обновляется отдельно.

Варианты загрузки PascalABC.NET →

← История версий PascalABC.NET