<?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>A Dev&#039;s Life &#187; .NET</title>
	<atom:link href="http://www.devslife.com/category/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devslife.com</link>
	<description>シアトル在住日本人ソフトウェアエンジニアのひとりごと</description>
	<lastBuildDate>Thu, 20 May 2010 22:26:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>IISのWebSiteをC#で削除する</title>
		<link>http://www.devslife.com/2009/12/17/iis%e3%81%aewebsite%e3%82%92c%e3%81%a7%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/</link>
		<comments>http://www.devslife.com/2009/12/17/iis%e3%81%aewebsite%e3%82%92c%e3%81%a7%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 23:14:43 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2009/12/17/iis%e3%81%aewebsite%e3%82%92c%e3%81%a7%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/</guid>
		<description><![CDATA[検索してもなかなか見つからなかったので、いろいろ試してみたらできました。 public static void DeleteWebSite(string machineName, string webSiteName) { IisWebSite webSite = GetSite(machineName, webSiteName); &#160; if (webSite == null) { throw new Exception(String.Format(&#34;Site {0} does not exist.&#34;, webSiteName)); } &#160; string IISPath = String.Format(IIS_ROOT, machineName) + &#34;/&#34; + webSite.Id; DirectoryEntry de = new DirectoryEntry(IISPath); &#160; de.RefreshCache(); de.DeleteTree(); de.Close(); } .csharpcode, .csharpcode pre { font-size: small; [...] [...]]]></description>
			<content:encoded><![CDATA[<p>検索してもなかなか見つからなかったので、いろいろ試してみたらできました。</p>
<div class="csharpcode">
<pre class="alt">        <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">void</span> DeleteWebSite(<span class="kwrd">string</span> machineName, <span class="kwrd">string</span> webSiteName)</pre>
<pre>        {</pre>
<pre class="alt">            IisWebSite webSite = GetSite(machineName, webSiteName);</pre>
<pre>&#160;</pre>
<pre class="alt">            <span class="kwrd">if</span> (webSite == <span class="kwrd">null</span>)</pre>
<pre>            {</pre>
<pre class="alt">                <span class="kwrd">throw</span> <span class="kwrd">new</span> Exception(String.Format(<span class="str">&quot;Site {0} does not exist.&quot;</span>, webSiteName));</pre>
<pre>            }</pre>
<pre class="alt">&#160;</pre>
<pre>            <span class="kwrd">string</span> IISPath = String.Format(IIS_ROOT, machineName) + <span class="str">&quot;/&quot;</span> + webSite.Id;</pre>
<pre class="alt">            DirectoryEntry de = <span class="kwrd">new</span> DirectoryEntry(IISPath);</pre>
<pre>&#160;</pre>
<pre class="alt">            de.RefreshCache();</pre>
<pre>            de.DeleteTree();</pre>
<pre class="alt">            de.Close();</pre>
<pre>        }</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2009/12/17/iis%e3%81%aewebsite%e3%82%92c%e3%81%a7%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studioを使わないでC#入門（２）</title>
		<link>http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%92%ef%bc%89/</link>
		<comments>http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%92%ef%bc%89/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 00:55:01 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%92%ef%bc%89/</guid>
		<description><![CDATA[二回目に入る前に用語の整理を少々。
名前空間という用語があります。一つの名前空間には複数のクラスの存在が可能です。空間ですので名前空間自体は何の力も持ちませんが、例えば同じ名前のクラスがあったときに別の名前空間に属させる [...] [...]]]></description>
			<content:encoded><![CDATA[<p>二回目に入る前に用語の整理を少々。</p>
<p>名前空間という用語があります。一つの名前空間には複数のクラスの存在が可能です。空間ですので名前空間自体は何の力も持ちませんが、例えば同じ名前のクラスがあったときに別の名前空間に属させることによって、区別をすることができます。</p>
<p>前回やったSystem.Consoleですが、ConsoleというクラスはSystemという.NET Frameworkの名前空間に属しています。名前空間は階層的に作ることもできます。</p>
<p>さて今回は、コンソールの背景の色を変えて見ましょう。</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">public</span> <span class="kwrd">class</span> コンソール背景</pre>
<pre>{</pre>
<pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">void</span> Main()</pre>
<pre>    {</pre>
<pre class="alt">        <span class="rem">// 背景を青に</span></pre>
<pre>        System.Console.BackgroundColor = System.ConsoleColor.Blue;</pre>
<pre class="alt">        System.Console.WriteLine(<span class="str">&quot;青に変わりました。&quot;</span>);</pre>
<pre>    }</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>前回と同じようにクラスを作成します。その中にpublic static void Main()（パブリック スタティック ボイド メインと読む）というプログラム実行の「入り口」を作ります。そのメインのプロシージャにSystem.Console.BackgroundColor = System.ConsoleColor.Blue;と記述することによってSystem.Console.BackgroundColorを青に変更せよとコンピューターに命令します。そして次の行でコンソールに「青に変わりました」と出力します。</p>
<p>上のコードをコンパイルして前回と同じように実行すると下のようになります。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2009/10/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.devslife.com/wp-content/uploads/2009/10/image_thumb2.png" width="276" height="76" /></a> </p>
</p>
<p>これまでの黒いところは変わらずに、それ以降の部分が指定した色に変わるようですね。</p>
<p>ちなみに上のコードは名前空間をクラスの上に宣言してしまってSystem.を省略して下のようにすることもできます。</p>
<div class="csharpcode">
<pre class="alt"><strong><span class="kwrd">using</span> System;</strong></pre>
<pre>&#160;</pre>
<pre class="alt"><span class="kwrd">public</span> <span class="kwrd">class</span> コンソール背景</pre>
<pre>{</pre>
<pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">void</span> Main()</pre>
<pre>    {</pre>
<pre class="alt">        <span class="rem">// 背景を青に</span></pre>
<pre>        Console.BackgroundColor = ConsoleColor.Blue;</pre>
<pre class="alt">        Console.WriteLine(<span class="str">&quot;青に変わりました。&quot;</span>);</pre>
<pre>    }</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%92%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studioを使わないでC#入門（１）</title>
		<link>http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%91%ef%bc%89/</link>
		<comments>http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%91%ef%bc%89/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 23:15:00 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%91%ef%bc%89/</guid>
		<description><![CDATA[思いつきでやってみたい！と思ったので、メモ帳（または他のテキストエディタソフト）とC#のコンパイラを使ってなんかいろいろやってみようかと。っつうか、続くのかこれ？仕事二つやってて、しかも乳飲み子がいる主がどんだけ時間とれ [...] [...]]]></description>
			<content:encoded><![CDATA[<p>思いつきでやってみたい！と思ったので、メモ帳（または他のテキストエディタソフト）とC#のコンパイラを使ってなんかいろいろやってみようかと。っつうか、続くのかこれ？仕事二つやってて、しかも乳飲み子がいる主がどんだけ時間とれんだよって話も。まあ続かなくてもちょっとはプログラミングをやってみたいと思っている人の入門になればなあって思います。</p>
<p>プログラミング言語をある程度統合開発環境（ＩＤＥ）を使わないでやってみることって大事だと思うんだよな、うん。だからこのシリーズではcsc.exeを直接使用してソースコードをコンパイルしていきます。最近は主にC#でプログラミングをしている自分にとっては基本に戻る良い機会かなと。あとできるだけ英語を使わずに日本語を使ってやっていきます。</p>
<p>まずは環境から。C#プログラミングをするにはマイクロソフトから無料でダウンロードできる、.<a href="http://www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&amp;displaylang=ja" target="_blank">NET Framework 2.0 SDK</a>をダウンロードしてインストールしましょう。既にVisual Studio Expressをインストールしている場合は多分必要ないでしょう。</p>
<p>まずはプログラミングについて少々。プログラミングとは結局はコンピューターに対して「あーしろ、こーしろ」と命令することだと私は思っています。車を運転するのにもハンドルやギアが必要でそれを使って車に命令するように、コンピュータープログラミングにもたくさんのパーツ（.NETでは.NETフレームワークと言う）があって、それを使って「あーしろ、こーしろ」と命令していきます。プログラミングはソースコードを書き、コンパイルして機械語に変換して、それを実行するという流れになります。とりあえず「こんにちは」アプリ（Hello World）を作成してみましょう。</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">public</span> <span class="kwrd">class</span> 俺のアプリ</pre>
<pre>{</pre>
<pre class="alt">    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">void</span> Main()</pre>
<pre>    {</pre>
<pre class="alt">        System.Console.WriteLine(<span class="str">&quot;こんにちは&quot;</span>);</pre>
<pre>    }</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>上のコードの意味は、まず「俺のアプリ」というクラスがありまして、このコードが実行されたときにはMain()という関数から実行される決まりになっています。つまり普通のアプリケーション（コンソールやWindowsフォームアプリ）は必ず、public static void Main()の関数がエントリーポイントになります。その関数の中でSystem.Consoleというパーツを使ってWriteLineというのを実行するという意味です。</p>
<p>上のコードを「俺のアプリ.cs」というファイルに保存して、どこかに保存しましょう。そしたらコンソールウィンドウを開けて、<strong>path=C:\Windows\Microsoft.NET\Framework\v2.0.50727</strong>と入力してEnter。このパスにcsc.exeというC#のコンパイラがあって、どのパスにいてもcsc.exeが有効になります。自分はファイルをD:\俺のコードというパスに保存しましたので・・・</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2009/10/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.devslife.com/wp-content/uploads/2009/10/image_thumb.png" width="264" height="35" /></a> </p>
<p>上を入れてやるとコードがコンパイルされて、「俺のアプリ.exe」というファイルが作成されます。それを実行すると下のようにコンソール画面に「こんにちは」と表示されます。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2009/10/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.devslife.com/wp-content/uploads/2009/10/image_thumb1.png" width="238" height="47" /></a> </p>
<p>次回はSystem.Consoleというパーツ（クラス）を使っていろいろやってみましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2009/10/23/visual-studio%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e3%81%a7c%e5%85%a5%e9%96%80%ef%bc%88%ef%bc%91%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Option Infer</title>
		<link>http://www.devslife.com/2009/04/15/option-infer/</link>
		<comments>http://www.devslife.com/2009/04/15/option-infer/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 18:50:33 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2009/04/15/option-infer/</guid>
		<description><![CDATA[Option Inferは3.5からのできるようになったようだ。例えば、
Dim i = 10

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: bla [...] [...]]]></description>
			<content:encoded><![CDATA[<p>Option Inferは3.5からのできるようになったようだ。例えば、</p>
<pre class="csharpcode"><span class="kwrd">Dim</span> i = 10</pre>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>とすると、コンパイラーは変数iはint32だということを理解し、ILレベルではちゃんと宣言してくれるのだそうだ。それはそれでいいんだけど、これを多用するとコードが読みにくくならないだろうか。スクリプト言語を書いている時だったらいいんだけど、VB.NETとかC#でこのようなことができてしまうのは、個人的にはあまり好きじゃない。Option InferをOffにしてればいいだけど話だけど・・・</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2009/04/15/option-infer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WPFを学ぶ過程</title>
		<link>http://www.devslife.com/2009/04/06/wpf%e3%82%92%e5%ad%a6%e3%81%b6%e9%81%8e%e7%a8%8b/</link>
		<comments>http://www.devslife.com/2009/04/06/wpf%e3%82%92%e5%ad%a6%e3%81%b6%e9%81%8e%e7%a8%8b/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 00:21:02 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2009/04/06/wpf%e3%82%92%e5%ad%a6%e3%81%b6%e9%81%8e%e7%a8%8b/</guid>
		<description><![CDATA[WPFを勉強したい。去年はPowerShell熱に侵されていた。今でもPowerShellは必要不可欠な存在で、毎日使っている。でも今はWPFが無性に勉強したい。Windows Formがあるからいいじゃねえか、と思って [...] [...]]]></description>
			<content:encoded><![CDATA[<p>WPFを勉強したい。去年はPowerShell熱に侵されていた。今でもPowerShellは必要不可欠な存在で、毎日使っている。でも今はWPFが無性に勉強したい。Windows Formがあるからいいじゃねえか、と思っていたのだがちょっと勉強すると高度なことが比較的少ないコードでできてしまうし、今までの伝統的なユーザインターフェースを一新するぐらいのパワーがある。</p>
<p>４月から<a href="http://www.seajschool.org/" target="_blank">シアトル日本語補習校</a>で小学三年生に算数を教えている。この間始業式があって初めて授業をしてきたのだが、子供たちは本当にかわいい。その授業の視覚的補助教材としてコンピュータを用いた授業ができないかと考えている。それにはやはりまるや三角や四角をいろいろ動かして子供たちに見せると喜ぶだろうと思うのだ。そこでWPFだ。</p>
<p>もう新学期が始まってしまったのでいつぐらいから実際にWPFのアプリを使って視覚的補助教材ができるか問題だが無性にやってみたい。ということで昨日Tukwilaのモールに行った時に本屋があって、そこで思わず<a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1239063375&amp;sr=8-2" target="_blank">Windows Presentatin Foundation Unleashed</a>を衝動買いしてしまった。</p>
<p>普段仕事をして土曜日に一日中、学校の仕事とかなり忙しくなるのだが、時間があったらここにもWPFの勉強の過程を載せていこうかなと思っている。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2009/04/06/wpf%e3%82%92%e5%ad%a6%e3%81%b6%e9%81%8e%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WPFアプリ</title>
		<link>http://www.devslife.com/2009/04/06/wpf%e3%82%a2%e3%83%97%e3%83%aa/</link>
		<comments>http://www.devslife.com/2009/04/06/wpf%e3%82%a2%e3%83%97%e3%83%aa/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 16:47:04 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2009/04/06/wpf%e3%82%a2%e3%83%97%e3%83%aa/</guid>
		<description><![CDATA[こんなのをみんなすでに開発しているのか。WPFは少ししか勉強していないのでちょっと危機感を覚えた。



 [...]]]></description>
			<content:encoded><![CDATA[<p>こんなのをみんなすでに開発しているのか。WPFは少ししか勉強していないのでちょっと危機感を覚えた。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:dd16e9c5-d5f3-489d-9f04-b53c7d90e034" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/MTfM5pmUrnU&amp;hl=en&amp;fs=1&amp;hl=en"></param><embed src="http://www.youtube.com/v/MTfM5pmUrnU&amp;hl=en&amp;fs=1&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2009/04/06/wpf%e3%82%a2%e3%83%97%e3%83%aa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IISのASP.NETタブ</title>
		<link>http://www.devslife.com/2008/09/17/iis%e3%81%aeaspnet%e3%82%bf%e3%83%96/</link>
		<comments>http://www.devslife.com/2008/09/17/iis%e3%81%aeaspnet%e3%82%bf%e3%83%96/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 18:09:34 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2008/09/17/iis%e3%81%aeaspnet%e3%82%bf%e3%83%96/</guid>
		<description><![CDATA[あったはずのASP.NETタブがIISからなくなっているときがよくあります。ScriptMappingを変えるだけならaspnet_regiisでいけるんですが、他のちょっと込み入った設定はGUIでチョチョイとやってしま [...] [...]]]></description>
			<content:encoded><![CDATA[<p>あったはずのASP.NETタブがIISからなくなっているときがよくあります。ScriptMappingを変えるだけならaspnet_regiisでいけるんですが、他のちょっと込み入った設定はGUIでチョチョイとやってしまいたいもの。ASP.NETタブを再び表示させる方法がMS社員のブログにありましたので、<a href="http://blogs.msdn.com/tom/archive/2008/04/17/asp-net-tab-missing.aspx" target="_blank">ここにリンク</a>しておきます。要はそのブログからファイルをダウンロードしてVBScriptを実行すると直ります。細かいことはまじめに調べてないので自己責任で。（笑）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2008/09/17/iis%e3%81%aeaspnet%e3%82%bf%e3%83%96/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Serverでファイル・フォルダの確認</title>
		<link>http://www.devslife.com/2008/09/15/sql-server%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%ae%e7%a2%ba%e8%aa%8d/</link>
		<comments>http://www.devslife.com/2008/09/15/sql-server%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%ae%e7%a2%ba%e8%aa%8d/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 00:32:34 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2008/09/15/sql-server%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%ae%e7%a2%ba%e8%aa%8d/</guid>
		<description><![CDATA[べたかも知れませんが・・・
master..sys.xp_fileexistでSQL Server上にあるファイルやフォルダの確認ができます。
 
遠隔のSQL ServerにデータベースファイルやFile Groupの [...] [...]]]></description>
			<content:encoded><![CDATA[<p>べたかも知れませんが・・・</p>
<p>master..sys.xp_fileexistでSQL Server上にあるファイルやフォルダの確認ができます。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2008/09/image1.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="185" alt="image" src="http://www.devslife.com/wp-content/uploads/2008/09/image-thumb1.png" width="337" border="0"></a> </p>
<p>遠隔のSQL ServerにデータベースファイルやFile Groupのファイルをパスを指定して作成したい場合にちょっとフォルダの確認してやればいいかもしれませんね。ちなみに2005と2008のどちらでも使えるようです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2008/09/15/sql-server%e3%81%a7%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%83%bb%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e3%81%ae%e7%a2%ba%e8%aa%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflector</title>
		<link>http://www.devslife.com/2008/08/26/reflector/</link>
		<comments>http://www.devslife.com/2008/08/26/reflector/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 19:47:04 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/?p=2002</guid>
		<description><![CDATA[つい最近ReflectorがRedgateという会社に買収されたようですな。一応無料版は残していく方向のようですが、有料版にはどんな機能が付いてくるというんでしょうか。楽しみであり少々心配でもあるような。
 [...]]]></description>
			<content:encoded><![CDATA[<p>つい最近<a href="http://www.red-gate.com/products/reflector/index.htm">ReflectorがRedgateという会社に買収された</a>ようですな。一応無料版は残していく方向のようですが、有料版にはどんな機能が付いてくるというんでしょうか。楽しみであり少々心配でもあるような。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2008/08/26/reflector/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML文字列を動的に表示</title>
		<link>http://www.devslife.com/2008/07/27/html%e6%96%87%e5%ad%97%e5%88%97%e3%82%92%e5%8b%95%e7%9a%84%e3%81%ab%e8%a1%a8%e7%a4%ba/</link>
		<comments>http://www.devslife.com/2008/07/27/html%e6%96%87%e5%ad%97%e5%88%97%e3%82%92%e5%8b%95%e7%9a%84%e3%81%ab%e8%a1%a8%e7%a4%ba/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 20:49:00 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[.NET]]></category>

		<guid isPermaLink="false">http://www.devslife.com/?p=1973</guid>
		<description><![CDATA[AJAXが主流になってきている昨今である。サーバ側のコードだってJavaScriptから簡単に呼び出せるようにしてくれたのがMicrosoftのAJAXだ。利点はPostBackをせずに、つまり、ページのリフレッシュをせ [...] [...]]]></description>
			<content:encoded><![CDATA[<p>AJAXが主流になってきている昨今である。サーバ側のコードだってJavaScriptから簡単に呼び出せるようにしてくれたのがMicrosoftのAJAXだ。利点はPostBackをせずに、つまり、ページのリフレッシュをせずに動的にHTMLの要素を表示し、ユーザの使い勝手をよくしようとするものだ。<strong>この記事ではウェブサービスから返されたHTMLの文字列をJavaScriptで読み込み、それを動的に表示する方法を簡単な例で紹介する。</strong></p>
<p>まずはASP .NETのプロジェクトに.asmxのファイルを追加する。ウェブサービスだからといって別途ウェブサービスのプロジェクトを用意する必要はない。この例ではSimpleService.asmxと名前をつける。そして下のようにコードを書く。</p>
<div class="csharpcode">
<pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">Imports</span> System.Web.Services</pre>
<pre><span class="lnum">   2:  </span><span class="kwrd">Imports</span> System.Web.Services.Protocols</pre>
<pre class="alt"><span class="lnum">   3:  </span><span class="kwrd">Imports</span> System.ComponentModel</pre>
<pre><span class="lnum">   4:  </span><span class="kwrd">Imports</span> System.Web.UI.HtmlControls</pre>
<pre class="alt"><span class="lnum">   5:  </span><span class="kwrd">Imports</span> System.IO</pre>
<pre><span class="lnum">   6:  </span><span class="kwrd">Imports</span> System.Text</pre>
<pre class="alt"><span class="lnum">   7:  </span>&#160;</pre>
<pre><span class="lnum">   8:  </span><span class="rem">' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.</span></pre>
<pre class="alt"><span class="lnum">   9:  </span><span class="rem">' &lt;System.Web.Script.Services.ScriptService()&gt; _</span></pre>
<pre><span class="lnum">  10:  </span>&lt;System.Web.Services.WebService(<span class="kwrd">Namespace</span>:=<span class="str">&quot;http://tempuri.org/&quot;</span>)&gt; _</pre>
<pre class="alt"><span class="lnum">  11:  </span>&lt;System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)&gt; _</pre>
<pre><span class="lnum">  12:  </span>&lt;ToolboxItem(<span class="kwrd">False</span>)&gt; _</pre>
<pre class="alt"><span class="lnum">  13:  </span>&lt;System.Web.Script.Services.ScriptService()&gt; _</pre>
<pre><span class="lnum">  14:  </span><span class="kwrd">Public</span> <span class="kwrd">Class</span> SimpleService</pre>
<pre class="alt"><span class="lnum">  15:  </span>    <span class="kwrd">Inherits</span> System.Web.Services.WebService</pre>
<pre><span class="lnum">  16:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  17:  </span>    &lt;WebMethod()&gt; _</pre>
<pre><span class="lnum">  18:  </span>    <span class="kwrd">Public</span> <span class="kwrd">Function</span> GetHtml() <span class="kwrd">As</span> <span class="kwrd">String</span></pre>
<pre class="alt"><span class="lnum">  19:  </span>        <span class="rem">' まずはクライアント側に返したいHTMLをSystem.Web.UI.HtmlControlsにあるクラス群を使って作成する。</span></pre>
<pre><span class="lnum">  20:  </span>        <span class="kwrd">Dim</span> cell1 <span class="kwrd">As</span> <span class="kwrd">New</span> HtmlTableCell()</pre>
<pre class="alt"><span class="lnum">  21:  </span>        cell1.InnerText = <span class="str">&quot;Hello Cell1&quot;</span></pre>
<pre><span class="lnum">  22:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  23:  </span>        <span class="kwrd">Dim</span> row1 <span class="kwrd">As</span> <span class="kwrd">New</span> HtmlTableRow()</pre>
<pre><span class="lnum">  24:  </span>        row1.Cells.Add(cell1)</pre>
<pre class="alt"><span class="lnum">  25:  </span>&#160;</pre>
<pre><span class="lnum">  26:  </span>        <span class="kwrd">Dim</span> table <span class="kwrd">As</span> <span class="kwrd">New</span> HtmlTable()</pre>
<pre class="alt"><span class="lnum">  27:  </span>        table.Rows.Add(row1)</pre>
<pre><span class="lnum">  28:  </span>        table.Border = 1</pre>
<pre class="alt"><span class="lnum">  29:  </span>&#160;</pre>
<pre><span class="lnum">  30:  </span>        <span class="rem">' ここからHTMLコントロールを文字列に変えるプロセス。</span></pre>
<pre class="alt"><span class="lnum">  31:  </span>        <span class="kwrd">Dim</span> sb <span class="kwrd">As</span> <span class="kwrd">New</span> StringBuilder()</pre>
<pre><span class="lnum">  32:  </span>        <span class="kwrd">Dim</span> sw <span class="kwrd">As</span> <span class="kwrd">New</span> StringWriter(sb)</pre>
<pre class="alt"><span class="lnum">  33:  </span>        <span class="kwrd">Dim</span> htmlWriter <span class="kwrd">As</span> <span class="kwrd">New</span> HtmlTextWriter(sw)</pre>
<pre><span class="lnum">  34:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  35:  </span>        table.RenderControl(htmlWriter)</pre>
<pre><span class="lnum">  36:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  37:  </span>        <span class="kwrd">Return</span> sb.ToString()</pre>
<pre><span class="lnum">  38:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  39:  </span>    <span class="kwrd">End</span> <span class="kwrd">Function</span></pre>
<pre><span class="lnum">  40:  </span>&#160;</pre>
<pre class="alt"><span class="lnum">  41:  </span><span class="kwrd">End</span> Class</pre>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>上のコードをもうちょっと解説する。１３行目のSimpleServiceクラスに対するAttributeは追加してやらなければいけません。これはJavaScriptから呼び出すことを可能にしますよというAttributeだ。そしてGetHtmlというFunctionを作成しStringを返すようにしてやる。もちろんWebMethodのAttributeをつけてやるのも忘れないようにする。そしてTableを作成してHtmlTableのオブジェクトをRenderControlというメソッドを実行するとStringBuilderにそのHTMLが入っているのでそれを返してやるだけだ。これでウェブサービスの準備は完了だ。</p>
<p>次にクライアント側だ。ASP.NETのプロジェクトを作成するとDefalt.aspxがついてくるのでそれを使う。</p>
<p>ASP.NETでAJAXを使うには必ずそのページにScriptManagerを追加してやらなければならない。これはformタグ内に入れてやるといい。そのScriptManager内にはServicesというコレクションが存在し、そこに先ほど書いたSimpleService.asmxへの参照を追加してやる。</p>
<p>&lt;asp:ScriptManager runat=&quot;server&quot; ID=&quot;ScriptManager1&quot;&gt;<br />
  <br />&#160;&#160;&#160; &lt;Services&gt; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;asp:ServiceReference Path=&quot;~/SimpleService.asmx&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;/Services&gt; </p>
<p>&lt;/asp:ScriptManager&gt;</p>
<p>これでウェブサービスを直接JavaScriptから呼び出せる。</p>
<p>Default.aspxにHTMLボタンを貼り付けてそのonclickのイベントハンドラーで次のようなJavaScriptを書く。</p>
<pre class="csharpcode"><span class="kwrd">function</span> Button1_onclick() {
    AjaxTest.SimpleService.GetHtml(OnComplete, OnTimeOut, OnError);
    <span class="kwrd">return</span> <span class="kwrd">true</span>;
}</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>実際にコードをVS2008上で書いてみるとJavaScriptのインテリセンスが表示されるので便利だ。通常はJavaScriptからウェブサービスへのコールは非同期で行われるので上のようなコードになる。それではOnCompleteを見てみよう。</p>
<pre class="csharpcode"><span class="kwrd">function</span> OnComplete(arg)
{
    alert(arg);
    <span class="kwrd">var</span> divLayer = document.getElementById(<span class="str">&quot;divHtmlPlaceHolder&quot;</span>);
    divLayer.innerHTML = arg;
}</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>ここではウェブサービスから受け取ったHTMLを一度alertで表示させて既存のdivタグ内（divHtmlPlaceHolder）に入れてやるのだ。OnErrorとOnTimeOutも下に貼り付けておこう。</p>
<pre class="csharpcode"><span class="kwrd">function</span> OnTimeOut(arg)
{
    alert(<span class="str">&quot;Call timed out&quot;</span>);

}

<span class="kwrd">function</span> OnError(arg)
{
    alert(<span class="str">&quot;Error happened&quot;</span>);
}</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>&#160;</p>
<p>これで簡単にサーバ側のコードがJavaScript側から呼び出せる。</p>
<p><strong><font color="#ff0000">更新：Fiddler2でHTMLトラフィックを見てみました。Responseはこんな感じです。XMLを使わずコンパクトでいいんじゃないでしょうか。</font></strong></p>
<p>HTTP/1.1 200 OK</p>
<p>Cache-Control: private, max-age=0</p>
<p>Content-Type: application/json; charset=utf-8</p>
<p>Server: Microsoft-IIS/7.0</p>
<p>X-AspNet-Version: 2.0.50727</p>
<p>X-Powered-By: ASP.NET</p>
<p>Date: Sun, 27 Jul 2008 23:47:37 GMT</p>
<p>Content-Length: 153</p>
<p>{&quot;d&quot;:&quot;\u003ctable border=\&quot;1\&quot;\u003e\r\n\t\u003ctr\u003e\r\n\t\t\u003ctd\u003eHello Cell1\u003c/td\u003e\r\n\t\u003c/tr\u003e\r\n\u003c/table\u003e\r\n&quot;}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2008/07/27/html%e6%96%87%e5%ad%97%e5%88%97%e3%82%92%e5%8b%95%e7%9a%84%e3%81%ab%e8%a1%a8%e7%a4%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
