Поделиться через


Классная вспомогательная библиотека CUL (Craig's Utility Library)

Грэг Дункан

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

Но иногда проще, когда не требуется писать их в первую очередь.

Что если бы была вспомогательная библиотека, в которой было бы что-то для каждого, что она продолжала расти на протяжении ряда лет и сейчас находится в активной разработке? И вы можете либо брать вещи целиком из этой DLL, либо использовать те части, которые требуются?

Да, и исходный кот был бы также доступен?

Вспомогательная библиотека Крейга ( Craig )

Описание проекта

Вспомогательная библиотека Крейга (Craig's Utility Library – CUL) первоначально была спроектирована на протяжении ряда проектов, над которыми я работал. С течением времени я собрал ряд классов для решения различных задач и продолжаю добавлять элементов в свое свободное время. Библиотека написана на C# и использует .Net 4.0, хотя многие классы можно использовать и с более ранними версиями. Еще больше кода можно найти на моем веб-сайте https://www.gutgames.com.

Чтобы получить список возможностей, взгляните на страницу List of Features. Имейте в виду, если обновляетесь с предыдущей версии, то встретитесь со ЗНАЧИТЕЛЬНЫМ обновлением, которое может нарушить выполнение существующего кода. Однако такой вариант был необходим, чтобы перевести код в более управляемое состояние.

Мы говорим о длинном списке возможностей…

clip_image002

Вот несколько фрагментов этого списка:

clip_image004

clip_image006

clip_image008

clip_image010

clip_image012

clip_image014

А вот фрагмент основного решения

clip_image016

И я говорил, что можно получить его в одном пакете/dll со всем, или почти всем, что вам нужно? Вот снимок папки третьей версии выпуска.

clip_image018

Замечание: если вы интересуетесь запуском включенных модульных тестов, вам нужно познакомиться с проектом MoonUnit (и прочесть статью Building Your Own Unit Testing Framework in C# – Part 1 и Part 2). Также заметьте, что библиотека использует профиль .Net 4 Full, а не Client.

Давайте поглядим, как это работает. Одна из клевых областей – работа с изображениями (конечно, есть много клёвых областей, но обработку изображений легче показывать…clip_image020)

Вот очень быстрый и сырой консольный тест, где я играю с расширением ASCII Art.

clip_image022

Мы берем изображение;

clip_image024

И превращаем его в это (показано в Блокноте);

clip_image026

Лишь две строки кода (которые, конечно, можно превратить и в одну) и все готово (мой любимый тип кода).

Включенные модульные тесты – прекрасный способ научиться использовать библиотеку. Кроме того, туда также включены автоматически сгенерированные документы.

В следующий раз, когда вам понадобиться написать вспомогательный класс/расширение или многократно используемый код взгляните на CUL, чтобы убедиться, что работа уже сделана за вас…clip_image027