xin9le.net

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

Tips

Azure Web Sitesの仮想ディレクトリにWeb Deployする方法

Azure Web Sitesには仮想アプリケーション/仮想ディレクトリという機能があります。wwwrootなどのルートディレクトリでなくても (その他のサブフォルダでも) 仮想的なルートディレクトリとして認識させ、アプリケーションを動作させることができます。設定は…

CSV/TSVなどの区切り文字形式ファイルを簡単生成

CSV (Comma-Separated Values : カンマ区切り)、TSV (Tab-Separeted Values : タブ区切り)、SSV (Space-Saparated Values : 半角スペース区切り) と言った「データを特定の区切り文字で区切って並べたファイル形式」があるのはご存知の事と思います。特に表…

ASP.NET MVCでCamel CaseなJSONを出力する

ASP.NET MVCでWebアプリを開発しているときに非同期でサーバーからJSONを取得するのはよくあることだと思います。このとき、サーバー側は標準機能のJsonResultを利用してJSONの生成を行うのが定石ですが、.NETのクラスインスタンスのプロパティから名前と値…

Azure Web SitesでIP制限をかける方法

2013年11月13日、Visual Studio 2013 Launch EventにおいてVisual Studio Online (コードネーム : Monaco) が発表されました。MonacoはAzure Web Sitesを利用した開発をサポートしていますが、サイトのURLはWebサイトができた瞬間から完全に全世界Openなので…

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ネタです…

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部分をイジらなければならない、と言ったケースです。…

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

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

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を利用し…

ThreadPool監視のすゝめ

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

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

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

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

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

web.configでリダイレクト

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

LINQにオレオレ機能を追加

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

Null許容型と三項演算子

イマサラですが、三項演算子 (条件演算子) ってコンパクトに書けていいですよね。利用条件というか制約はありますが、オブジェクト初期化子などif文が書けないようなところにも書くことができて大変便利です。三項演算子は書き方がどーのこーのということが…

Surfaceで画面キャプチャ

Surface with Windows RTを発売と同時に買って日々戯れている今日この頃。普段使いのタブレットデバイスとしては十分過ぎるパフォーマンスとバッテリーの持ちで、特に困ることはありません。ですが、最初に困ったのが11月23日に行われたWCAF vol.9のセッショ…

拡張DisplayName属性

C#が「とっても×6 だーいすーきよー?」な皆さん、こんにちは!今回の記事はC# Advent Calender 2012の22日目の記事です。投稿日付が23日?...野暮なこと言っちゃいけません。ちっちゃなことは気にしちゃいけません。誰が何と言おうと、22日目の記事です(棒 …