Форум программистов, компьютерный форум, киберфорум
Соколиный глаз
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Библиотека NETSquirrel для .NET и .NET Core

Запись от Соколиный глаз размещена 25.09.2019 в 19:23
Показов 2105 Комментарии 2
Метки .net, c#, netsquirrel

NETSquirrel - идейное продолжение и обобщение PABCSystem на платформы NET и NETCore. Её цель: сделать переход на другие .NET языки с PascalABC.NET и обратно наиболее безболезненным. Для PascalABC.NET сделан отдельный пакет модулей NETSquirrelExtensions, адаптирующий в некоторой степени библиотеку под стиль PascalABC.NET.

Главная идея, заложенная в библиотеку - расширить привычный функционал модуля PABCSystem (точнее, его часть, поскольку PABCSystem также занимается системными задачами) до уровня всей платформы .NET/NETCore. NETSquirrel - продолжение начатого разработчиками PascalABC.NET модуля со своими добавлениями. Это позволит обеспечить наиболее безболезненный переход с PascalABC.NET на C# или другие .NET языки или в обратном направлении. Новое, что внесла библиотека - это:
1. Множество интерфейсов, для написания коллекций и их immutable версий.
2. Новые утилитные методы, например, для чтения кортежей, массивов и матриц с возможностью одновременной обработки ошибок при неверном вводе.
3. Методы расширения для вывода и изменения кортежей, массивов, матриц и последовательностей.
Библиотека широко использует паттерн null object, при реализации которого при неверных входных данных не бросается исключение, а возвращается объект-пустышка указанного типа.
4. Прокси-типы, которые позволяют указать как программист хочет чтобы пользователь видел некоторую коллекцию в отладчике Visual Studio или Rider.

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

C#
1
2
3
4
5
6
7
8
9
10
11
12
using NETSquirrel.Extensions;
 
namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            new int[,] { { 1, 2 }, { 3, 4 } }.PrintAsMatrix(", "); // Вывод значений матрицы в виде таблицы.
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using NETSquirrel.Extensions;
 
namespace Test
{
    public class Some
    {
        public int MyProperty { get; set; } = 1;
        public int MyProperty2 { get; set; } = 5;
    }
 
    internal static class Program
    {
        private static void Main(string[] args)
        {
            new Some().AutoPrintLine(", "); // Вывод значений всех публичных свойств и полей через ", ".
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using NETSquirrel.Extensions;
using NETSquirrel.Utils;
 
namespace Test
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            ArraysUtils.ReadBoolArray(10, e => e.Message.PrintLine()); // Программа при неверном вводе не упадёт, а выведёт сообщение об ошибке.
        }
    }
}
Замечания и предложения по улучшению библиотеки - приветствуются.

Сайт
GitHub
Поддержка
Тема в разделе PascalABC.NET
Метки .net, c#, netsquirrel
Размещено в NETSquirrel and PABCSystem
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Это позволит обеспечить наиболее безболезненный переход с PascalABC.NET на C# или другие .NET языки или в обратном направлении.
    стоило писать/изучать C# и .NET, чтоб потом иметь масло масляное и двойные тормоза...

    но...
    к сожалению...
    даже в современных 3D-движках - всё чаще вижу код на сишарпе.
    мда...
    (заранее извиняюсь...) но...
    видимо, выросло целое поколение быдлокода и быдлокодеров на радость Microsoft и продавцам комплектующих.
    Обратная сторона всего этого - игры в STEAM с требованиями 8-ядерного проца и оперативки - 8, а лучше 16ГБ.

    В общем...
    дядям на западе выгодно, чтоб вы писали такой код, а также и то, что ваши компы - потребляют, как хорошие утюги и микроволновки.
    Запись от untyped размещена 25.09.2019 в 22:29 untyped вне форума
  2. Старый комментарий
    Аватар для Соколиный глаз
    Свою библиотеку стараюсь оптимизировать. Я против тормозов. Также я против написания рутинных методов каждый раз. Поэтому я сделаю эту библиотеку. Технически - ничего общего у самой библиотеки с PascalABC.NET нет.

    Кстати, версия для C++ тоже планируется.
    Запись от Соколиный глаз размещена 26.09.2019 в 02:33 Соколиный глаз вне форума
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru