ListPage

2010年5月20日木曜日

WPF and Silverlight

WPF and Silverlight


UIフレームワークというスコープでみた場合の性質は同じ

Silverlightはランタイムのサイズを4MB台に抑えなければならなかった為
WPFに比べると機能が削られているという違いがある

http://www.atmarkit.co.jp/fdotnet/vblab/uiframework_01/uiframework_01_01.html

XAML構文ありきのWPF UIフレームワーク


この記事の中あたりに

WPF UIフレームワークを理解するうえでXAMLという言語そのもに対する知識はあまり重要でない。
と断言的に述べていた。


画面設計とロジックの分離

画面設計をXAMLで記述し、イベント処理やビジネスロジックなどはC#やVBのコードで記述
(このような形態を[コードビハインド]と呼ぶ)
XAMLでは、コントロールの配置や静的な画面設計ではなくグラフィックス描写やコントロールの合成、
アニメーション、UI要素とデータのデータバインディングといった動的な処理までも記述することができる
このおかげで、画面まわりの処理の多くをコードビハインド側のコードから排除でき、コードビハインド側の
コードではロジックに専念できる。


本当にXAMLの理解は重要ではない?

確かにExpression Blendなどのデザイナを使えば画面設計を行え、XAMLのコードを自動生成
する事ができます。XAMLの理解がないという事は、HTMLやCSSを知らずにWeb開発ができるの?
という事と同じ事である。

Hello XAML

全てテキストエディタでの作成

  • ウィンドウを定義した *.xamlファイル
  • アプリケーションを定義した *.xamlファイル

ウィンドウを定義した win.xaml

<Window
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 Title="My First XAML"
 Width="320"
 Height="240"
>
 Hello World
</Window> 

XAMLではウィンドウをWindow要素で記述する。Window /Windowタグで挟まれた内容が
ウィンドウに表示される。
Window要素の属性は上記のように設定できる

アプリケーションを定義した app.xaml

<Application
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 StartupUri="win.xaml"
/>

アプリケーションのビルド

このアプリケーションをビルドするには、ビルドツール(MSBuild.exe)を使って実行ファイルを
作成します。その為にはプロジェクトファイルを作成します。

プロジェクトファイル hello.proj

<Project
 xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
 DefaultTagets="Build">

 <PropertyGroup>
  <AssemblyName>HelloWorld</AssemblyName>
  <OutputType>winexe</OutputType>
  <OutputPath>c:\</OutputPath>
 </PropertyGroup>
 
 <ItemGroup>
  <ApplicationDefinition Include="app.xaml" />
  <Page Include="win.xaml" />
  
  <Reference Include="System" />
  <Reference Include="WindowsBase" />
  <Reference Include="PresentationCore" />
  <Reference Include="PresentationFramework" />
 </ItemGroup>
 
 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
 <Import Project="$(MSBuildBinPath)\Microsoft.winFX.targets" />
</Project>

とまぁ呪文をたかたか打っていきいざコンパイル。
コマンドプロンプトを開き、先ほどの3つのファイルがある所まで移動する。
カレントディレクトリで、自分の場合は.NetFramework 3.5 だった為、
windows/microsoft.net/framework/v3.5/msbuild.exe を実行。

Hello World

0 件のコメント:

コメントを投稿