Denis Gladkikh
Russian   |  English

Выбранный тег: XML

NHibernate – auto mapper

В продолжение темы про NHibernate: xorets сделал мне дельное замечание по поводу того, что неуместно наследоваться от класса Configuration без необходимости: а сделал я это не просто так, а потому что была у нас задача создавать маппинг наших объектов в NHibernate при помощи наших собственных методанных, а так как некоторые необходимые методы были protected в классе Configuration мне и пришлось от него унаследоваться (пример, кстати, я взял откуда то). Хотел вам рассказать как реализовать автоматический маппинг, но вспомнил про FluentnHibernate и остановился. Это в нашем случае он не подходил, так как у нас были свои метаданные, а в обычном случае метаданными могут являться сами типы объектов и при помощи reflection можно получить достаточную информацию, чтобы замапить тип на таблицу, такое и предоставляет FluentnHibernate - Auto mapping. Вообще, если вы все же столкнетесь с такой задачей, как автоматический маппинг из своих методанных – то рекомендую не терять время на разбор кода NHibernate, а делать следующее – создавать по методанным обычные xml маппинги NHibernate и их уже подсовывать конфигурации (Так собственно и работают Fluent и ActiveRecord, если я ничего не путаю). Синтаксис xml маппинга и все подводные камни уже хорошо везде описаны, потому я и считаю это лучшим способом.



Пропал IntelliSense при редактировании XAML/XML файлов в Visual Studio 2008

Каким-то чудесным образом пропал IntelliSense при редактировании XML файлов, заметил открыв web.config файл. Первое, что пришло в голову – сделать Repair студии – не помогло, сброс настроек из Tools->Import and Exports Settings… тоже не дал результатов. В настройках (Tools->Options) зато увидел, что есть проблемы на вкладках настройки Text Editor->XML: на последних двух виднеется только текст, что настройки не удалось прочитать.

Немного погуглив, набрел на эту тему на http://stackoverflow.com: Visual Studio 2008 Xaml Editor not working / disappeared

Из консоли вызвал пару раз

"%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\ide\devenv" /resetSkipPkgs
"%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\ide\devenv" /resetsettings

Я запускал cmd из под администратора (Windows 7) и там уже набирал эти команды. Вроде помогло.



Html 2 Rss – осталась только задумка…

Зарегистрировался на livejournal.com я давно, а вот начал пользоваться недавно. К набору друзей я отношусь трепетно, так как я, действительно, читаю френд ленту, сам не ищу новых интересных блоггеров (кстати, может подскажите, кого стоит добавить во френд ленту?), но бывает добавляю на кого напорюсь случайно или кто меня добавит. Так вот, что мне не нравится, так это то, что нет rss своей френд ленты. Порывшись по интернету, я нашел кучу способов преобразования html в rss (есть вариант где чуть ли не ИИ исследовал страницу и находил как верно ее экспортировать в rss), но по настоящему мне ни один способ не подошел – в итоге все равно что-то не работало. Тут у меня и родилась идея создать собственный конвертер из html в rss. Опять таки, порывшись и погуглив я набрел на решение Html Agility Pack (еще смотрел Data Extracting SDK, но вроде функциональность не та, да и пару необоснованных NullReferenceException сделали свое дело). Если скачать Html Agility Pack – то там даже пример есть как при помощи него сделать rss из html, у меня как раз и была идея: либо разбирать с возможностью настройки на RegEx, либо на XPath (в случае данной библиотеки - это XPath). Правда, HtmlAgilityPack мне тоже пришлось поправить немного, не знаю с чем это связано, но там мне мешал метод MoveToRoot у HtmlNodeNavigator – он вызывался не в совсем нужный момент и мешал мне в разборе (я просто закомментировал его функциональность).



Когда нужно сделать PDF документ

Если перед Вами стоит задача - создавать простенькие (или не совсем) pdf документы в вашем приложении - это могут быть и отчеты и рецепты, ну либо вы захотите печатать так информацию о ваших объектах, то для решения этой задачи можно воспользоваться, к примеру, установленным OpenOffice и его возможностями (это тяжеловестно), а можно библиотекой iTextSharp (Free C#-PDF library), вот про это я и хочу поведать небольшой пример, при помощи которого я создам такой вот документ: