xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

2013-01-01から1年間の記事一覧

ReactiveSignalR

Happy Merry X'mas!! C# Advent Calendar 2013、23日目担当の@xin9leです。誰が何と言おうと23日目です。先の3連休を高校の同級生と夜通しカタンで遊び過ぎたせいで担当記事の公開が間に合わなかったなんてことは...あるようなないような...。関係各位、誠に…

ActionFilter属性を利用した簡易時間計測

One ASP.NET Advent Calendar 2013の19日目担当、今年4度目の登場@xin9leです。そろそろ完全に大顰蹙のような気がしていますが、気にしないことにして...。今回は大好きなSignalRのお話ではなく、ASP.NET MVCやWeb APIにあるAction Filterを使った処理時間の…

Web APIからSignalRへの連携

One ASP.NET Advent Calendar 2013も17日目になりました。すでに3度目の登場です、@xin9leです。ASP.NET/IISのMVPさんよりも多く登場していて場違い感を多少なり感じておりますが、今回も飽き足らずSignalRのネタで攻めます。ご了承ください。 最近の体験談 …

暗黙的にenumに変換できるゼロ

ここ最近、#じんぐる先生とか言って部署の新人さんにC#プログラミングを教えています。クラス/継承/多態などのオブジェクト指向の基礎から時間を掛けてみっちりと。そんな中、例題を出して説明しながら答え合わせしていたとき次のような現象に出くわしました…

DynamicSignalR

One ASP.NET Advent Calendar 2013、12日目を担当させて頂きます@xin9leです。「1000年に1度のアイドル」と言われて人気を博した橋本環奈ちゃんじゃないですが、「北陸のイケメンMVP」とか嘘八百言われつつの2回目の登場です。今回も前回同様SignalRネタです…

WCAF vol.11 資料

福井のデザイナーさんが中心となって開催されている勉強会、WCAF vol.11に参加してきました。今回のテーマはストレートに「Design」。リンゴ中心の世界にSurface 2片手に単身乗り込む自分、なかなか怖いもの知らず。それもこれも主催の@shirokuro331さんに「…

Azure Web Sites + WebSocketにおけるSignalR Transport

One ASP.NET Advent Calendar 2013、3日目担当の@xin9leです。昨年に引き続き@chack411さんの後ろで光栄です。この1年はASP.NET MVC、SignalR、Web APIなどなど、ASP.NETの技術を次々と業務に実践投入してEnjoyしてました。特にSignalRは毎日のように触れ合…

Web APIでPUT/DELETEに失敗するときの対処

ひと月ほど前、仕事でASP.NET Web APIを使った開発をしていたときでした。コントローラーにキチンとCRUDを実装し、開発環境のIIS Expressで動作確認も無事終え、部内のテストサーバーのIISにホストしました。そしてそのAPIを利用することになっている同僚に…

システムメニューを操作するビヘイビア

WPFはUI要素に関する操作は恐ろしいほどに柔軟です。(意味があるかは別として) コンボボックスの項目に動画を流すことすら簡単にできてしまいます。ですが、ウィンドウに関する操作はWindows Formsの方が楽だったなと思う場面がいくつもあります。そう感じる…

VisualTreeの子孫要素を取得する

非常に稀なことかもしれませんが、UIコントロールの奥底にある要素にアクセスして操作したい場合があります。例えば、DatePickerコントロールとして提供されているけれども、何かの都合でその中のTextBox部分をイジらなければならない、と言ったケースです。…

ボタンをプログラム側からクリックする

クライアントアプリケーションを作成していると、稀に「ボタンをクリックしたことにしたい」場合があります。ボタンのイベントハンドラやコマンドを直接呼び出すのもありかもしれませんが、何か気持ち悪い感じがしないでもないのでクリックを模倣してみまし…

IsVisibleChangedをEventTriggerで拾えない

MVVMをやっていると大変お世話になるSystem.Windows.Interactivity.dllのEventTrigger。これでIsVisibleChangedイベントを拾えないという、どー考えてもバグらしい現象に遭遇して悲しくなったのが今日の業務のハイライト。 障害が出る簡単なサンプル Window…

ExpressWeb上のWordPressをAzureに移行する

Windows Azureが提供するWeb Sitesは超クールなヤツです。簡単で綺麗な管理サイトでの操作/設定だけでなく、Visual StudioやWebMatrixとの親和性も非常に高く、作成したサイトをビックリするほどお手軽に発行/ホストできます。ExpressWebさんは非常に安価で…

例外発生時にリトライする

アプリケーションの要件によっては「ココは失敗してもらっちゃ困る!」という処理が出てきます。こんな場合に例外が発生したりすると、もう目も当てられない状態になります。失敗しないように制御することは大事ですが、失敗しないことを過度に期待するのは…

Azure Web Sitesでカスタムドメインを設定する

Azure Web Sitesは大変にお手軽です。インフラ関連に疎い僕でも簡単にサイト公開できちゃうので、とっても好きです。そんなAzure Web Sites上にサイトを作成すると、標準では「http://○○○.azurewebsites.net」のURL (azurewebsites.netのサブドメイン) が振…

SQLでエスケープ文字を挿入する

普段C#などからLINQ to SQLやLINQ to Entity、DapperなどのO/Rマッパーを使っているとあまり気にしないのですが、SQLを直接書くときに稀に改行やタブなどのエスケープ文字を入力したい場合があります。特に難しくないのですが、(特にANSIコードを)よく忘れて…

Azure SQL Databaseのスナップショットを取る

Windows Azure上のSQLデータベースのバックアップは、通常「BLOBストレージ」と呼ばれるところにエクスポートすることで行います。同じく、リストアはBLOBストレージからインポートすることで行います。これらはWindows Azureの管理ポータルからGUIを利用し…

DateTimePickerのFormatStringで例外

Extended WPF Toolkit、使ってますか?XAMLは非常に柔軟なので、WinFormsとは雲泥の差と言わんばかりに簡単にUIをカスタマイズできます。が、WPFには標準提供のコントロールがそれほど多くありません。「WinFormsにはあるのにWPFにはない」、こんなコントロ…

ThreadPool監視のすゝめ

先日7月20日、@neueccさんがASP.NETでの定期的なモニタリング手法ということで、Webアプリケーションの状況把握のためにThreadPoolのスレッド数を監視をしていると書いておられました。社内システムとはいえリアルタイムアプリケーションでThreadPool使いま…

Windows 8.1での検索の仕様変更

Windows 8におけるストアアプリには、OSとアプリケーションで一貫性のあるUX (User Experience : ユーザー体験) を提供するためのデザインガイドラインが存在します。Windows 8のプレビュー版が公開されて以降、多くのカンファレンスやセミナーでこの新しい…

dynamicとinterfaceによる実行時例外

Twitterを見ていたら、SignalRの開発者@davidfowlさんがこんなツイートをしていました。 Here's the compiler bug I found today https://t.co/KY38SnBfDI /cc @KirillOsenkov— David Fowler (@davidfowl) July 2, 2013 彼が発見したというバグを再現するコ…

PowerPoint起動時のストーリーボード表示を抑制する

Microsoft Office 2007以降がインストールされている環境にVisual Studio 2012をインストールすると、PowerPointのアドインとしてストーリーボーディングを利用できるようになります。下図のようにウィンドウの右側にストーリーボード図形というペインが表示…

参照設定せずにFormを表示する

ハンズオン勉強会、Hokuriku.NET C# メタプログラミング ~リフレクション~に参加しました。その中で、アセンブリの動的読み込みをする時間がありました。参照設定に加えられていないアセンブリに含まれているクラスのインスタンスを作る、というものです。…

web.configでリダイレクト

URLリダイレクトをかけたい、という事は比較的よくあることかと思います。当サイトもテーマを組み直すついでに記事のURLも微妙に変更したので、古いURLでのアクセスを受け入れるためにリダイレクトを設定する必要がありました。リダイレクトにもいくつかあっ…

Community Open Day 2013 資料

全国同時開催の勉強会イベント、Community Open Day 2013が無事終わりました!僕も北陸会場で、スタッフ兼スピーカーとしての活動しました。遠方からわざわざ北陸まで来て頂いたスピーカーのみなさん、そして休日にも関わらずお越しいただいた参加者のみなさ…

非同期メソッド入門 (15) - 機械的読み替えに注意

async/awaitの挙動は非同期ですが、見た目はほぼほぼ同期的なコードと同じです。コードの可読性がこれまでとは桁違いに良くなるので、例えば既存プロジェクトを.NET Framework 4から.NET Framework 4.5に切り替えた場合などに既存のコードをasync/awaitで置…

Hokuriku.NET × WCAF 資料

2013年4月13日(土)に行われた「Hokuriku.NET × WCAF」に参加してきました。北陸のプログラマーとデザイナーで集まって交流しましょうというのが目的でした。色彩のお話とか整列/配列のお話などなど、「美しく、訴求力のあるデザイン」にするための方法を理論…

Room metro #15 東京 資料

2013年3月30日(土)、東京は神保町にあるIIJさんで開催されたRoom metro #15 東京に参加/登壇してきました。自身にとって初めての北陸以外でのセッション、昨年のMVP Open Dayのときに@hr_saoさんからお声掛け頂き、恐れ多くも良い機会を頂きました。本当にあ…

非同期メソッド入門 (14) - 単体テストの記述方法

近年の開発では単体テストがとても重要視されています。Visual StudioやTeam Foundation Serverなどの進化を見ても、それが良く出ています。人によっては「テストコードがないプログラムなんて...」とか、「テスト書かないでコード書くなんて信じられない」…

LINQにオレオレ機能を追加

LINQは便利です。LINQが使える環境なら率先して使いたいところです。LINQに出会ってからは、LINQに依存し過ぎてLINQがないと生きられない体になってしまいました。LINQさん、愛してます.../// と、くだらない前フリはさておき、LINQを使っていて思うことは「…