воскресенье, 10 декабря 2006 г.

Omea line of products is now free!

Мой любимый агрегатор или вернее Интегрированная информационная среда (система управления входящей информацией из различных источников как пишет SoftLine) Omea теперь стала свободной и более того доступна в open-source:

Dear Friends,

After collecting your opinions and having long internal discussions, we have finally decided to move Omea Pro into the open source domain.

This will definitely take some time, but the first step has already been made - from now on, Omea Pro is available free of charge.

Thank you for your input, and you are welcome to contribute to Omea Pro development when it goes open-source.

-- The Omea Team at JetBrains

О возможностях этой великолепной программы писать не буду, как говорится, лучше один раз увидеть:

Omea Pro 2.1 replaces tools like your Email Organizer, Desktop Search Utility, RSS Reader, Personal Information Manager, Newsgroup Reader, Task Manager, Contact Manager, Bookmark Manager, and Instant Message History Manager. It can also read your Files in Microsoft Word, Microsoft Excel, Adobe Acrobat, and view your Pictures, in one Integrated Information Environment.

Настоятельно рекомендую познакомиться с ней поближе, если этого еще не сделали.

пятница, 8 декабря 2006 г.

Обзор материалов по C# 3.0 и LINQ

Mohammed Hossam в блоге опубликовал все материалы своей презентации на SilverKey Demo Day, вместе с комментариями и демонcтрационными проектами. Презентация посвящена нововведениям в C# 3.0 и обзору LINQ.

На русском языке доступна презентация Дмитрия Никонова Проект Linq (C# 3.0, VB 9.0) - будущее языков программирования. В архиве презентаций Microsoft много полезных и интересных материалов.

Если презентации не любите, то можно просто почитать спецификацию C# 3.0 (C# Version 3.0 Specification) или зайти на сайт проекта LINQ.

Отличный обзорный материал по различным языковым улучшениям на CodeProject: Concepts behind the C# 3.0 language

Запись двух интересных чатов: C# 3.0 Language Enhancements и C# 3.0 and LINQ.

Обновление: Два часовых видео ролика, посвященные LINQ и C#

Technorati tags: ,
Blogus tags : ,

четверг, 7 декабря 2006 г.

Online преобразование .docx files в .txt

В сети стал доступен сервис по извлечению текста из .docx файлов: docx converter.

DocX - это новый формат для хранения документов в Office 2007, базирующийся на OpenXML , о котором я писал ранее. Хотя данное online-решение изначально спроектировано для пользователей Mac'ов, тем не менее, в пути, возможно пригодится. Подробнее можно почитать в статье Easily Open .docx On A Mac.

Если торопиться некуда и под рукой есть любая из версий Microsoft Office, начиная с 2000, то можно воспользоваться решением от производителя: Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats

Technorati: ,

Blogus tags : ,

среда, 6 декабря 2006 г.

WPF/E (Windows Presentation Foundation Everywhere)

Microsoft представила новую технологию под кодовым названием WPF/E, которую можно рассматривать как альтернативу Adobe Flash. WPF/E не конечное название продукта, в будущем оно, возможно, изменится. В данный момент для загрузки доступен "WPF/E" (codename) Community Preview.

Данная технология предлагает кросс-платформенное (Windows / Macintosh) решение для представления 2D-анимации, аудио, видео, двумерной векторной и растровой графики на основе XAML.

Ключевые моменты технологии:

  • Кодовое название WPF/E, а не WPF
  • WPF/E - технология, позволяющая показывать XAML-контент в браузере через плагин
  • WPF/E - не требует установленного .NET runtime
  • WPF/E - поддерживает множество браузеров (в данном релизе IE, FireFox и Safari)
  • WPF/E - кросс-платформенное решение (Windows и MacOS в данном релизе)
  • WPF/E - использует в данный момент подмножество XAML
  • WPF/E - поддерживает видео, звук, анимацию, интерактивность, графику и преобразования
  • WPF/E - полностью совместим с ASP.NET, ASP.NET AJAX и различными AJAX framework
  • WPF/E - не содержит никакой поддержки CLR. Весь доступ к XAML DOM реализуется через JavaScript в браузере.

По словам Scott Guthrie, ведущего менеджера, руководящего командой проектировщиков .NET и WPF/E:

WPF/E содержит небольшой клиентский runtime, позволяющий AJAX-разработчикам и дизайнерам предоставлять пользователям богатый мультимедийный контент. WPF/E добавляет к любой HTML странице поддержку векторной графики и анимации. WPF/E содержит встроенные видео и аудио кодеки для WMV, WMA и MP3 (MP3 будет доступен в более поздних релизах), что позволяет выполнять воспроизведение без дополнительной установки кодеков в системе. Возможно, будет поддержка большего количества форматов, в зависимости от желаний пользователей. Так же реализована поддержка технологии DRM для защиты контента производителя.

В данный момент CTP (клиентский runtime для браузеров) занимает 1.1 Мб под Windows и 3.1 Мб под Mac, может быть сконфигурирован для "загрузки по требованию" при посещении страницы, использующей WPF/E контент.

CTP работает на Windows и Macintosh платформах (x86 и PowerPC) и поддерживает IE 6 и 7, FireFox 1.5.0.8 и 2.0, Safari. Список обещают расширять в будущем.

Для разработчиков является привлекательной лёгкая интеграция с существующими HTML страницами и сайтами. С помощью JavaScript можно манипулировать любым XAML DOM элементом, анимацией или видео в WPF/E.

WPF/E может использоваться с любым AJAX framework и не имеет зависимостей от реализации AJAX на клиенте. Так же обещается тесная интеграция с ASP.NET AJAX, Visual Studio и новыми Expression Studio designer-tools.

В данный момент доступна предварительная версия документации "WPF/E" (codename) CTP SDK (Dec 2006), центр поддержки разработчиков MSDN "WPF/E" (codename) Dev Center, сборник часто задаваемых вопросов "WPF/E" FAQ и “WPF/E” Downloads, среди которых: набор примеров “WPF/E” (codename) Community Technology Preview Sample Pack, триальная версия нового Web-редактора от Microsoft Microsoft Expression Web Free Trial, конвертер SWF to XAML Converter.

Если поддержка WPF/E уже установлена, то можно посмотреть "вживую" пару примеров: Page Turn Media - попробуйте полистать страницы с картинками, Media Library - показ подгружаемого видео, Sprawl Game - небольшая интерактивная игра. На главной странице Developer-центра есть и другие примеры. Ощущение после просмотра одно: впечатляет!

Очень интересен пример взаимодействия Flash и WPF/E, обратите на него внимание. В этом примере левая половина города реализована с помощью WPF/E, а правая с помощью Flash, в чем можно легко убедиться, проанализировав код страницы, никакой заметной разницы при переходе анимации от одной половины к другой не наблюдается.

Nikhil Kothari добавил в свой Script# (С# компилятор, генерирующий в качестве результата JavaScript, а не IL) поддержку работы c WPF/E и приводит пример взаимодействия различных технологий: AJAX, Script#, JSONP и WPF/E.

Окончательная дата выхода релиза будет объявлена позднее, но планируется на первую половину 2007 года. CTP прекратит свою работу 15 февраля 2007 года.

WPF/E не является заменой WPF. Это дополнение к WPF для работы с мультимедийным контентом в браузерах. По сравнению с WPF, в WPF/E не будет включаться поддержка 3D и GPU визуализации, присутствующей в .NET 3.0 из-за кросс-платформенной совместимости, но, возможно, по желанию пользователей, они будут включены перед выпуском финального релиза.

Technorati tags: , ,
Blogus tags : ,,

вторник, 5 декабря 2006 г.

JSON (JavaScript Object Notation)

Изучая различные расширения для Blog'ов, обратил внимание, что Google стал использовать JSON как альтернативу XML при обмене данными. Решил познакомиться с ним поближе. Посмотреть, как выглядят записи, отформатированные JSON в сравнении с XML, можно тут. Существует RFC #4627, описывающий этот стандарт.

Согласно Википедии:

JSON (англ. JavaScript Object Notation) — это легкий формат обмена данными. Отличительной чертой является то, что он легкочитаем для человека. Этот формат легко обрабатывается и генерируется программами. Он основан на языке JavaScript, Standard ECMA-262 3rd Edition — December 1999.

JSON — это текстовый формат, не зависящий от языка программирования. JSON использует соглашения близкие к Си-подобным языкам, включая C, C++, C#, Java, JavaScript, Perl, Python, и много других. Все это делает JSON идеальным языком для обмена данными.

JSON строится на двух структурах:

  • Набор пар имя/значение. В различных языках это реализовано как объект, запись, структура, словарь, хеш-таблица, список с ключом или ассоциативный массив.
  • Упорядоченный список значений. Во многих языках это реализовано как массив, вектор, список, или последовательность.

Это универсальные структуры данных. Теоретически все современные языки программирования поддерживают их в одной или другой форме. Так как JSON используется для обмена данными между различными языками программирования, то имеет смысл строить его на этих структурах.

В JSON используются их следующие формы:

  • Объект — это неупорядоченное множество пар имя/значение. Объект начинается с символа { и заканчивается символом }. Каждое значение следует за : и пары имя/значение отделяются запятыми.
  • Массив — это упорядоченное множество значений. Массив начинается символом [ и заканчивается символом ]. Значения отделяются запятыми.
  • Значение может быть строкой в двойных кавычках, или числом, или true, или false, или null, или объектом, или массивом. Эти структуры могут быть вложены друг в друга.
  • Строка — это упорядоченное множество из нуля или более символов юникода, заключенные в двойные кавычки, с использованием escape-последовательностей начинающихся с обратной косой черты (backslash). Символы представляются простой строкой.

Подробнее можно посмотреть на сайте, посвященном описанию нового формата. Там же можно найти ссылки на библиотеки, реализующие JSON, для большого количества языков и другие проекты, использующие этот формат. Для меня интересными оказались:

json-xslt

An XSLT 1.0 stylesheet that can transform any XML file into JSON. You can use the stylesheet along with a server-based XSLT transform tool, such as eBay's XSLT server that works with the REST API. You could also use it with client-side tool, if you are into that kind of thing.

Отличная статья Генерирование JSON из XML для использования с Ajax:

Несколько лет назад многие разработчики сделали ставку на XML, XSLT, Extensible HTML (XHTML) и набор основанных на тегах "X"-языков. Сейчас новой страстью является Asynchronous JavaScript and XML (AJAX), и инвесторы обратили взгляд в сторону управляемых данными полнофункциональных Интернет-приложений (Rich Internet Applications), использующих JavaScript-код. Но объединили ли разработчики XML и эту новую технологию?

Конечно, вы могли бы использовать синтаксический анализатор XML в Web-клиенте для чтения данных, но при этом возникают две проблемы. Во-первых, в целях защиты XML-данные могут читаться только из того же домена, которому принадлежит страница. Это не слишком весомый ограничивающий фактор, но он является причиной некоторой головной боли при разработке, а также затрудняет создание DHTML-виджетов. Во-вторых, чтение и синтаксический анализ XML являются медленными процедурами.

Другим вариантом является разрешение серверу выполнить работу по синтаксическому анализу XML путем конфигурирования его на передачу в браузер данных, закодированных в виде JavaScript-кода, или в более модном стиле - JavaScript Object Notation (JSON). В данной статье я демонстрирую три способа генерирования JSON из XML-данных, используя язык XSLT V2 и процессор Saxon XSLT V2:

  • Простое кодирование.
  • Загрузка данных через вызовы функций.
  • Кодирование объектов.

Стандарт JSON-RPC, аналог XML-RPC для удаленного вызова процедур.

Как я писал выше много наработок, использующих JSON у Google: Using JSON with Google Data APIs, JSON RPC Example Project, JSON Interop Using JSNI, Google Data APIs - JSON Samples и другие.

На оригинальном сайте приводится его сравнение с XML. По словам разработчиков (перевод мой):

XML является превосходным языком описания данных... Но, к сожалению, XML не очень хорошо подходит для обмена данными, как гаечный ключ плохо подходит для забивания гвоздей. XML содержит много багажа и не соответствует модели данных большинства языков программирования. Многие программисты, видя XML в первый раз, бывают шокированы тем, насколько он уродлив и неэффективен. Похоже, что эта первая реакция и является истинной на самом деле. Существует другая текстовая нотация, имеющая все преимущества XML, но более приспособленная для обмена данными. Это JSON...

Существует много обоснованных точек зрения (для примера прочитайте этот документ) утверждающих, что XML очень проблематично использовать как формат обмена данными, но все его недостатки покрываются его переносимостью и открытостью.

JSON предлагает те же преимущества переносимости и открытости, но без недостатков. Давайте, сравним XML и JSON по качествам, которые XML сообщество считает наиболее важными.

Само сравнение достаточно длинное и желающих с ним ознакомится отправляю к этой статье: JSON: The Fat-Free Alternative to XML

Из различных open source реализаций для .NET мне приглянулся Jayrock:

Jayrock is a modest and an open source (LGPL) implementation of JSON and JSON-RPC for the Microsoft .NET Framework, including ASP.NET. What can you do with Jayrock? In a few words, Jayrock allows clients, typically JavaScript in web pages, to be able to call into server-side methods using JSON as the wire format and JSON-RPC as the procedure invocation protocol. The methods can be called synchronously or asynchronously.

Compatibility & compliance:

Microsoft Windows Linux Microsoft .NET Framework Mono Python Microsoft Internet Explorer FireFox Opera Open Source (OSI) Certified

Technorati tags: , ,
Blogus tags : ,,

пятница, 1 декабря 2006 г.

Инструменты, полезные Web-разработчикам

Web Development Helper - отличный инструмент для разработчиков ASP.NET, Ajax/Java Script. Возможности:

  • A warning when either debug or trace have been turned on. Ability to hide trace information from the page, and view it in a separate dialog, so it does not get in the way of your page's layout.
  • Ability to view the page's view state (in various forms: raw, parsed, and decoded) to help you optimize your state management logic.
  • Ability to view items stored in cache, and remove them for testing purposes.
  • Ability to shutdown the application (unloading the associated appdomain), in order to test starting it from a clean state.
  • Ability to log all HTTP (and HTTPS) traffic between the browser and your server, and view request and response details, including those performed via XMLHttpRequest.
  • Ability to view the live HTML DOM using a DOM Inspector that allows viewing all elements, selected elements, or elements matching ID or CSS class. For each element, you can see the markup, attributes, and style attributes.
  • Ability to view rich error information for script errors (full call stack, script URL and line number), as well as a script immediate window to execute some script against the current document.

Internet Explorer Developer Toolbar - инструмент для анализа и обработки Web-страниц. Возможности:

  • Explore and modify the document object model (DOM) of a Web page.
  • Locate and select specific elements on a Web page through a variety of techniques.
  • Selectively disable Internet Explorer settings.
  • View HTML object class names, ID's, and details such as link paths, tab index values, and access keys.
  • Outline tables, table cells, images, or selected tags.
  • Validate HTML, CSS, WAI, and RSS Web feed links.
  • Display image dimensions, file sizes, path information, and alternate (ALT) text.
  • Immediately resize the browser window to a new resolution.
  • Selectively clear the browser cache and saved cookies. Choose from all objects or those associated with a given domain.
  • Choose direct links to W3C specification references, the Internet Explorer team weblog (blog), and other resources.
  • Display a fully featured design ruler to help accurately align and measure objects on your pages.

Firebug - расширение FireFox для отладки Web-сайтов. Возможности:

Web Developer - расширение FireFox, аналог Internet Explorer Developer Toolbar.

XML Developer Toolbar - расширение FireFox для обработки XML. Возможности:

  • Schema Generation
  • DTD Generation
  • Schema Validation
  • XML -> Schema Validation
  • Style Manipulation
  • XSL Transformations on-the-fly
  • DOM Inspector incorporated views
  • Document statistics for future Semantic Web purposes
  • SOA Module (coming soon)

Technorati tags:
Blogus tags :

Visual Studio Addins

Подборка из нескольких addin'ов к Visual Studio:

Visual Studio Window Manager - open source addin к VS 2003 и VS 2005 для управления различными аспектами окон в VS. Он позволяет сохранять положение, размеры, состояние автоскрытия, так же есть возможность на лету переключаться между различными сохраненными состояниями.

Debugger Visualizer for MethodInfo, DynamicMethod, and MethodBase - addin визуализатор генерируемого кода. Основан на DebuggerVisualizer for DynamicMethod (Show me the IL). По генерации кода интересная информация содержится в Blog'e Managed CodeGen, рекомендую к прочтению. Интересно также: Debugging Dynamically Generated Code (Reflection.Emit), No Code Can Hide from the Profiling API in the .NET Framework 2.0

PowerToys for the Visual Studio 2005 Class Designer and Distributed System Designers - набор addin'ов для расширения Class Designer и Distributed System Designers за счет более мощных команд форматирования, работы с окнами и других возможностей. Список релизов

Data Debugger Visualizer - доступный в исходных кодах на CodeProject визуализатор DataSet.

SolutionZipper: VS2005 Addin Cleans and Zips a Solution in One Step - еще один addin с CodeProject для очистки и сохранения проекта в Zip-архиве.

Conchango Xml Visualizer for Visual Studio 2005 (RTM) - визулизатор XML для просмотра во время отладки. Исходные коды. Вывод построен на Netron Reloaded - open source библиотеки для построения диаграмм, рисования графов и т.п.

CvsIn Addin for Visual Studio .Net 2002 and 2003 and Visual Studio 2005 - addin для работы с CVS из Visual Studio.

Line Counter - addin для подсчета статистики по строкам исходного кода в проекте.

Visualizer for System.String - визуализатор для отображения байтов, соответствующих строке в различных кодировках.

DPack - бесплатная коллекция расширений для Visual Studio .NET 2003 и 2005. Содержит:

  • Code Browser
  • File Browser
  • Solution Browser
  • Framework Browser
  • Browsers
  • Numbered Bookmarks
  • Surround With
  • Code Navigation
  • Solution Statistics
  • Solution Backup
  • Miscellaneous Features
  • DPack Keyboard Mapping Scheme
  • Delphi Keyboard Mapping Scheme

Подробнее читайте на сайте и в Blog'е.

Resource Refactoring Tool - addin для переноса жестко запрограммированных строк из кода в ресурсные файлы. Я уже писал о нём немного ранее, как и о пакете Power Toys for Visual Studio.

Consolas Font Pack for Microsoft Visual Studio 2005 - не совсем addin: это набор высокочетких моноширинных шрифтов, оптимизированных под ClearType. При установке меняет шрифт по умолчанию используемый в Visual Studio на Consolas.

XML Notepad 2007 - совсем не addin smile_regular, но тем не менее полезный инструмент для работы с XML.

Статья по созданию собственных addin'ов с нуля.

Visual Studio 2005 Automation Samples - набор примеров как расширять функциональность Visual Studio от Microsoft.

Technorati tags:
Blogus tags :