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

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

Запись от Соколиный глаз размещена 25.09.2019 в 19:23
Обновил(-а) Соколиный глаз 02.10.2019 в 09:57

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
Размещено в NETSquirrel and PABCSystem
Просмотров 223 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Цитата:
    Это позволит обеспечить наиболее безболезненный переход с PascalABC.NET на C# или другие .NET языки или в обратном направлении.
    стоило писать/изучать C# и .NET, чтоб потом иметь масло масляное и двойные тормоза...

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

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

    Кстати, версия для C++ тоже планируется.
    Запись от Соколиный глаз размещена 26.09.2019 в 02:33 Соколиный глаз вне форума
    Обновил(-а) Соколиный глаз 26.09.2019 в 02:41
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.