.NETで始めるプログラミング #MVPComCamp #clrh93
MVP ComCamp の札幌会場で「.NETで始めるプログラミング」というタイトルでお話させていただきました。
- MVP ComCamp In-Person Seminars
- 2015 MVP Community Camp 北海道エリア - connpass
- 2015 MVP Community Camp 北海道エリア #MVPComCamp #clrh93 - Togetterまとめ
札幌会場はいつも高評価なu-calaさんです。
そしてCLR/H恒例のおやつももちろん。
資料
.NETで始めるプログラミング from KatsuYuzu
.NETで始めるプログラミング紹介しましたWeb(ASP.NET)とデスクトップアプリ(WPF)、さらには他のセッション、すべてVisual Studio Communityで無料で出来るので是非!
補足
WPFのデモのコード。
<Button Name="ddd" Content="Button" HorizontalAlignment="Left" Margin="87,84,0,0" VerticalAlignment="Top" Width="302" Height="73" Background="#FFC61A1A" />
void ddd_Click(object sender, RoutedEventArgs e) { var 死亡フラグ = true; if (!死亡フラグ) { MessageBox.Show("こんにちわ"); } else { MessageBox.Show("ぶっとばしてさしあげますわ"); } }
各名前がひどいのはおいといて、HTMLの時にCSS使って構造とデザインは分離しようと言っていたのに反してるのと、処理とデザインを分離しようと言っていたのにも反してますね。ひどい話だwHTML,CSSやASP.NETの話の時のように分離してみましょう。
まずは、デザイン要素であるボタンから処理を引き離します。下記のように処理を定義しました。
public class MainWindowViewModel { public MainWindowViewModel() { // ICommand の実装は割愛 GreetCommand = new Command(_ => Greet(), _ => true); } public ICommand GreetCommand { get; set; } void Greet() { var 死亡フラグ = true; if (!死亡フラグ) { MessageBox.Show("こんにちわ"); } else { MessageBox.Show("ぶっとばす"); } } }
これをデザイン要素から購読することで、お互いに変更があった時にも影響を受ける心配がないですね。ついでにデザインもCSSと同じ要領でスタイル定義に分離しています。
<Window.DataContext> <wpfApplication1:MainWindowViewModel /> </Window.DataContext> <Window.Resources> <Style x:Key="GreetButton" TargetType="Button"> <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="Background"> <Setter.Value> <SolidColorBrush Color="Red" /> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <TextBlock Text="aaaaaa" /> <Button Content="Button" Command="{Binding GreetCommand}" Style="{DynamicResource GreetButton}" /> </Grid>
終わりに
幸か不幸か、会場の皆さんがほぼ開発者でしたので臨機応変に内容変えれたら良かったのかも。普通にハローワールドデモをしたうえにとちってたwこの補足まで落ち着いてやれれば時間通りだったかな?
朝から晩まで文字通り1日のイベントでしたが、とても楽しかったです。是非またよろしくおねがいします!