<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:cc="http://web.resource.org/cc/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
    xml:lang="ja">

    <channel rdf:about="http://pro.art55.jp/?mode=rss">
    <title>創造的プログラミングと粘土細工</title>
    <link>http://pro.art55.jp/</link>
    <description>プログラミング関連Blog&lt;br /&gt;
私の興味の端から端までをお届けします！</description>
    <dc:language>ja</dc:language>
    <admin:generatorAgent rdf:resource="http://jugem.jp/?v=1.0"/>
    <cc:license rdf:resource="" />    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303734" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303733" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303732" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303729" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303727" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303726" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303725" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303715" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303697" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1301466" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1301461" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1300519" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1299943" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1283746" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1283175" />
      </rdf:Seq>
    </items>
    </channel>

  <item rdf:about="http://pro.art55.jp/?eid=1303734">
    <link>http://pro.art55.jp/?eid=1303734</link>
    <title>【C#】StackTraceとStackFrameで遊んでみた。</title>
    <description>JUGEMテーマ：コンピュータ
&amp;nbsp;static void Main(string[] args)&amp;#123;&amp;nbsp;&amp;nbsp;&amp;nbsp; var list = new List&amp;lt;object&amp;gt; &amp;#123;1L, 3L, 10L, 2L&amp;#125;;&amp;nbsp;&amp;nbsp;&amp;nbsp; var result = list.OrderBy&amp;lt;object, object&amp;gt;(Print).ToList();&amp;#125;
static obj...</description>
<content:encoded><![CDATA[
<DIV class=jugem_theme>JUGEMテーマ：<A href="http://jugem.jp/theme/c247/13/" target=_blank>コンピュータ</A></DIV>
<P>&nbsp;static void Main(string[] args)<BR>&#123;<BR>&nbsp;&nbsp;&nbsp; var list = new List&lt;object&gt; &#123;1L, 3L, 10L, 2L&#125;;<BR>&nbsp;&nbsp;&nbsp; var result = list.OrderBy&lt;object, object&gt;(Print).ToList();<BR>&#125;</P>
<P>static object Print(object item)<BR>&#123;<BR>&nbsp;&nbsp;&nbsp; var trace = new StackTrace();<BR>&nbsp;&nbsp;&nbsp; foreach (StackFrame frame in trace.GetFrames() ?? new StackFrame[0])<BR>&nbsp;&nbsp;&nbsp; &#123;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MethodBase methodBase = frame.GetMethod();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.Write(methodBase.Name + " ");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (methodBase.Name == "Main")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<BR>&nbsp;&nbsp;&nbsp; &#125;<BR>&nbsp;&nbsp;&nbsp; Console.WriteLine();<BR>&nbsp;&nbsp;&nbsp; return item;<BR>&#125;<BR><BR>あそんでみた。</P>
]]></content:encoded>
    <dc:subject>C#</dc:subject>
    <dc:date>2010-03-10T23:02:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303733">
    <link>http://pro.art55.jp/?eid=1303733</link>
    <title>【C#】OrderByより例外</title>
    <description>JUGEMテーマ：コンピュータvar list = new List&amp;lt;object&amp;gt; &amp;#123; 1L, 6L, 4, 2L &amp;#125;;var sortedList = list.OrderBy(item =&amp;gt; item).ToList();上記のコードが実行されると例外が発生します。OrderBｙによるソートが実行された際にlong型でない値と比較しようと...</description>
<content:encoded><![CDATA[
<DIV class=jugem_theme>JUGEMテーマ：<A href="http://jugem.jp/theme/c247/13/" target=_blank>コンピュータ</A></DIV>var list = new List&lt;object&gt; &#123; 1L, 6L, 4, 2L &#125;;<BR>var sortedList = list.OrderBy(item =&gt; item).ToList();<BR><BR>上記のコードが実行されると例外が発生します。OrderBｙによるソートが実行された際にlong型でない値と比較しようとするためですが・・・<BR><BR>List&lt;object&gt;型なんぞ使わずにList&lt;long&gt;型でコンパイル時に安全が確認出来るようにするべきというのが、コーディング的には正しい方法だと思いますが、今回は、上記の実行時の挙動をもう少し観察したいと思います。<BR><BR>まず、デバック実行でわかる情報（プログラマが知り得る情報）を見てみたいと思います。<BR><BR><IMG class=pict alt=OrderBy例外 src="http://img.pro.art55.jp/20100306_3685204.jpg" width=344 height=242><BR><BR>例外はArgumentExceptionで「オブジェクトは Int64 型でなければなりません。」というメッセージが表示されています。long型以外の型のオブジェクトが引数に渡されたため例外が発生したという事ですね。List&lt;ojbect&gt;型に対してOrderByしているのでobject型の比較でソートがかかるものだとおもったのですが、これは意外です。<BR><BR>さて更に細かく見ていきたいと思います。<BR><BR>System.ArgumentException はハンドルされませんでした。<BR>&nbsp; Message="オブジェクトは Int64 型でなければなりません。"<BR>&nbsp; Source="mscorlib"<BR>&nbsp; StackTrace:<BR>場所 System.Int64.CompareTo(Object value)<BR>場所 System.Collections.Comparer.Compare(Object a, Object b)<BR>場所 System.Collections.Generic.ObjectComparer`1.Compare(T x, T y)<BR>場所 System.Linq.EnumerableSorter`2.CompareKeys(Int32 index1, Int32 index2)<BR>場所 System.Linq.EnumerableSorter`1.QuickSort(Int32[] map, Int32 left, Int32 right)<BR>場所 System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count)<BR>場所 System.Linq.OrderedEnumerable`1.&lt;GetEnumerator&gt;d__0.MoveNext()<BR>場所 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)<BR>場所 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)<BR>場所 Art55.OrderBy20100306.Program.Main(String[] args) 場所 C:&yen;Users&yen;art55&yen;Documents&yen;Visual Studio 2008&yen;Projects&yen;Art55.OrderBy20100306&yen;Art55.OrderBy20100306&yen;Program.cs:行 13<BR>場所 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)<BR>場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)<BR>場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()<BR>場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state)<BR>場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)<BR>場所 System.Threading.ThreadHelper.ThreadStart()<BR>&nbsp; InnerException: <BR><BR>上記は例外発生時のスタックトレースです。<BR><BR>上から順に詳しく見ていくと<BR><BR><STRONG>場所 System.Int64.CompareTo(Object value)</STRONG><BR><BR>System.Int64構造体のCompareToメソッドが呼ばれていることがわかります。<BR><BR>恐らく6Lが格納されたSystem.Int64構造体のオブジェクトのCompareToメソッドに指定された引数がStystem.Int32構造体だったためArgumentExceptionが発生したものと推測されます。<BR><BR><STRONG>場所 System.Collections.Comparer.Compare(Object a, Object b)<BR>場所 System.Collections.Generic.ObjectComparer`1.Compare(T x, T y)<BR><BR></STRONG>二つを同時に見てみます。ObjectComparer&lt;T&gt;のT型が一体何になっているのかきになるところですが、わかりません（恐らくobject型）。Compare(Object a, Object b)メソッドは公開されているメソッドなので、動作検証できます。<BR><BR>object o1 = 6L;<BR>object o2 = 4;<BR>Comparer.Default.Compare(o1, o2);<BR><BR>上記のコードでobject型同士の比較をしても、内部でlong型同士の比較が実行されるようで、同じようにArgumentExceptionが発生します。<BR><BR>MSDNライブラリーを覗いてみると<BR><A href="http://msdn.microsoft.com/ja-jp/library/system.collections.comparer.compare.aspx"><FONT color=#000000>http://msdn.microsoft.com/ja-jp/library/system.collections.comparer.compare.aspx</FONT></A><BR><BR><FONT color=#000000><EM><STRONG>例外</STRONG> </EM></FONT>
<DIV style="DISPLAY: block" class=MTPS_CollapsibleSection><SPAN target="T:System.ArgumentException" sdata="cer"><A id=ctl00_MainContent_ctl55_ctl00_ctl00 onclick="javascript:Track('ctl00_MainContent_ctl55_ctl00_contenthere|ctl00_MainContent_ctl55_ctl00_ctl00',this);" href="http://msdn.microsoft.com/ja-jp/library/system.argumentexception.aspx"><FONT color=#000000><EM>ArgumentException</EM></FONT></A><BR><FONT color=#000000><EM><STRONG>条件</STRONG><BR></EM></FONT></SPAN><EM><FONT color=#000000>a と b が、いずれも IComparable インターフェイスを実装していません。<BR>または <BR>a と b の型が異なっていて、両者を比較できません。</FONT> <BR><STRONG>解説</STRONG> <BR></EM>
<P><EM><SPAN class=parameter sdata="paramReference">a</SPAN> が <SPAN target="T:System.IComparable" sdata="cer"><A id=ctl00_MainContent_ctl56_ctl00_ctl00 onclick="javascript:Track('ctl00_MainContent_ctl56_ctl00_contenthere|ctl00_MainContent_ctl56_ctl00_ctl00',this);" href="http://msdn.microsoft.com/ja-jp/library/system.icomparable.aspx"><FONT color=#0000ff>IComparable</FONT></A></SPAN> を実装する場合は、<SPAN class=parameter sdata="paramReference">a</SPAN> .<SPAN sdata="langKeyword" value="CompareTo"><SPAN class=keyword><STRONG><FONT color=#871f78>CompareTo</FONT></STRONG></SPAN></SPAN> ( <SPAN class=parameter sdata="paramReference">b</SPAN> ) が返されます。逆に、<SPAN class=parameter sdata="paramReference">b</SPAN> が <SPAN target="T:System.IComparable" sdata="cer"><A id=ctl00_MainContent_ctl56_ctl00_ctl01 onclick="javascript:Track('ctl00_MainContent_ctl56_ctl00_contenthere|ctl00_MainContent_ctl56_ctl00_ctl01',this);" href="http://msdn.microsoft.com/ja-jp/library/system.icomparable.aspx"><FONT color=#0000ff>IComparable</FONT></A></SPAN> を実装する場合は、符号反転した <SPAN class=parameter sdata="paramReference">b</SPAN> .<SPAN sdata="langKeyword" value="CompareTo"><SPAN class=keyword><STRONG><FONT color=#871f78>CompareTo</FONT></STRONG></SPAN></SPAN> ( <SPAN class=parameter sdata="paramReference">a</SPAN> ) が返されます。</EM></P>
<P><EM><SPAN sdata="langKeyword" value="null"><SPAN class=keyword><STRONG><FONT color=#871f78><SPAN class=cs>null</SPAN><SPAN class=vb>Nothing</SPAN><SPAN class=cpp>nullptr</SPAN></FONT></STRONG></SPAN><SPAN class=nu>null 参照 (Visual Basic では <SPAN class=keyword><STRONG><FONT color=#871f78>Nothing</FONT></STRONG></SPAN>)</SPAN></SPAN> を任意の型と比較できます。このような比較を行っても、<SPAN target="T:System.IComparable" sdata="cer"><A id=ctl00_MainContent_ctl56_ctl00_ctl04 onclick="javascript:Track('ctl00_MainContent_ctl56_ctl00_contenthere|ctl00_MainContent_ctl56_ctl00_ctl04',this);" href="http://msdn.microsoft.com/ja-jp/library/system.icomparable.aspx"><FONT color=#0000ff>IComparable</FONT></A></SPAN> を使用した場合に例外が生成されることはありません。並べ替え処理では、<SPAN sdata="langKeyword" value="null"><SPAN class=keyword><STRONG><FONT color=#871f78><SPAN class=cs>null</SPAN><SPAN class=vb>Nothing</SPAN><SPAN class=cpp>nullptr</SPAN></FONT></STRONG></SPAN><SPAN class=nu>null 参照 (Visual Basic では <SPAN class=keyword><STRONG><FONT color=#871f78>Nothing</FONT></STRONG></SPAN>)</SPAN></SPAN> は、他のすべてのオブジェクトより小さいと見なされます。</EM></P>
<P><EM>文字列比較の結果は、カルチャに応じて異なる場合があります。カルチャ固有の比較の詳細については、<SPAN target="N:System.Globalization" sdata="cer"><A id=ctl00_MainContent_ctl56_ctl00_ctl07 onclick="javascript:Track('ctl00_MainContent_ctl56_ctl00_contenthere|ctl00_MainContent_ctl56_ctl00_ctl07',this);" href="http://msdn.microsoft.com/ja-jp/library/system.globalization.aspx"><FONT color=#0000ff>System.Globalization</FONT></A></SPAN> 名前空間のトピックおよび「<SPAN sdata="link"><A id=ctl00_MainContent_ctl56_ctl00_ctl08 onclick="javascript:Track('ctl00_MainContent_ctl56_ctl00_contenthere|ctl00_MainContent_ctl56_ctl00_ctl08',this);" href="http://msdn.microsoft.com/ja-jp/library/h6270d0z.aspx"><FONT color=#0000ff>エンコーディングとローカリゼーション</FONT></A></SPAN>」を参照してください。</EM><BR><BR>渡された引数のうちIComparebleが実装されているオブジェクトを選んで、CompareToメソッドを呼び出すという事がわかりました。<BR><BR><BR>ブログをかいてる途中で、もやもや感が解消したので、ここでいったん止めます（笑）<BR><BR><BR><!---->--------------<BR>追記<BR><BR>object o = 4;<BR>long d = (long) o;<BR><BR>上記のようなキャストは実行時にエラーになるので<BR>下記のような修正はできません。<BR><BR>var list = new List&lt;object&gt; &#123; 1L, 6L, 4, 2L &#125;;<BR>var sortedList = list.OrderBy(item =&gt; (long) item).ToList();<BR><BR>List&lt;object&gt;のリストを作成した意図がなんなのか考慮した上で修正する必要があります。<BR><BR>※実行時にエラーはでなくなるけど、意図した動きとは違う動きをしてしまう例（↓）<BR>var list = new List&lt;object&gt; &#123; 1L, 6L, 4, 2L &#125;;<BR>var sortedList = list.OfType&lt;long&gt;().OrderBy(item =&gt; item).ToList();<BR></P></DIV>
]]></content:encoded>
    <dc:subject>C#</dc:subject>
    <dc:date>2010-03-06T14:35:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303732">
    <link>http://pro.art55.jp/?eid=1303732</link>
    <title>【WPF】使い続け気付いたこと。Styleに使いどころ。</title>
    <description>JUGEMテーマ：コンピュータ&amp;nbsp;WPFライブラリーを使い続けて2年くらいたったと思いますが、実際のアプリケーションを作っていく際にStyleは作業効率を上げるうえでも、アプリケーションのUI部分の完成度を上げるうえでも非常に重要な役割を担っていると感じています。St...</description>
<content:encoded><![CDATA[
<DIV class=jugem_theme>JUGEMテーマ：<A href="http://jugem.jp/theme/c247/13/" target=_blank>コンピュータ</A></DIV>&nbsp;WPFライブラリーを使い続けて2年くらいたったと思いますが、実際のアプリケーションを作っていく際にStyleは作業効率を上げるうえでも、アプリケーションのUI部分の完成度を上げるうえでも非常に重要な役割を担っていると感じています。Style重要です。<BR><BR>2年前、当初、私の意識はStyleとは見た目を一括して変更するものだという程度の認識でした。現在はどちらかというとプロパティを一括して管理するもの。そのアプリケーションで使用するコントロールに対して、個々のアプリケーション固有の標準やコントロール間の関係を定義するものといった認識です。<BR><BR>なんじゃそりゃって感じた方ごめんなさい。口で表現するのは非常にむずかしいのですが、もうちょっと気合いが入ったら、ソースコードと実際のアプリケーションの振る舞いと私が頂くWPFの設計思想とを説明したいと思います。<BR><BR>家の開発環境が崩壊中なので（・・・物理的に（笑））また今度
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2010-03-03T21:44:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303729">
    <link>http://pro.art55.jp/?eid=1303729</link>
    <title>Visual Studio 2010 RC</title>
    <description>&amp;nbsp;http://www.microsoft.com/japan/visualstudio/try/default.mspxVisual Studio 2010 RC普段のコーディングでは2008とReshaperがあれば何も困ることはありませんが、やっぱり新しいものが使いたいですよね。</description>
<content:encoded><![CDATA[
&nbsp;<A href="http://www.microsoft.com/japan/visualstudio/try/default.mspx">http://www.microsoft.com/japan/visualstudio/try/default.mspx</A><BR><BR>Visual Studio 2010 RC<BR><BR>普段のコーディングでは2008とReshaperがあれば何も困ることはありませんが、<BR>やっぱり新しいものが使いたいですよね。
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2010-03-01T21:58:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303727">
    <link>http://pro.art55.jp/?eid=1303727</link>
    <title>ずいぶん間が空きました。</title>
    <description>こんばんわ生きてます。毎日コーディングしてます。そろそろVS2010もリリースされそうなのでBlogも再開してみようと思います。</description>
<content:encoded><![CDATA[
こんばんわ生きてます。<BR>毎日コーディングしてます。<BR>そろそろVS2010もリリースされそうなので<BR>Blogも再開してみようと思います。
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2010-03-01T21:31:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303726">
    <link>http://pro.art55.jp/?eid=1303726</link>
    <title>うわー最悪。</title>
    <description>&amp;nbsp;現在使用しているロリポップサーバからＢｌｏｇの移行をしろというメールが来たので（ここから金払ってるのに移行作業をユーザにやらせるって何なんだって思ってたんですが）無事なんとか移行したものＢｌｏｇを開いてびっくり・・・一番上に広告が・・・ちょっとふ...</description>
<content:encoded><![CDATA[
&nbsp;現在使用しているロリポップサーバからＢｌｏｇの移行をしろというメールが来たので（ここから金払ってるのに移行作業をユーザにやらせるって何なんだって思ってたんですが）無事なんとか移行したものＢｌｏｇを開いてびっくり・・・一番上に広告が・・・ちょっとふざけすぎ。
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-10-10T11:46:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303725">
    <link>http://pro.art55.jp/?eid=1303725</link>
    <title>【Book】プログラミングMicrosoft LINQ</title>
    <description>
プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)
小高 太郎,(株)オーパス・ワン


数ヶ月前に購入して、これはおもしろそうだ！って思いつつも本の山の中に・・・最近、やる気が戻りつつあるので、読もうと思います。
</description>
<content:encoded><![CDATA[
<a href="http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Microsoft-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8-Microsoft-Visual-Studi/dp/4891006188%3FSubscriptionId%3DAKIAJY3MQPODX7WNOO7A%26tag%3Dwater21lolipo-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4891006188" target="_blank"><img border="0" src="http://ecx.images-amazon.com/images/I/41uVGT2G3jL._SL160_.jpg" alt="プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)" /></a><br />
<a href="http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Microsoft-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8-Microsoft-Visual-Studi/dp/4891006188%3FSubscriptionId%3DAKIAJY3MQPODX7WNOO7A%26tag%3Dwater21lolipo-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4891006188" target="_blank"><strong>プログラミングMicrosoft LINQ (マイクロソフト公式解説書 Microsoft Visual Studi)</strong></a><br />
小高 太郎,(株)オーパス・ワン<br />
<br />
<br />
数ヶ月前に購入して、これはおもしろそうだ！って思いつつも本の山の中に・・・最近、やる気が戻りつつあるので、読もうと思います。<br />

]]></content:encoded>
    <dc:subject>LINQ</dc:subject>
    <dc:date>2009-10-08T22:16:08+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303715">
    <link>http://pro.art55.jp/?eid=1303715</link>
    <title>【Expression】Expression Studio 3無事インストール完了</title>
    <description>どういう訳か家のPCにExpression Studio 3がインストールに失敗すること数度、半ばあきらめていたのですが、今日再チャレンジしてみるとなんなくインストールに成功しました。もしかして、ダウンロードファイルがこわれてた？？よくわかりませんが、なんとかインストール...</description>
<content:encoded><![CDATA[
どういう訳か家のPCにExpression Studio 3がインストールに失敗すること数度、半ばあきらめていたのですが、今日再チャレンジしてみるとなんなくインストールに成功しました。もしかして、ダウンロードファイルがこわれてた？？よくわかりませんが、なんとかインストールできました。<br />
<br />
さて早速Blend3を起動していたのですが、UI部分作り直されてますよね？<br />
<br />
Marginのサイズなどが微妙に違うような・・・気のせいか？<br />
<br />
「新しいプロジェクト」のダイアログをみて、ちょっと目から鱗。<br />
<br />
<img src="http://art55.img.jugem.jp/20091009_3119796.jpg" width="302" height="347" alt="Expression Blend 3 タブの動き" class="pict" /><br />
<br />
<img src="http://art55.img.jugem.jp/20091009_3119797.jpg" width="412" height="336" alt="Expression Blend 3 タブの動き" class="pict" /><br />
<br />
「プロジェクトの種類」の表示／非表示の切り替えですが、この動きありですよね。<br />
<br />
画面の動きとしては、画面左端のインタラクションなので、Window左端に広げるためのインタラクションボタンがあってもおかしくありませんが、この場合は、意味合い的にはテンプレートを階層分け表示するためのインタラクションボタンなので、Blend3の位置はナイスポイントですよね？<br />
<br />
使ってみて、わかりやすいと思いました。初期表示で隠れているとわかりづらいか？どちらにしても、ちょっと斬新だけど「ありだなー」って思いました。ええ。それだけ。です。
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2009-10-08T21:54:08+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303697">
    <link>http://pro.art55.jp/?eid=1303697</link>
    <title>【WPF】Styleを使用時に気をつけること。</title>
    <description>Source and Project

Styleを使用することで、特定コントロールを一括してプロパティを変更することができます。文字通りスタイルを決定することが出来るわけですが、気をつけなければならないことがあります。

コントロールの特定のプロパティによっては、期待しな...</description>
<content:encoded><![CDATA[
<a href="http://art55.jp/App/20091008/Art55.DataGridButton20091008.zip" target="_blank">Source and Project</a><br />
<br />
Styleを使用することで、特定コントロールを一括してプロパティを変更することができます。文字通りスタイルを決定することが出来るわけですが、気をつけなければならないことがあります。<br />
<br />
コントロールの特定のプロパティによっては、期待しない結果が変えることがあります。たとえば、DataGridがコンテンツにある場合にButtonのMinWidthを設定すると・・・<br />
<br />
&lt;Window.Resources&gt;<br />
　&lt;Style TargetType=&quot;Button&quot;&gt;<br />
　　&lt;Setter Property=&quot;MinWidth&quot; Value=&quot;100&quot; /&gt;<br />
　&lt;/Style&gt;<br />
&lt;/Window.Resources&gt;<br />
&lt;Grid&gt;<br />
　&lt;Grid.RowDefinitions&gt;<br />
　　&lt;RowDefinition Height=&quot;*&quot; /&gt;<br />
　　&lt;RowDefinition Height=&quot;*&quot; /&gt;<br />
　&lt;/Grid.RowDefinitions&gt;<br />
　&lt;Controls:DataGrid x:Name=&quot;dataGrid&quot; ItemsSource=&quot;&#123;Binding&#125;&quot; /&gt;<br />
　&lt;ListView Grid.Row=&quot;1&quot; ItemsSource=&quot;&#123;Binding&#125;&quot;&gt;<br />
　　&lt;ListView.View&gt;<br />
　　　&lt;GridView&gt;<br />
　　　　&lt;GridViewColumn Header=&quot;ヘッダー&quot; DisplayMemberBinding=&quot;&#123;Binding [0]&#125;&quot; /&gt;<br />
　　　　&lt;GridViewColumn Header=&quot;ヘッダー&quot; DisplayMemberBinding=&quot;&#123;Binding [1]&#125;&quot; /&gt;<br />
　　　　&lt;GridViewColumn Header=&quot;ヘッダー&quot; DisplayMemberBinding=&quot;&#123;Binding [2]&#125;&quot; /&gt;<br />
　　　　&lt;GridViewColumn Header=&quot;ヘッダー&quot; DisplayMemberBinding=&quot;&#123;Binding [3]&#125;&quot; /&gt;<br />
　　　&lt;/GridView&gt;<br />
　　&lt;/ListView.View&gt;<br />
　&lt;/ListView&gt;<br />
&lt;/Grid&gt;<br />
<br />
<img src="http://art55.img.jugem.jp/20091009_3119795.jpg" width="252" height="249" alt="DatGridにButton.MinWidthをStyleから設定" class="pict" /><br />
<br />
画像を見ていただければわかりあすが、カーソルがある部分はButtonになっています。この部分のMinWidthが設定されてしまうため、残念なDataGridになってしまっています。この結果を受けてわかることは<br />
<br />
<strong>１．Styleを設定する場合は自分が意図しないものまで変更されていないか注意する必要がある。<br />
２．コントロールを作成する際はStyleで意図しない変更を受けないようにする必要がある。</strong><br />
<br />
という２点だと思います。ちなみにButton.Widthを設定してもDataGridは残念な結果にはなりません。<br />
<br />
<a href="http://art55.jp/App/20091008/Art55.DataGridButton20091008.zip" target="_blank">Source and Project</a>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2009-10-08T21:23:41+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1301466">
    <link>http://pro.art55.jp/?eid=1301466</link>
    <title>【ライセンス】Expression Studio 3 (x86) - CD (Japanese)</title>
    <description>１、２ヶ月前の話ですが、MSDN Premium Subscription からExpression Studio(１，２，３)がダウンロードできるようになってますよね。前はBlendとWebしか落とせなかったのに！買ってしまったではないか！

使えるようになったのはうれしいけど・・・くやしいっす！</description>
<content:encoded><![CDATA[
１、２ヶ月前の話ですが、MSDN Premium Subscription からExpression Studio(１，２，３)がダウンロードできるようになってますよね。前はBlendとWebしか落とせなかったのに！買ってしまったではないか！<br />
<br />
使えるようになったのはうれしいけど・・・くやしいっす！
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2009-10-04T01:11:40+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1301461">
    <link>http://pro.art55.jp/?eid=1301461</link>
    <title>【イベント】第1回 ExpressionTech.jp 勉強会行ってきた</title>
    <description>カテゴライズがおかしいのはご了承ください。

第1回 ExpressionTech.jp 勉強会に行ってきました。
Blend3はやっぱり凄い。これすごすぎる！って再認識しました。

機会があれば面白い機能とか気になる機能とか役に立つ機能とかBlogで紹介できれば（単純に自分が学習...</description>
<content:encoded><![CDATA[
カテゴライズがおかしいのはご了承ください。<br />
<br />
第1回 ExpressionTech.jp 勉強会に行ってきました。<br />
Blend3はやっぱり凄い。これすごすぎる！って再認識しました。<br />
<br />
機会があれば面白い機能とか気になる機能とか役に立つ機能とかBlogで紹介できれば（単純に自分が学習したいだけですが）と思います。はい。<br />
<br />
とりあえず感想まで
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2009-10-04T00:48:27+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1300519">
    <link>http://pro.art55.jp/?eid=1300519</link>
    <title>【WPF】Keyboard.FocusedElement</title>
    <description>

Source and Project

KeyboardクラスにはFocusedElementというstaticなプロパティが公開されています。このプロパティはキーボード入力を受け取る要素を返します。これが意外に有効に使えるケースなどがあります。たとえば、複雑なVisualTreeが構築されている状況で...</description>
<content:encoded><![CDATA[
<img src="http://art55.img.jugem.jp/20091009_3119794.jpg" width="322" height="363" alt="Keyboard.FocusedElement" class="pict" /><br />
<br />
<a href="http://art55.jp/App/20091001/Art55.KeyboardDemo20091001_001.zip" target="_blank">Source and Project</a><br />
<br />
KeyboardクラスにはFocusedElementというstaticなプロパティが公開されています。このプロパティはキーボード入力を受け取る要素を返します。これが意外に有効に使えるケースなどがあります。たとえば、複雑なVisualTreeが構築されている状況で、入力中の要素にアクセスしにくいケースで、確実に入力中なイベントで入力要素を取得するといったことができます。<br />
<br />
コードで書くとこんな感じ<br />
<br />
private void OnPreviewKeyDown(object sender, KeyEventArgs e)<br />
&#123;<br />
　<strong>IInputElement element = Keyboard.FocusedElement;</strong>　<br />
　if (element != null)<br />
　&#123;<br />
　　textBox.Text += element + Environment.NewLine;<br />
　　textBox.ScrollToLine(textBox.LineCount - 1);<br />
　&#125;<br />
&#125;<br />
<br />
きちんと使いどころを選べば便利じゃないかと思うわけです。ええ。久々にBlogを書いたのでなんか難しいです（笑）<br />
<br />
<a href="http://art55.jp/App/20091001/Art55.KeyboardDemo20091001_001.zip" target="_blank">Source and Project</a>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2009-10-02T00:41:30+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1299943">
    <link>http://pro.art55.jp/?eid=1299943</link>
    <title>【イベント】第1回 ExpressionTech.jp 勉強会</title>
    <description>Blogのカテゴライズがおかしいのは見逃してください。

今日、Visual Studioの初期画面を眺めていると面白そうな勉強会が掲載されていたので、申込させてもらいました。最近、コーディングしかしてなかったので気分転換になりそうです。というかExpressionに関して深い...</description>
<content:encoded><![CDATA[
Blogのカテゴライズがおかしいのは見逃してください。<br />
<br />
今日、Visual Studioの初期画面を眺めていると面白そうな勉強会が掲載されていたので、申込させてもらいました。最近、コーディングしかしてなかったので気分転換になりそうです。というかExpressionに関して深い理解を得たいと思ってる今日この頃です。<br />
<br />
第1回 ExpressionTech.jp 勉強会<br />
<a href="http://expressiontech.jp/event/01.html" target="_blank">http://expressiontech.jp/event/01.html</a>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2009-09-30T22:15:55+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1283746">
    <link>http://pro.art55.jp/?eid=1283746</link>
    <title>【雑記】今からTech・Ｅｄ 三日目</title>
    <description>Tech･Ed 三日目です。
ただいま、お昼休みなのです。

マイクロソフト製品はバージョン３から使い物になるとうジンクスは本当なんですね。Blend3をさきほど使ってみたのですが、なかなかすばらしい進化を遂げていました。ちょっと感動したので取り急ぎ報告しておきます。</description>
<content:encoded><![CDATA[
Tech･Ed 三日目です。<br />
ただいま、お昼休みなのです。<br />
<br />
マイクロソフト製品はバージョン３から使い物になるとうジンクスは本当なんですね。Blend3をさきほど使ってみたのですが、なかなかすばらしい進化を遂げていました。ちょっと感動したので取り急ぎ報告しておきます。
]]></content:encoded>
    <dc:subject>イベント</dc:subject>
    <dc:date>2009-08-28T13:30:16+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1283175">
    <link>http://pro.art55.jp/?eid=1283175</link>
    <title>【雑記】今からTech・Ｅｄ 二日目</title>
    <description>昨日はハンズオン漬けであまり情報を得ることができませんでした（笑）
今日は一日中フリーなんのでいっぱいいっぱい情報を得てこようと思います。
てか、そろそろ出ないと間に合わない・・・（急）</description>
<content:encoded><![CDATA[
昨日はハンズオン漬けであまり情報を得ることができませんでした（笑）<br />
今日は一日中フリーなんのでいっぱいいっぱい情報を得てこようと思います。<br />
てか、そろそろ出ないと間に合わない・・・（急）
]]></content:encoded>
    <dc:subject>イベント</dc:subject>
    <dc:date>2009-08-27T07:43:07+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

</rdf:RDF>