Набу ещё раз :)
От: adontz Грузия http://adontz.wordpress.com/
Дата: 05.11.06 13:54
Оценка: 63 (5)
Итак, появились кое-какие существенные изменения.

Проект переехал. Теперь исходники доступны по адресу http://nabu-library.googlecode.com/svn/
URL и в TortoiseSVN можно вбивать и в браузер. Там не только библиотека, но и несколько примеров её использования, утилиты и проч. Там же теперь живёт и RegExTracer
Автор: adontz
Дата: 05.05.06


Небольшое описание некоторых классов

Nabu.NumeralFormatter

Возвращает словесное представление числительного. Поддерживаются русский и английский (enUS, enGB) языки. Поддерживаются количественные и порядковые числительные. Для русского языка можно указать падеж и род.
Кроме очевидного метода NumeralNameFromValue, имеется так же вспомогательный NounFormFromNumeral возвращающий форму существительного употребляемого рядом с числительным. Основная задача — обеспечить корректность употребления единиц измерения. Стимулом для написания этого класса стало увиденное мной сообщение "вам осталось ждать 22 секунд."
Имеется демонстрационный проект Applications\Examples\NumeralFormatterExample

Nabu.CommandLine

Класс для разбора параметров коммандной строки. Идея немного навеяная boost:program_options. Особо описывать не буду, класс используется во утилитах библиотеки.

Nabu.Fusion*

Интероп для работы с GAC. В качестве примера использования — утилита Utilities\Nabu.GacCleanUp. Лично я её использую чтобы удалить из GAC все версии некоторой сборки, но её возможности гораздо шире.

Nabu.Collections.ListEx<T>

Простой контейнер, который в отличие от List<T> предоставляет доступ ко внутреннему массиву — хранилищу элементов (метод DangerousGetArray), а так же позволяет при конструировании устанавливать в качестве внутреннего массива уже существующий. Это позволяет значительно повысить эффективность многих операций ввода-вывода, не отказываясь от удобных контейнеров.

Nabu.Collections.BindingListEx<T>

Реализация IBindingList, наследующая все плюсы ListEx. Рассылает оповещения не только после, но и до операций. Изначально была написан ради всего одного события — OnBeforeRemove, но сейчас пользуюсь постоянно. В отличие от BindingList<T> умеет обменивать элементы местами. Это бывает удобно когда контейнер подключён к списочному элементу управления и присутствуют операции упорядочивания "Move Up"/"Move Down".
Присутсвует специализация BindingListExNoCreate<T> для типов без конструктора по умолчанию. В ней операция CreateNew возвращает default(T)
Присутсвует специализация BindingListExString для строк. В ней операция CreateNew возвращает string.Empty

Nabu.Collections.SieveCache<TKey, TValue>

Вытесняющий кеш. Хранит часто используемые элементы, выкидывая редко используемые. Может хранить как слабые, так и сильные ссылки.

Nabu.Data.Singleton<T>

Просто синглтон

Nabu.Data.Diff*, Nabu.Data.Patch*

Реализации алгоритмов Хиршберга и Мейерса для поиска различий в массивах однотипных объектов. Есть специализации для byte[] и string[]. PatchOperationListBinary может записывать и считывать файлы формата GNU Generic Diff. Есть демонстрационное приложение Applications\Examples\DiffMyersExample. Сомневающимся заранее отвечаю на больших текстах тормозщит не алгоритм, а подсветка в RichEditView.

Nabu.Threading.ReverseSemaphore

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

Nabu.Drawing.ColorSpaceConverter

Класс для арифметического (без ICM!) преобразования между HSL, HSV, RGB, YUV.

Nabu.Forms.ColorPickerBox

ComboBox'образный элемент управления для выбора цвета из предопределённых палитр (VGA, Crayole, Apple IIe, MOS, X11/Web) или произвольного.

Nabu.Forms.MarkCollection

Простой компонент хранящий именованные строковые значения. Сценарий использования простой — он кидается на форму и заполняется невидимыми строками (например заголовок кнопки, который надо показать только в определённом состоянии). Основная цель — упрощение локализации.

Nabu.Forms.PictureMapBox

Элемент управления для выбора точки или линии на рисунке. В элементе управления Nabu.Forms.ColorPickerBox на вкладке Custom таких два.

Nabu.Forms.ProgressDisk

Элемент управления круглой формы отображающий прогресс операции. Форма и цвет лепестков гибко настраиваются.

Nabu.Forms.RichTextView

RichEdit расширенный возмостью печати и доступом к Text Object Model. TOM позволяет управлять форматированием текста на порядки быстрее, чем через оконные сообщения.

Nabu.Forms.CrossThreadControlAccessor

Класс для удобного межпотокового доступа к элементам управления.

Nabu.Forms.ControlValidationProvider/ControlValidationVisualizerDefault

Компоненты для проверки корректности значений введённых в элементы управления и пометки ошибочности ввода.

Nabu.Forms.HtmlLayout.*

Экспериментальный интерфейс к HTMLayout.

Nabu.Logging.*

Развитая система журналирования. Поддерживается журналирование в базы данных Access и MS SQL, текстовые и XML файлы, консоль, EventLog и Debug Output. Конфигурация как программно, так и через конфигурационные файлы. Имеется демонстрационное приложение Applications\Examples\LoggingExample и пример конфигурационного файла AppConfigExample.xml с комментариями.

Утилиты

Nabu.DirectoryCleanUp — удаляет подпапки с заданным именем.
Nabu.GacCleanUp — очищает GAC от сборок. Для выбора сборок их полное имя сравнивается с регулярным выражением.
Nabu.SvnAssemblyVersion — Обновляет файлы AssemblyInfo.cs позволяя в некоторой степени сохранять сихронность ревизий SVN и версий сборок.

Лицензия

LGPL. По вопросам коммерческого использования — обращайтесь, я сговорчивый.
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.