Hatena::ブログ(Diary)

おおたに6号機blog このページをアンテナに追加 RSSフィード

2008-07-15(火)

[]しゃべる 10:07 しゃべるを含むブックマーク


なるほど、元々JTwitterだったものが名前を変更して「しゃべる」になったのですね。

昨夜の疑問もこれで納得。やっぱり知ってました^^


(追記)

S2Struts/S2/S2Daoなんですね。ほほー。

[]ポリシー -「ユーザさん/開発者にとって」シリーズその6- 14:01 ポリシー -「ユーザさん/開発者にとって」シリーズその6-を含むブックマーク

フレームワークユーザさんと開発者にとって、仕様UT/IT、サンプルなどはどのようなメリット

もたらすのかを示すシリーズ、今回で締めです。

ラストポリシーについてです。

ポリシーは何のためにあるのか、それを今回は書いてみたいと思います。


ポリシーは簡単に言えば従うべき基準・立ち戻る原点のことです。

ポリシー単体ではユーザさんにとっては直接的なメリットは正直出にくいものかもしれないです。

あえて言うならば、あるソフトウェアを深く使いこなすにはポリシーが一貫しているもののほうが使いやすい点でしょうか。


ただ間接的なメリットとしては大きなものがあります。それは開発者メリットとほぼ同義です。

それは、「どういうユーザさんの悩みをどのように解決したくて作りました」という事の表明と、「迷ったときの立ち戻る原点」の表明です。

フレームワーク開発者が作るものの基準点といったほうが良いかもしれません。


開発者も人なので考え方は時に変わります。それで大きく方針を転換してより良い方法を目指すという考え方もあるでしょう。

ただ、本当の中核となる考え方の部分はぶれない方が製品にとってはよいんじゃないかと考えてます。

なぜなら考え方・世界の見方が製品に大きな影響を与えるからです。もともとの考え方と新しい考え方の2つが存在すれば、

製品に影響が出てしまい歪んでしまうのは明らかです。なので、ポリシーがぶれてしまうようなものは同じ製品内に組み込むのではなく、

違う製品とするほうがより効果があるはず。


で、ポリシーを書き記しておくことで製品を作ったときの原点に立ち戻れるようにしておくことは長い目で見ると重要だと信じています。

(逆を言えば、ポリシーに記載されている部分に反しない範囲であれば色々方向転換してみてもよいと思います。)

例えるならポリシーは測量でいうところの水準原点のような、立ち戻るべき基本のことです。

水準原点が標高ゼロという基準を与えてくれたことで、標高という単位が可能になり、全てが測量できるようになりました。

ポリシーも同じものだとおもうなあ。

何かに迷ったら、立ち戻って自分達がどういう問題を解決したかったのかなあと考える時間をくれる、そういうものじゃないですかね。

ちなみに日本水準原点はこんな感じです。


f:id:shot6:20050510104653j:image


まとめると、ポリシーは作るほうにとっては非常に重要なのは明らかです。

また、使う方にとっても、間接的ではあるものの、長期的にみればポリシーがあることが製品一貫性をもたらすので

結果として重要なんじゃないでしょうか。

[]Silverlight2入門記1 -HelloWorld- 15:41 Silverlight2入門記1 -HelloWorld-を含むブックマーク


今日からしばらく汁バラ入門記やります。第一回目はHelloWorld

インスコ編はまたあらためて第0回としてやります。


とりあえず環境構築は下記あたりのツールをいれるのと、Silverlight2のランタイムいれます。

この辺はあとで詳しく書く。


まずはHelloWorldしてみる。使用するツールはVisualStudio.NET 2008+Silverlightエクステンション

VS2008から新規プロジェクト作成して、Helloプロジェクトとして作成。

ASP.NETサイトを作るかどうか聞かれるのでひとまずそのままOK。


するとPage.xamlというXAMLが出力されるので、ひとまず単純にTextBlock(Labelみたいなもん)を

Gridコンポーネントの下に足します。なんでかしらんがデフォルトはGridコンポーネントが出力される。

<UserControl x:Class="hello.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock Text="Hello World" />
    </Grid>
</UserControl>

これで、デバッグ実行(F5)またはデバッグなしで実行(Ctrl+F5)!

おけ。でけた。

f:id:shot6:20080715153921p:image


次回は足し算での入力コンポーネントの使い方です。

[]Silverlight2入門記2 -足し算- 16:41 Silverlight2入門記2 -足し算-を含むブックマーク


意外と早く次まで来た(w)ので、次は足し算です。

で、それだけだと面白くないので、先ほど使ったレイアウト系コンポーネントのGridではなくて、

Canvasを使ってみます。Gridはテーブル上に位置を指定しますが、Canvasでは位置情報で指定します。


ちなみにどちらも親コンポーネントでざっくりレイアウトを決めた後に、子供コンポーネントにその位置情報

埋め込むような形式を取っています。

例えばGridの場合だとこんな感じ。

<Button x:Name="myButton" Grid.Row="1" Margin="10" Content="Click me!" Click="myButton_Click"/>

Grid.RowでGridにある1行目にこのコンポーネントを配置するという指定ができます。

こうするとレイアウトの大枠の情報と実際にその位置に何が入るかの情報がかなり離されてしまうのが

結構違和感がある。個人的にはこの部分はいまいちじゃないかと思うなあ・・・・


ひとまず続けましょう。

ではCanvasを使って位置を決めていきます。

Canvas.Leftで左からの絶対位置、Canvas.Topで上からの絶対位置を指定します。

で、今回は足し算なので、テキスト入力「TextBox」の登場です。

例えば下記のような感じで記述します。これはシンプルですね。

        <TextBox x:Name="arg1" FontSize="30" Text="" Height="40" Width="80" Canvas.Left="10" Canvas.Top="40" />

で、足し算イベントを起こすためのボタンを配置します。

        <Button x:Name="button" FontSize="30" Canvas.Left="390" Canvas.Top="33" Content="計算!" Click="button_Click"/>

Silverlightといえど、.NETの仕組み上に載っているのでもちろんイベントに対してイベントハンドラ

割り当てることが出来ます。イベントハンドラコードビハインドの仕組みで、1xamlに対して1実コードがVSによって

自動的に出力されています。今回はC#で作成しているので、Page.xamlに対応するコードビハインドとして

Page.csが既に準備されているので、ここにbutton_Clickイベントをはっつけるわけです。

VSであれば、Clickイベントを記載して、新しいイベントハンドラの作成とすると自動イベントハンドラを作成してくれます。

(ちなみに親クラスはUserControl。これね。

http://msdn.microsoft.com/ja-jp/library/system.windows.controls.usercontrol.aspx

)


ではClickイベントイベントハンドラをみてみましょう。

        private void button_Click(object sender, RoutedEventArgs e)
        {
            int a1 = int.Parse(arg1.Text);
            int a2 = int.Parse(arg2.Text);
            result.Text = (a1 + a2).ToString();
        }


これでイベントハンドラ記述も終わりました。ちなみにValidationの仕組みはSilverlightにはなさそうなので、

このイベントハンドラの先頭でごりごり書くっぽい。


ではxamlの全体像を見てみましょう。


<UserControl x:Class="Calculate.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="600" Height="300">
    <Canvas Background="White">
        <TextBox x:Name="arg1" FontSize="30" Text="" Height="40" Width="80" Canvas.Left="10" Canvas.Top="40" />
        <TextBlock FontSize="30" Text="+" Canvas.Left="100" Canvas.Top="35" />
        <TextBox x:Name="arg2" FontSize="30" Text="" Height="40" Width="80" Canvas.Left="140" Canvas.Top="40"/>
        <TextBlock FontSize="30" Text="=" Canvas.Left="240" Canvas.Top="35" />
        <TextBox x:Name="result" FontSize="30" Text="" Height="40" Width="80" Canvas.Left="280" Canvas.Top="40"/>
        <Button x:Name="button" FontSize="30" Canvas.Left="390" Canvas.Top="33" Content="計算!" Click="button_Click"/>
    </Canvas>
</UserControl>


実行してみましょう。


f:id:shot6:20080715163454p:image


よしよし足し算できた。

Silverlightでの入力イベントの発生の仕方の基本について書いてみました。

次はそのほかの入力コンポーネントチェックボックス、プルダウン、リンク)などを使ってみます。

トラックバック - http://d.hatena.ne.jp/shot6/20080715