http://www.codeplex.com/Cosmos/
«Создайте свою собственную операционную систему, используя Visual Studio и C#» – предлагает нам автор этого проекта Chad Z. Hower. Сразу же заметим, что, несмотря на присутствие в названии именно C#, разработчики могут использовать VB.NET, Fortran или любой другой .NET-совместимый язык программирования.
Cosmos (как и Windows CE) не является операционной системой в традиционном значении этого термина; вместо этого он представляет собой некий «конструктор», позволяющий разработчику с легкостью создать свою собственную ОС; утверждается, что ее разработка и загрузка займут, в простейшем случае, всего несколько минут. J Вот как выглядит инструмент Cosmos Builder, предназначенный для сборки загрузочного образа ОС:
После нажатия на кнопку «Build» откроется окно, показывающее ход процесса сборки – в этот момент MSIL компилируется в машинный код, а также происходит подготовка загрузочного образа:
Ну а после монтирования созданного ISO-образа в VMware Workstation вы сможете увидеть следующую картину:
В настоящее время проект находится на самой ранней стадии развития. Авторы работают над поддержкой широкого диапазона файловых систем, включая FAT и ext2. Тем не менее, в будущем нам обещаны графика, локальные сети и другие возможности, присущие полноценной ОС. По адресу http://www.codeproject.com/KB/system/CosmosIntro.aspx можно найти статью, рассказывающую об основах разработки и отладки ОС с использованием Cosmos.
http://www.stack.nl/~dimitri/doxygen/
Основным нововведением, появившимся в текущей версии данного средства автоматизированного создания документации к исходному коду, является поддержка выходного формата .qch (Qt compiled help) при помощи Qt's qthelpgenerator, включенного в библиотеку, начиная с версии 4.4.0. Для просмотра файлов в этом формате используется Qt's Assisant. Помимо этого, добавлены три новые команды \extends, \implements, и \memberof, позволяющие документировать объектно-ориентированные конструкции для тех языков, которые формально их не поддерживают (например, C); также улучшена поддержка однострочных комментариев после VHDL-типов.
Текущая версия данного проекта подарила нам четыре новые библиотеки: Accumulators (поддержка инкрементальных вычислений), Exception (передача произвольных данных в объектах-исключениях и пересылка таких объектов между потоками), Units (обработка данных в различных единицах измерения и перевод из одних единиц в другие) и Unordered (реализация неупорядоченных ассоциативных контейнеров).
Кроме того, усовершенствованиям и дополнениям подверглись еще полтора десятка библиотек, входящих в состав boost. Полный перечень отличий от предыдущей версии можно найти по адресу http://www.boost.org/users/news/version_1_36_0. Как всегда, те, кто не хочет выполнять сборку библиотек вручную, могут скачать с сайта BoostPro Computing соответствующий инсталлятор. Он позволяет выбрать необходимые компоненты и их сборочные конфигурации для последующей загрузки готовых бинарных файлов (на текущий момент поддерживаются компиляторы Visual C++ версий 7.1, 8.0 и 9.0 с последними пакетами обновлений).
http://lukesw.net/articles/CplNet.aspx
http://www.codeproject.com/KB/system/cplnet.aspx
[.NET, C#] Оттолкнувшись от статьи How to Automate Exporting .NET Function to Unmanaged Programs, автор создал набор компонентов, позволяющих разрабатывать апплеты Панели правления Windows с использованием «управляемых» (managed) языков программирования:
Все, что для этого требуется – это создать класс, реализующий интерфейс IControlPanelItem:
public interface IControlPanelItem : IDisposable { // Иконка апплета. Icon Icon { get; } // Имя апплета (32 символа максимум).string Name { get; } // Описание апплета (64 символа максимум)string Info { get; } // Показывает окно апплета.// controlPanelWindow – Дескриптор окна Панели управления.// command – Необязательная командная строка.void Start(IWin32Window controlPanelWindow, string command); } |
Помимо реализации данного интерфейса, создаваемый класс должен быть наследником MarshalByRefObject и иметь установленный атрибут ControlPanelItemAttribute.
http://www.codeproject.com/KB/miscctrl/XGroupBox.aspx
[C++, MFC] Элемент управления, призванный заменить стандартный groupbox и реализующий следующие дополнительные возможности:
http://www.codeproject.com/KB/threads/CSharpAsynchronousHelper.aspx
[.NET, C# 2.0] Вспомогательный класс, добавляющий гибкости и значительно уменьшающий объем кода при выполнении асинхронных операций в части их запуска и отслеживании состояния. «В любом достаточно большом приложении многократно встречается ситуация, когда некоторое действие должно быть выполнено асинхронно. В качестве импровизированного примера можно привести приложение, которое при запуске сохраняет отчет о его ходе в файл на диске. Эта операция является относительно медленной, как и все, что связано с файловым вводом-выводом; выполняя ее асинхронно, мы уменьшим время запуска, не рискуя получить при этом какие-либо побочные эффекты. .NET Framework делает асинхронное выполнение довольно легким и мы рассмотрим несколько общих путей его реализации; однако здесь существуют подводные камни, способные привести к трудноуловимым ошибкам и делающие код более «грязным», поэтому я представляю вам вспомогательный класс, призванный сделать наши жизни легче.»
http://www.codeproject.com/KB/threads/CSharpAsynchronousHelper2.aspx
[.NET, C# 2.0] Продолжение темы, начатой в предыдущей статье того же автора – на этот раз речь идет о выполнении асинхронных операций, которые тем или иным образом влияют на элементы пользовательского интерфейса. Ну и конечно же вашему вниманию предлагается очередной «вспомогательный класс», при использовании которого жизнь станет практически невесомой. :)
http://www.codeproject.com/KB/recipes/RtfConverter.aspx
[.NET, C# 2.0] Компонент, предназначенный для «синтаксического разбора», интерпретации и преобразования RTF-документов в другие форматы.
При создании этого компонента автор ставил перед собой следующие цели:
К сожалению, в настоящее время данный компонент не поддерживает обработку таблиц, списков и автоматической нумерации. :(
http://www.codeproject.com/KB/graphics/CBitmapEx.aspx
[C++, WinAPI] Класс, предназначенный для обработки изображений в формате BMP и не зависящий от MFC и других библиотек. Поддерживаются масштабирование, вращение и применение различных фильтров; отрисовка с использованием прозрачности и градиентов. Изображение может быть загружено из файла с глубиной цвета 8, 16, 24 или 32 бита, однако все «внутренние» операции выполняются «на максимальной глубине» – 32 бита. Преобразованное изображение может быть затем сохранено в стандартном для Windows 24-битном формате. Использовать данный класс предельно просто:
#include "BitmapEx.h" // Загружаем битмап CBitmapEx bitmapEx; bitmapEx.Load(_T("Enter bitmap source file path here...")); // Делаем с ним все, что хотим bitmapEx.Rotate(45); bitmapEx.Sepia(); bitmapEx.Scale(50, 50); // Рисуем результат в требуемом контексте устройства bitmapEx.Draw(hDC); // Сохраняем битмап bitmapEx.Save(_T("Enter bitmap destination file path here...")); |
http://www.codeproject.com/KB/GDI-plus/Style_Toolkit.aspx
[C++, MFC, GDI+] Библиотека, позволяющая «осовременить» внешний вид создаваемых приложений при помощи градиентных заливок, эффектов прозрачности, PNG-изображений и т.п.
Никаких предопределенных «стилей» библиотека не содержит, их количество ограничивается исключительно вашей фантазией. В качестве недостатка можно упомянуть отмеченную одним из комментаторов данной статьи небольшую медлительность при отрисовке создаваемых подобным образом окон.
http://www.codeproject.com/KB/files/CABCompressExtract.aspx
[C++, MC++, C#] Библиотека для работы с «архивами» формата «Microsoft Cabinet» (.CAB); поддерживается как создание таких архивов, так и извлечение из них отдельных файлов. Предлагаются два варианта библиотеки, использующие общее ядро, написанное на «чистом» C++: один для применения при разработке «неуправляемых» приложений на C++, а второй – для приложений, использующих .NET Framework. Заметим, что оба варианта поддерживают архитектуры процессора x86 и x64.
К основным преимуществам своего творения автор относит следующее:
К библиотеке прилагаются документация в формате CHM и примеры использования, с «боевым» вариантом ее применения можно ознакомиться в статье An Intelligent .NET Multilanguage Installer того же автора.
http://www.codeproject.com/KB/mobile/WiMoAutostart.aspx
[.NET, C#, WM5/6] В статье рассматриваются различные варианты автоматического запуска приложений на платформе Windows Mobile: по графику; при вставке карты памяти, на которой расположено само приложение; при загрузке устройства; в ответ на различные системные события, такие как соединение устройства с локальной сетью или изменение имени устройства.
http://www.codeproject.com/KB/silverlight/BlendPDFwithSilverlight.aspx
[.NET, C#, Silverlight] Статья посвящена совместному визуальному использованию документов в формате PDF и технологии Silverlight с поддержкой двунаправленного обмена данными.
Во вступительной части автор ссылается на то, что на сегодняшний день уже существуют библиотеки и технологии, позволяющие использовать PDF не только в качестве «выходного» формата, но и как средство для ввода пользовательских данных с последующим предоставлением к ним онлайн-доступа. Однако практически все эти решения ориентированы на серверную сторону, где происходит генерация PDF-потока и отправка его на клиента, что приводит к «утяжелению» соответствующих серверных приложений.
Эта же статья предлагает альтернативный, ориентированный на клиентскую сторону подход, который объединяет PDF-документ(ы) и «несущее» Silverlight-приложение в веб-браузере, исключая тем самым необходимость в серверной логике, реализующей обработку пользовательских PDF-файлов для сбора данных. Преимущества данного решения (включая, в первую очередь, более высокую масштабируемость) будут особенно заметны в том случае, когда мы имеем дело с целым набором PDF-форм, поскольку оно позволяет серверу приложений оперировать только «чистыми» данными и бизнес-логикой, избавляя его от обработки PDF-документов.
http://www.codeproject.com/KB/recipes/grammar_support_1.aspx
[.NET, C# 3.0] Статья (по словам автора, первая в планируемой серии) рассказывает о применении для синтаксического анализа методологии, известной как Parsing expression grammar, с использованием новых возможностей, появившихся в версии 3.0 языка C#. Как пишет сам автор, «PEG может быть легко реализована на любом языке программирования, но особенно хорошо эта методология вписывается в функциональные языки, а также в императивные языки, имеющие функциональные расширения, поскольку концепции PEG тесно связаны с взаимно рекурсивными вызовами функций, семантикой «минимального вычисления» для булевых выражений и функциями, определяемыми in-place (лямбдами)».
http://www.abstractspoon.com/tdl_resources.html
http://www.codeproject.com/KB/applications/todolist2.aspx
Этот проект стартовал еще в ноябре 2003 года и, судя по всему, совершенно не намерен останавливаться в своем развитии. :) ToDoList представляет собой иерархический менеджер задач с возможностью назначения приоритетов, исполнителей и сроков исполнения; отслеживания текущего статуса задач; etc. Поддерживается также генерация отчетов в формате XML.
Основным новшеством линейки 5.6.х является вынос просмотра результатов фильтрации и сортировки списка задач в отдельное окно; благодаря этому данные операции более не затрагивают само дерево задач и порядок элементов в нем. Помимо этого, была улучшена производительность при прокрутке с использованием клавиш управления курсором и при редактировании комментариев, содержащих изображения.