タグ

ブックマーク / blog.okazuki.jp (14)

  • Windows ストア アプリで重要な非同期プログラミング(C#)について復習 - かずきのBlog@hatena

    ここでは、C# 5.0で追加された非同期プログラミングのための構文について説明します。 非同期プログラミングの必要性 非同期プログラミングは、Windows ストア アプリでは重要な要素です。50ms以上かかる可能性のあるAPIのほとんどが非同期として提供されています。これは、時間のかかる処理を、同期的に呼び出した場合にアプリケーションの応答が、止まってしまうという問題を起こさないためです。時間のかかる処理を同期的に行った場合のイメージを以下に示します。 このような処理は、タブレットなどのタッチユーザーインターフェースではユーザーに非常にストレスになります。Windows ストア アプリでは避けるべき挙動になります。ここで、時間のかかる処理を非同期に行った場合のイメージを以下に示します。 このような処理を簡単に実装できるようにC#5.0から導入されたasync修飾子とawait演算子につい

    Windows ストア アプリで重要な非同期プログラミング(C#)について復習 - かずきのBlog@hatena
  • WinRTとWPFとSilverlightと時々クラウディアさん - かずきのBlog@hatena

    Windows 8の話題性から新たに追加されたWinRTというネイティブな環境が最近ホットです。Windows 8の目玉機能のMetroスタイルアプリケーションを作るために使用するので今一番あついテクノロジだと個人的に思ってます。ちょっとつらつらと駄文を書いてみようかなと思い書いてみます。 WPF・Silverlightとの対比・・・ それと対比されるテクノロジとしてWPFとSilverlightがあります。個人的には、同じようなスキルセットでものを作れる環境というだけで、そんなに競合するものではないと感じているのですが、世の中だと、そう捉えられてるわけでもないのかなーという雰囲気を感じてたりもします。 WPF WPFは、今更説明するまでも無いですが.NET3.0から追加された現時点で最新の、いわゆる普通のWindowsアプリケーションを開発するためのプラットフォームです。 .NET Fr

    WinRTとWPFとSilverlightと時々クラウディアさん - かずきのBlog@hatena
  • RIAアーキテクチャ研究会 セミナー 第2回発表資料とコードサンプル - かずきのBlog@hatena

    RIAアーキテクチャ研究会セミナー第2回で話してきました。資料は、あとでまとまった形でも公開されると思いますが、ここで私のぶんだけとりあえず先出で公開しておこうと思います。 資料へのリンク 当はBlogにスライド埋め込みたいのですがはてなダイアリーが対応していないみたいなので不格好な表示になってしまいますorz 因みに、このセッションでやろうと思ってたWindowの見た目を共通化する方法(Windows Formsの基フォーム)のサンプルをコードレシピにあげました。 WPFでWindowの見た目を共通化する方法 まぁ、なんとなく思いついた方法なのでほかにいいやり方があったら教えてください

    RIAアーキテクチャ研究会 セミナー 第2回発表資料とコードサンプル - かずきのBlog@hatena
  • ReactivePropertyを使ってみた感想 イケテル!気持ちいい!ハードルは高い? - かずきのBlog@hatena

    # 変更履歴 2011/10/17 コメントの指摘のとおり敷居が高いをハードルが高いに修正しました。id:neueccさんの作ったReactivePropertyが最近アツイので、今チマチマ作ってるWindows Phone 7のアプリケーションでも途中から組み込んで使ってみました。まだアプリは未リリースなのですが、使ってみた感想とかをツラツラと書いてみようと思いました。 ReactivePropertyの基的なアプローチ ReactivePropertyは、WPF/Silverlight/Windows Phone 7でのアプリケーションの開発でReactive Extensionsの特徴であるIObservableやIObserverを使ってModelとViewModelとView(おまけ程度)で統一的な記述ができるようにしてくれるライブラリです。(あくまで私が触って感じた感想なので

    ReactivePropertyを使ってみた感想 イケテル!気持ちいい!ハードルは高い? - かずきのBlog@hatena
  • .NET Framework 4.5でのWPFの強化点!非同期処理との親和性UP - かずきのBlog@hatena

    Visual Studio 11を落として少し遊んでみました。前々から新機能としてUIスレッド以外からItemsControlにバインドされたObservableCollectionを操作すると例外が出るのをなんとかするというのが言われていましたので試してみました。 まずは、既存のVisual Stduio 2010で.NET Framework 4でお試しです。MVVM Light Toolkitを使ってさくっと以下のようなViewModelを作ります。コマンドが実行されるとUIスレッド以外からコレクションに要素が追加されるという単純なものです。 namespace CollectonChangedSample.ViewModel { using System.Collections.ObjectModel; using System.Threading.Tasks; using Gal

    .NET Framework 4.5でのWPFの強化点!非同期処理との親和性UP - かずきのBlog@hatena
  • F#で思ったことを徒然なるままに書いてみた - かずきのBlog@hatena

    F#という言語を最近遊び感覚で使ってますが、まだまだIDEのインテリセンスもイマイチだったりするところがあって、開発環境的には不満が割とあります。でも、それ以上にLL言語を彷彿とさせる(特にPython)ライトっぷりには脱帽です。 メインパラダイム F#は、オブジェクト指向型の言語でもあり関数型の言語でもあります。最近のC#もオブジェクト指向型の言語でもあり、一部関数型言語のいいところを取り入れる感じで進化していってます。この2つの言語は何が違うのか? C#はオブジェクト指向に主軸を置いていて、F#は関数型に主軸を置いているところだと思います。メインターゲットとするパラダイムが違います。F#は、関数型言語が持つ多くの強力な機能をバックのロジックに使用しつつ、現在主流のオブジェクト指向言語からも使えるように関数型言語固有のインターフェースをオブジェクト指向言語で扱いやすいクラスという形で表現

    F#で思ったことを徒然なるままに書いてみた - かずきのBlog@hatena
  • Visual Studio 2010のWPF/Silverlightデザイナの基本的な使い方 - かずきのBlog@hatena

    見た目が凝ってるものはExpression Blendで!!という感じに言われているせいか、Visual StudioのWPF/Silverlightデザイナがいまいち注目を浴びてないような気がしてる今日この頃です。 XAMLは手書きが一番です(キリッ)と私も前は思ってた派なのですが、最近はVisual Studioのデザイナを使えるだけ使って、どうしても手書きのほうが楽なところは手書きでやって、Styleやアニメーション、VisualStateなどを凝りたいときはBlendを使うといった使い方に落ち着いています。ということで、簡単な画面の作成を通して、Visual Studioのデザイナがどれだけ出来る子なのかということを紹介してみたいと思います。 作成する画面 今回作成する画面は、以下のような簡単な入力用画面です。 一応ViewModelがあってTextBoxやButtonはバインドも

    Visual Studio 2010のWPF/Silverlightデザイナの基本的な使い方 - かずきのBlog@hatena
  • ついにExcel VBAとおさらばする時がきたかもしれん - かずきのBlog@hatena

    .NET系の言語をExcelで実行できるExcel-DNAをテライケメンのid:bleis-tiftの呟きから教えてもらえました。 Samplesも結構充実してるのでいいかんじ。ファイルをExcelにドロップするだけでいいので、お手軽に使えますね!! 個人的にイケてると思ったのは以下の点。 Excelのリボンにメニューを追加できる Excelの任意のセルの値の取得、設定が出来る VB, C#, F#が使える もうよだれものです。

    ついにExcel VBAとおさらばする時がきたかもしれん - かずきのBlog@hatena
  • WPFアプリケーションの国際化対応 - かずきのBlog@hatena

    リソースファイルを使う方法が簡単そうなので、試してみました。参考にしたのは以下のサイトというか、ほぼそのままですね。自分用メモという意味合いが強いです。 WPFの国際化対応 デフォルトで用意されてるResources.resxに加えてResources.ja-JP.resxを作成します。 中身はこんなかんじ。アクセス修飾子をPublicにしておくのがポイントです。 Resources.ja-JP.resxの中身はこんなかんじです。同じキーに対して違う文字列を割り当ててます。こちらはコード生成なしになってるのがポイントですね。(自動でなしになってるはず) そして、このクラスをApp.xamlのResourcesとして登録します。 <Application x:Class="WpfResource.App" xmlns="http://schemas.microsoft.com/winfx/2

    WPFアプリケーションの国際化対応 - かずきのBlog@hatena
  • Managed Extensibility Framework入門 その1「はじめに」 - かずきのBlog@hatena

    参考情報 入門の最初にいきなり参考情報というのもなんですが、以下のサイトで独学出来る人はこれから書くであろう一連のエントリは見なくてもいいと思います。もし、見て頂けるなら、この解釈間違ってるとか、この記述がおかしいとコメントなどで指摘して頂けるとうれしいです。 開発しているサイト .NET Framework 4とSilverlight 4からひっそりと?追加されているものの中に、Managed Extensibility Framework(以降MEF)というものがあります。MEFは、CodePlexで開発が行われていて公式サイトは以下になります。 http://mef.codeplex.com/ MSDN内のMEFのサイト また、MSDN内にも概要が書かれています。MSDNの内容も丁寧に書かれているので、ここで書く必要も無いのでは??と思ったりもしましたが、自分の理解のために書いていこ

    Managed Extensibility Framework入門 その1「はじめに」 - かずきのBlog@hatena
  • WPFで開発を効率的に進めるためのポイントについて思ったこと - かずきのBlog@hatena

    id:int128さんがWPFで開発を効率的に進めるためのポイントについて書かれていますが、個人的な思いと少し違うかも?と思ったため自分の言葉で考えて書いてみました。ご意見、ご指摘大歓迎とあるので遠慮なくいってみます!*1 WPFでは、ViewとModel(ドメインモデル)の間にViewModelと呼ばれるViewに特化したModel層を設けるパターンが提唱されています。これにより、ビジネスロジックとプレゼンテーションロジックと表示が綺麗に分離されて、保守性やテスト容易性の向上が期待できます。 Model-View-ViewModelパターンは個人的なイメージ(30分で書いた図なのでイマイチかも・・・)です。 画像が小さいのでクリックしてオリジナルサイズで見るかこのpptxを直接見てくださいorz ポイントは? ポイントは、図中にも書いてありますが以下の点です。 依存関係はView → V

    WPFで開発を効率的に進めるためのポイントについて思ったこと - かずきのBlog@hatena
  • 非同期処理を含むメソッドの単体テスト方法 - かずきのBlog@hatena

    Reactive Extensionsを使うと簡単に非同期処理を書くことが出来るのですが、単体テストをしようとすると非同期処理って非常にテストしづらいです・・・。 例えば以下のようなパターン var target = new TestTargetObject(); target.GetHogehoge(); // 例えばWebから何かとってくるとか // うまく動けば1件とれるはずなんだけど・・・ Assert.AreEquals(1, target.HogehogeResults.Count); GetHogehogeの内部は、非同期の処理が行われるのでAreEqualsのタイミングでは、まだバックグラウンドで処理がはしってる途中なので、結果をアサーションにかけることは出来ません。 ということで、こういうケースで100%うまくいくのか確証はないのですが今の所うまく動いてる方法をメモしてお

    非同期処理を含むメソッドの単体テスト方法 - かずきのBlog@hatena
  • MVVMとコマンドはどこへ向かっているのか - かずきのBlog@hatena

    ということで、最近MVVMパターンでコマンドのプロパティをいちいち実装するのがめんどくさいと思っている今日このごろです。 ということで、ちょっと試行錯誤してみました。 コマンドのプロパティは要はバインドから取得できればいいだけで実在しなくてもいいんじゃないんだろうか?という観点です。 そうTypeDescriptorで、ありもしないICommand型のプロパティをあるかのように振る舞わせたら・・・? ということで早速実装です。 まずは、ICommand型のプロパティを表すためのCommandPropertyDescriptorを作ります。 namespace AttrCommandTest { using System; using System.ComponentModel; using System.Reflection; using System.Windows.Input; usi

    MVVMとコマンドはどこへ向かっているのか - かずきのBlog@hatena
    shirebito
    shirebito 2010/12/26
    TypeDescriptorで夢が広がる。
  • https://blog.okazuki.jp/entry/20101205/1291545730

  • 1