<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1344939876237061659</id><updated>2024-09-21T21:05:08.504+09:00</updated><category term="[C#] .NET"/><category term="WPF and Silverlight"/><category term="雑記"/><category term="[Yahoo] 勝手に回答"/><category term="[VB.NET].NET"/><title type='text'>.NET Framework メモ的なもの</title><subtitle type='html'>.NET Frameworkのメモ的な物&#xa;&#xa;たまに違う分野の事も</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-3142792348100899726</id><published>2015-04-14T00:10:00.001+09:00</published><updated>2015-04-14T00:11:48.313+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[VB.NET].NET"/><title type='text'>3年越しのHello World</title><content type='html'>こんばんは&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;3年越しのハローワールド&lt;/h2&gt;&lt;br /&gt;
さて、ITドカタからの脱却致しました。&lt;br /&gt;
思えばIT業界に勤め激動の日々をすごしてまいりましたがそれも4月一杯を&lt;br /&gt;
持ちまして社内SEという上級職へクラスチェンジ致しました。&lt;br /&gt;
&lt;br /&gt;
こちらのクラスでのメインスキルは、要件定義と基幹システム設計・製作という&lt;br /&gt;
かなりの高火力を発揮する事が出来ます。&lt;br /&gt;
しかしながらながらく、コードから離れていた身としてはここらへんでお浚いを&lt;br /&gt;
しておこうと思います。&lt;br /&gt;
&lt;br /&gt;
ちなみに使用言語はVB.NETになります。&lt;br /&gt;
C#の方がいいんですが、会社の方針なので致し方なし。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;VB.NET変数のデータ型と宣言&lt;/h3&gt;Boolean型　True or False&lt;br /&gt;
Byte型　0～255&lt;br /&gt;
Char型 1文字 Unicode&lt;br /&gt;
Short型 -32768 ～ 32767&lt;br /&gt;
Integer型 -2147483648 ～ 2147483647&lt;br /&gt;
Long型 -9223372036854775808 ～ 9223372036854775807&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;VB.NET 2005以降のデータ型&lt;/h4&gt;SByte -128～127&lt;br /&gt;
UShort 0～65535&lt;br /&gt;
UInteger 0～4294967295&lt;br /&gt;
ULong 0～18446744073709551615&lt;br /&gt;
&lt;br /&gt;
※マイナスが取り扱えない&lt;br /&gt;
&lt;br /&gt;
小数点用のデータ型ははぶくめんどい&lt;br /&gt;
&lt;br /&gt;
Date型 0001年1月1日 0:00:00 ～ 9999年12月31日 23:59:59&lt;br /&gt;
Object型　最強&lt;br /&gt;
String型　文字列Unicode 0個～約20億個も文字&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/3142792348100899726/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2015/04/3hello-world.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/3142792348100899726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/3142792348100899726'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2015/04/3hello-world.html' title='3年越しのHello World'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-6170268276550419205</id><published>2011-04-18T11:37:00.003+09:00</published><updated>2011-04-18T11:41:39.541+09:00</updated><title type='text'>これからのIT業界に必要な5つの事</title><content type='html'>&lt;h3&gt;これからのIT業界に必要な5つ事の&lt;/h3&gt;&lt;h4&gt;Over The Next Generation&lt;/h4&gt;&lt;p&gt;ブログ自体を読んでいる人はごく僅かで、自分の発信している情報が&lt;br /&gt;
多くの人に読まれるとは思えない。ただ、IT業界の現状について&lt;br /&gt;
本当に底辺サイドから声高にして言わないと絶対に変わらない。&lt;br /&gt;
&lt;br /&gt;
協力会社や2次請、3次請が横行するなかそのような現状に屈するようでは&lt;br /&gt;
日本のIT業界は終わりを告げる。&lt;br /&gt;
&lt;br /&gt;
少しでも多くの新社会人やこれからIT業界に参入してくる若き日本の希望が&lt;br /&gt;
これらを読んでくれると嬉しい。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;１　プログラミングの勉強？今、必要なのは英語が話せる事だ。&lt;/h3&gt;&lt;p&gt;断定してもいい。余程、優秀でない場合や社内SEという特殊な立場で&lt;br /&gt;
ない限り。英語が必要だ。それはIT業界で&lt;b&gt;まとも&lt;/b&gt;仕事をしたければ日本をでなければならないから。&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;2 資格が必要？それは身売りの為だ。必要なのはよく吟味。&lt;/h3&gt;&lt;p&gt;個人がこの資格が必要だ！！と思い立ち、取る資格は良い。がんばって取ろう。&lt;br /&gt;
会社から、自己なんちゃらで取らされる資格は&lt;b&gt;君を高く売る為だ&lt;/b&gt;&lt;br /&gt;
君は、華美な修飾をされショーウィンドに並んでいるマネキンと同じように扱われている。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;3 24時間戦えますか？いいえ、戦わないし戦わそうとする会社と戦います。&lt;/h3&gt;&lt;p&gt;金曜日、明日は休みだ！「おい、明日休むつもりじゃねーだろな？」と&lt;br /&gt;
上司からの一言、会社に泊まりこんでもう1週間。&lt;br /&gt;
上司の鼻っ柱に顔面パンチをなんどもぶち込む夢を見て慣れない天井をみて朝を&lt;br /&gt;
迎えます。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;どうかご自愛を。&lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;4 やろうと思えば、なんでもできます。&lt;/h3&gt;&lt;p&gt;大人になるにつれ、子供の頃持っていた万能感は失われていきます。&lt;br /&gt;
万能じゃない自分。デスマを何回通り越しましたか？&lt;br /&gt;
&lt;br /&gt;
十分、根性も体力も知力もあります。&lt;br /&gt;
もう一度、自分は万能なんだと思い出して下さい。&lt;br /&gt;
そして、自分のやりたい事をやってみて下さい。&lt;br /&gt;
しがらみは、後になれば些細な事でしかなくなります。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;5 IT企業に勤めようとするな&lt;/h3&gt;&lt;p&gt;夢はない。収入はない。出鼻を挫きたくはないが少数はこれに漏れるが&lt;br /&gt;
多数はこれに当てはまる。&lt;b&gt;IT企業に勤めるな&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
どうしてもやりたければ、&lt;b&gt;中小企業のシステム管理者を目指せ&lt;/b&gt;&lt;br /&gt;
それが無理だったら、ルート営業の方が遥かに&lt;b&gt;健全で社会貢献している仕事&lt;/b&gt;だ。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;特定派遣にでている友人が、泣きながら現状を語ってくれました。&lt;br /&gt;
もう無理だ。家族を養って行くには自分の命を削るしかないのか？&lt;br /&gt;
&lt;br /&gt;
なんで、自分はこの道を選んでしまったのか？&lt;br /&gt;
なんで、自分は努力をしてこなかったのか？&lt;br /&gt;
なんで、自分はこんなにも辛い目にあうのか？&lt;br /&gt;
なんで、金の為に。&lt;br /&gt;
&lt;br /&gt;
動くに動けない葛藤と苦悩を、身に宿し彼は今日もエディタと戦っていると思うと。&lt;br /&gt;
いつから、こんなに生きる事が辛いだけになってきたんだろう。&lt;br /&gt;
&lt;br /&gt;
とりあえず、退職して飲みに行こう。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/6170268276550419205/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2011/04/it5.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6170268276550419205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6170268276550419205'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2011/04/it5.html' title='これからのIT業界に必要な5つの事'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-6190041201426955628</id><published>2011-03-28T09:11:00.003+09:00</published><updated>2011-03-28T09:13:01.095+09:00</updated><title type='text'>TDD　TEST　DRIVEN　DEVELOPMENT　メモ</title><content type='html'>&lt;h2&gt;メモ Test-Driven-Development TDD&lt;/h2&gt;&lt;h3&gt;TDD概要&lt;/h3&gt;&lt;p&gt;次の3ステップを繰り返す事&lt;/p&gt;&lt;ol&gt;&lt;li&gt;[RED]失敗するテストを書く。テストは自動実行できる事。&lt;/li&gt;
&lt;li&gt;[GRENN]テストが成功するように、製品ソースを書く。&lt;/li&gt;
&lt;li&gt;[REFACTOR]製品ソースをリファクタリングし、もう一度テストを実行する。&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;1と2の部分は「テストファースト」と呼ばれます。実際の作業では、1と2を繰り返し&lt;br /&gt;
一息ついたところでリファクタリングする。という流れになります。&lt;br /&gt;
各ステップを端的にあらわす英単語は、次のような意味です。&lt;br /&gt;
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;[RED]=テストツール　NUnitは失敗したテストを赤色で表示する為　ステップ1のゴール&lt;/li&gt;
&lt;li&gt;[GREEN]=NUnitは、成功したテストを緑色で表示する為　ステップ2のゴール&lt;/li&gt;
&lt;li&gt;[REFACTOR]=文字通りリファクタリング&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;各ステップでどのような思考を持っていれば良いかは以下だ&lt;/p&gt;&lt;ol&gt;&lt;li&gt;[RED]=「どんなものを作るか？」厳密に設計する（あえてエラーが発生するものを）&lt;/li&gt;
&lt;li&gt;[GREEN]=「どのように作るか？」テストを通過するコードを書く&lt;/li&gt;
&lt;li&gt;[REFACTOR]=未来の為に、コードを綺麗に直しておく&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;TDD 三原則&lt;/h3&gt;&lt;h4&gt;テストファーストで製品コードを育む指針&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;失敗するユニットテストを成功させる為にしか、プロダクトコードを書いてはならない。&lt;/li&gt;
&lt;li&gt;失敗させるためにしか、ユニットテストを書いてはならない。コンパイルエラーは失敗に数える。&lt;/li&gt;
&lt;li&gt;ユニットテストを1つだけ成功させる以上に、プロダクトコードを書いてはならない。&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;TDDが恩恵を受ける段階やプロジェクトレベルの考察&lt;/h3&gt;&lt;h4&gt;TDDが恩恵を受ける段階&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;×開発プロセス全てはカバーしていない&lt;/li&gt;
&lt;li&gt;×要求開発から、プログラムレベルの外部設計まではカバーしない&lt;/li&gt;
&lt;li&gt;○プログラムの下位レベル（クラス・メソッド）の外部設計からテストまでをカバーする&lt;/li&gt;
&lt;li&gt;×プログラムレベルのテスト（通常、GUIがあるためTDDが困難）から&lt;br /&gt;
ユーザーテストまではカバーにならない&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/6190041201426955628/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2011/03/tddtestdrivendevelopment.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6190041201426955628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6190041201426955628'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2011/03/tddtestdrivendevelopment.html' title='TDD　TEST　DRIVEN　DEVELOPMENT　メモ'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-3890199525909213373</id><published>2010-12-02T18:17:00.000+09:00</published><updated>2010-12-02T18:17:26.432+09:00</updated><title type='text'>[C#] Yahoo　デベロッパーネットワーク  続き</title><content type='html'>&lt;h3&gt;Yahoo デベロッパーネットワーク&lt;/h3&gt;&lt;h4&gt;WebAPI&lt;/h4&gt;とりあえず、オークション情報の取得を考えた結果、前回の様なカテゴリー名やカテゴリーIDが&lt;br /&gt;
必要だった！&lt;br /&gt;
&lt;br /&gt;
で、何も考えずチェックボックスのNameプロパティの後にカテゴリーIDを付け足してあった・・。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;this.CategoryCheckBox[i].Name = &quot;CategoryCheckBox&quot; + dt.Rows[i][0].ToString();&lt;/blockquote&gt;･･･こっからどう進めて行こうか。&lt;br /&gt;
とりあえず、ちゃんとCategoryCheckBoxができてるか確かめー。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ1dspJVrDKH_9KVfT8i44MECeKRbLeaUtxCVIaWhhZl_5fQOTK2KzdqbqkakSAl4Me6msPl61De5tymjhzrzqsV_Dwt0FECCBUe2hEBPonLitSfLqOcPVE8GGc1-Zh8i1u3dGK6N-0FdO/s1600/KJS000040.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;95&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ1dspJVrDKH_9KVfT8i44MECeKRbLeaUtxCVIaWhhZl_5fQOTK2KzdqbqkakSAl4Me6msPl61De5tymjhzrzqsV_Dwt0FECCBUe2hEBPonLitSfLqOcPVE8GGc1-Zh8i1u3dGK6N-0FdO/s320/KJS000040.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p&gt;ううーむ・・。チェックを入れた時にカテゴリーIDを収集するか・・。&lt;br /&gt;
Listとかに突っ込んでKEYみたいので判断するか悩むなー。と適当な事を考えつつ&lt;br /&gt;
WEBを見てたら、昨日書いたデシリアライズとシリアライズのサンプル発見!!&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;  public Yahoo.API.WebSearchResponse.ResultSet WebSearch(string appId, string query, string type, short results, int start, string format, bool adultOk, bool similarOk, string language)
  {
   string requestUri = 
                String.Format(&quot;http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid={0}&amp;query={1}&amp;type={2}&amp;results={3}&amp;start={4}&amp;format={5}&amp;adult_ok={6}&amp;similar_ok={7}&amp;language={8}&quot;, 
                appId, HttpUtility.UrlEncode(query, Encoding.UTF8) , type, results, 
                start, format, adultOk ? &quot;1&quot; : &quot;0&quot;, similarOk ? &quot;1&quot; : &quot;0&quot;, language);

   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);

   Yahoo.API.WebSearchResponse.ResultSet resultSet = null;
   using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
   {
    using (Stream responseStream = response.GetResponseStream())
    {
     XmlSerializer serializer = new XmlSerializer(typeof(Yahoo.API.WebSearchResponse.ResultSet));
     resultSet = (Yahoo.API.WebSearchResponse.ResultSet)serializer.Deserialize(responseStream);
    }
   }

   return resultSet;
  }
&lt;/pre&gt;&lt;p&gt;引数多すぎ！って思ったけどまぁ考えてくれた人ありがとー！この攻撃的なｺｰﾄﾞは&lt;br /&gt;
日本人じゃない。多分。&lt;br /&gt;
&lt;br /&gt;
また駄文が長くなったので次回。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/3890199525909213373/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/12/c-yahoo_02.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/3890199525909213373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/3890199525909213373'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/12/c-yahoo_02.html' title='[C#] Yahoo　デベロッパーネットワーク  続き'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ1dspJVrDKH_9KVfT8i44MECeKRbLeaUtxCVIaWhhZl_5fQOTK2KzdqbqkakSAl4Me6msPl61De5tymjhzrzqsV_Dwt0FECCBUe2hEBPonLitSfLqOcPVE8GGc1-Zh8i1u3dGK6N-0FdO/s72-c/KJS000040.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-7319044766089134557</id><published>2010-12-01T15:51:00.003+09:00</published><updated>2010-12-02T17:58:36.001+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>[C#] Yahoo　デベロッパーネットワーク</title><content type='html'>&lt;h3&gt;Yahoo デベロッパーネットワーク&lt;/h3&gt;&lt;h4&gt;Web API&lt;/h4&gt;&lt;h4&gt;C#&lt;/h4&gt;&lt;p&gt;激しく見づらいって言われたの加筆・修正&lt;p&gt;&lt;p&gt;そういえば、とある質問サイトでYahooAPIなんてもんがあったなと&lt;br /&gt;
思い出し解答しましたが。実際には使った事なかったり・・。&lt;br /&gt;
なんてわけにもいかなかったので検索した所、PHPとかJAVAのサンプルはあったけど&lt;br /&gt;
.NETのサンプルは中々見つからなかったのでちょっとしこしこ書いてみた。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;        public System.Data.DataSet ReturnCategory(int CategoryID)
        {
            System.Data.DataSet ds = new System.Data.DataSet();
            string ApiUrl = 
            string.Format(&quot;http://auctions.yahooapis.jp/AuctionWebService/V2/categoryTree&quot; +
                                   &quot;?appid={0}&quot; +
                                   &quot;&amp;category={1}&quot;, ID, CategoryID);

            HttpWebRequest httpwebrequest =
                WebRequest.Create(ApiUrl) as HttpWebRequest;

            using (HttpWebResponse response = httpwebrequest.GetResponse() as HttpWebResponse)
            {
                ds.ReadXml(response.GetResponseStream());
            }
            return ds;
        }
&lt;/pre&gt;&lt;p&gt;こんな感じで、XMLでもDataSetでも返せる。本格的に作るんであればシリアライズして&lt;br /&gt;
クラス事に欲しい値を返せるようにするのが自分的なベストだけどサンプルでやるには&lt;br /&gt;
めんどすぎる為割愛ー。&lt;br /&gt;
&lt;br /&gt;
でこんな感じで、カテゴリーの一覧を取得&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigQLHOL2GbLSxh7n2qBCMxeRL_i8cRc5IrdZ1jjG2IrLE53U79nOdkNB3RLAYf4cW5u7muy1Gn9gJhOTr0BMWWndkrtZWvZp9LeP_oBTw81Hr98v_pPSKooSQtLFuu2hZfW-JMkDSXXVWu/s1600/KJS000038.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;142&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigQLHOL2GbLSxh7n2qBCMxeRL_i8cRc5IrdZ1jjG2IrLE53U79nOdkNB3RLAYf4cW5u7muy1Gn9gJhOTr0BMWWndkrtZWvZp9LeP_oBTw81Hr98v_pPSKooSQtLFuu2hZfW-JMkDSXXVWu/s320/KJS000038.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;まずは、guiをちょこっと作ってみた。&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHReU3QyyFuJ3jBG1WsJTU_PUpinlEDVgpU2zObcUJyQVDXaeCVIVvoVax6EF0a71_jwr58cEY227l9721S_xF5QmUMDGHieLQ_GPmV0LNr0Chu4MZhppsvJq0l0orNQjoZGJYflm7Rduu/s1600/KJS000039.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;189&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHReU3QyyFuJ3jBG1WsJTU_PUpinlEDVgpU2zObcUJyQVDXaeCVIVvoVax6EF0a71_jwr58cEY227l9721S_xF5QmUMDGHieLQ_GPmV0LNr0Chu4MZhppsvJq0l0orNQjoZGJYflm7Rduu/s320/KJS000039.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;pre&gt;        //チェックボックスの配列の作成
        private CheckBox[] CategoryCheckBox;
        private void YahooSampleAPI_Load(object sender, EventArgs e)
        {
            //カテゴリーを決定する
            this.toolStripStatusLabel2.Text = &quot;カテゴリーの取得中&quot;;
            int cid = 0;
            DataSet ds = yahooWebService.ReturnCategory(cid);
            DataTable dt = ds.Tables[&quot;ChildCategory&quot;];
            int datacount = dt.Rows.Count - 1;
            //レイアウトの編集
            this.SuspendLayout();
            this.CategoryCheckBox = new CheckBox[datacount];
            for (int i = 0; i &lt; datacount; i++)
            {
                this.CategoryCheckBox[i] = new CheckBox();
                this.CategoryCheckBox[i].Name = &quot;CategoryCheckBox&quot; + dt.Rows[i][0].ToString();
                this.CategoryCheckBox[i].Text = dt.Rows[i][1].ToString();
                this.CategoryCheckBox[i].AutoSize = true;
                int width = CategoryCheckBox[i].Width;
                this.CategoryCheckBox[i].Location = new Point(width + 15, 20);
                this.CategoryCheckBox[i].TabIndex = i;
                //this.flowLayoutPanel1.SetFlowBreak(CategoryCheckBox[i], true);
            }
            this.flowLayoutPanel1.Controls.AddRange(this.CategoryCheckBox);
            this.ResumeLayout(false);
            this.toolStripStatusLabel2.Text = &quot;カテゴリーの取得に成功しました。&quot;;
        }
&lt;/pre&gt;
&lt;p&gt;長くなったので次回.
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/7319044766089134557/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/12/c-yahoo.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/7319044766089134557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/7319044766089134557'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/12/c-yahoo.html' title='[C#] Yahoo　デベロッパーネットワーク'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigQLHOL2GbLSxh7n2qBCMxeRL_i8cRc5IrdZ1jjG2IrLE53U79nOdkNB3RLAYf4cW5u7muy1Gn9gJhOTr0BMWWndkrtZWvZp9LeP_oBTw81Hr98v_pPSKooSQtLFuu2hZfW-JMkDSXXVWu/s72-c/KJS000038.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-794170957612907649</id><published>2010-10-19T10:41:00.000+09:00</published><updated>2010-10-19T10:41:57.224+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="[Yahoo] 勝手に回答"/><title type='text'>[.NET C#][ZrdGraph]棒グラフの作成</title><content type='html'>翻訳機すら掛けないめんどくさがりやの為のZedGraph&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;データテーブルから該当の棒グラフの作成&lt;/h3&gt;&lt;h4&gt;vb.net&lt;/h4&gt;&lt;blockquote&gt;Public Class MainForm&lt;br /&gt;
    Private Sub MainForm_Load _&lt;br /&gt;
        (ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;
&lt;br /&gt;
        Dim csvDir As String = &quot;CSVのファイル設置場所&quot;&lt;br /&gt;
        Dim csvFileName As String = &quot;CSVのファイル名&quot;&lt;br /&gt;
&lt;br /&gt;
        Dim conString As String = _&lt;br /&gt;
            &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&quot; _&lt;br /&gt;
            + csvDir + &quot;;Extended Properties=&quot;&quot;text;HDR=No;FMT=Delimited&quot;&quot;&quot;&lt;br /&gt;
        Dim con As New System.Data.OleDb.OleDbConnection(conString)&lt;br /&gt;
&lt;br /&gt;
        Dim commText As String = &quot;SELECT * FROM [&quot; + csvFileName + &quot;]&quot;&lt;br /&gt;
        Dim da As New System.Data.OleDb.OleDbDataAdapter(commText, con)&lt;br /&gt;
&lt;br /&gt;
        &#39;DataTableの作成&lt;br /&gt;
        Dim dt As New DataTable&lt;br /&gt;
        da.Fill(dt)&lt;br /&gt;
&lt;br /&gt;
        Create_LineGraph(Me.ZedGraphControl1, dt)&lt;br /&gt;
&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
    Private Sub Create_LineGraph(ByVal _zg As ZedGraphControl, ByVal _dt As DataTable)&lt;br /&gt;
        Dim dtbuff As DataTable = _dt.Copy()&lt;br /&gt;
        Dim myPane As GraphPane = ZedGraphControl1.GraphPane&lt;br /&gt;
        &#39;グラフの設定&lt;br /&gt;
        myPane.XAxis.MajorTic.IsBetweenLabels = True&lt;br /&gt;
        myPane.Title.Text = &quot;TEST&quot;&lt;br /&gt;
        myPane.XAxis.Type = AxisType.Text&lt;br /&gt;
&lt;br /&gt;
        &#39;データソースの設定&lt;br /&gt;
        Dim dspl As DataSourcePointList = New DataSourcePointList&lt;br /&gt;
        dspl.DataSource = dtbuff&lt;br /&gt;
&lt;br /&gt;
        &#39;XY軸の設定&lt;br /&gt;
        dspl.XDataMember = _dt.Columns(1).ToString()&lt;br /&gt;
        dspl.YDataMember = _dt.Columns(0).ToString()&lt;br /&gt;
        dspl.ZDataMember = Nothing&lt;br /&gt;
        &#39;グラフの描写タイプの設定&lt;br /&gt;
        Dim myLine As BarItem&lt;br /&gt;
        myLine = ZedGraphControl1.GraphPane.AddBar(&quot;sample&quot;, dspl, Color.Blue)&lt;br /&gt;
&lt;br /&gt;
        myPane.BarSettings.Type = BarType.Stack&lt;br /&gt;
&lt;br /&gt;
        ZedGraphControl1.IsShowPointValues = True&lt;br /&gt;
        ZedGraphControl1.AxisChange()&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;/blockquote&gt;&lt;p&gt;棒グラフの作成方法、プロットの仕方としては大まかに別けて2種類&lt;br /&gt;
直に数字を用いそれを利用する方法、データテーブルを用いそれを利用する方法&lt;br /&gt;
例えば、上記ではデータテーブルを用い利用している。&lt;br /&gt;
DataSourcePointListクラスの、XDataMemberプロパティとYDataMemberプロパティには&lt;br /&gt;
表示したい値を、CoulumnのIndexを指定するか、上記の様にCoumnの名前を指定する。&lt;br /&gt;
この時、実際の名前を入力しても良い。 &lt;br /&gt;
&lt;br /&gt;
そうでない場合は以下&lt;/p&gt;&lt;h3&gt;直に数字を用いる&lt;/h3&gt;&lt;h4&gt;vb.net&lt;/h4&gt;&lt;blockquote&gt;dim xLabel() as string = (3) {&quot;本田&quot;, &quot;長友&quot;, &quot;長谷部&quot;, &quot;Turio&quot;}&lt;br /&gt;
dim yValue() as double = (3) {7.5, 6.0, 7.0, 0}&lt;br /&gt;
&lt;br /&gt;
dim myCurve as baritem = mypane.addbar(&quot;Score&quot;, nothing, yValue, color.red)&lt;br /&gt;
&lt;br /&gt;
mypane.XAxis.MajoyTic.IsBetweenLabels = true&lt;br /&gt;
mypane.XAxis.Scale.TextLabels= Xlabels&lt;br /&gt;
mypane.XAxis.Type= AxisType.Text&lt;br /&gt;
&lt;br /&gt;
mypane.BarSettings.Type = BarType.Stack&lt;br /&gt;
&lt;br /&gt;
ZedGraphControl1.AxisChange()&lt;br /&gt;
&lt;/blockquote&gt;&lt;p&gt;XとYの値を、配列で用意しておきそれらを一括でグラフにするというもの。&lt;br /&gt;
また、BarItemクラスでは実数での実装とPointListでの実装の2つのが用意されている。&lt;br /&gt;
ListItemクラスでも同様に実数とPointListクラスでの実装の2つが用意されている。&lt;br /&gt;
これらを用いグラフをどの値を描写させるか決定させる。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/794170957612907649/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/10/net-czrdgraph.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/794170957612907649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/794170957612907649'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/10/net-czrdgraph.html' title='[.NET C#][ZrdGraph]棒グラフの作成'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-7035577502913396340</id><published>2010-10-15T09:58:00.000+09:00</published><updated>2010-10-15T09:58:00.089+09:00</updated><title type='text'>[愚痴]ぐち</title><content type='html'>ヘルプ要請があったのでちょっと手伝ってきた&lt;br /&gt;
設計みたらVB6だったのに唖然&lt;br /&gt;
&lt;br /&gt;
まぁ・・いいんだけど&lt;br /&gt;
&lt;br /&gt;
とある工場の仕入在庫管理用のアプリケーション&lt;br /&gt;
サーバー機はwindowsserverでクライアント機3台がwindows7...&lt;br /&gt;
&lt;br /&gt;
でまぁ、グレープシティさんのコンポーネント使う事になったんだけど&lt;br /&gt;
現行のコンポーネントだと対応していないとの事で&lt;br /&gt;
新たに・・つか今更、購入してた。&lt;br /&gt;
&lt;br /&gt;
売上上がるみたいだからいいんだけど。&lt;br /&gt;
で、設計批判するわけじゃないんだけど明らかにこっちの&lt;br /&gt;
都合を押し付けてるような設計でいくら中小企業のパソコン使えないおばちゃんでも&lt;br /&gt;
さすがに使いにくいだろって感じの作り。&lt;br /&gt;
&lt;br /&gt;
そこでかっこよく僕は「こんなんじゃ駄目だ。ユーザービリティに富んだ設計を！！」&lt;br /&gt;
と言えたらかっこよかったんだけどまぁ放置して・・。&lt;br /&gt;
&lt;br /&gt;
僕が口出せる事じゃなかったんで言えてないけど画面設計くらいは見やすく判り易くを&lt;br /&gt;
心がけてわ。&lt;br /&gt;
&lt;br /&gt;
個人的、独断と偏見だけど、営業力が強いと技術力が無くても金は稼げる。</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/7035577502913396340/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/10/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/7035577502913396340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/7035577502913396340'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/10/blog-post.html' title='[愚痴]ぐち'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-4068180547162556455</id><published>2010-09-15T13:36:00.002+09:00</published><updated>2010-09-15T13:36:06.482+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="雑記"/><title type='text'>[雑記]ライフデフラグ</title><content type='html'>&lt;h3&gt;ライフサイクルの最適化&lt;/h3&gt;&lt;h4&gt;デフラグ&lt;/h4&gt;&lt;p&gt;メモとして&lt;br /&gt;
&lt;br /&gt;
帰宅 19:00&lt;br /&gt;
&lt;br /&gt;
食事 19:30-20:00&lt;br /&gt;
&lt;br /&gt;
ジョギング 20:00-20:45&lt;br /&gt;
&lt;br /&gt;
シャワー 21:00-21:25&lt;br /&gt;
&lt;br /&gt;
余暇 21:30-22:30&lt;br /&gt;
&lt;br /&gt;
勉強 22:30-23:00&lt;br /&gt;
&lt;br /&gt;
余暇 23:00-23:45&lt;br /&gt;
&lt;br /&gt;
就寝準備 23:50&lt;br /&gt;
&lt;br /&gt;
就寝予定 24:00&lt;br /&gt;
&lt;br /&gt;
起床 4:30-5:00 部屋を掃除しつつ支度&lt;br /&gt;
&lt;br /&gt;
ジョギング 5:00-5:30&lt;br /&gt;
&lt;br /&gt;
シャワー 6:00-6:30&lt;br /&gt;
&lt;br /&gt;
飯 6:30-7:00&lt;br /&gt;
&lt;br /&gt;
出社予定時刻 7:20-7:30&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;余暇が多い。&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;勉強時間が少ないけど学習意欲が低すぎて困りもの&lt;/li&gt;
&lt;li&gt;休日・祝日は、睡眠時間を+3時間して睡眠不足を解消&lt;/li&gt;
&lt;li&gt;余暇は家族との付き合いの為、削ってはいけない&lt;/li&gt;
&lt;li&gt;できればどこかで早朝学習をしたい&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/4068180547162556455/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/blog-post_15.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4068180547162556455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4068180547162556455'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/blog-post_15.html' title='[雑記]ライフデフラグ'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-5272065795842510899</id><published>2010-09-10T10:04:00.001+09:00</published><updated>2010-09-10T10:04:31.461+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="雑記"/><title type='text'>詰んだのでメモ</title><content type='html'>ODP.NET リファレンス抜粋&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;重要インストール情報&lt;/h3&gt;&lt;h4&gt;依存&lt;/h4&gt;&lt;quote&gt;&lt;br /&gt;
ODP.NET 10gリリースは、Oracle Client10gリリースに依存する為、同じOracleホームにインストール&lt;br /&gt;
する必要があります。&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;ODP.NETでは通常に行った時Universal Installerで起動する為、前提条件を確認&lt;br /&gt;
&lt;br /&gt;
インストール計画に沿ってOracle Clientをインストールする&lt;br /&gt;
http://otndnld.oracle.co.jp/document/products/oracle11g/111/solaris/E05979-01/install_overview.htm&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/5272065795842510899/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5272065795842510899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5272065795842510899'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/blog-post.html' title='詰んだのでメモ'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-8070427000257211281</id><published>2010-09-03T12:07:00.000+09:00</published><updated>2010-09-03T12:07:32.942+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>OracleDataAdapterとOracleCommand</title><content type='html'>わんくまサイトの掲示板みてたら&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;OracleDataAdapterとOracleCommand&lt;/h3&gt;&lt;h4&gt;Bind変数が違う&lt;/h4&gt;&lt;br /&gt;
&lt;p&gt;基本的にrom専でしたがちょっと気になった所がありました。&lt;br /&gt;
ODP.NETを使用している方で、多分色々とごっちゃになってました。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;blockquote&gt;&gt;Execute Error:ORA-01008: バインドされていない変数があります。&lt;br /&gt;
&gt;上記エラーが発生します。&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;pre&gt;private void AddOracleParameter
    (object value1, object value2)
{
    OracleParameter[] param = new OracleParameter[]
    {new OracleParameter(&quot;startDate&quot;, OracleDbType.Int32),
        new OracleParameter(&quot;endDate&quot;, OracleDbType.Int32)};
    param[0].Value = value1;
    param[1].Value = value2;
　　
　　cmd.BindByName = true;
    foreach (OracleParameter item in param)
    {
        cmd.Parameters.Add(item);
    }
}
&lt;/pre&gt;&lt;p&gt;これだと、変数cmdって事は多分OracleCommandで&lt;br /&gt;
OracleCommandのバインド変数にセットしその後、OracleDataAdapterのコンストラクタに&lt;br /&gt;
cmd.CommandTextを突っ込んでますが&lt;br /&gt;
&lt;br /&gt;
これだと、OracleCommandのバインド変数がOracleDataAdapterに渡る事はにゃあですので&lt;br /&gt;
&lt;br /&gt;
実際には、AddOracleParameterメソッドをオーバーロードさせるなりなんなりさせ&lt;br /&gt;
AdapaterかCommandかを切り分ける必要があります。&lt;br /&gt;
&lt;pre&gt;private void AddOracleParameter
    (object obj, dbtype dtype, int size)
{
 OracleDataAdapter1.SelectCommand.Parameters.Add
  (obj, dtype, size);
}
private void AddOracleParameter
    (object obj, dbtype dtype, int size, hoge hoge)
{
 OracleCommand.Parameters.Add
  (obj, dtype, size);
}
&lt;/pre&gt;&lt;br /&gt;
これ実際にプロジェクト中になるとわかりづらいんです。&lt;br /&gt;
Execute Error:ORA-01008: バインドされていない変数があります。&lt;br /&gt;
&lt;br /&gt;
変数がバインドされていないので、OracleCommand.ParametersのAddメソッドが&lt;br /&gt;
正常な形で行われているのかそれとも’SQL文がおかしい’のか切り分けが微妙になってきます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
いやまぁ、OracleDataAdapterにもバインド変数をセットするプロパティが&lt;br /&gt;
あるのを事前に調べとけって話ですがね。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;using (OracleDataAdapter oda = new OracleDataAdapter(cmd.CommandText, Cnn))
{
    using (System.Data.DataSet da = new System.Data.DataSet())
    {
      AddOracleParameter(_start, _end);
      oda.Fill(da, dataMember);
      return da;
    }
}


&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;※AddOracleParameterは多分、自作クラスのODPの拡張メソッドぽいやつ。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/8070427000257211281/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/oracledataadapteroraclecommand.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/8070427000257211281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/8070427000257211281'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/oracledataadapteroraclecommand.html' title='OracleDataAdapterとOracleCommand'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-7484780604783263697</id><published>2010-09-03T11:38:00.000+09:00</published><updated>2010-09-03T11:38:25.464+09:00</updated><title type='text'>[memo]いまさらクラウド</title><content type='html'>Windows Azure Platformについて&lt;br /&gt;
&lt;br /&gt;
参考http://blogs.msdn.com/b/nakama/archive/2010/01/08/hello-world-windows-azure-platform.aspx&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Windows Azure Platform　概要&lt;/h3&gt;&lt;h4&gt;概要&lt;/h4&gt;&lt;quote&gt;&lt;br /&gt;
Windows Azure Platformは　既存のシステムの在り方をすべてリプレースするような&lt;br /&gt;
万能なサービスというわけではなく。&lt;br /&gt;
&lt;br /&gt;
その為、Azureを利用するにあたり、ＭＳ社の製品やサービスの中でどのような位置付けに&lt;br /&gt;
あるものなのかを正しく理解する事が重要。&lt;br /&gt;
&lt;br /&gt;
そして、理解する為に、ＭＳ社クラウドコンピューティング戦略である　&quot;S+S&quot;と&lt;br /&gt;
それらがもたらすコンピューティングシステムの変化を理解しなければならない&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;クラウドコンピューティングとは？&lt;/h3&gt;&lt;h4&gt;クラウド&lt;/h4&gt;&lt;quote&gt;&lt;br /&gt;
大雑把に述べると、ネットワークを介して&#39;提供&#39;される&#39;サービス&#39;&lt;br /&gt;
のシステム形態。&lt;br /&gt;
&lt;br /&gt;
ネットワークの向こう側にあるサーバやシステムがどのような構成か判らないけれど&lt;br /&gt;
ユーザーがそうしたサーバの中身やシステムの構成などを意識することなく&lt;br /&gt;
サービスを享受する事ができる。&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;
&lt;p&gt;どっかで聞いた内容・・と思ったらOOP&lt;br /&gt;
抽象化とカプセル化の概念ぽい。&lt;br /&gt;
&lt;/p&gt;&lt;h3&gt;クラウドタイプ&lt;/h3&gt;&lt;h4&gt;3つの形&lt;/h4&gt;&lt;p&gt;以下は、アプリケーション・ミドルウェア・インフラの3階層のシステム&lt;/p&gt;&lt;quote&gt;&lt;br /&gt;
&lt;b&gt;クラウド型 IaaS (イァースらしぃ) (Infrastructure as a Service)&lt;/b&gt;&lt;br /&gt;
インフラ部分のみ任せる。この方式を取った場合には、自社ではアプリとミドルのみ用意すればよく&lt;br /&gt;
インフラ部分（ハードウェアの調達や監視、故障対応等）は業者にお任せしてしまう。&lt;br /&gt;
&lt;br /&gt;
クラウド型 PaaS  インフラとミドル層は任せる&lt;br /&gt;
インフラとミドルウェアの部分を任せるという方式。この方式を取った場合には&lt;br /&gt;
アプリケーションのみ用意する形。&lt;br /&gt;
&lt;br /&gt;
クラウド型 SaaS  アプリ・ミドル・インフラ全て任せる&lt;br /&gt;
全てを委託してしまう。という方式。この方式を取った場合には自社では&lt;br /&gt;
システムの構築や運用などについては一切気にする必要はなく&lt;br /&gt;
提供されるアプリケーションをそのまま使うだけ、という形になります。&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;
&lt;p&gt;読んでて今までもあんじゃん・・。と思ってましたらその下に&lt;br /&gt;
&lt;/p&gt;&lt;quote&gt;&lt;br /&gt;
これって従来あったサービスと何が違うの？」と思われた方も多いと思います。はい、概していえばその通りです。実は IaaS, PaaS, SaaS に関しては、似たようなサービスが従来から存在しています。例えば以下のようなものを考えてみましょう。&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;
&lt;p&gt;ASPなんて典型的じゃーん。て思ったらやっぱASPはクラウドらしい。微妙すぎる。&lt;br /&gt;
&lt;/p&gt;&lt;h3&gt;じゃぁどうなの実際&lt;/h3&gt;&lt;h4&gt;稼動中のシステム&lt;/h4&gt;&lt;p&gt;じゃぁあんま変わんないね。と思ってた所&lt;br /&gt;
薄字で。&lt;br /&gt;
&lt;/p&gt;&lt;quote&gt;&lt;br /&gt;
クラウドコンピューティングというパラダイムシフトは多くのビジネスやコンピューティングシステムの在り方に影響を与えるものではありますが、既存のビジネスやコンピューティングシステムをリプレースするものではない、と考えるべき&lt;br /&gt;
&lt;/quote&gt;&lt;br /&gt;
&lt;p&gt;確かにリプレースが全て出来たら利益的には良いけど。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/7484780604783263697/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/memo.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/7484780604783263697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/7484780604783263697'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/09/memo.html' title='[memo]いまさらクラウド'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-8176293043696589697</id><published>2010-08-17T14:59:00.002+09:00</published><updated>2010-08-17T14:59:54.391+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>DataSetにXMLを取り込む　の続き ２</title><content type='html'>&lt;h3&gt;DataSetにXMLを取り込む　の続き ２&lt;/h3&gt;&lt;br /&gt;
&lt;b&gt;このオーバーテクノロジーの超ハイスペックパソコンでは&lt;br /&gt;
Oracleからのデータ生成に耐えられない！&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ので一旦中止&lt;br /&gt;
&lt;br /&gt;
ちなみに行った&lt;h4&gt;動作環境&lt;/h4&gt;&lt;br /&gt;
&lt;blockquote&gt;   Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 3 (2600.xpsp_sp3_gdr.100216-1514)&lt;br /&gt;
           Language: Japanese (Regional Setting: Japanese)&lt;br /&gt;
System Manufacturer: Dell Computer Corporation&lt;br /&gt;
       System Model: OptiPlex GX270               &lt;br /&gt;
               BIOS: Phoenix ROM BIOS PLUS Version 1.10 A03&lt;br /&gt;
          Processor: Intel(R) Pentium(R) 4 CPU 2.60GHz&lt;br /&gt;
             Memory: 510MB RAM&lt;br /&gt;
          Page File: 1179MB used, 196MB available&lt;br /&gt;
        Windows Dir: C:\WINDOWS&lt;br /&gt;
    DirectX Version: DirectX 9.0c (4.09.0000.0904)&lt;br /&gt;
DX Setup Parameters: Not found&lt;br /&gt;
     DxDiag Version: 5.03.2600.5512 32bit Unicode&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
とりあえずデータの在り方にもよるんだろうけど、1000000件の単純な文字列だったら&lt;br /&gt;
&lt;br /&gt;
BeginLoadData EndLoadData&lt;br /&gt;
&lt;br /&gt;
の顕著な効果は現れないみたい。&lt;br /&gt;
&lt;br /&gt;
不満ダ</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/8176293043696589697/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/datasetxml_17.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/8176293043696589697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/8176293043696589697'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/datasetxml_17.html' title='DataSetにXMLを取り込む　の続き ２'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-6031480928464423123</id><published>2010-08-11T13:08:00.003+09:00</published><updated>2010-08-11T13:09:46.869+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>DataSetにXMLを取り込む　の続き</title><content type='html'>&lt;h3&gt;DataSetにXMLを取り込む　の続き&lt;/h3&gt;&lt;br /&gt;
&lt;h4&gt;BeginLoadData EndLoadData&lt;/h4&gt;&lt;quote&gt;&lt;br /&gt;
1000000件&lt;br /&gt;
BeginLoadData EndLoadData有り　Time is : 00:00:14.5700241&lt;br /&gt;
BeginLoadData EndLoadData無し　Time is : 00:00:14.7292566&lt;br /&gt;
&lt;/qoute&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;1000000件のデータを処理してみたけど、まったく効果がなかった・・・。ので！&lt;br /&gt;
ちょっと調べてみたら&lt;/p&gt;&lt;br /&gt;
&lt;blockquote&gt;データを読み込む間、通知、インデックスの維持、および制約をオフにします。&lt;/blockquote&gt;&lt;p&gt;データの読込時に、インデックスや制約をオフにする・・。通知ってなんだ・・。&lt;/p&gt;&lt;br /&gt;
&lt;blockquote&gt;データを読み込んだ後、通知、インデックスの維持、および制約をオンにします。&lt;/blockquote&gt;&lt;p&gt;だから通知ってなんだ・・・。とりあえず、1000000件ばかしのデータじゃあんまかわらんのか。&lt;br /&gt;
xmlの構造がもう少し複雑だと変わるのかもしれないのだけれども作成するのが・・・！！！！&lt;br /&gt;
そういえば、でかいデータがあった。&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Oracle Databaseは、ネイティブXMLの生成をサポートします。次の場所に格納されたXMLデータを生成または再生成するためのオプションがいくつか提供されています。 &lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
というわけで、4000000万件分のデータをoracleからつくｒ・・・・。&lt;br /&gt;
&lt;br /&gt;
メモリが足りないのか、フリーズする。&lt;br /&gt;
&lt;br /&gt;
このＰＣじゃさすがに無理なのか。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/6031480928464423123/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/datasetxml_11.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6031480928464423123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6031480928464423123'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/datasetxml_11.html' title='DataSetにXMLを取り込む　の続き'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-909230290211926601</id><published>2010-08-09T18:14:00.002+09:00</published><updated>2010-08-09T18:14:52.649+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>DataSetにXMLを取り込む</title><content type='html'>&lt;h3&gt;DataSetにXMLを取り込む&lt;/h3&gt;&lt;h4&gt;XMLを取得&lt;/h4&gt;&lt;br /&gt;
&lt;p&gt;DataSetにXMLファイルを読込んで使う事なんて滅多に業務的に無い為メモ&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;VB.NET&lt;/h4&gt;&lt;pre&gt;Using ds As DataSet = New DataSet
 Dim dt As DataTable = New DataTable(tabelname)
        Dim xmlSR As System.IO.StreamReader _
         = New System.IO.StreamReader(filepath &amp; xmlName)

        For Each dt In ds.Tables
         dt.BeginLoadData()
        Next

        ds.ReadXml(xmlSR)
        dt = ds.Tables(0)

        For Each dt In ds.Tables
         dt.EndLoadData()
        Next

End Using
&lt;/pre&gt;&lt;br /&gt;
&lt;h4&gt;C#&lt;/h4&gt;&lt;pre&gt;using (DataSet ds = new DataSet()) {
 DataTable dt = new DataTable(tabelname);
 System.IO.StreamReader xmlSR = new System.IO.StreamReader(filepath + xmlName);

 foreach ( dt in ds.Tables) {
  dt.BeginLoadData();
 }

 ds.ReadXml(xmlSR);
 dt = ds.Tables(0);

 foreach ( dt in ds.Tables) {
  dt.EndLoadData();
 }

}
&lt;/pre&gt;&lt;br /&gt;
&lt;h4&gt;DataSet ビジュアライザで確認&lt;/h4&gt;&lt;p&gt;実際に確認してみたらいい感じ。&lt;br /&gt;
&lt;quote&gt;&lt;br /&gt;
非常に大きなファイルを読み込む際に ReadXml を呼び出すと、パフォーマンスが低下することがあります。大きなファイルを読み込む場合に、ReadXml のパフォーマンスを最大にするには、DataSet のテーブルごとに BeginLoadData メソッドを呼び出し、その後で ReadXml を呼び出します。最後に、次の例に示すように、DataSet のテーブルごとに EndLoadData を呼び出します。&lt;br /&gt;
&lt;quote/&gt;&lt;br /&gt;
&lt;br /&gt;
どんくらいの大量のデータやねんってことで調べた。&lt;br /&gt;
&lt;br /&gt;
とりあえず1000件のデータを作成しstopwatchクラスで時間計測!&lt;br /&gt;
&lt;br /&gt;
BeginLoadData EndLoadData有り Time is : 00:00:00.0227109 はえー・・。&lt;br /&gt;
BeginLoadData EndLoadData無し Time is : 00:00:00.0192091 あるぇー・・。&lt;br /&gt;
&lt;br /&gt;
データがたりんのね。&lt;br /&gt;
&lt;br /&gt;
10000件&lt;br /&gt;
BeginLoadData EndLoadData有り　Time is : 00:00:00.1380896   ?&lt;br /&gt;
BeginLoadData EndLoadData無し  Time is : 00:00:00.1264850   ?&lt;br /&gt;
&lt;br /&gt;
100000件&lt;br /&gt;
BeginLoadData EndLoadData有り　Time is : 00:00:01.3964389   ?&lt;br /&gt;
BeginLoadData EndLoadData無し　Time is : 00:00:01.7707770   ?&lt;br /&gt;
&lt;br /&gt;
び・・微妙な差が・・・。&lt;br /&gt;
&lt;br /&gt;
1000000件　私のエディタの限界。&lt;br /&gt;
BeginLoadData EndLoadData有り　Time is : 00:00:14.5700241&lt;br /&gt;
BeginLoadData EndLoadData無し　Time is : 00:00:14.7292566&lt;br /&gt;
&lt;br /&gt;
・・・・あれ・・？&lt;br /&gt;
&lt;br /&gt;
・・・・・・・・&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MA SA KA!!!&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/909230290211926601/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/datasetxml.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/909230290211926601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/909230290211926601'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/datasetxml.html' title='DataSetにXMLを取り込む'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-2740741510014075202</id><published>2010-08-04T11:26:00.001+09:00</published><updated>2010-08-05T09:08:52.332+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>C# VB.NET LINQメモ</title><content type='html'>&lt;h3&gt;メモ　LINQ&lt;/h3&gt;&lt;br /&gt;
&lt;h3&gt;配列から特定の条件を指定し抜き出す&lt;/h3&gt;&lt;h4&gt;VB.NET&lt;/h4&gt;&lt;pre&gt;Dim PenType As String() = New String() {&quot;えんぴつ&quot;,&quot;クレヨン&quot;,&quot;シャープペンシル&quot;,&quot;ボールペン&quot;}
 Dim result As IEnumerable(Of String) = From Pens In Pentype Where Pens.Length &lt;= 5
&lt;/pre&gt;
&lt;h4&gt;C#&lt;/h4&gt;&lt;pre&gt;string[] PenType = new string[] 
            {
  &quot;えんぴつ&quot;,
  &quot;クレヨン&quot;,
  &quot;シャープペンシル&quot;,
  &quot;ボールペン&quot;
            };

            IEnumerable&lt;string&gt; result = from pens in PenType where pens.Length &lt;= 5 select pens;

&lt;/pre&gt;
&lt;h4&gt;SQL&lt;/h4&gt;&lt;pre&gt;select * from pentype where length(pen.name) &lt;= 5
&lt;/pre&gt;
&lt;h4&gt;sql func&lt;/h4&gt;&lt;pre&gt;create or replace function length(v_invalue in varchar2)
return int_outvalue
is
begin
 return nvl(length(v_invalue),0);
end;
/
&lt;/pre&gt;&lt;p&gt;VB.NET / C# メモリ内クエリは、えんぴつ　クレヨン　ボールペン
くせがあって相変わらず戸惑うな・・。
&lt;/p&gt;&lt;h3&gt;特定の条件を付けWindowsのサービスを取得&lt;/h3&gt;&lt;h4&gt;開始状況がRunningのサービスを全て取得&lt;/h4&gt;&lt;h4&gt;VB.NET&lt;/h4&gt;&lt;pre&gt;&#39;dobon.net sample 
        &#39;参照設定 System.ServiceProcess
        Dim scs As System.ServiceProcess.ServiceController()
        scs = System.ServiceProcess.ServiceController.GetServices()

        For Each item As System.ServiceProcess.ServiceController In scs
            Console.WriteLine(String.Format(&quot;サービス名{0}  状態{1}&quot;, item.DisplayName, item.Status))
        Next

        &#39;linq
        Dim result As IEnumerable(Of String) = From sc In scs _
         Where sc.Status = System.ServiceProcess.ServiceControllerStatus.Running _
         Select sc.DisplayName
&lt;/pre&gt;&lt;h4&gt;C#&lt;/h4&gt;&lt;pre&gt;///dobon.net sample 
     ///参照設定 System.ServiceProcess
 　　System.ServiceProcess.ServiceController[] scs;
            scs = System.ServiceProcess.ServiceController.GetServices();

            foreach (System.ServiceProcess.ServiceController item in scs)
            {
                Console.WriteLine(string.Format(&quot;サービス名{0}  状態{1}&quot;
                    ,item.DisplayName,item.Status));
            }

     ///linq
            IEnumerable&lt;string&gt; result =
                from sc in scs
                where sc.Status == System.ServiceProcess.ServiceControllerStatus.Running
                select sc.DisplayName;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/2740741510014075202/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/c-vbnet-linq.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/2740741510014075202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/2740741510014075202'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/08/c-vbnet-linq.html' title='C# VB.NET LINQメモ'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-6113296814511428313</id><published>2010-06-22T10:30:00.002+09:00</published><updated>2010-06-22T10:30:35.201+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="雑記"/><title type='text'>社内研修　社内講師　第1回　鈴木</title><content type='html'>&lt;p&gt;研修用まとめ&lt;br /&gt;
&lt;br /&gt;
講師：鈴木&lt;br /&gt;
&lt;br /&gt;
今期から新入社員向けに社内研修時に社内講師と社外講師の両方の方からの指導を受ける事になった為。&lt;br /&gt;
&lt;br /&gt;
第一弾は社内講師の主に社内システムの構築をされてる方が行った。&lt;br /&gt;
&lt;br /&gt;
話の冒頭では社内業務の流れをロジカルに説明して頂いた。&lt;br /&gt;
実際にある業務クラスと業務の流れを比較し理解を得ようという考えで行われていた。&lt;br /&gt;
その為、多少なりとも今までプログラミングに携わって来なかった社員もいきなりの配属先で&lt;br /&gt;
コーディングを行っていた社員も理解が深まった様子。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;話の流れ&lt;/h3&gt;&lt;p&gt;お昼を挟んだ2時間の講義となり以下の流れで話が進んでいった。&lt;br /&gt;
&lt;ul&gt; &lt;li&gt;業務フローと実際に稼動しているシステムとの関連性&lt;/li&gt;
 &lt;li&gt;社独自の業務フローについて(割愛)&lt;/li&gt;
 &lt;li&gt;&amp;gt;事前アンケート回答&amp;lt;コーディング時のインターフェイスの有用性について&lt;/li&gt;
 &lt;li&gt;アンケートと質疑応答&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;継承とインターフェイス&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;小～中規模の場合、インターフェイスを使用する&lt;br /&gt;
大規模の場合、抽象クラスを使用するようにすると良いかも知れない&lt;br /&gt;
実際の設計時には応用する事。&lt;br /&gt;
&lt;br /&gt;
スーパークラスとなれるクラスは1つだが、インターフェイスにはいくつでも&lt;br /&gt;
受け入れが可能となる。&lt;br /&gt;
&lt;br /&gt;
データベースや実業務での固有名詞が多いため実際時の再利用性は低い事を念頭に&lt;br /&gt;
以下のストラテジパターンを紹介&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;ストラテジパターン&lt;/h3&gt;&lt;p&gt;アルゴリズムの振り分け処理部&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;適用前のcoreflow&lt;/h4&gt;&lt;pre&gt;void coreflow(int id)
{

if (flowA == id)
 {
           処理A
 }
else if (flowB == id)
 {
    処理B 
 }
else if (flowC == id)
 {
    処理C
 }

}
&lt;/pre&gt;&lt;br /&gt;
&lt;h4&gt;適用後 coreflow&lt;/h4&gt;&lt;pre&gt;interface IStrategy{
 void coreflow();
}
&lt;/pre&gt;&lt;pre&gt;class coreflowA : IStrategy
{
    public void coreflow()
 {処理A}
}
&lt;/pre&gt;&lt;pre&gt;class coreflowB : IStrategy
{
    public void coreflow()
 {処理B}
}
&lt;/pre&gt;&lt;pre&gt;class coreflowC : IStrategy
{
    public void coreflow()
 {処理C}
}
&lt;/pre&gt;&lt;br /&gt;
&lt;h3&gt;アンケート&lt;/h3&gt;&lt;p&gt;5段評価&lt;br /&gt;
&lt;br /&gt;
平均値&lt;br /&gt;
&lt;br /&gt;
研修の理解度 3.2&lt;br /&gt;
&lt;br /&gt;
実際にはノートを使用しサンプルプログラムを動かしつつ理解を深めた。&lt;br /&gt;
各人がレポートを提出したがレポートを見る限りでは理解度は高い。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/6113296814511428313/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/06/1.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6113296814511428313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6113296814511428313'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/06/1.html' title='社内研修　社内講師　第1回　鈴木'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-4298208092886953464</id><published>2010-06-14T11:36:00.000+09:00</published><updated>2010-06-14T11:36:26.100+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="雑記"/><title type='text'>ちょっとルーターとlinux</title><content type='html'>見ている人も少ないってかほとんど身内なんで愚痴りますが&lt;br /&gt;
&lt;br /&gt;
ここんとこずーっとLinuxのセットアップとルーターとOracleと戦い続けていました。&lt;br /&gt;
&lt;br /&gt;
Linuxは本当に辛かった。WindowsLuvな僕にはコマンド入力でインストール作業を行い&lt;br /&gt;
環境整えなければいけなくてもうあの画面はしばらくみたくないな・・。&lt;br /&gt;
で何をしてたかっていうとＡ君が難儀な受注を安請け合いしてきてコスト的に&lt;br /&gt;
？てかちゃんと上の方々とお話してるの？って聞いたら僕に言えばなんとかしてくれると&lt;br /&gt;
思った。すし奢ります。らしいから、時期的にカツオって事で僕も安請け合いしてしまった。&lt;br /&gt;
&lt;br /&gt;
受注先は中小企業で従業員数6人で3拠点、今までは本社に郵送で書類やらなんやら送って&lt;br /&gt;
本社でのみ管理していたらしいけど今回、クラサバに。騙された！Ａ君に。&lt;br /&gt;
&lt;br /&gt;
で機器類を自分達で用意して費用削減！ってお話だったらしいんだがなぜだか僕がやるはめに。&lt;br /&gt;
（主にカツオに負けた）&lt;br /&gt;
それでもまぁ多少はしっかりしたもん持ってかんといけん！と思い土日を使用しなんたって&lt;br /&gt;
低予算でやれとのことでおもっきし選択肢がないのでLinuxサーバーにクラはWindowsで&lt;br /&gt;
構築する。システムのインストールが大変だ。って言われたけど僕も大変なんだ。&lt;br /&gt;
&lt;br /&gt;
でもそこの社長さんが良い人で遅くまでやってたらラーメンの出前取ってくれて&lt;br /&gt;
ちょっとがんばろうって気になりました。&lt;br /&gt;
&lt;br /&gt;
ってことでこの構成で決定。&lt;br /&gt;
Webサーバーとセキュリティ構築（セキュリティだけこっそり知り合いに手伝って貰いました)&lt;br /&gt;
まぁ大変でした普段ルーターなんて触らないから事前にネットで調べ知恵を拝借。&lt;br /&gt;
静的IPマスカレイドってかっこいい技も覚えたしそれなりに得た事もあったけど二度と&lt;br /&gt;
こういう分野外のお仕事は持ってきてもらいたくナイデス。&lt;br /&gt;
&lt;br /&gt;
カツオは旨かったです。</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/4298208092886953464/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/06/linux.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4298208092886953464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4298208092886953464'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/06/linux.html' title='ちょっとルーターとlinux'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-6262629665469817550</id><published>2010-05-28T10:15:00.002+09:00</published><updated>2010-05-28T10:17:29.785+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF and Silverlight"/><title type='text'>WPF とこきそ3</title><content type='html'>&lt;h3&gt;wpf とこきそ３&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;以前のとこきそ１でレイアウトライブラリを使用した将棋盤やらオセロ盤をやろうかなって&lt;br /&gt;
思ってたらやっぱりやってる方が多数いる模様なので自分も試してみた&lt;br /&gt;
&lt;br /&gt;
縦９＊横９の盤を作成&lt;br /&gt;
&lt;br /&gt;
使用するレイアウトライブラリはあえて &amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
前回縦割りと横割りの子ノードの追加方法は&lt;/p&gt;&lt;pre&gt;&amp;lt;Grid.ColumnDefinitions&amp;gt;
	%lt;ColumnDefinition Width=&quot;*&quot;/&amp;gt;
	&amp;lt;RowDefinition Height = &quot;*&quot;/&amp;gt;
&amp;lt;/Grid.ColumnDefinitions&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;これを９こ・・。&lt;/p&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;Grid.ColumnDefinitions&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
            &amp;lt;columndefinition Width=&quot;*&quot; /&amp;gt;
        &amp;lt;/Grid.ColumnDefinitions&amp;gt;
        &amp;lt;Grid.RowDefinitions&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
            &amp;lt;rowdefinition Height=&quot;*&quot; /&amp;gt;
&amp;lt;/Grid.RowDefinitions&amp;gt;
&lt;/pre&gt;&lt;p&gt;なんか良い方法ないかって位見づらい。&lt;br /&gt;
マァイイヤ。ワカレバ。で、これで升目を9個ずつ縦横そろえたわけで次は&lt;br /&gt;
枡目の線だなー。ShowGridLines=&quot;True&quot; で枠線の表示はできる。&lt;b&gt;表示は&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
borderColorとかないの？msdnをつらつらみたけどない。&lt;br /&gt;
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.grid_members.aspx&lt;br /&gt;
&lt;br /&gt;
ネット上ではボーダーコントロールなるものを使用してるので前に習え。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;tabel&gt;&lt;br /&gt;
&lt;tr&gt;&lt;td&gt;名前空間&lt;/td&gt;	&lt;td&gt;System.Windows.Controls&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;tr&gt;&lt;td&gt;アセンブリ&lt;/td&gt;	&lt;td&gt;PresentationFramework (PresentationFramework.dll 内)&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;tr&gt;&lt;td&gt;XMLNS&lt;/td&gt;	&lt;td&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation, &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;tr&gt;&lt;td&gt;&lt;/td&gt;		&lt;td&gt;http://schemas.microsoft.com/netfx/2007/xaml/presentation&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;Border Background=&quot;LightBlue&quot; 
        BorderBrush=&quot;Black&quot; 
        BorderThickness=&quot;2&quot; 
        CornerRadius=&quot;45&quot; 
        Padding=&quot;25&quot;&amp;gt;
&lt;/pre&gt;&lt;p&gt;まさか！1個ずつ子要素囲むの？&lt;br /&gt;
で、ColumnDefinition囲むとエラーでるし意味わからん。&lt;br /&gt;
アタッチかと思い&lt;/p&gt;&lt;br /&gt;
&lt;pre&gt;	
&amp;lt;Border Grid.Row=&quot;0&quot; Grid.Column=&quot;0&quot; BorderThickness=&quot;2&quot; BorderBrush=&quot;Black&quot;&amp;gt;&amp;lt;/Border&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;こうしたら画面の左端がぽつんと黒くなった・・。&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;アタッチについて&lt;/h4&gt;&lt;br /&gt;
&lt;blockquote&gt;自分自身のクラス中のプロパティではなく、 親要素で定義されたプロパティ値を設定することを添付プロパティと呼びます。 &lt;br /&gt;
添付プロパティは（通常のプロパティは使えず、）依存プロパティでなければいけません。 &lt;br /&gt;
（というか、通常のプロパティではこのような仕組みは実現できません。）&lt;br /&gt;
「依存プロパティ」という名前は、添付プロパティの例のように&lt;br /&gt;
「他のクラスとの依存関係を持つことができるプロパティ」というような意味合いです。&lt;br /&gt;
&lt;br /&gt;
http://ufcpp.net/study/dotnet/wpf_xamladv.html#attached &lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;p&gt;現状だと81個手動でどげんかせんといかん！からちょっと考え・・。&lt;br /&gt;
&lt;br /&gt;
よし。線はやめようってことでBorderコントロールは消去。&lt;br /&gt;
&lt;br /&gt;
歩兵を設置。絵心０なのでPolygonで無理やり作りまして。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;&amp;lt;Polygon Grid.Row=&quot;6&quot; Grid.Column=&quot;0&quot; Points=&quot;21,3 11,6 8,38 34,38 31,6 &quot; Fill=&quot;#8B4513&quot; /&amp;gt;
&lt;/pre&gt;&lt;p&gt;駒を動かす事なんて度外視なのでさらにこの上から文字を描写&lt;br /&gt;
とりあえず出来りゃー良い系でがんがんいきます。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;&amp;lt;TextBlock Grid.Row=&quot;6&quot; Grid.Column=&quot;0&quot; TextAlignment=&quot;Center&quot; VerticalAlignment=&quot;Center&quot; FontSize=&quot;15&quot;&amp;gt;
歩
&amp;lt;/TextBlock&amp;gt;
&lt;/pre&gt;&lt;p&gt;縦書きが・・できん。香車と飛車と桂馬と・・成りが。という事で難しい事は後から&lt;br /&gt;
やることとして1文字わかればいいや系です。(&lt;b&gt;日本人にはわかればいいや系精神が足りないと思います。&lt;/b&gt;)&lt;br /&gt;
動かす事を度外視としましたが、あれです。一応視野の端っこにはいるおいてあるつもりなので&lt;br /&gt;
パスと文字の統合について調べましたところ。&lt;br /&gt;
&lt;br /&gt;
http://msdn.microsoft.com/ja-jp/magazine/dd263097.aspx&lt;br /&gt;
&lt;br /&gt;
ありましたが・・・。これ読んでも理解できなさそうだ・・。&lt;br /&gt;
読ませる気ねーだろ。 &lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/6262629665469817550/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-3.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6262629665469817550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/6262629665469817550'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-3.html' title='WPF とこきそ3'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-2384788634867789179</id><published>2010-05-24T10:35:00.001+09:00</published><updated>2010-05-24T10:37:55.576+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF and Silverlight"/><title type='text'>WPFとこきそ 2</title><content type='html'>&lt;h3&gt;WPFとこきそ 2&lt;/h3&gt;&lt;br /&gt;
&lt;h4&gt;座標を指定してレイアウト&lt;/h4&gt;&lt;br /&gt;
htmlやcssのように座標をして描写したい場合が殆どだから今回のレイアウトライブラリは必修科目&lt;br /&gt;
&lt;br /&gt;
&lt;table&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Canvas&lt;/td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;td&gt;レイアウトライブラリ&lt;/td&gt;&lt;/tr&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;tr&gt;&lt;td&gt;.Top&lt;/td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;td&gt;上の余白の設定&lt;/td&gt;&lt;/tr&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;tr&gt;&lt;td&gt;.Left&lt;/td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;td&gt;左の余白の設定&lt;/td&gt;&lt;/tr&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;tr&gt;&lt;td&gt;.Bottom&lt;/td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;td&gt;下の余白の設定&lt;/td&gt;&lt;/tr&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;tr&gt;&lt;td&gt;.Right&lt;/td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;td&gt;右の余白の設定&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table&gt;記事中(http://msdn.microsoft.com/ja-jp/windows/cc811499.aspx)には載ってはいないが基点位置について 中心となる基点位置は現状では画面の左上となる。   
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Ellipse
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fill=&quot;Black&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&quot;300&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height=&quot;300&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Top=&quot;50&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Left=&quot;50&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Ellipse
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fill=&quot;White&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&quot;240&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Height=&quot;240&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Top=&quot;85&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Canvas.Left=&quot;45&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Canvas&amp;gt;&lt;/pre&gt;Canvas.Top=&quot;50&quot;は上端を基準とした50の位置 Canvas.Left=&quot;50&quot;は左端を基準として50の位置  なるほど、でも管理しやすくする為にはCanvasの位置を変えたいなと思ったけど Canvasには .Top .Left のアタッチするプロパティがにゃーだよ。  始めに考えたのは、子要素や孫要素が存在するCanvasをCanvasで包む事。 これなら 

&lt;pre&gt;     &amp;lt;Canvas&amp;gt;
        &amp;lt;Canvas Canvas.Right=&quot;500&quot;&amp;gt;
&lt;/pre&gt;
Canvas内の要素をわざわざ変更しなくても中間にあるCanvasのオフセット位置を指定するだけで良いんだけど 果たして推奨されるコードなのかと思いネット検索を掛けてみた。  が、ちょっと参考資料が見当たらないので知ってる方がもーし見てたら教えて下さい。  

&lt;h4&gt;とこきそ１～２のまとめ&lt;/h4&gt;
WrapPanelやStackPanel等もTopやLeftにアタッチできるプロパティがない・・・。 現状の自分のやり方だと1画面内にStackPanelとWrapPanelが複数個整列されていない状態で 必要になった場合、&amp;lt;Canvas&amp;gt;&amp;lt;/Canvas&amp;gt;で囲みまくる形になる・・。 なんとなくだけど綺麗じゃないかな。でもとりあえずこのまま進んでわかった時点で切替すれば いっか。  &lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/2384788634867789179/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/2384788634867789179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/2384788634867789179'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-2.html' title='WPFとこきそ 2'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-5853254455506636140</id><published>2010-05-22T16:58:00.003+09:00</published><updated>2010-05-26T11:47:43.542+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF and Silverlight"/><title type='text'>WPF とこきそ</title><content type='html'>&lt;div id=&quot;kizi&quot;&gt;&lt;h3&gt;WPF とことんきそる&lt;/h3&gt;&lt;h4&gt;WPF とこきそ&lt;/h4&gt;&lt;p&gt;参考url http://msdn.microsoft.com/ja-jp/windows/cc811507.aspx&lt;/p&gt;&lt;p&gt;勝手に孤独に始まりました。&lt;b&gt;wpfとこきそ&lt;/b&gt;もうクラス多すぎで見るきもしないリファレンスなんですが&lt;br /&gt;
ゆっくりとやってみます。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;崩れないレイアウト&lt;/h4&gt;&lt;p&gt;XAMLのレイアウト機能を記事に沿って独断と偏見にみちた読解をしていきます。&lt;br /&gt;
まず最初は&lt;b&gt;基本の 幅　高さ 余白 縦揃え 横揃え&lt;/b&gt;の方法&lt;br /&gt;
記事中では Ellipse(楕円)を使用しています。のでこちらはRectangle(四角)でやってみます。&lt;br /&gt;
&lt;/p&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Rectangle&lt;/td&gt;	&lt;td&gt;要素&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Fill&lt;/td&gt;	&lt;td&gt;塗りの色&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Width&lt;/td&gt;	&lt;td&gt;四角の幅&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Height&lt;/td&gt;	&lt;td&gt;四角の高さ&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;pre&gt;	&amp;lt;Rectangle Fill=&quot;Aqua&quot; Width=&quot;200&quot; Height=&quot;150&quot; /&amp;gt;
&lt;/pre&gt;&lt;p&gt;青四角！この辺は、.NETやJAVA知ってる人なら見ただけで理解できるし知らない人でも英語がわかれば&lt;br /&gt;
楽かなー。&lt;br /&gt;
&lt;br /&gt;
次は、可変するウィンドウだとウィンドウの大きさに合わせたりする処理が必要になってくるんだけど&lt;br /&gt;
これがMargin要素を使用することでクリア。余白は、ウィンドウとRectangleとの間事らしい。&lt;br /&gt;
&lt;br /&gt;
ちなみに　左　上　右　下　CSSと一緒。&lt;br /&gt;
&lt;/p&gt;&lt;pre&gt;	&amp;lt;Rectangle Fill=&quot;Aqua&quot; Width=&quot;200&quot; Height=&quot;150&quot; Margin=&quot;20,20,20,20&quot; /&amp;gt;
&lt;/pre&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Margin&lt;/td&gt;&lt;td&gt;ウィンドウとこの場合はRectangleの間の値&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;p&gt;C#とかでやるんであればResizeingイベント等で処理しなくちゃいけなくてUIロジックが&lt;br /&gt;
汚くなったりしてたから依存関係という面でみたら格段に楽！&lt;br /&gt;
&lt;br /&gt;
冒頭で書いた縦揃え　横揃えは、　HorizontalAlignment と VerticalAlignment要素を使用&lt;br /&gt;
自分はこの要素名がかっこよくてたまらん。Vertical・・Vertical!!巻き舌なら技名。&lt;br /&gt;
&lt;/p&gt;&lt;tabel&gt;&lt;br /&gt;
&lt;tr&gt;&lt;td&gt;VerticalAlignment&lt;/td&gt;		&lt;td&gt;垂直方向の位置指定&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;tr&gt;&lt;td&gt;HorizontalAlignment&lt;/td&gt;	&lt;td&gt;水平方向の位置指定&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/table&gt;&lt;pre&gt;	&amp;lt;&quot;Aqua&quot; Width=&quot;200&quot; Height=&quot;150&quot; Margin=&quot;20,20,20,20&quot;
                   VerticalAlignment=&quot;Center&quot; HorizontalAlignment=&quot;Stretch&quot; /&amp;gt;
&lt;/pre&gt;&lt;p&gt;これでバーティコォーも覚えた。ﾊﾞｰﾃｨｺｫ&lt;br /&gt;
&lt;br /&gt;
うん。&lt;br /&gt;
&lt;br /&gt;
で、今まで何も考えずに&amp;lt;Grid&amp;gt;&amp;lt;/Grid&amp;gt;で閉じられた中に書いてみたけどここで&lt;br /&gt;
やっと説明が。&lt;br /&gt;
&lt;br /&gt;
Gridというのはレイアウトライブラリ。間違ってもバーティコォライブラリではない。&lt;br /&gt;
&lt;blockquote&gt;Grid というレイアウトライブラリがあります。HTML でいうとテーブルみたいなものです。&lt;br /&gt;
この Grid にはテーブルのように行や列を増やしたり幅を固定したり自動にしたりすることができます。&lt;br /&gt;
このコードでは左には固定の幅をもったメニュー、右にはウィンドウの大きさに合わせて大きさが変わるコンテンツというようなレイアウトを実現しています。&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;	&amp;lt;Grid&amp;gt;
	  &amp;lt;Grid.ColumnDefinitions&amp;gt;
	    &amp;lt;ColumnDefinition Width=&quot;150&quot;/&amp;gt;
	    &amp;lt;ColumnDefinition Width=&quot;*&quot;/&amp;gt;
	  &amp;lt;/Grid.ColumnDefinitions&amp;gt;
	  &amp;lt;Rectangle
	     Fill=&quot;Blue&quot; 
	     Margin=&quot;20,20,20,20&quot; 
	     Grid.Column=&quot;0&quot; 
	  /&amp;gt;
	  &amp;lt;Rectangle
	     Fill=&quot;Red&quot; 
	     Margin=&quot;20,20,20,20&quot; 
	     Grid.Column=&quot;1&quot; 
	  /&amp;gt;
	&amp;lt;/Grid&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
簡単に言うと Grid というエリアを縦に区切り、左の列の幅は 200 で固定して&lt;br /&gt;
右の列の幅は自動的に変わるようになっています。&lt;br /&gt;
Grid を区切るには Grid.ColumnDefinitions という子ノードを追加し&lt;br /&gt;
孫ノードに ColumnDefinition というノードを追加することで実現できます。&lt;br /&gt;
ColumnDefinition の数を増やすことにより列を増やすことができます。&lt;br /&gt;
&lt;br /&gt;
固定されている列と自動的に幅が変わる列の動きを分かりやすくする為に、左の列に青く塗った楕円形、右の列に赤く塗った楕円形を配置しています。&lt;br /&gt;
&lt;br /&gt;
配置する列を指定するには配置したいノードの要素に Grid.Column を追加します。&lt;br /&gt;
Grid.Column の値は ColumnDefinition を記述した順番に 0、1、2．．．と指定します。&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
？？？&amp;lt;Grid.ColumnDefinitions&amp;gt;&amp;lt;/Grid.ColumnDefinitions&amp;gt;これで子ノードを追加して・・&lt;br /&gt;
&amp;lt;ColumnDefinition Width=&quot;150&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ColumnDefinition Width=&quot;*&quot;/&amp;gt;&lt;br /&gt;
この2つで要素のWidth値を決めるの？いきなりちょっぴり無理指数が上がる。&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
配置する列を指定するには配置したいノードの要素に Grid.Column を追加します&lt;/blockquote&gt;えーと、孫の財産を勝手に保管場所を決めるって事？か・・？な？ちゃうね！&lt;br /&gt;
&lt;br /&gt;
Grid.ColumnDefinitionのRectangleのGrid.Cokumnで指定する&lt;br /&gt;
&lt;br /&gt;
で、&amp;lt;ColumnDefinition Width=&quot;150&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ColumnDefinition Width=&quot;*&quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
書いた順番にWidth値が150のColumnDefinitionが0番&lt;br /&gt;
Width値が&quot;*&quot;のColumnDefinitionが1番&lt;br /&gt;
&lt;br /&gt;
なるへそ。&lt;br /&gt;
&lt;br /&gt;
で、これを縦じゃなくて横区切りにするには&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Column を Row に、Width を Height に変えるだけで実現できます&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&amp;lt;ColumnDefinition Height=&quot;150&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;ColumnDefinition Height=&quot;*&quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
で孫ノードの要素の Grid.ColumnをGrid.Rowにしたらいいのか。&lt;br /&gt;
&lt;br /&gt;
で記事が以外と展開が速い。あと独断と偏見に満ち満ちた意見なら縦割りはColumn.ｳﾞｧｰﾃｨｺｩ&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;順番に並べてくれるレイアウト StackPanel&lt;/h4&gt;&lt;pre&gt;	&amp;lt;StackPanel Orientation=&quot;Vertical&quot;&amp;gt;
	  &amp;lt;Ellipse 
	     Fill=&quot;Blue&quot; 
	     Width=&quot;300&quot; 
	     Height=&quot;50&quot; 
	     HorizontalAlignment=&quot;Left&quot; 
	  /&amp;gt;
	  &amp;lt;Ellipse
	     Fill=&quot;Red&quot; 
	     Width=&quot;300&quot; 
	     Height=&quot;150&quot; 
	  /&amp;gt;
	  &amp;lt;Ellipse
	     Fill=&quot;Green&quot; 
	     Width=&quot;300&quot; 
	     Height=&quot;100&quot; 
	     HorizontalAlignment=&quot;Right&quot; 
	  /&amp;gt;
&lt;/pre&gt;&lt;/StackPanel&gt;&lt;br /&gt;
&lt;p&gt;Orientation=&quot;Vertical&quot;って何・・。リクリエーションなら知ってる。&lt;br /&gt;
と思ってたら、これはVertical！縦並べか。で案の定横並べは、Orientation=&quot;Horizontal&quot;&lt;br /&gt;
うーん、判りやすい。将棋の枡とかオセロの枡とかならすぐに描写できそうだ。&lt;br /&gt;
&lt;br /&gt;
将棋の横枡っていくつだ・・。&lt;br /&gt;
&lt;br /&gt;
ちなみにStackPanelだと並べまくってエリアからはみ出すと表示されないが例えば&lt;br /&gt;
ブラウザや画面が小さい時に香車が表示されなくなったり角枡に黒があるの？白があるの？&lt;br /&gt;
ってことになる。&lt;br /&gt;
&lt;br /&gt;
それじゃーこまんね？ってことでMS様は用意しておりました。&lt;br /&gt;
レイアウトライブラリ　WrapPanel&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;勝手に改行 WrapPanel&lt;/h4&gt;&lt;p&gt;なんかの漫画に似たようなのあったな・・。&lt;br /&gt;
ちょっと単純なコードの羅列なのでコピペ&lt;br /&gt;
&lt;pre&gt;&amp;lt;WrapPanel Orientation=&quot;Horizontal&quot;&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Red&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Green&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Blue&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Red&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Green&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Blue&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Red&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Green&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Blue&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Red&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Green&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Blue&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Red&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Green&quot;/&amp;lt;
  &amp;lt;Ellipse Width=&quot;50&quot; Height=&quot;50&quot; Fill=&quot;Blue&quot;/&amp;lt;
&amp;lt;/WrapPanel&amp;lt;	
&lt;/pre&gt;&lt;p&gt;例の如くOrientation=&quot;Horizontal これで横・縦で並べかえるわけか。&lt;br /&gt;
これなら香車が見えなくなることもないし、角枡に何が置かれているかわからなく&lt;br /&gt;
戦々恐々とオセロをやることもなくなる。ね。&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/5853254455506636140/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5853254455506636140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5853254455506636140'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf.html' title='WPF とこきそ'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-5499297030556942754</id><published>2010-05-21T16:10:00.005+09:00</published><updated>2010-05-21T16:13:38.424+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><category scheme="http://www.blogger.com/atom/ns#" term="[Yahoo] 勝手に回答"/><title type='text'>表示と非表示</title><content type='html'>&lt;div id=&quot;kizi&quot;&gt;&lt;h3&gt;勝手に回答&lt;/h3&gt;&lt;h4&gt;イメージの表示と非表示&lt;/h4&gt;&lt;blockquote&gt;VisualBasicのメソッドを利用したプログラムで｢消去｣ボタンをクリックするとイメージが消え、｢表示｣ボタンをクリックするとイメージが表示されるようにするにはどんなプログラムを打てばよろしいのですか？&lt;br /&gt;
&lt;/blockquote&gt;&lt;p&gt;よくよくOOPで例えられるテレビの電源ってことで実モデルを参考にしてみる&lt;/p&gt;&lt;br /&gt;
&lt;h5&gt;使用する規程クラス&lt;/h5&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;クラス名&lt;/td&gt; &lt;td&gt;名前空間&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Form&lt;/td&gt; &lt;td&gt;System.Windows.Form&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PictureBox&lt;/td&gt; &lt;td&gt;System.Windows.Forms&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;BitMap&lt;/td&gt; &lt;td&gt;System.Drawing&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Graphics&lt;/td&gt; &lt;td&gt;System.Drawing&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;h5&gt;作成クラス&lt;/h5&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;クラス名&lt;/td&gt;  &lt;td&gt;名前空間&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Form1&lt;/td&gt;  &lt;td&gt;WindowsFormsApplication1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;RemoteController&lt;/td&gt; &lt;td&gt;WindowsFormsApplication1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;IRemoteController&lt;/td&gt; &lt;td&gt;WindowsFormsApplication1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;TV&lt;/td&gt;   &lt;td&gt;WindowsFormsApplication1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ITV&lt;/td&gt;  &lt;td&gt;WindowsFormsApplication1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ChannelGuide&lt;/td&gt; &lt;td&gt;WindowsFormsApplication1&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;p&gt;とりあえず必要になりそうなクラスを6つ作成&lt;br /&gt;
ON OFFの簡単なプログラムだからリモコンの蓋とテレビのカバーも実モデルに&lt;br /&gt;
してみる&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;フォームクラス Form1.cs&lt;/h4&gt;&lt;pre&gt;public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.button1.Click += new System.EventHandler(this.button1_Click);
            this.button2.Click += new System.EventHandler(this.button2_Click);
        }
        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {

        }
    }
&lt;/pre&gt;&lt;p&gt;イベントの実装のみに留めておく&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;TVクラス TV.cs&lt;/h4&gt;&lt;pre&gt;public  class TV : ITV
    {
         private System.Windows.Forms.PictureBox Display;
         private System.Drawing.Image TempImage;

         public TV(System.Windows.Forms.PictureBox pict)
         {
             Display = pict;
         }

         public void ON()
         {
             if (TempImage != null)
             {
                 Display.Image = TempImage;
             }
             else
             {
                 Display.Image = null;
             }
             TvState = true;
         }

         public void OFF()
         {
             if (Display.Image != null)
             {
                 TempImage = Display.Image;
             }
             Display.Image = null;
             TvState = false;
         }

         public void OutPutToDisplay(System.Drawing.Image images)
         {
             Display.Image = images;
         }

         private bool _TvState = false ;
         public bool TvState
         {
             get { return _TvState; }
             set { _TvState = value; }
         }
    }
&lt;/pre&gt;&lt;p&gt;コンストラクタにPictureBoxを使用した、この際の考えとしてはForm上全てをテレビと見立てた場合&lt;br /&gt;
PictureBoxはディスプレイとして存在する事とします！&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;ITVインターフェイス ITV.cs&lt;/h4&gt;&lt;pre&gt;public interface ITV
    {
        void ON();
        void OFF();
        void OutPutToDisplay(System.Drawing.Image value);
        bool TvState { get; set; }
    } 
&lt;/pre&gt;&lt;p&gt;次にTVクラスのインターフェイスを作成します。実モデルに考えてみるとカバー。&lt;br /&gt;
若干実モデルと比べるとおかしいがあくまで参考なのでこれでいく。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;RemoteControllerクラス RemoteController.cs&lt;/h4&gt;&lt;pre&gt;public class RemoteController :IRemoteController
    {
        private ITV _tv;
        public RemoteController(ITV tv)
        {
            _tv = tv;
        }
        public void RemoteON()
        {
            _tv.ON();
        }
        public void RemoteOFF()
        {
            _tv.OFF();
        }
        public void ChannelPush(int pushkey)
        {
            ChannelGuide cg = new ChannelGuide(pushkey);
            _tv.OutPutToDisplay(cg.SelectedChannel);
        }
    }
&lt;/pre&gt;&lt;p&gt;コンストラクタにTVクラス、基本的にはテレビとリモコンで1セット。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;IRemoteControllerインターフェイス&lt;/h4&gt;&lt;pre&gt;public interface IRemoteController 
    {
        void RemoteON();
        void RemoteOFF();
        void ChannelPush(int value);
    }
&lt;/pre&gt;&lt;p&gt;実モデルを考えた場合、12個のボタンが必要になってくるがPC上でテンキーをリモコンの番号として&lt;br /&gt;
見立て場合、楽だった為。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;ChannelGuideクラス ChannelGuide.cs&lt;/h4&gt;&lt;pre&gt;public class ChannelGuide
    {
        private int _SelectKey;
        private System.Drawing.Image _SeletedChannel;

        public ChannelGuide(int SelectKey)
        {
            _SelectKey = SelectKey;
            if (_SelectKey == 97)
            {
                SelectedChannel = oneChannel;
            }
            else if (_SelectKey == 98)
            {
                SelectedChannel = twoChannel;
            }
        }

        public System.Drawing.Image SelectedChannel
        {
            get{return _SeletedChannel;}
            set {_SeletedChannel = value ;}
        }

        private System.Drawing.Image _oneChannel = 
            System.Drawing.Image.FromFile
  (@&quot;C:\Documents and Settings\***\My Documents\My Pictures\sample1.jpg&quot;);
        private System.Drawing.Image _twoChannel = 
            System.Drawing.Image.FromFile
  (@&quot;C:\Documents and Settings\***\My Documents\My Pictures\sample2.jpg&quot;);
        
        private System.Drawing.Image oneChannel
        {
            get{ return _oneChannel;}
            set{_oneChannel = value;}
        }
        private System.Drawing.Image twoChannel
        {
            get{return _twoChannel;}
            set{_twoChannel = value;}
        }
&lt;/pre&gt;&lt;p&gt;このクラスは番組表クラスとしてあるフィールド毎に値を設置したいがめんどかったので２つにしてみた。&lt;br /&gt;
xmlやらなんやらで外部的に受け取りやすくしたり色々改善の余地もあったけどやめた。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;フォームにイベントの中身を実装&lt;/h4&gt;&lt;pre&gt;private void button1_Click(object sender, EventArgs e)
        {
            if (tv != null)
            {
                tv.ON();
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (tv != null)
            {
                tv.OFF();
            }
        }
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (tv.TvState != false)
            {
                RemoteController remocon = new RemoteController(tv);
                remocon.ChannelPush(e.KeyValue);
            }
        }
&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/5499297030556942754/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/yahoo.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5499297030556942754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5499297030556942754'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/yahoo.html' title='表示と非表示'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-4174548362357579218</id><published>2010-05-20T17:19:00.003+09:00</published><updated>2010-05-21T15:57:28.637+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF and Silverlight"/><title type='text'>WPF and Silverlight 2</title><content type='html'>&lt;div id=&quot;KIZI&quot;&gt;&lt;h3&gt;WPF and Silverlight 2&lt;/h3&gt;&lt;br /&gt;
&lt;h4&gt;今回使用するWPFクラスライブラリとXAML&lt;/h4&gt;&lt;br /&gt;
&lt;table&gt;&lt;tr&gt;&lt;td&gt;XAML&lt;/td&gt;   &lt;td&gt;WPFクラス&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;lt;Application&amp;gt;要素&lt;/td&gt; &lt;td&gt;System.Windows名前空間のApplicationクラス&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;lt;Window&amp;gt;要素&lt;/td&gt;  &lt;td&gt;System.Windows名前空間のWindowクラス&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;lt;Button&amp;gt;要素&lt;/td&gt;  &lt;td&gt;System.Windows.Controls名前空間のButtonクラス&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;h4&gt;ボタンの追加&lt;/h4&gt;&lt;p&gt;前回のHelloWorldプログラムにボタンを追加&lt;/p&gt;&lt;pre&gt;&amp;lt;Button Width=&quot;100&quot; Height=&quot;50&quot; &amp;gt;
 Click
 %lt;/Button&amp;gt;
&lt;/pre&gt;&lt;p&gt;&amp;lt;Window&amp;gt;の子要素は&lt;b&gt;自動的にセンタリング&lt;/b&gt;されるらしい&lt;br /&gt;
なおかつ&amp;lt;Window&amp;gt;要素は&lt;b&gt;1つの子要素&lt;/b&gt;しか持つことができない。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h4&gt;イベントハンドラの追加 *.xaml&lt;/h4&gt;&lt;p&gt;GUIとロジックの依存関係を薄める為に、イベントやそれに関係するロジックは&lt;br /&gt;
C#やVBで記述する。&lt;br /&gt;
&lt;/p&gt;&lt;h5&gt;XAML側のメソッドの追加&lt;/h5&gt;&lt;pre&gt;&amp;lt;Window
  xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
  &lt;b&gt;xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;&lt;/b&gt;
  &lt;b&gt;x:Class=&quot;HelloWorldWindow&quot;&lt;/b&gt;
  Title=&quot;My First XAML&quot;
  Width=&quot;320&quot;
  Height=&quot;240&quot;
&amp;gt;
  &amp;lt;Button Width=&quot;100&quot; Height=&quot;50&quot; Click=&quot;HelloWorldWindow_Click&quot;&amp;gt;
    Click Me!
  &amp;lt;/Button&amp;gt;
&amp;lt;/Window&amp;gt;
&lt;/pre&gt;&lt;p&gt;&amp;lt;Button&amp;gt;要素のClick属性にボタンがクリックされた時に呼び出されるメソッドの&lt;br /&gt;
&lt;b&gt;名前&lt;/b&gt;を記述する。&lt;br /&gt;
XAMLによるウィンドウの記述から暗黙的に作成されるクラスの名前を指定するために、&amp;lt;Window&amp;gt;要素に&lt;br /&gt;
対して[x:Class属性]でクラス名を指定する。&lt;br /&gt;
&lt;/p&gt;&lt;h6&gt;x:Class属性のxとはなんぞや？&lt;/h6&gt;&lt;blockquote&gt;xはプリフィックスである。リファレンス・マニュアルなどもxを付ける決まりになっている。&lt;br /&gt;
例えば、要素名の[Windows]や[Button]その属性名の[Width]や[Height]の名前空間は&lt;br /&gt;
&amp;lt;Window&amp;gt;要素のxmlns属性で指定されている&lt;br /&gt;
http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;br /&gt;
これは&lt;b&gt;WPF名前空間&lt;/b&gt;と呼ばれ、名前空間に属する要素や属性はWPFのクラス・ライブラリの項目と対応付けられる&lt;br /&gt;
この時、規定名前空間以外の異なる名前空間の要素や属性を記述するには、プリフィックスが必要になる。&lt;br /&gt;
前例としてxを出したが実際にはなんでも良い。&lt;br /&gt;
&lt;/blockquote&gt;&lt;p&gt;例えば、x:Class=&quot;HelloWorldWindow&quot;とあったがこれを&lt;br /&gt;
xaml:Class=&quot;HelloWorldWindow&quot;やxamlclass:Class～と記述しても動作上では問題がない。&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;コードビハインド・ファイルによるイベント・ハンドラ *.cs&lt;/h4&gt;&lt;h5&gt;win.xaml.cs&lt;/h5&gt;&lt;blockquote&gt;&lt;pre&gt;using System.Windows;

  public partial class HelloWorldWindow : Window {
   void HelloWorldWindow_Click(object sender, RoutedEventArgs e)
   {
    MessageBox.Show(&quot;クリック&quot;);
   }
  }
 &lt;/pre&gt;部分クラス partialキーワードを使えば、本来はHelloWorldWindowクラス内に存在しなければならない&lt;br /&gt;
HelloWorldWindow_Click&lt;b&gt;メソッド&lt;/b&gt;を外部から追加できる。&lt;br /&gt;
&lt;/blockquote&gt;&lt;p&gt;この外部から追加したメソッドは、&amp;lt;Button Width=&quot;100&quot; Height=&quot;50&quot; Click=&quot;HelloWorldWindow_Click&quot;&amp;gt;&lt;/p&gt;&lt;h4&gt;プロジェクトファイルの修正 *.proj&lt;/h4&gt;&lt;blockquote&gt;プロジェクトファイル内の&amp;lt;ItemGroup&amp;gt;に&amp;lt;Compile Include=&quot;win.xaml.cs&quot; /&amp;gt;を追加する。&lt;br /&gt;
&lt;pre&gt;&amp;lt;ItemGroup&amp;gt;
    &amp;lt;ApplicationDefinition Include=&quot;app.xaml&quot; /&amp;gt;
    &amp;lt;Page Include=&quot;win.xaml&quot; /&amp;gt;
    &lt;b&gt;&amp;lt;Compile Include=&quot;win.xaml.cs&quot; /&amp;gt;&lt;/b&gt;
&lt;/pre&gt;&lt;p&gt;これでコンパイルする。&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/4174548362357579218/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-and-silverlight-2.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4174548362357579218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4174548362357579218'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-and-silverlight-2.html' title='WPF and Silverlight 2'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-5203420213700823479</id><published>2010-05-20T11:48:00.003+09:00</published><updated>2010-05-20T14:04:51.158+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF and Silverlight"/><title type='text'>WPF and Silverlight</title><content type='html'>&lt;h2&gt;WPF and Silverlight&lt;/h2&gt;&lt;br /&gt;
&lt;div id=&quot;KIZI&quot;&gt;&lt;blockquote&gt;UIフレームワークというスコープでみた場合の性質は同じ&lt;br /&gt;
&lt;br /&gt;
Silverlightはランタイムのサイズを4MB台に抑えなければならなかった為&lt;br /&gt;
WPFに比べると機能が削られているという違いがある&lt;br /&gt;
&lt;br /&gt;
http://www.atmarkit.co.jp/fdotnet/vblab/uiframework_01/uiframework_01_01.html&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;h3&gt;XAML構文ありきのWPF UIフレームワーク&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;この記事の中あたりに&lt;br /&gt;
&lt;blockquote&gt;WPF UIフレームワークを理解するうえでXAMLという言語そのもに対する知識はあまり重要でない。&lt;br /&gt;
&lt;/blockquote&gt;と断言的に述べていた。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;画面設計とロジックの分離&lt;/h3&gt;&lt;p&gt;画面設計をXAMLで記述し、イベント処理やビジネスロジックなどはC#やVBのコードで記述&lt;br /&gt;
(このような形態を[コードビハインド]と呼ぶ)&lt;br /&gt;
XAMLでは、コントロールの配置や静的な画面設計ではなくグラフィックス描写やコントロールの合成、&lt;br /&gt;
アニメーション、UI要素とデータのデータバインディングといった動的な処理までも記述することができる&lt;br /&gt;
このおかげで、画面まわりの処理の多くをコードビハインド側のコードから排除でき、コードビハインド側の&lt;br /&gt;
コードではロジックに専念できる。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;h3&gt;本当にXAMLの理解は重要ではない？&lt;/h3&gt;&lt;blockquote&gt;確かにExpression Blendなどのデザイナを使えば画面設計を行え、XAMLのコードを自動生成&lt;br /&gt;
する事ができます。XAMLの理解がないという事は、HTMLやCSSを知らずにWeb開発ができるの？&lt;br /&gt;
という事と同じ事である。&lt;br /&gt;
&lt;/blockquote&gt;&lt;h3&gt;Hello XAML&lt;/h3&gt;&lt;p&gt;全てテキストエディタでの作成&lt;/p&gt;&lt;ul&gt;&lt;li&gt;ウィンドウを定義した *.xamlファイル&lt;/li&gt;
&lt;li&gt;アプリケーションを定義した *.xamlファイル&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h4&gt;ウィンドウを定義した win.xaml&lt;/h4&gt;&lt;pre&gt;&amp;lt;Window
 xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
 Title=&quot;My First XAML&quot;
 Width=&quot;320&quot;
 Height=&quot;240&quot;
&amp;gt;
 Hello World
&amp;lt;/Window&amp;gt; 
&lt;/pre&gt;&lt;p&gt;XAMLではウィンドウをWindow要素で記述する。Window /Windowタグで挟まれた内容が&lt;br /&gt;
ウィンドウに表示される。&lt;br /&gt;
Window要素の属性は上記のように設定できる&lt;br /&gt;
&lt;/p&gt;&lt;h4&gt;アプリケーションを定義した app.xaml&lt;/h4&gt;&lt;pre&gt;&amp;lt;Application
 xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
 StartupUri=&quot;win.xaml&quot;
/&amp;gt;
&lt;/pre&gt;&lt;h3&gt;アプリケーションのビルド&lt;/h3&gt;&lt;p&gt;このアプリケーションをビルドするには、ビルドツール(MSBuild.exe)を使って実行ファイルを&lt;br /&gt;
作成します。その為にはプロジェクトファイルを作成します。&lt;/p&gt;&lt;h4&gt;プロジェクトファイル hello.proj&lt;/h4&gt;&lt;pre&gt;&amp;lt;Project
 xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;
 DefaultTagets=&quot;Build&quot;&amp;gt;

 &amp;lt;PropertyGroup&amp;gt;
  &amp;lt;AssemblyName&amp;gt;HelloWorld&amp;lt;/AssemblyName&amp;gt;
  &amp;lt;OutputType&amp;gt;winexe&amp;lt;/OutputType&amp;gt;
  &amp;lt;OutputPath&amp;gt;c:\&amp;lt;/OutputPath&amp;gt;
 &amp;lt;/PropertyGroup&amp;gt;
 
 &amp;lt;ItemGroup&amp;gt;
  &amp;lt;ApplicationDefinition Include=&quot;app.xaml&quot; /&amp;gt;
  &amp;lt;Page Include=&quot;win.xaml&quot; /&amp;gt;
  
  &amp;lt;Reference Include=&quot;System&quot; /&amp;gt;
  &amp;lt;Reference Include=&quot;WindowsBase&quot; /&amp;gt;
  &amp;lt;Reference Include=&quot;PresentationCore&quot; /&amp;gt;
  &amp;lt;Reference Include=&quot;PresentationFramework&quot; /&amp;gt;
 &amp;lt;/ItemGroup&amp;gt;
 
 &amp;lt;Import Project=&quot;$(MSBuildBinPath)\Microsoft.CSharp.targets&quot; /&amp;gt;
 &amp;lt;Import Project=&quot;$(MSBuildBinPath)\Microsoft.winFX.targets&quot; /&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/pre&gt;&lt;p&gt;とまぁ呪文をたかたか打っていきいざコンパイル。&lt;br /&gt;
コマンドプロンプトを開き、先ほどの３つのファイルがある所まで移動する。&lt;br /&gt;
カレントディレクトリで、自分の場合は.NetFramework 3.5 だった為、&lt;br /&gt;
windows/microsoft.net/framework/v3.5/msbuild.exe　を実行。&lt;br /&gt;
&lt;br /&gt;
Hello World&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/5203420213700823479/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-and-silverlight.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5203420213700823479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/5203420213700823479'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/wpf-and-silverlight.html' title='WPF and Silverlight'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-2243924166408618878</id><published>2010-05-20T08:51:00.003+09:00</published><updated>2010-05-20T09:11:12.502+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[Yahoo] 勝手に回答"/><title type='text'>MessageBox</title><content type='html'>&lt;h2&gt;Yahoo&lt;/h2&gt;&lt;br /&gt;
&lt;h3&gt;勝手に回答。&lt;/h3&gt;&lt;blockquote&gt;「テキストボックスに日付を出すことができます」というのができません。&lt;br /&gt;
&lt;br /&gt;
Messagabox.Show（#5/19/2010#）というのを入れるのですが、&lt;br /&gt;
そもそもそれを表示させる[MessageBox]なるものをどこで用意したら良いものやら…。&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;p&gt;どこで用意したら良い？という回答なのだったけれど単純にSystem.Windows.Forms 名前空間を使用し、StaticなメソッドのMessagebox.showを実行すればよいのだけれども。どこがわからなかったのか・・。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;blockquote&gt;[C#](1) ウサミミハリケーンのようなすごいプログラムを作っていきたいです&lt;br /&gt;
&lt;br /&gt;
今回教えてほしいのはプログラムの停止 再開 の方法です&lt;br /&gt;
&lt;br /&gt;
ウサミミハリケーン（ファイル） に停止 再開 など あって 興味を持ちました&lt;br /&gt;
&lt;br /&gt;
手順 ソース 何でもいいので教えてください&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;p&gt;とりあえず自分の常識は世間の常識ではない事を認識した方が良い。&lt;br /&gt;
肝心のこのアプリケーションは&lt;br /&gt;
&lt;pre&gt;どうやらログラム開発/解析用の多機能な汎用プロセスメモリエディタ兼デバッガ&lt;/pre&gt;というもの。でこれを停止・再開などに興味が・・・。&lt;br /&gt;
&lt;br /&gt;
画面の右上で閉じたらいいね。&lt;br /&gt;
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/2243924166408618878/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/yahoo-messagabox.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/2243924166408618878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/2243924166408618878'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/yahoo-messagabox.html' title='MessageBox'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1344939876237061659.post-4474220831022213662</id><published>2010-05-19T10:31:00.007+09:00</published><updated>2010-05-19T15:38:05.275+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[C#] .NET"/><title type='text'>研修用クラス群</title><content type='html'>&lt;h2 id=&quot;top&quot;&gt;研修用 クラス群&lt;/h2&gt;&lt;br /&gt;
&lt;table id=&quot;sample&quot;&gt;&lt;tr&gt;&lt;td&gt;使用するクラス&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ユーザーインターフェイス&lt;/td&gt; &lt;td&gt;Form1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;データアクセスクラス&lt;/td&gt; &lt;td&gt;DataAccess&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;データインターフェイスクラス&lt;/td&gt;&lt;td&gt;IDataAccess&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;データクラス&lt;/td&gt;  &lt;td&gt;Data&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;画面構成&lt;/h3&gt;&lt;form id=&quot;sampleUI&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;InputTantousyaID&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;担当者ID&lt;/td&gt; &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;TantousyaID&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;氏名&lt;/td&gt; &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;Name&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;年齢&lt;/td&gt; &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;Age&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;input type=&quot;submit&quot; value=&quot;検索&quot; id=&quot;where&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;登録&quot; id=&quot;insert&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;消去&quot; id=&quot;delete&quot;&gt;&lt;br /&gt;
&lt;/form&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;使用テーブル構成&lt;/h3&gt;&lt;table id=&quot;sampleTable&quot;&gt;&lt;tr&gt;&lt;td&gt;FIELD&lt;/td&gt; &lt;td&gt;TYPE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ID&lt;/td&gt;  &lt;td&gt;NUMBER (5)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;NAME&lt;/td&gt; &lt;td&gt;VARCHAR (20)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;AGE&lt;/td&gt; &lt;td&gt;NUMBER (2)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;IMAGE&lt;/td&gt; &lt;td&gt;VARCHAR (255)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;div align=&quot;left&quot; style=&quot;border:3px solid gray&quot; id=&quot;SampleClass&quot;&gt;&lt;ul type=square&gt;&lt;li&gt;&lt;a href=&quot;#form1&quot;&gt;Form1(ユーザーインターフェイス)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#dataaccess&quot;&gt;DataAccess(データアクセスクラス)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#idataaccess&quot;&gt;IDataAccess(データインターフェイスクラス)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#data&quot;&gt;Data(データクラス)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;form1&quot;&gt;&lt;h2&gt;Form1(ユーザーインターフェイス)&lt;/h2&gt;&lt;br /&gt;
&lt;pre&gt;using System;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Yahoo_Sample_WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            AddOnFormControlEvent();
            InitializeOnFormControl();
        }
        private void AddOnFormControlEvent()
        {
            this.button1.Click += new System.EventHandler(this.button1_Click);
            this.button2.Click += new System.EventHandler(this.button2_Click);
            this.button3.Click += new System.EventHandler(this.button3_Click);
        }

        private void InitializeOnFormControl()
        {
            this.lblID.Text = &quot;ID&quot;;
            this.lblName.Text =&quot;Name&quot;;
            this.lblAge.Text =&quot;Age&quot;;
            this.pictureBox1.Image = null;
            this.txtDispID.Text = string.Empty;
            this.txtDispName.Text = string.Empty;
            this.txtDispAge.Text = string.Empty;
        }
        private void button1_Click(object sender, EventArgs e)
        {

        }
        private void button2_Click(object sender, EventArgs e)
        {

        }
        private void button3_Click(object sender, EventArgs e)
        {

        }
    }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;各、ボタンイベントにて動作の発動を行います。他処理としてInitializeOnFormControlやAddOnFormControlEvent等を&lt;br /&gt;
Form1クラスのコンストラクタで呼び出すように設定します。&lt;/p&gt;&lt;a href=&quot;#SampleClass&quot;&gt;戻る&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;dataaccess&quot;&gt;&lt;h2&gt;DataAccess(データアクセスクラス)&lt;/h2&gt;&lt;br /&gt;
&lt;h3&gt;概要&lt;/h3&gt;&lt;p&gt;DataAccessクラスでは、データベースに対してクエリを発行します。Insert UpDate Delete Select文を発行します。&lt;br /&gt;
SQLやデータの構造上、かなりのバリエーションが必要になる為基本の4つを今回は採用する事にしました。&lt;br /&gt;
各パラメーターはDataクラスに対応しており、データクラスに事前に値を設定してあれば基本4つのクエリを発行します。&lt;br /&gt;
その為、例えば特定のデータを1件のみ必ず毎回取得するような場合には新たにデータベースアクセスクラスにメソッドを追加します。&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre&gt;using System;
using System.Data.OleDb;

namespace Yahoo_Sample_WindowsFormsApplication1
{
     public class DataAccess : IDataAccess
     {
         private int _ID;
         public DataAccess(int ID)
         {
             _ID = ID;
         }

         public DataAccess(){}

         public bool ExistenceData()
         {
            OleDbConnection OleDbConnection1 = new OleDbConnection();
            OleDbConnection1.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot; +
            @&quot;C:\Documents and Settings\***\My Documents\db1.mdb&quot;;

            OleDbCommand OleDbCommand1 = new OleDbCommand();
            OleDbCommand1.Connection = OleDbConnection1;

            OleDbConnection1.Open();

            OleDbCommand1.CommandText=&quot;SELECT COUNT(*) FROM sampleTable&quot;;
            OleDbCommand1.CommandText += &quot;WHERE ID = @ID&quot;;

            OleDbCommand1.Parameters.Add(&quot;@ID&quot;, OleDbType.Char, 5).Value = _ID;

            int counter = (int)OleDbCommand1.ExecuteScalar();
            if (counter &gt; 0) 
            { return true; }
            else { return false; }
         }

         public bool InsertData(Data data1)
         {
             OleDbConnection OleDbConnection1 = new OleDbConnection();
             OleDbConnection1.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot; +
             @&quot;C:\Documents and Settings\***\My Documents\db1.mdb&quot;;

             OleDbCommand OleDbCommand1 = new OleDbCommand();
             OleDbCommand1.Connection = OleDbConnection1;

             OleDbConnection1.Open();

             OleDbCommand1.CommandText = &quot;INSERT INTO sampleTable&quot; +
                 &quot;(ID, NAME, AGE, IMAGE) VALUES (@ID, @NAME, @AGE, @IMAGE)&quot;;

             OleDbCommand1.Parameters.Add(&quot;@ID&quot;, OleDbType.Char, 5).Value = data1.ID;
             OleDbCommand1.Parameters.Add(&quot;@NAME&quot;, OleDbType.Char, 50).Value = data1.Name;
             OleDbCommand1.Parameters.Add(&quot;@AGE&quot;, OleDbType.Char, 2).Value = data1.Age;
             OleDbCommand1.Parameters.Add(&quot;@IMAGE&quot;, OleDbType.Char, 255).Value = data1.Image;

             if (this.ExistenceData() != true)
             {
                 OleDbCommand1.ExecuteNonQuery();
                 return true;
             }
             else{return  false;}
         }
         public bool DeleteData(Data data1)
         {
             OleDbConnection OleDbConnection1 = new OleDbConnection();
             OleDbConnection1.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot; +
             @&quot;C:\Documents and Settings\***\My Documents\db1.mdb&quot;;

             OleDbCommand OleDbCommand1 = new OleDbCommand();
             OleDbCommand1.Connection = OleDbConnection1;

             OleDbConnection1.Open();

             OleDbCommand1.CommandText = &quot;DELETE FROM sampleTable WHERE ID = @ID&quot;;

             OleDbCommand1.Parameters.Add(&quot;@ID&quot;, OleDbType.Char, 5).Value = data1.ID;

             if (this.ExistenceData() != true)
             {
                 OleDbCommand1.ExecuteNonQuery();
                 return true;
             }
             else { return false; }
         }

         public bool UpDateData(Data data1)
         {
             OleDbConnection OleDbConnection1 = new OleDbConnection();
             OleDbConnection1.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot; +
             @&quot;C:\Documents and Settings\***\My Documents\db1.mdb&quot;;

             OleDbCommand OleDbCommand1 = new OleDbCommand();
             OleDbCommand1.Connection = OleDbConnection1;

             OleDbConnection1.Open();

             OleDbCommand1.CommandText = &quot;UPDATA sampleTable SET NAME = @NAME, AGE = @AGE, IMAGE = @IMAGE&quot; +
                 &quot; WHERE ID = @ID&quot;;

      OleDbCommand1.Parameters.Add(&quot;@ID&quot;, OleDbType.Char, 5).Value = data1.ID;
             OleDbCommand1.Parameters.Add(&quot;@NAME&quot;, OleDbType.Char, 50).Value = data1.Name;
             OleDbCommand1.Parameters.Add(&quot;@AGE&quot;, OleDbType.Char, 2).Value = data1.Age;
             OleDbCommand1.Parameters.Add(&quot;@IMAGE&quot;, OleDbType.Char, 255).Value = data1.Image;

             if (this.ExistenceData() != true)
             {
                 OleDbCommand1.ExecuteNonQuery();
                 return true;
             }
             else { return false; }
         }
  
  /// &lt;summary&gt;
         /// dataSetを返す
         /// &lt;/summary&gt;
         /// &lt;returns&gt;SELECT文を発行し全てのデータを取得しDataSetで返す&lt;/returns&gt;
         public System.Data.DataSet SelectData()
         {
             OleDbConnection OleDbConnection1 = new OleDbConnection();
             OleDbConnection1.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=&quot; +
             @&quot;C:\Documents and Settings\***\My Documents\db1.mdb&quot;;

             OleDbConnection1.Open();

             string selectCommandText = &quot;SELECT * FROM sampleTable&quot;;

             OleDbDataAdapter adapter1 = new OleDbDataAdapter(selectCommandText, OleDbConnection1);

             System.Data.DataSet dataset1 = new System.Data.DataSet();
             
             adapter1.Fill(dataset1);

             return dataset1;
         }
     }
}
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;Insert時のIDはnotnullの為このままでは使用できません。dataクラスにてどうにかしてコーディングするように提案を行います。&lt;br /&gt;
私的見解では、データベース側のトリガーを使用したほうが良いと思います。&lt;/p&gt;&lt;a href=&quot;#SampleClass&quot;&gt;戻る&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;idataaccess&quot;&gt;&lt;h2&gt;データアクセスインターフェイス&lt;/h2&gt;&lt;br /&gt;
&lt;h3&gt;概要&lt;/h3&gt;&lt;p&gt;研修用の為インターフェイスの使い方のみを言及した形のクラスになります。&lt;/p&gt;&lt;br /&gt;
&lt;pre&gt;using System;

namespace Yahoo_Sample_WindowsFormsApplication1
{
    interface IDataAccess
    {
          bool ExistenceData();
          bool InsertData(Data value);
          bool UpDateData(Data value);
          bool DeleteData(Data value);
          DataSet SelectData();
    }
}
&lt;/pre&gt;&lt;a href=&quot;#SampleClass&quot;&gt;戻る&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;data&quot;&gt;&lt;h2&gt;Data(データクラス)&lt;/h2&gt;&lt;h3&gt;概要&lt;/h3&gt;&lt;p&gt;コンストラクタを2つに設定します。この場合、引数がある場合の用途とない場合の用途を考えてます。&lt;br /&gt;
例えば、現状のDataAccessクラスのSelectDataを使用する場合等はIDの指定等が必要ない場合がある為です。&lt;br /&gt;
しかし、このままのデータクラスでは全てのデータ形式に対応できない事を明確にします。&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;理由として、NAMEフィールド{&quot;山&quot;,&quot;朗&quot;}という文字列があるフィールドに追加したりそのデータを探したりする場合には&lt;br /&gt;
Nameプロパティを使用する事はできません。このような場合の対応の仕方を考えて下さい。&lt;/p&gt;&lt;pre&gt;using System;
using System.Windows.Forms;
using System.Text;
using System.Text.RegularExpressions;

namespace Yahoo_Sample_WindowsFormsApplication1
{
    public  class Data
    {
        private IDataAccess mydata;
        public Data(string ID)
        {
            if (ID!= string.Empty)
            {
                Regex regex1 = new Regex(&quot;^[0-9]+$&quot;);
                if (!regex1.IsMatch(ID))
                { MessageBox.Show(&quot;not String); }
                else
                {
                    mydata = new DataAccess(int.Parse(ID));
                }
            }
            else
            {
                MessageBox.Show(&quot;Nothing&quot;);
            }
        }
        public Data() {}
#region property
        private int _ID;
        public int ID
        {
            get{return _ID;}
            set{_ID = value;}
        }
        private string _Name = string.Empty;
        public string Name
        {
            get{return _Name;}
            set{_Name = value;}
        }
        private int _Age;
        public int Age
        {
            get{return _Age;}
            set{_Age =value;}
        }
        private string _Image;
        public string Image
        {
            get { return _Image; }
            set{_Image = value;}
        }
#endregion
    }
}
&lt;/pre&gt;&lt;a href=&quot;#SampleClass&quot;&gt;戻る&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kouei3nettips.blogspot.com/feeds/4474220831022213662/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/test.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4474220831022213662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1344939876237061659/posts/default/4474220831022213662'/><link rel='alternate' type='text/html' href='http://kouei3nettips.blogspot.com/2010/05/test.html' title='研修用クラス群'/><author><name>kou Takahashi</name><uri>http://www.blogger.com/profile/05996434071543994803</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>