2012年11月05日

『「.NET開発者」のためのSilverlight入門』読みました。

   このエントリーをはてなブックマークに追加 Clip to Evernote
その名の通り、.NET開発者のためのSliverlight入門書です。
すでに、WindowsFormsや、ASP.NET WebFormでの開発経験がある方が対象です。

4777517055「.NET開発者」のためのSilverlight入門―XAMLからはじめるアプリケーション開発の基礎
森 博之
工学社 2012-08

by G-Tools

「Microsoft MVP for C#/Client App Dev/Silverlight」を受賞されている方が書かれているので
安心して読むことができます。

副題は XAMLからはじめるアプリケーション開発の基礎 で、その通りの構成となっています。
以下に章立てを示しますが、なんといっても大きな特徴が、第2章の XAMLです。

第1章 Silverlight概要
第2章 XAML
第3章 Silverlight入門
第4章 レイアウト
第5章 リソースディクショナリ・スタイル
第6章 データ・バインディング
第7章 テンプレート
第8章 アニメーション
第9章 Webブラウザ連携
第10章 ブラウザ外実行
第11章 外部アクセス/インターフェイス
第12章 ネットワーク・アクセス
第13章 その他の機能

Silverlightの概要の後に、いきなり、XAMLの説明なので、初めは戸惑いましたが、
読んでいて、なるほど!この本の肝は、まさしくこの「XAMLからはじめる」にあるんだな
というのがよく理解できました。
XAMLが何たるかを理解することが、Silverlightを理解する近道ですがら、
この基礎が理解できれば、本書に書かれていないことにも、応用が効くというわけですね。
それと、データバインディングの章も、XAMLの記述について丁寧に説明されていて、
理解が深まりました。

240ページと薄めの本なので、Silverlightの入門書としておすすめできる本だと思います。
また、WPF開発者にも、得るものが多い本だと思います。8章までは、ほぼそのまま
WPFにも通用する内容になっています。

  

Posted by gushwell at 23:04Comments(0)TrackBack(0)

2012年03月03日

ナイト(騎士)巡回問題

   このエントリーをはてなブックマークに追加 Clip to Evernote
ナイト巡回問題とは、チェスのナイトを、チェス盤の上を動かし、すべてのマスを通り、
最初の場所に戻ってくる経路を求めるというものです。

Gushwell's C# Programming Pageに掲載しました。
ナイト(騎士)巡回問題
C#+ Silverlightで解いています。

KnightTour

  
Posted by gushwell at 22:30Comments(0)TrackBack(0)

2011年12月05日

Silverlightアプリをブログ上で動かす

   このエントリーをはてなブックマークに追加 Clip to Evernote
このエントリは、Silverlight Advent Calendar 2011への参加記事です。

ウェブサイトでは、比較的簡単にSilverlightアプリをホストすることが可能ですが、
ブログだと、画像以外をアップロードできなかったりして、Silverlightアプリをホストすることができない場合が
多いと思います。

しかし、せっかくだから、ブログでSilverlightアプリをホストしたいわけです。
僕はブログとウェブサイトの両方を運営していますが、圧倒的にブログの方が訪れる人の数が
多いですから余計にそう思います。
せっかく作ったSilverlightアプリを、以下のようにブログのページ上でも動かすことができれば、
それだけ、多くの人に見てもらえるというわけです。

Startボタンを押せば、プログラムが動き出します。



このプログラムは、以前「凸多角形の完全グラフ(一筆書き) 」で紹介したものです。
以前にも、このブログで載せています。


僕がやっている方法は、Webサイトにアップしたxapファイルを
ブログサイトから参照することで、ブログのページ上でSilverlightアプリを動かすというものです。

他の人に役に立つ情報かどうかはわかりませんが、 その方法を簡単にに示します。


まず、ウェブサイトにSilverlightアプリを配置します。
実際に配置するのは、
htmlファイル、silverlight.jsファイル、そして、ClientBinフォルダの下にあるxapファイルの3つです。
htmlファイルは、Visual StudioがSilverlightのプロジェクトを作成する時に、自動的に生成するホスト用のhtml ファイルです。

なお、このhtmlファイルの先頭近くにある body { } のスタイル指定は、以下のように、overflow指定を
追加しておきます。こうすることで、Silverlightをホストした部分でスクロールバーが出なくなります。



xapファイルは、デフォルトのまま、ClientBinフォルダの配下に配置します。
こんな感じです。


ちなみに、僕は、忍者ホームページというサービスを利用しています。
無料プランと有料プランがありますが、無料プランでも500MBのディスク容量がありますから、通常の利用なら
ばまったく問題ないと思います。

次にやることは、このSampleApp.html をウェブサイトの別のページからリンクを貼り辿れるようにすることです。
これは省略します。

最後に、ブログページに上記のSampleApp.html を埋め込みます。
記述するhtmlは、以下のような感じです。


もちろん、Webサイトの方でも、Topページから、リンクをたどっていくことで、
そのSilverlightアプリのページにたどり着けるようにしています。
大抵のWebサイトのサービスでは、そういった約束事があるので、どこからもリンクされていない
ファイルを、他のドメインのページからリンクさせることはやらないほうが良いと思われます。
ただ、結構面倒なので、最近はこの手法は使わないで、単にブログからウェブページへのリンクを
貼るだけのこともあります。

  
Posted by gushwell at 22:30Comments(0)TrackBack(0)

2011年11月13日

パズル Magic Star をC#で解く

   このエントリーをはてなブックマークに追加 Clip to Evernote
WebSite に、
パズル Magic Star を解く
の記事を新たに追加しました。

MagicStar とは、下の図の12 個ある○に 1 から 12 までの数字をひとつずつ入れていき、
直線上の4個の数字の合計が、すべて 26 になるように、数字を配置するというパズルです。

MagicStar01


これを C# で解いています。
Silverlight で作成しているので、実際に動かして答えを見ることができます。
  
Posted by gushwell at 22:26Comments(0)TrackBack(0)

2011年09月13日

コッホ曲線をSilverlightで作成

   このエントリーをはてなブックマークに追加 Clip to Evernote
コッホ曲線を描くプログラムをSilverlight で作成しました。
コッホ曲線とは、フラクタル図形の一種で、線分を3等分し、分割した真ん中の線分を底辺とする
正三角形を描く(ただし底辺は消す)ことを無限に繰り返すことによって得られる図形です。


24


実際に動くプログラムと、そのソースコードは、Gushwell's C# Programming Page - コッホ曲線 をご覧ください。


ある直線(線分)から、次の点(正三角形の頂点)を求めるロジックが意外と面倒でした。
角度の変換とか、2点間の長さを求めるとか、Sin, Cos関数を使うとかは 普段のプログラムではやっていないので...

  
Posted by gushwell at 22:49Comments(0)TrackBack(0)

2011年05月29日

交通流のモデル (ASEPモデル) のプログラム

   このエントリーをはてなブックマークに追加 Clip to Evernote
Webサイト「Gushwell's C# Programming Page」の「C#プログラム小品集」に、「交通流のモデル (ASEPモデル)」のプログラムを掲載しました。

一本道を多くの人が一列で歩く場合のシミュレーションをするというものです。
Silverlightで作成しています。
開始ボタンを押せば、プログラムが開始します。



ソースコードも掲載しています。   
Posted by gushwell at 20:45Comments(0)TrackBack(0)

2011年03月31日

N寄生数

   このエントリーをはてなブックマークに追加 Clip to Evernote
Webサイト Gushwell's C# Programming Pageに『N寄生数』の記事を掲載しました。
C#のソースコードも載せています。

N寄生数とは、

ある整数をA 、Aの一桁目の数値を N としたときに、 A を N 倍すると、右へ一桁分ローテートシフトし、
Nが最上位桁に移る数 のなかで最小の数を言います。 ただし、2<=N<=9 とします。

例えば、N=4 の時は、102564 となります。
102564 * 4 = 410256
となり、右にローテートシフトします

興味のある方は、N=6の時の値を求めてみてください。


  
Posted by gushwell at 21:26Comments(0)TrackBack(0)

2011年03月27日

Silverlight:画面に表示されたRichTextBox を印刷する

   このエントリーをはてなブックマークに追加 Clip to Evernote
画面表示用のページに配置されたRichTextBox の変数名がrtb だとすると、
rtbをPageVisual に 直接セットすると、印刷はできるけど、
幅を印刷用紙に合わせることができません。

RichTextBoxの複製を作って、それをPageVisualに設定して、印刷すればいいはずと思って、
調べたんだけど、どうやって複製を作るのかが、なかなか分かりませんでした。

やっとたどり着いた答えは、xaml プロパティを使えばいいということ。
これがわかるまで、結構時間がかかってしまいました。
別の方法もあるかも知れないけど、これ以外の方法がわかりません。
1ページ限定だけど、以下のようにすれば印刷できます。

  
Posted by gushwell at 22:06Comments(0)TrackBack(0)