<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technogeek &#187; Разработка ПО</title>
	<atom:link href="http://technogeek.ru/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://technogeek.ru</link>
	<description>by Darth Bender</description>
	<lastBuildDate>Sun, 30 May 2010 20:30:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Обновление VS Event Popup Toaster</title>
		<link>http://technogeek.ru/2010/01/19/497/</link>
		<comments>http://technogeek.ru/2010/01/19/497/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 01:06:37 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[Add-in]]></category>
		<category><![CDATA[Event Toaster]]></category>
		<category><![CDATA[Sketch in .NET]]></category>
		<category><![CDATA[Technogeek Labs]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=497</guid>
		<description><![CDATA[Выпустил обновление VS Event Popup Toaster.
Подробности на сайте проекта.



Technogeek Labs


]]></description>
			<content:encoded><![CDATA[<p>Выпустил обновление <a href="http://labs.technogeek.ru/eventtoaster">VS Event Popup Toaster</a>.<br />
<a href="http://labs.technogeek.ru/2010/01/19/67/">Подробности на сайте проекта</a>.</p>
<table>
<tr>
<td><img src="http://labs.technogeek.ru/favicon.ico" alt="" /></td>
<td><a href="http://labs.technogeek.ru">Technogeek Labs</a></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2010/01/19/497/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Folder Sharing в Google Docs</title>
		<link>http://technogeek.ru/2009/09/22/449/</link>
		<comments>http://technogeek.ru/2009/09/22/449/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 14:38:30 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Интернет]]></category>
		<category><![CDATA[Программы]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Docs]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=449</guid>
		<description><![CDATA[До сих пор средствами Google Docs можно было открывать общий доступ только на документы, и, строго говоря, с точки зрения пользовательского интерфейса ничего не поменялось. Тем не менее, в новой редакции Google Docs API эта фича стала доступной.
Я написал небольшое приложение на Java, для автоматизации этого процесса, до тех пор пока нововведение не будет анонсировано [...]]]></description>
			<content:encoded><![CDATA[<p>До сих пор средствами Google Docs можно было открывать общий доступ только на документы, и, строго говоря, с точки зрения пользовательского интерфейса ничего не поменялось. Тем не менее, в <a title="Google Docs API" href="http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html" target="_blank">новой редакции Google Docs API</a> эта фича стала доступной.</p>
<p>Я написал небольшое приложение на Java, для автоматизации этого процесса, до тех пор пока нововведение не будет анонсировано официально.</p>
<p>Для запуска необходимо настроить, например, Eclipse <a title="Google Docs Eclipse settings" href="http://code.google.com/apis/gdata/articles/eclipse.html" target="_blank">таким образом</a>, и в функцию <strong>main</strong> скопировать следующий код:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">List<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> folderNames <span style="color: #339933;">=</span> <span style="color: #003399;">Arrays</span>.<span style="color: #006633;">asList</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Folder1&quot;</span>, <span style="color: #0000ff;">&quot;Folder2&quot;</span>, <span style="color: #0000ff;">&quot;...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
List<span style="color: #339933;">&lt;</span>String<span style="color: #339933;">&gt;</span> userMails <span style="color: #339933;">=</span> <span style="color: #003399;">Arrays</span>.<span style="color: #006633;">asList</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;user1@domain.com&quot;</span>, <span style="color: #0000ff;">&quot;user2@domain.com&quot;</span>, <span style="color: #0000ff;">&quot;...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> role <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;reader&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// or &quot;owner&quot;, &quot;writer&quot;, &quot;peeker&quot;, &quot;none&quot;</span>
<span style="color: #003399;">String</span> appsName <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;MyComp-MyApps-version&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> username <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;username&quot;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> password <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;password&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>role.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;reader&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>role.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;writer&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>role.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;owner&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>role.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;none&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>role.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;peeker&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>  <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
DocsService client <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DocsService<span style="color: #009900;">&#40;</span>appsName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
client.<span style="color: #006633;">setUserCredentials</span><span style="color: #009900;">&#40;</span>username, password<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
DocumentQuery query <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DocumentQuery<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">URL</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://docs.google.com/feeds/default/private/full/-/folder&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DocumentListFeed resultFeed <span style="color: #339933;">=</span> client.<span style="color: #006633;">getFeed</span><span style="color: #009900;">&#40;</span>query, DocumentListFeed.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>DocumentListEntry entry <span style="color: #339933;">:</span> resultFeed.<span style="color: #006633;">getEntries</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> name <span style="color: #339933;">:</span> folderNames<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>entry.<span style="color: #006633;">getTitle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getPlainText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">equalsIgnoreCase</span><span style="color: #009900;">&#40;</span>name<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> mail <span style="color: #339933;">:</span> userMails<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				AclRole aclRole <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> AclRole<span style="color: #009900;">&#40;</span>role<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				AclScope aclScope <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> AclScope<span style="color: #009900;">&#40;</span>AclScope.<span style="color: #006633;">Type</span>.<span style="color: #006633;">USER</span>, mail<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003399;">AclEntry</span> aclEntry <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">AclEntry</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				aclEntry.<span style="color: #006633;">setRole</span><span style="color: #009900;">&#40;</span>aclRole<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				aclEntry.<span style="color: #006633;">setScope</span><span style="color: #009900;">&#40;</span>aclScope<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				client.<span style="color: #006633;">insert</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">URL</span><span style="color: #009900;">&#40;</span>entry.<span style="color: #006633;">getAclFeedLink</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getHref</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>, aclEntry<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	AclFeed aclFeed <span style="color: #339933;">=</span> client.<span style="color: #006633;">getFeed</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">URL</span><span style="color: #009900;">&#40;</span>entry.<span style="color: #006633;">getAclFeedLink</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getHref</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>, AclFeed.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">AclEntry</span> aclEntry <span style="color: #339933;">:</span> aclFeed.<span style="color: #006633;">getEntries</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>
		aclEntry.<span style="color: #006633;">getScope</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; (&quot;</span> <span style="color: #339933;">+</span> aclEntry.<span style="color: #006633;">getScope</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getType</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;) : &quot;</span> <span style="color: #339933;">+</span> aclEntry.<span style="color: #006633;">getRole</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Здесь списки <strong>folderNames</strong> и <strong>userMails </strong>необходимо заполнить соответствующими значениями. Параметр <strong>&#8220;&#8230;&#8221;</strong> в сигнатуре вызова функции <strong>asList</strong> &#8211; отсебятина, предназначенная просто показать, что количество параметров функции можно смело расширять. В конечном варианте когда его надо убрать. Вместо <strong>username </strong>и <strong>password </strong>вписать свои явки и пароли для доступа в к приложениям Google. Ну и роль выставить такую, какую требуется.</p>
<p>Теперь пользователи, с которыми вы разделили доступ к папке, смогут посмотреть на ее содержимое по ссылке: <a href="http://docs.google.com/#folders-shared-with-me" target="_blank">http://docs.google.com/#folders-shared-with-me</a></p>
<p>Тем не менее, не все сразу безоблачно заработает. Пользователи, которым вы разрешили доступ на изменение, не увидят созданные ими документы в этой папке. Чтобы все заработало как полагается, им необходимо добавить вас в соавторы их документов, а вам необходимо будет перетащить эти документы из общего списка в расшареную папку.</p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2009/09/22/449/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Про опции /debug /optimize компилятора C#</title>
		<link>http://technogeek.ru/2009/06/16/414/</link>
		<comments>http://technogeek.ru/2009/06/16/414/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 09:47:13 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=414</guid>
		<description><![CDATA[Неплохая статейка, описывающая роли ключей /debug /optimize, компилятора C#:
http://blogs.msdn.com/ericlippert/archive/2009/06/11/what-does-the-optimize-switch-do.aspx
]]></description>
			<content:encoded><![CDATA[<p>Неплохая статейка, описывающая роли <span>ключей /debug /optimize, компилятора C#:</span></p>
<p><a href="http://blogs.msdn.com/ericlippert/archive/2009/06/11/what-does-the-optimize-switch-do.aspx" target="_blank">http://blogs.msdn.com/ericlippert/archive/2009/06/11/what-does-the-optimize-switch-do.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2009/06/16/414/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sketch in .NET VS Event Toaster</title>
		<link>http://technogeek.ru/2009/03/24/350/</link>
		<comments>http://technogeek.ru/2009/03/24/350/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 18:05:59 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Программы]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[Add-in]]></category>
		<category><![CDATA[Event Toaster]]></category>
		<category><![CDATA[Sketch in .NET]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VS 2005]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=350</guid>
		<description><![CDATA[Как бы это не было смешно, анонсированное в июле прошлого года обновление Sketch in .NET Visual Studio Event Toaster пролежало все это время со статусом Hidden.
Но, как говориться, лучше поздно, чем никогда.
Исправляю свою ошибку, вот правильная ссылка на релиз:
http://vspopuptoaster.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=15414
Страница проекта:
http://vspopuptoaster.codeplex.com/
]]></description>
			<content:encoded><![CDATA[<p>Как бы это не было смешно, <a href="http://technogeek.ru/2008/07/17/149/">анонсированное</a> в июле прошлого года обновление <a href="http://technogeek.ru/2008/05/16/126/">Sketch in .NET Visual Studio Event Toaster</a> пролежало все это время со статусом Hidden.<br />
Но, как говориться, лучше поздно, чем никогда.</p>
<p>Исправляю свою ошибку, вот правильная ссылка на релиз:<br />
<a href="http://vspopuptoaster.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=15414">http://vspopuptoaster.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=15414</a></p>
<p>Страница проекта:<br />
<a href="http://vspopuptoaster.codeplex.com/">http://vspopuptoaster.codeplex.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2009/03/24/350/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>По следам PDC. C# 4.0 Features. Dynamycally Typed Objects.</title>
		<link>http://technogeek.ru/2009/02/09/289/</link>
		<comments>http://technogeek.ru/2009/02/09/289/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 18:26:47 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=289</guid>
		<description><![CDATA[Небольшой обзор того, что нам готовит новая версия спецификации языка.
Смена первой цифры произошла благодаря четырём основным фичам:

Dynamycally Typed Objects
Optional and Named Prameters
Improved COM Interoperability
Co- and Conra-variance

Сегодня подробней рассмотрим первую.
Dynamycally Typed Objects
Динамическая система типов является, пожалуй, самым основным нововведением языка. Судя по лекциям с PDC 2008, c точки зрения архитектуры .NET добавился еще один компонент &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Небольшой обзор того, что нам готовит новая версия спецификации языка.<br />
Смена первой цифры произошла благодаря четырём основным фичам:</p>
<ul>
<li>Dynamycally Typed Objects</li>
<li>Optional and Named Prameters</li>
<li>Improved COM Interoperability</li>
<li>Co- and Conra-variance</li>
</ul>
<p>Сегодня подробней рассмотрим первую.</p>
<p><strong>Dynamycally Typed Objects</strong><br />
Динамическая система типов является, пожалуй, самым основным нововведением языка. Судя по лекциям с PDC 2008, c точки зрения архитектуры .NET добавился еще один компонент &#8211; DLR (dynamic object runtime), являющийся, по сути, надстройкой над CLR. С точки зрения языка добавилось ключевое слово <strong>dymanic</strong>. И одноименный тип добавился в .NET Type System.<br />
Какое время назад Microsoft Research утверждала, что реализация будет происходить так: на момент компиляции объект будет не типизирован, а тэгирован, и на момент выполнения тег заменяется на свежевычесленный тип и вместо &#8220;неопределенного&#8221; типа подставляется &#8220;настоящий&#8221; и дальше все работает по старой схеме. Собственно DLR этим и должен заниматься.<br />
Но что же происходит на самом деле?<br />
<span id="more-289"></span><br />
Посмотрим как оно работает на примере C# сборки.<br />
Пусть у нас есть класс:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">namespace</span> delme.<span style="color: #0000FF;">ext</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> CDelmeExt
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> WhoAreYou<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">bool</span> tellTruth<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>tellTruth<span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">return</span> <span style="color: #666666;">&quot;It's me, CDelmeExt, man!&quot;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0600FF;">return</span> <span style="color: #666666;">&quot;Hey, I can't tell you, man!&quot;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Сворачиваем его в сборку. Пусть она зовется &#8220;delme.ext.dll&#8221;.<br />
Ранее для вызова метода WhoAreYou() класса CDelmeExt при динамической подгрузке сборки надо было создавать вариации на тему:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Assembly assembly <span style="color: #008000;">=</span> Assembly.<span style="color: #0000FF;">LoadFrom</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;./delme.ext.dll&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">object</span> instance <span style="color: #008000;">=</span> assembly.<span style="color: #0000FF;">CreateInstance</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;delme.ext.CDelmeExt&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
Type delmeext <span style="color: #008000;">=</span> assembly.<span style="color: #0000FF;">GetType</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;delme.ext.CDelmeExt&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">object</span> res <span style="color: #008000;">=</span> delmeext.<span style="color: #0000FF;">InvokeMember</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;WhoAreYou&quot;</span>, 
                BindingFlags.<span style="color: #0000FF;">InvokeMethod</span> <span style="color: #008000;">|</span> BindingFlags.<span style="color: #0600FF;">Default</span>, 
                <span style="color: #0600FF;">null</span>, 
                instance, 
                <span style="color: #008000;">new</span> <span style="color: #FF0000;">object</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">if</span><span style="color: #000000;">&#40;</span>res <span style="color: #008000;">is</span> <span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>
    MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>res<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Теперь можно сделать проще:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Assembly assembly <span style="color: #008000;">=</span> Assembly.<span style="color: #0000FF;">LoadFrom</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;./delme.ext.dll&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
dynamic instance <span style="color: #008000;">=</span> assembly.<span style="color: #0000FF;">CreateInstance</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;delme.ext.CDelmeExt&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">object</span> res  <span style="color: #008000;">=</span> instance.<span style="color: #0000FF;">WhoAreYuo</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>res <span style="color: #008000;">is</span> <span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>
    MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>res<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Первая мысль возникает о том, что <strong>dynamic</strong> очень похож на <strong>object</strong>, однако в этом случае не происходит &#8220;упаковки&#8221; (boxing) и &#8220;распаковки&#8221; (unboxing) типа. Он просто вычисляется на момент выполнения.</p>
<p>Однако взглянув на MSIL нас настигает откровение.<br />
<strong>Как было</strong>. Случай с InvokeMember:</p>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;">  <span style="color: #339933;">.</span>entrypoint
  <span style="color: #339933;">.</span>custom instance void <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>STAThreadAttribute<span style="color: #339933;">::.</span>ctor<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #009900; font-weight: bold;">&#41;</span> = <span style="color: #009900; font-weight: bold;">&#40;</span> <span style="color: #0000ff;">01</span> <span style="color: #0000ff;">00</span> <span style="color: #0000ff;">00</span> <span style="color: #0000ff;">00</span> <span style="color: #009900; font-weight: bold;">&#41;</span> 
  <span style="color: #339933;">//</span> <span style="color: #000000; font-weight: bold;">Code</span> <span style="color: #000000; font-weight: bold;">size</span>       <span style="color: #0000ff;">95</span> <span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #0000ff;">0x5f</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  <span style="color: #339933;">.</span>maxstack  <span style="color: #0000ff;">8</span>
  <span style="color: #339933;">.</span>locals init <span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">0</span><span style="color: #009900; font-weight: bold;">&#93;</span> class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly <span style="color: #7f007f;">'assembly'</span><span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">1</span><span style="color: #009900; font-weight: bold;">&#93;</span> object <span style="color: #7f007f;">'instance'</span><span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">2</span><span style="color: #009900; font-weight: bold;">&#93;</span> class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span> delmeext<span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">3</span><span style="color: #009900; font-weight: bold;">&#93;</span> object res<span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#93;</span> object<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #009900; font-weight: bold;">&#93;</span> <span style="color: #00007f;">CS</span>$<span style="color: #0000ff;">0</span>$<span style="color: #0000ff;">0000</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0000<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;./delme.ext.dll&quot;</span>
  IL_0005<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">call</span>       class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly<span style="color: #339933;">::</span>LoadFrom<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_000a<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>0
  IL_000b<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>0
  IL_000c<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;delme.ext.CDelmeExt&quot;</span>
  IL_0011<span style="color: #339933;">:</span>  callvirt   instance object <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly<span style="color: #339933;">::</span>CreateInstance<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0016<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>1
  IL_0017<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>0
  IL_0018<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;delme.ext.CDelmeExt&quot;</span>
  IL_001d<span style="color: #339933;">:</span>  callvirt   instance class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span> <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly<span style="color: #339933;">::</span>GetType<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0022<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>2
  IL_0023<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>2
  IL_0024<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;WhoAreYou&quot;</span>
  IL_0029<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4     <span style="color: #0000ff;">0x100</span>
  IL_002e<span style="color: #339933;">:</span>  ldnull
  IL_002f<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>1
  IL_0030<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>1
  IL_0031<span style="color: #339933;">:</span>  newarr     <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Object
  IL_0036<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>s    <span style="color: #00007f;">CS</span>$<span style="color: #0000ff;">0</span>$<span style="color: #0000ff;">0000</span>
  IL_0038<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>s    <span style="color: #00007f;">CS</span>$<span style="color: #0000ff;">0</span>$<span style="color: #0000ff;">0000</span>
  IL_003a<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>0
  IL_003b<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>1
  IL_003c<span style="color: #339933;">:</span>  box        <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Boolean
  IL_0041<span style="color: #339933;">:</span>  stelem<span style="color: #339933;">.</span>ref
  IL_0042<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>s    <span style="color: #00007f;">CS</span>$<span style="color: #0000ff;">0</span>$<span style="color: #0000ff;">0000</span>
  IL_0044<span style="color: #339933;">:</span>  callvirt   instance object <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span><span style="color: #339933;">::</span>InvokeMember<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #339933;">,</span>
                                                                           valuetype <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>BindingFlags<span style="color: #339933;">,</span>
                                                                           class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Binder<span style="color: #339933;">,</span>
                                                                           object<span style="color: #339933;">,</span>
                                                                           object<span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0049<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>3
  IL_004a<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>3</pre></div></div>

<p>Тут все ясно, и прозрачно.<br />
<strong>А вот что стало</strong>. Случай с динамическим типом выглядит так:</p>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;"><span style="color: #339933;">.</span>method <span style="color: #000000; font-weight: bold;">private</span> hidebysig static void  Main<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #009900; font-weight: bold;">&#41;</span> cil managed
<span style="color: #009900; font-weight: bold;">&#123;</span>
  <span style="color: #339933;">.</span>entrypoint
  <span style="color: #339933;">.</span>custom instance void <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>STAThreadAttribute<span style="color: #339933;">::.</span>ctor<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #009900; font-weight: bold;">&#41;</span> = <span style="color: #009900; font-weight: bold;">&#40;</span> <span style="color: #0000ff;">01</span> <span style="color: #0000ff;">00</span> <span style="color: #0000ff;">00</span> <span style="color: #0000ff;">00</span> <span style="color: #009900; font-weight: bold;">&#41;</span> 
  <span style="color: #339933;">//</span> <span style="color: #000000; font-weight: bold;">Code</span> <span style="color: #000000; font-weight: bold;">size</span>       <span style="color: #0000ff;">123</span> <span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #0000ff;">0x7b</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  <span style="color: #339933;">.</span>maxstack  <span style="color: #0000ff;">7</span>
  <span style="color: #339933;">.</span>locals init <span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">0</span><span style="color: #009900; font-weight: bold;">&#93;</span> class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly <span style="color: #7f007f;">'assembly'</span><span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">1</span><span style="color: #009900; font-weight: bold;">&#93;</span> object <span style="color: #7f007f;">'instance'</span><span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">2</span><span style="color: #009900; font-weight: bold;">&#93;</span> object res<span style="color: #339933;">,</span>
           <span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #0000ff;">3</span><span style="color: #009900; font-weight: bold;">&#93;</span> bool <span style="color: #00007f;">CS</span>$<span style="color: #0000ff;">4</span>$<span style="color: #0000ff;">0000</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0000<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">nop</span>
  IL_0001<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;./delme.ext.dll&quot;</span>
  IL_0006<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">call</span>       class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly<span style="color: #339933;">::</span>LoadFrom<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_000b<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>0
  IL_000c<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>0
  IL_000d<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;delme.ext.CDelmeExt&quot;</span>
  IL_0012<span style="color: #339933;">:</span>  callvirt   instance object <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Reflection<span style="color: #339933;">.</span>Assembly<span style="color: #339933;">::</span>CreateInstance<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0017<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>1
  IL_0018<span style="color: #339933;">:</span>  ldsfld     class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;&gt; delme<span style="color: #339933;">.</span>Program<span style="color: #339933;">/</span><span style="color: #7f007f;">'&lt;Main&gt;o__SiteContainer0'</span><span style="color: #339933;">::</span><span style="color: #7f007f;">'&lt;&gt;p__Site1'</span>
  IL_001d<span style="color: #339933;">:</span>  brtrue<span style="color: #339933;">.</span>s   IL_0047
  IL_001f<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">call</span>       class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>Microsoft<span style="color: #339933;">.</span>CSharp<span style="color: #339933;">.</span>RuntimeBinder<span style="color: #339933;">.</span>RuntimeBinder <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>Microsoft<span style="color: #339933;">.</span>CSharp<span style="color: #339933;">.</span>RuntimeBinder<span style="color: #339933;">.</span>RuntimeBinder<span style="color: #339933;">::</span>GetInstance<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0024<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>0
  IL_0025<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>0
  IL_0026<span style="color: #339933;">:</span>  ldstr      <span style="color: #7f007f;">&quot;WhoAreYuo&quot;</span>
  IL_002b<span style="color: #339933;">:</span>  ldtoken    <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Object
  IL_0030<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">call</span>       class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span> <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span><span style="color: #339933;">::</span>GetTypeFromHandle<span style="color: #009900; font-weight: bold;">&#40;</span>valuetype <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>RuntimeTypeHandle<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0035<span style="color: #339933;">:</span>  ldnull
  IL_0036<span style="color: #339933;">:</span>  newobj     instance void <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>Microsoft<span style="color: #339933;">.</span>CSharp<span style="color: #339933;">.</span>RuntimeBinder<span style="color: #339933;">.</span>CSharpCallPayload<span style="color: #339933;">::.</span>ctor<span style="color: #009900; font-weight: bold;">&#40;</span>class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>Microsoft<span style="color: #339933;">.</span>CSharp<span style="color: #339933;">.</span>RuntimeBinder<span style="color: #339933;">.</span>RuntimeBinder<span style="color: #339933;">,</span>
                                                                                                          bool<span style="color: #339933;">,</span>
                                                                                                          bool<span style="color: #339933;">,</span>
                                                                                                          string<span style="color: #339933;">,</span>
                                                                                                          class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span><span style="color: #339933;">,</span>
                                                                                                          class <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span><span style="color: #000000; font-weight: bold;">Type</span><span style="color: #009900; font-weight: bold;">&#91;</span><span style="color: #009900; font-weight: bold;">&#93;</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_003b<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">call</span>       class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;!<span style="color: #0000ff;">0</span>&gt; class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;&gt;<span style="color: #339933;">::</span>Create<span style="color: #009900; font-weight: bold;">&#40;</span>class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSiteBinder<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0040<span style="color: #339933;">:</span>  stsfld     class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;&gt; delme<span style="color: #339933;">.</span>Program<span style="color: #339933;">/</span><span style="color: #7f007f;">'&lt;Main&gt;o__SiteContainer0'</span><span style="color: #339933;">::</span><span style="color: #7f007f;">'&lt;&gt;p__Site1'</span>
  IL_0045<span style="color: #339933;">:</span>  br<span style="color: #339933;">.</span>s       IL_0047
  IL_0047<span style="color: #339933;">:</span>  ldsfld     class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;&gt; delme<span style="color: #339933;">.</span>Program<span style="color: #339933;">/</span><span style="color: #7f007f;">'&lt;Main&gt;o__SiteContainer0'</span><span style="color: #339933;">::</span><span style="color: #7f007f;">'&lt;&gt;p__Site1'</span>
  IL_004c<span style="color: #339933;">:</span>  ldfld      !<span style="color: #0000ff;">0</span> class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;&gt;<span style="color: #339933;">::</span>Target
  IL_0051<span style="color: #339933;">:</span>  ldsfld     class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite`<span style="color: #0000ff;">1</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;&gt; delme<span style="color: #339933;">.</span>Program<span style="color: #339933;">/</span><span style="color: #7f007f;">'&lt;Main&gt;o__SiteContainer0'</span><span style="color: #339933;">::</span><span style="color: #7f007f;">'&lt;&gt;p__Site1'</span>
  IL_0056<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>1
  IL_0057<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>1
  IL_0058<span style="color: #339933;">:</span>  callvirt   instance !<span style="color: #0000ff;">3</span> class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Func`<span style="color: #0000ff;">4</span>&lt;class <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Core<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Scripting<span style="color: #339933;">.</span>Actions<span style="color: #339933;">.</span>CallSite<span style="color: #339933;">,</span>object<span style="color: #339933;">,</span>bool<span style="color: #339933;">,</span>object&gt;<span style="color: #339933;">::</span><span style="color: #000000; font-weight: bold;">Invoke</span><span style="color: #009900; font-weight: bold;">&#40;</span>!<span style="color: #0000ff;">0</span><span style="color: #339933;">,</span>
                                                                                                                                                     !<span style="color: #0000ff;">1</span><span style="color: #339933;">,</span>
                                                                                                                                                     !<span style="color: #0000ff;">2</span><span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_005d<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>2
  IL_005e<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>2
  IL_005f<span style="color: #339933;">:</span>  isinst     <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>String
  IL_0064<span style="color: #339933;">:</span>  ldnull
  IL_0065<span style="color: #339933;">:</span>  cgt<span style="color: #339933;">.</span>un
  IL_0067<span style="color: #339933;">:</span>  ldc<span style="color: #339933;">.</span>i4<span style="color: #339933;">.</span>0
  IL_0068<span style="color: #339933;">:</span>  ceq
  IL_006a<span style="color: #339933;">:</span>  stloc<span style="color: #339933;">.</span>3
  IL_006b<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>3
  IL_006c<span style="color: #339933;">:</span>  brtrue<span style="color: #339933;">.</span>s   IL_007a
  IL_006e<span style="color: #339933;">:</span>  ldloc<span style="color: #339933;">.</span>2
  IL_006f<span style="color: #339933;">:</span>  castclass  <span style="color: #009900; font-weight: bold;">&#91;</span>mscorlib<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>String
  IL_0074<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">call</span>       valuetype <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Windows<span style="color: #339933;">.</span>Forms<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Windows<span style="color: #339933;">.</span>Forms<span style="color: #339933;">.</span>DialogResult <span style="color: #009900; font-weight: bold;">&#91;</span>System<span style="color: #339933;">.</span>Windows<span style="color: #339933;">.</span>Forms<span style="color: #009900; font-weight: bold;">&#93;</span>System<span style="color: #339933;">.</span>Windows<span style="color: #339933;">.</span>Forms<span style="color: #339933;">.</span>MessageBox<span style="color: #339933;">::</span>Show<span style="color: #009900; font-weight: bold;">&#40;</span>string<span style="color: #009900; font-weight: bold;">&#41;</span>
  IL_0079<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">pop</span>
  IL_007a<span style="color: #339933;">:</span>  <span style="color: #00007f; font-weight: bold;">ret</span>
<span style="color: #009900; font-weight: bold;">&#125;</span> <span style="color: #339933;">//</span> <span style="color: #000000; font-weight: bold;">end</span> of method Program<span style="color: #339933;">::</span>Main</pre></div></div>

<p>Во-первых, <b>[1] object &#8216;instance&#8217;</b>. Т.е. на уровне IL объект типа dynamic на самом деле System.Object. Во-вторых, ни одной новой конструкции CLR указывающей нам на то, что есть еще DLR, который вычисляет тип. Все реализовано новыми объектами, фактически расширение .NET Library. Чтобы сделать то же самое без dynamic достаточно написать так:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">Assembly assembly <span style="color: #008000;">=</span> Assembly.<span style="color: #0000FF;">LoadFrom</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;./delme.ext.dll&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">object</span> instance <span style="color: #008000;">=</span> assembly.<span style="color: #0000FF;">CreateInstance</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;delme.ext.CDelmeExt&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
CSharpCallPayload payload <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> CSharpCallPayload<span style="color: #000000;">&#40;</span>
                    RuntimeBinder.<span style="color: #0000FF;">GetInstance</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>,
                    <span style="color: #0600FF;">false</span>,
                    <span style="color: #0600FF;">false</span>,
                    <span style="color: #666666;">&quot;WhoAreYou&quot;</span>,
                    <span style="color: #008000;">typeof</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span><span style="color: #000000;">&#41;</span>,
                    <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
var callSite <span style="color: #008000;">=</span> CallSite<span style="color: #008000;">&lt;</span>Func<span style="color: #008000;">&lt;</span>CallSite, <span style="color: #FF0000;">object</span>, <span style="color: #FF0000;">bool</span>, <span style="color: #FF0000;">object</span><span style="color: #008000;">&gt;&gt;</span>.<span style="color: #0000FF;">Create</span><span style="color: #000000;">&#40;</span>payload<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
var func <span style="color: #008000;">=</span> callSite.<span style="color: #0000FF;">Target</span><span style="color: #008000;">;</span>
<span style="color: #FF0000;">object</span> str <span style="color: #008000;">=</span> func.<span style="color: #0000FF;">Invoke</span><span style="color: #000000;">&#40;</span>callSite, instance, <span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>str <span style="color: #008000;">is</span> <span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>
    MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span>str<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Т.е. по сути, упростив вид конструкций на C#, мы получили нагромождение конструкций IL.<br />
Стоит ли читабельность кода ставить в угоду производительности, а я уверен, что некоторый overhead даст знать о себе довольно быстро, решать разработчику.</p>
<p>Кому интересно &#8211; рабочий проект со всем вышеописанным для MS Visual Studio 2010:<br />
<iframe scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="width:240px;height:66px;margin:3px;padding:0;border:1px solid #dde5e9;background-color:#ffffff;" src="http://cid-a4f5926067c892f0.skydrive.live.com/embedrowdetail.aspx/Public/VS%20Projects/2010/C%7C34.0.DTO.zip"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2009/02/09/289/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Прекращение подачи видеосигнала на дисплей</title>
		<link>http://technogeek.ru/2008/12/07/274/</link>
		<comments>http://technogeek.ru/2008/12/07/274/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 12:23:14 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Программы]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=274</guid>
		<description><![CDATA[В связи с особенностями работы монитора при подключении второго источника изображения при активном первом, написал небольшую программку, которая посылает сообщение, прекращающее выдачу видеосигнала на дисплей.  Сообщение идентично тому, что посылается при отключении дисплея в режиме PowerSaving.
За все отвечает системное сообщение WM_SYSCOMMAND с параметрами SC_MONITORPOWER и 2. LPARAM со значением 2 соответствует отключению дисплея. Значение [...]]]></description>
			<content:encoded><![CDATA[<p>В связи с особенностями работы монитора при подключении второго источника изображения при активном первом, написал небольшую программку, которая посылает сообщение, прекращающее выдачу видеосигнала на дисплей.  Сообщение идентично тому, что посылается при отключении дисплея в режиме PowerSaving.</p>
<p>За все отвечает системное сообщение <strong>WM_SYSCOMMAND</strong> с параметрами <strong>SC_MONITORPOWER</strong> и <strong>2</strong>. LPARAM со значением <strong>2</strong> соответствует отключению дисплея. Значение параметра <strong>-1</strong> &#8211; включает дисплей, <strong>1</strong> &#8211; вводит дисплей в режим Stand By (в основном актуально для ноутбуков).</p>
<p>Код получился крайне незамысловатый:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">class</span> Program
<span style="color: #000000;">&#123;</span>
    <span style="color: #000000;">&#91;</span>DllImport<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;user32.dll&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">extern</span> IntPtr SendMessage<span style="color: #000000;">&#40;</span>IntPtr hWnd, <span style="color: #FF0000;">uint</span> Msg, IntPtr wParam, IntPtr lParam<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #0600FF;">static</span> IntPtr SC_MONITORPOWER <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> IntPtr<span style="color: #000000;">&#40;</span>0xF170<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">uint</span> WM_SYSCOMMAND <span style="color: #008000;">=</span> 0x0112<span style="color: #008000;">;</span>
    <span style="color: #0600FF;">static</span> IntPtr MONITOR_OFF <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> IntPtr<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF;">static</span> IntPtr HWND_BROADCAST <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> IntPtr<span style="color: #000000;">&#40;</span>0xffff<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #000000;">&#91;</span>STAThread<span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        SendMessage<span style="color: #000000;">&#40;</span>HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2008/12/07/274/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Статьи Pietrek Matt о Structured и Vectored Exception Handling</title>
		<link>http://technogeek.ru/2008/12/02/254/</link>
		<comments>http://technogeek.ru/2008/12/02/254/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 13:22:53 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Книжки]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[lrf]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Sony Reader]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=254</guid>
		<description><![CDATA[Собрал две статьи Pietrek Matt в формате *.lrf для Sony Reader:

Вся кухня перехвата исключительных ситуаций на уровне ядра Windows. A Crash Course on the Depths of Win32™ Structured Exception Handling. Не смотря на год опубликования &#8211; 1997, актуальности не потеряла: Pietrek Matt-SEH.lrf
Про нововведения и дополнения в Windows XP. New Vectored Exception Handling in Windows XP: [...]]]></description>
			<content:encoded><![CDATA[<p>Собрал две статьи Pietrek Matt в формате *.lrf для Sony Reader:</p>
<ol>
<li>Вся кухня перехвата исключительных ситуаций на уровне ядра Windows. <a href="http://www.microsoft.com/msj/0197/exception/exception.aspx">A Crash Course on the Depths of Win32™ Structured Exception Handling</a>. Не смотря на год опубликования &#8211; 1997, актуальности не потеряла: <a href="http://technogeek.ru/books/Pietrek Matt-SEH.lrf" target="_blank">Pietrek Matt-SEH.lrf</a></li>
<li>Про нововведения и дополнения в Windows XP. <a href="http://msdn.microsoft.com/en-us/magazine/cc301714.aspx">New Vectored Exception Handling in Windows XP</a>: <a href="http://technogeek.ru/books/Pietrek%20Matt-VEH.lrf" target="_blank">Pietrek Matt-VEH.lrf</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2008/12/02/254/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Process Explorer и Windows Debugging Symbols</title>
		<link>http://technogeek.ru/2008/09/27/228/</link>
		<comments>http://technogeek.ru/2008/09/27/228/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 11:22:27 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Программы]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[Process Explorer]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sysinternals]]></category>
		<category><![CDATA[System tools]]></category>
		<category><![CDATA[WinDbg]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=228</guid>
		<description><![CDATA[Нередко для траблшутинга упавшего приложения пользовался WinDbg в паре с Process Explorer от Sysinternals. Однако сегодня узнал интересное, оказывается в Procerss Explorer можно прописать путь к папке с символами и указать адрес к Microsoft Symbol Server для оперативной подгрузки недостающих символов. Для этого в настройках в &#8216;Options-&#62;Configure Symbols&#8230;&#8217; поле Symbols Path надо написать:

srv*C:\Windows\Symbols* http://msdl.microsoft.com/download/symbols

Вот так:

Сначала [...]]]></description>
			<content:encoded><![CDATA[<p>Нередко для траблшутинга упавшего приложения пользовался WinDbg в паре с <a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">Process Explorer от Sysinternals</a>. Однако сегодня узнал интересное, оказывается в Procerss Explorer можно прописать путь к папке с символами и указать адрес к <a href="http://msdl.microsoft.com/download/symbols/">Microsoft Symbol Server</a> для оперативной подгрузки недостающих символов. Для этого в настройках в &#8216;Options-&gt;Configure Symbols&#8230;&#8217; поле Symbols Path надо написать:</p>

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">srv*C:\Windows\Symbols* http://msdl.microsoft.com/download/symbols</pre></div></div>

<p>Вот так:<br />
<img class="alignnone size-full wp-image-229" title="Process Expolorer symbols configuration" src="http://technogeek.ru/wp-content/uploads/2008/09/pe_dbg.png" alt="" width="441" height="237" /></p>
<p>Сначала путь к локальной папке символов и потом адрес Symbol Server.</p>
<p>И теперь при просмотре свойств процесса во вкладке Threads становится видно что и где не отработало.</p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2008/09/27/228/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Joel Spolsky &#8220;User Interface for Programmers&#8221;</title>
		<link>http://technogeek.ru/2008/08/01/173/</link>
		<comments>http://technogeek.ru/2008/08/01/173/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 07:03:21 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Книжки]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[Joel on Software]]></category>
		<category><![CDATA[lrf]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Sony Reader]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=173</guid>
		<description><![CDATA[Оформил книгу Joel Spolsky &#8220;User Interface for Programmers&#8221; в формате LRF для Sony Reader.
Кому актуально:
User Interface for Programmers.lrf
]]></description>
			<content:encoded><![CDATA[<p>Оформил книгу <a href="http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html">Joel Spolsky &#8220;User Interface for Programmers&#8221;</a> в формате LRF для Sony Reader.</p>
<p>Кому актуально:</p>
<p><a href="http://technogeek.ru/books/User%20Interface%20for%20Programmers.lrf">User Interface for Programmers.lrf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2008/08/01/173/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обнвление Sketch in .NET Event Toaster</title>
		<link>http://technogeek.ru/2008/07/17/149/</link>
		<comments>http://technogeek.ru/2008/07/17/149/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 17:08:33 +0000</pubDate>
		<dc:creator>Darth Bender</dc:creator>
				<category><![CDATA[Программы]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[Add-in]]></category>
		<category><![CDATA[Event Toaster]]></category>
		<category><![CDATA[Sketch in .NET]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VS 2005]]></category>

		<guid isPermaLink="false">http://technogeek.ru/?p=149</guid>
		<description><![CDATA[Обновился add-in для  Microsoft Visual Studio 2005 Sketch in .NET Event Toaster.
Теперь вместо саморекламы в тайтле балуна будет отображаться имя собранной (или несобранной) сущности.
В случе солюшона &#8211; имя солюшона.
В случае проекта или файла &#8211; имя проекта.
Релиз доступен тут: http://www.codeplex.com/vspopuptoaster/Release/ProjectReleases.aspx?ReleaseId=14503
При обнаружении каких недоделок или багов пишите либо комментом, либо в Issuse Tracker сюда:
http://www.codeplex.com/vspopuptoaster/WorkItem/List.aspx
]]></description>
			<content:encoded><![CDATA[<p>Обновился add-in для  Microsoft Visual Studio 2005 <a href="http://technogeek.ru/tag/event-toaster/">Sketch in .NET Event Toaster</a>.</p>
<p>Теперь вместо саморекламы в тайтле балуна будет отображаться имя собранной (или несобранной) сущности.</p>
<p>В случе солюшона &#8211; имя солюшона.</p>
<p>В случае проекта или файла &#8211; имя проекта.</p>
<p>Релиз доступен тут: <a href="http://www.codeplex.com/vspopuptoaster/Release/ProjectReleases.aspx?ReleaseId=14503">http://www.codeplex.com/vspopuptoaster/Release/ProjectReleases.aspx?ReleaseId=14503</a></p>
<p>При обнаружении каких недоделок или багов пишите либо комментом, либо в Issuse Tracker сюда:</p>
<p><a href="http://www.codeplex.com/vspopuptoaster/WorkItem/List.aspx">http://www.codeplex.com/vspopuptoaster/WorkItem/List.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technogeek.ru/2008/07/17/149/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
