月別アーカイブ: 2010年3月

WPFでコントロールをドラッグ(1)

Thumbコントロールでドラッグ http://www.moonmile.net/blog/archives/698 で、スクロールバーで使われる Thumb コントロールを使ってドラッグを試してみましたが、このままでは単純な四角(決められたスタイル)しかドラッグできません。 Thum コントロールを少し工夫して、色々な形のコントロールも移動ができるようにする、ことは可能だとは思うのですが、いささか面倒です。つーか、もともとやりたいことは、普通のコントロールのドラッグ、あとはコントロールを配置してマウスで移動、なんてのを想定しているので、Thumb コントロールでは都合が悪いのです。コードの見通は悪くないんだけどね、XAMLが奇妙な感じになりそう。 そんな訳で、普通のコントロール(Ellipseコントロール)を移動させてみます。 ■Window1.xaml ■Windows1.xaml.c … 続きを読む

カテゴリー: 開発 | 4件のコメント

IIS7.0 基本のき(補講7)

補講の7回目(最終回)です。 今回は、ちょっと…いえ、かなり便利な URL書き換え(url rewrite)の機能です。 URL書き換えというのは、CGIでよくある。 http://localhost/sample/page.aspx?year=2010&month=03&day=04 みたいな URL を http://localhost/sample/2010/03/04 のようなアドレスでもアクセスできるようにするモジュールです。 # 実は、新しい ASP.NET ではこの機能も含まれているのですが、SE としては # IIS で対応したほうがいいのかな、と。 Microsoft URL Rewrite Module 1.1 for IIS 7 (x86) http://www.microsoft.com/downloads/details.aspx?fa … 続きを読む

カテゴリー: 設計 | コメントする

Thumbコントロールでドラッグ

WPFやSilverlightの表示は、XAMLで作成されているので、うまくやれば Windows アプリケーションの図形移動よりも楽に移動ができる…ハズです。 Windows コントロールの場合は、ボタンなどのような標準コントロールの場合はドラッグ&ドロップのイベントが用意されているのですが、四角や文字などを移動しようと思うと途端に難しくなります。 # マウスイベントを拾って移動すればいいだけなのですが、まあ、 # 面倒と言えば面倒。図形のサイズを変えようとすると、ひと苦労だし。 WPFやSilverlightのビューは、XAMLで書かれているので、ここの値を直接書き変えてやれば、移動や回転などができます。ボタン以外も、矩形や円なども同様に移動などができるわけです。 で、実際にやってみたのですが、結果を言えば、やっぱり「ひと苦労」ですね。 矩形のハンドル(四隅にある四角)を使 … 続きを読む

カテゴリー: 開発 | 2件のコメント

IIS7.0 基本のき(補講6)

補講の6回目です。 2年程前から、PHP on IIS というプロジェクトが走っています。 IIS上(Windows上)で、PHPを動かす、かつ、他の PHP アプリをインストールして動かす、というプロジェクトです。 いわゆる、LAMP環境(linux, apache, mysql, php)を、 windows + iis + mysql + php で動かそうという試みです。試みとはいえ、結構実用段階で、mysql と php が同時に入ってくれるのが便利なところです。 # php + sql server という組み合わせでもありなのですが、PHP で作成された OSS の # ほとんどが、mysql を使うので、mysql + php が主な組みわせになります。 さて、Windows ではあっても、PHP + MySQL を入れようとすると、結構手間がかかります。さらに、OSS を … 続きを読む

カテゴリー: 設計 | コメントする

IIS7.0 基本のき(補講5)

補講の5回目です。 さて、今回は Appcmd.exe というツールの話をしましょう。 実は、Windows Server 2008 R2 から PowerShell を使うように推奨されているのですが、コマンドラインで IIS を制御するには、appcmd.exe のほうが楽だったりします。 <015> 通常のコマンドプロンプトではパスが通っていないので、 c:\windows\system32\inetsrv に移動してから使ってください。 ヘルプを見ると、以下のものが使えます。 サポートされているオブジェクトの種類:   SITE      仮想サイトの管理   APP       アプリケーションの管理   VDIR      仮想ディレクトリの管理   APPPOOL   アプリケーション プールの管理   CONFIG    全般構成セクションの管理   WP        ワ … 続きを読む

カテゴリー: 設計 | コメントする

IIS7.0 基本のき(補講4)

補講の4回目です。今回は「アプリケーションプール」について解説します。 ASP.NET アプリケーションは、PerlなどのCGIと違って、一度コンパイルされて動いています。前回、解説したように一時的にコンパイルされたDLLを呼び出しているわけです。 このDLLは単体で動くわけではなくて、w3wp.exe という「ワーカープロセス」から呼び出しています。この実行ファイルを制御しているのが「アプリケーションプール」というものです。 通常は、「ワーカープロセス」=「アプリケーションプール」と覚えていて構いません。 IISマネージャでみると、これですね。 <012> また、ASP.NETアプリケーションが動くときに、このワーカープロセスが1つずつ起動されているわけではありません。複数のASP.NETは、ひとつのワーカープロセスに相乗りしています。 中身を見たいアプリケーションプールを選択して、右側 … 続きを読む

カテゴリー: 設計 | コメントする

IIS7.0 基本のき(補講3)

補講の3回目です。 IISマネージャで、仮想ディレクトリを追加する方法ですが、まずは「仮想ディレクトリ」とは何かを説明しましょう。 通常、IISのルートディレクトリは、c:\inetpub\wwwroot ディレクトリになっています。このフォルダに、c:\inetpub\wwwroot\moonmile のようなフォルダを作って、 http://localhost/moonmile/ のようにアクセスできるようにします。 ただし、このドライブはCドライブにあるので、常に Windows のシステムフォルダと同じになります(変更は可能ですが…)。なので、アプリケーションのフォルダを別のドライブにリンクさせることで HDD の容量を分散させたり、HDD アクセスを軽減させたりできます。 例えば、 d:\moonmile というフォルダを http://localhost/moonm … 続きを読む

カテゴリー: 設計 | コメントする

IIS7.0 基本のき(補講2)

補講の2回目です。 実は、IISを最初にインストールした状態では、ASP.NETは使えません。他にも色々な機能が制限されています。 これは「まずは最低限の状態でインストールする」というセキュリティの方針から、こうなっています。一見不便なような気がしますが、必要なときに必要なだけの設定ができる(よくわからない設定がされていない)状態であるので、「安心感」があると云えます。 余談ですが、GUI部分すら取り除いた、Core モードというのが、Windows Server 2008 にはあります。起動すると、馴染みのない(私にはなじみ深いのだが)、DOS プロンプトが立ち上がります。 さて、ASP.NETを導入するためには、サーバーマネージャの「役割」を使います。 <004> 右にある「役割サービスの追加」をクリックすると、ダイアログが出ます。 <005> ここで【アプリケーション開発】→【ASP … 続きを読む

カテゴリー: 設計 | コメントする

IIS7.0 基本のき(補講1)

先週の土曜日、.NETラボ http://dotnetlab.net/ で勉強会をしたのですが、資料が間に合わなくて、プレゼンテーションは最初の1頁しか作れませんでした(笑…っている場合ではないけど)。 それで、.NETラボの勉強会では「毒舌モード」でお話しましたが、ここでは「スマイル営業モード」で語らせて頂きます。別途「毒舌モード」や、懇親会でお話した不思議なブログの話は、またの機会にでも。怪しいブログのほうは、別の機会にちょろっとリンクしておきます。あ、.NETラボのブログのリンクから辿っても ok です。 そんな訳で、資料をラボのほうにアップできないので、ブログで補講をします。 内容は、ラボの勉強会でお話した内容ですね。語り口が違うだけです。多分。 数回にわたって書いていく予定なので、先に目次だけ。 1.IISマネージャの起動 2.IISの機能を追加する 3.仮想ディレク … 続きを読む

カテゴリー: 設計 | コメントする

多重定義の罠(自動キャストに注意)

関数の多重定義ってのは、非常に便利な機能で、同じ名前でも引数の数や型が違うと別の関数として判別してくれる、っていう技です。 オブジェクト指向言語は、大抵これを利用しています。 # オブジェクト指向的には必須って訳ではないんだろうけど、引数の数が異なる度に # 関数名を考えないと駄目ってのもアレなわけで。 # あと、C++/C# に限って言えば、コンストラクタの多重定義ができないと言語的に # 成り立たないってのがあります。 ここで多重定義ができないと、A(x) ってのができません。 仕方がないので、A::CreateX( int x ) なんて云うスタティッククラスを使うような ファクトリーパターンを使うようになる訳です。Java の場合は、Factory パターンが 主流ですが、C++のほうはコンストラクタの多重定義が多いですね。 # objective-c の場合は、このあたり中途半端 … 続きを読む

カテゴリー: 開発 | コメントする