|
Alvin Seville
|
|||||||||||
Библиотека NETSquirrel для .NET и .NET Core01.11.2019, 12:49. Показов 6303. Ответов 14
Краткое описание NETSquirrel - идейное продолжение и обобщение системного модуля PABCSystem на платформы NET и NETCore. Её цель: сделать переход на другие .NET языки с PascalABC.NET и обратно наиболее безболезненным.Подробное описание Главная идея, заложенная в библиотеку - расширить привычный функционал модуля PABCSystem (точнее, его часть, поскольку PABCSystem также занимается системными задачами) до уровня всей платформы .NET (.NET Framework/.NET Core). NETSquirrel - продолжение начатого разработчиками PascalABC.NET модуля со своими добавлениями. Это позволит обеспечить наиболее безболезненный переход с PascalABC.NET на C# или другие .NET языки или в обратном направлении. Новое, что внесла библиотека - это:1. Множество интерфейсов, для написания коллекций и их immutable версий. 2. Новые утилитные методы, например, для чтения кортежей, массивов и матриц с возможностью одновременной обработки ошибок при неверном вводе. 3. Методы расширения для вывода и изменения кортежей, массивов, матриц и последовательностей. Библиотека широко использует паттерн null object, при реализации которого при неверных входных данных не бросается исключение, а возвращается объект-пустышка указанного типа. 4. Прокси-типы, которые позволяют указать как программист хочет чтобы пользователь видел некоторую коллекцию в отладчике Visual Studio или Rider. Полезные ссылки Официальный сайт (en)Организация проекта (en/ru) Документация (en) Примеры кода Группа поддержки (en/ru) Ссылки на темы из соседних разделов Тема в разделе PascalABC (ru)Тема в разделе PascalABC.NET (ru) Примеры кода
Генерация последовательностей:
Внимание: библиотека предоставляет высокоуровневый функционал, за что пользователю приходится в какой-то степени платить за это производительностью. Не используйте LINQ и подобный функционал библиотеки при нужде максимального быстродействия. Не злоупотребляйте большим количеством предоставляемых возможностей, нанося при этом вред производительности. Главное в проекте NETSquirrel
- Замечания и предложения - источник жизни библиотеки и её экосистемы, поскольку они позволяют отпалировывать неточности и улучшать проект.
- Аргументы и факты - именно на этом строятся обсуждения функционала NETSquirrel, эмоции - имеют место быть, но не могут служить поводом для добавления (изменения) новой (существующей) функциональности, если не подкрепляются чем-либо. - Уважение к пользователям - главный принцип общения с ними. Разработчики не должны посылать пользователя (даже вежливо) с каким-либо вопросом, если им лень с ним разбираться. - Мы не разбрасываемся пользователями - для нас все важны, какими бы придирчивыми они не были. - Открытость и доступность информации - главная причина уделения немалого количества времени к организационным вопросам (репозиторию и уведомлениям пользователей об изменениях).
0
|
|||||||||||
| 01.11.2019, 12:49 | |
|
Ответы с готовыми решениями:
14
Библиотека для управления запросами с поддержкой Socks4, Socks5 для .NET Новости .NET |
|
Alvin Seville
|
||||||||||||||||||||||
| 02.11.2019, 21:30 [ТС] | ||||||||||||||||||||||
|
Доступен NETSquirrel 0.0.25 [Night build].
Минимальные требования: - NETCore: 2.2 - NET: 4.5 Зависимости: - NuGet пакет System.ValueTuple 4.5.0 Улучшения: - Улучшения методов вывода - Математические расширения для IEnumerable<> - Исправление ReadStringMatrix Пример: C#
Visual Basic.NET
Managed C++
PascalABC.NET
Вывод:
0
|
||||||||||||||||||||||
|
Alvin Seville
|
|||||||||||||||||||||||||||||||
| 03.11.2019, 22:16 [ТС] | |||||||||||||||||||||||||||||||
|
Решение задачи через NETSquirrel 0.0.25:
Решение задачи через NETSquirrel 0.0.25:
Решение задачи через NETSquirrel 0.0.25:
- При вводе строки, вместо числа произойдёт падение программы. Решение: добавить try-catch. Решение задачи через NETSquirrel 0.0.25:
Решение задачи через NETSquirrel 0.0.25:
- При вводе строки, вместо числа произойдёт падение программы. Решение: добавить try-catch.
1
|
|||||||||||||||||||||||||||||||
|
Alvin Seville
|
|||||||||||||||||||||||||||||||
| 06.11.2019, 15:41 [ТС] | |||||||||||||||||||||||||||||||
|
Сравнение эффективности вывода матриц в NETSquirrel 0.0.25 [Night build] и PABCSystem:
Тестирование на C#
Тестирование на PascalABC.NET
Реализация вывода матриц в NETSquirrel
Реализация вывода матриц в PABCSystem
Результаты: NETSquirrel оказывается несколько медленнее в среднем, чем PABCSystem, но взамен при её использовании мы получаем большую гибкость и устойчивость вывода.
0
|
|||||||||||||||||||||||||||||||
|
Alvin Seville
|
|||||||||||||||||||||
| 22.11.2019, 11:55 [ТС] | |||||||||||||||||||||
|
Доступен NETSquirrel 0.0.30 [Night build].
Минимальные требования: - NETCore: 2.2 - NET: 4.5 Зависимости: - NuGet пакет System.ValueTuple 4.5.0 Улучшения: - ReadBoolMatrix c делегатом FuncExceptionHandler - ReadBoolArray c делегатом FuncExceptionHandler - расширения PrintBy/PrintLineBy/PrintLinesBy для IEnumerable<T> с селектором типа Func<T, int, TResult> - расширения Print/PrintLine/PrintLines для IEnumerable<T> с селектором типа Func<T, int, TResult> - расширения Print/PrintLine/PrintLines для IEnumerable<T> с селектором Пример: C#
Visual Basic.NET
Managed C++
PascalABC.NET
0
|
|||||||||||||||||||||
|
Alvin Seville
|
|||||||
| 23.11.2019, 12:46 [ТС] | |||||||
|
Решение задачи через NETSquirrel 0.0.30:
- При вводе строки, вместо числа (при указании количества элементов массива) произойдёт падение программы. Решение: добавить try-catch. - При вводе отрицательного количества элементов массива будет выброшено исключение. Решение: вынести считывание элементов массива в переменную и проверять введённое число на неотрицательность.
0
|
|||||||
|
Alvin Seville
|
||||||||||||||||
| 02.12.2019, 17:53 [ТС] | ||||||||||||||||
|
Доступен NETSquirrel 0.0.35 [Night build].
Минимальные требования: - NETCore: 2.2 - NET: 4.5 Зависимости: - NuGet пакет System.ValueTuple 4.5.0 Улучшения: - Расширения для кортежей для создания матриц - Расширения для int для создания массивов - Неявное преобразование int -> SliceSpan - Срезы для строк - Утилитные методы с FuncExceptionHandler для чтения кортежей с клавиатуры Пример: C#
Visual Basic.NET
PascalABC.NET
0
|
||||||||||||||||
|
Alvin Seville
|
|
| 23.12.2019, 15:39 [ТС] | |
|
Примеры для NETSquirrel 0.35 готовы на C# и PascalABC.NET.
0
|
|
|
14138 / 9366 / 1350
Регистрация: 21.01.2016
Сообщений: 35,233
|
||
| 24.12.2019, 06:19 | ||
|
1
|
||
|
Alvin Seville
|
|
| 24.12.2019, 08:30 [ТС] | |
|
Usaga, да, согласен. Хорошее предложение.
0
|
|
|
Alvin Seville
|
|
| 24.12.2019, 21:15 [ТС] | |
|
Начиная с NETSquirrel 0.40 проект переходит на NET Standard 2.0.
0
|
|
|
Alvin Seville
|
|
| 28.12.2019, 17:10 [ТС] | |
|
Специальные символы для управления условной компиляцией:
- IS_PASCALABCNET_COMPATIBLE - включает атрибуты к членам классов, позволяющих генераторам кода для PascalABC.NET выбирать наиболее подходящие названия для методов и свойств. - UTILS_WITH_EXCEPTION_HANDLER_SUPPORT_ARE _ENABLED - включает поддержку утилитных методов с обработкой исключений.
0
|
|
|
Администратор
|
||
| 02.01.2020, 20:47 | ||
|
1
|
||
|
Alvin Seville
|
|
| 02.01.2020, 23:04 [ТС] | |
|
OwenGlendower, пользователям - да, не нужны. Разработчикам - могут понадобится, чтобы получать специфические сборки, заточенные под их нужны.
Добавлено через 2 минуты Старый функционал NETSquirrel перенесён в библиотеку NETSquirrelBC.
0
|
|
|
Alvin Seville
|
|
| 03.02.2020, 05:05 [ТС] | |
|
Теперь пользователи могут оставлять отзывы мне в Яндекс-форме, а получать ответ с NETMouseProjects@yandex.ru, поскольку все данные форм автоматически отправляются на данную почту. Название Вашей OC и её версия передаются мне автоматически - вручную указывать не надо.
0
|
|
| 03.02.2020, 05:05 | |
|
Помогаю со студенческими работами здесь
15
Сложности с .NET Core Почему нет раздела (подраздела) ASP.Net Core? Меня одного удивляет отсутствие здесь раздела .NET Core ? Как указать VS.NET какой из установленный .NET Framewrok SDK использовать Как установить .NET приложение, но без установки самого .NET Framework? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|