読者です 読者をやめる 読者になる 読者になる

ROMANCE DAWN for the new world

Microsoft Azure を中心とした技術情報を書いています。

Microsoft MVP for Microsoft Azure を初受賞しました

2017年1月1日付けで、Microsoft Most Valuable Professional (MVP) アワードを初受賞しました。受賞カテゴリは、Microsoft Azure です。日頃お世話になっている皆さまのお陰です。ありがとうございます。 新しい出会いや経験を楽しみながら、技術やアーキテ…

2016 年振り返り

今年も、しばやんさんが作った 2016 年の人気記事ランキングを生成するサービスを使わせてもらい、1年を振り返ってみます。 ASP.NET でクライアントの IP アドレスを取得する ASP.NET Web API で multipart / form-data を使ってファイルをアップロードする…

Azure 上に Jenkins を使って CI 環境を構築する

この記事は、Azure Advent Calendar 2016 の 25 日目 の記事です。 qiita.com Azure 上に Jenkins を インストールして、継続的インテグレーション(CI)環境を構築してみました。 Jenkins のような CI ツールを使ってビルドやテストなどの作業を自動化する…

Visual Studio for MAC を試してみた

先日の Microsoft Connect(); で発表された MAC 向けの Visual Studio(Preview)を試してみました。 ASP.NET Core で作った Web API を Xamarin Forms のアプリから呼び出してみます。 インストール こちらから無料でダウンロードすることができます。 www.…

ASP.NET Core を Docker Cloud で Azure に自動デプロイする

最近、ASP.NET Core を触り始めたので、de:code 2016 のセッションで行われていたデモを試してみました。セッションでは Azure と AWS にデプロイしていましたが、今回は Azure だけにデプロイします。 Mac 上で ASP.NET Core のプロジェクトを作成する GitH…

Mac で ASP.NET Core を動かしてみた

公式のチュートリアル手順で簡単に動かせると思っていましたが、環境構築に少し手間取ったので、まとめておきます。 Your First ASP.NET Core Application on a Mac Using Visual Studio Code — ASP.NET documentation 環境構築 最近購入した MacBook Pro を…

ファイルをアップロードする API の Swagger ドキュメントを書く

ASP.NET Web API では、Swashbuckle を使って Swagger ドキュメントを作成します。 具体的な手順は、過去の記事を参照してください。 gooner.hateblo.jpASP.NET Web API で実装したファイルをアップロードする API のドキュメントを Swagger で書く方法を調…

JAZUG 6周年総会で Azure Functions の話をしてきました

jazug.connpass.com 先週の土曜日、JAZUG 6周年総会に参加して、Azure Functions の話をしてきました。docs.comサーバーレスや Azure Functions の話題は、他のセッションでも挙がっていたので、話しやすい流れでした。PaaS でも十分便利ですが、マイクロサ…

ASP.NET Web API で返す JSON のプロパティを指定する

ASP.NET Web API のレスポンスで JSON を返す際に、クエリパラメータで指定したプロパティだけを返したいケースがありました。コントローラークラスのアクションメソッドの戻り値の型は変更せずに、動的にシリアライズするプロパティを変更する方法をまとめ…

ASP.NET Web API の Swagger ドキュメントでコメントを改行する

ASP.NET Web API では、Swashbuckle を使って Swagger ドキュメントを作成します。 具体的な手順は、過去の記事を参照してください。 gooner.hateblo.jp例えば、GUID 型の ID を指定して取得する API を実装すると、Swagger ドキュメントでは string 型とし…

ASP.NET Web API の Swagger ドキュメントからパラメータのモデル名を削除する

ASP.NET Web API では、Swashbuckle を使って Swagger ドキュメントを作成します。 具体的な手順は、過去の記事を参照してください。 gooner.hateblo.jpアクションメソッドに FromUri 属性を指定すると、URI のパラメータを自分で定義したクラスにバインドで…

書籍「Microservices on Azure」の感想

先月の JAZUG の勉強会で Azure Service Fabric の話を聞いて、読んでみたくなった書籍でした。既にマイクロサービスという用語がバズワードになっている感もあって、実際どうなんだろうなあと思っていましたが、de:code 2016 に参加してその重要性を肌で感…

//build/ 2016 振り返り勉強会で Azure Functions の話をしてきました

csugjp.doorkeeper.jp先週の土曜日、//build/ 2016 振り返り勉強会に参加して、Azure Functions の話をしてきました docs.com最後にデモした Azure Storage Account Replication の補足です。 blogs.msdn.microsoft.com上記のブログが元ネタですが、Blob Tri…

Azure Machine Learning で玉手箱の例題を解いてみる

Global Azure Boot Camp 2016 in Japan で LT した内容を記事にまとめておきます。 gooner.hateblo.jpAzure Machine Learning を使って、玉手箱の例題を解いてみました。 玉手箱は、就職活動でお馴染みの WEB テストです。その中でも、計数理解テストにある…

Global Azure Boot Camp 2016 in Japan に参加して LT してきました

jazug.doorkeeper.jp昨日、Global Azure Boot Camp 2016 in Japan に参加して LT してきました。docs.comAzure Machine Learning の入門的なネタで話しました。回帰分析、クラスタリング、レコメンドあたりのシナリオが分かりやすいです。身近なデータで試し…

Azure Functions で SendGrid の Event Webhook からの通知を受け取ってみる

Build 2016 報告会で LT した内容を記事にまとめておきます。 gooner.hateblo.jp Azure Functions を利用して、SendGrid の Event Webhook から POST されたデータを受け取り、Azure DocumentDB に登録してみます。従来の方法については、過去の記事で書いて…

Build 2016 報告会に参加して LT してきました

thinkit.connpass.com 昨日、Build 2016 報告会に参加して LT してきました。docs.com決選投票まで残りましたが、残念ながら de:code の参加チケットは当たりませんでした。でも、Azure Functions の面白さを多少でも伝えることができたと思いますし、懇親会…

Azure SDK 2.7 以前のサポート終了について

先日、Azure SDK 2.9 がリリースされてましたが、Azure SDK 2.2 ~ 2.7 について、2017年4月3日にサポートを終了することが告知されています。 Support and Retirement Information for the Azure SDK for .NET and APIsAzure SDK 2.9 をインストールした環…

Roslyn で ASP.NET Web API 向けの Code Analyzer を作ってみた

Visual Studio 2015 から追加された .NET Compiler Platform(Roslyn)を使って、ASP.NET Web API 向けの Code Analyzer を作ってみました。 環境構築 Roslyn で Code Analyzer を開発するには、Visual Studio のオプション機能と .NET Compiler Platform SD…

Entity Framework Core 1.0 で SQLite を使ってみる

UWP

UWP でローカルデータベースを使いたかったので、 Entity Framework Core 1.0(旧 Entity Framework 7)で SQLite をコードファーストで試してみました。 Entity Framework Core 1.0 をインストールする Visual Studio で作成した UWP のプロジェクトに、NuG…

プロキシ環境下で Web API を呼び出す

プロキシ サーバーを経由してクラウド上の Web API を呼び出す方法をまとめておきます。プロキシ環境下において、HttpWebRequest や HttpClient を使って通常通りに Web API を呼び出すと、HTTP ステータスコードの 407(Proxy Authentication Required)が…

SendGrid Bounces API でバウンスリストからメールアドレスを削除する

Azure にデプロイした Web アプリケーションから、SendGrid を使ってメール送信しているのですが、docomo などのキャリアメールが割とバウンスしやすいです。バウンスした原因である受信拒否を解除しても、バウンスリストからメールアドレスを削除しないと、…

2015 年振り返り

今年も、しばやんさんが作った 2015 年の人気記事ランキングを生成するサービスを使わせてもらい、1年を振り返ってみます。 blog.shibayan.jp 2015 年の人気記事ランキングです。 Azure SDK 2.5 の Azure Diagnostics に移行する Azure Storage Client Libr…

Azure Web Apps 上の WordPress から記事を移行した話

はてなブログを始めたきっかけは、Azure Web Apps 上の WordPress で構築していたブログに接続できなくなってしまったことでした。Twitter で情報を頂いたおかげで、2年ほど書いていた過去の記事を移行することができたので、その顛末をまとめておきます。 …

Swagger 2.0 に対応した ASP.NET Web API のドキュメントを作成する

この記事は、ASP.NET Advent Calendar 2015 の 8 日目 の記事です。 qiita.com 久しぶりに Swagger を使って ASP.NET Web API のドキュメントを作成してみたら、Swashbuckle の使い方が少し変わっていたので、変更点をまとめておきたいと思います。 Swagger …

Azure Resource Manager SDK を使って Web アプリをデプロイする

この記事は、Azure Advent Calendar 2015 の 4 日目 の記事です。qiita.comAzure Resource Manager(ARM)REST API を呼び出せる SDK のプレビュー版が公開されているので、試してみました。Azure Web Apps に ASP.NET MVC アプリケーションをデプロイします…

はてなブログに移行しました

Azure Web Apps 上に WordPress を構築してブログを書いていましたが、はてなブログに移行しました。移行といっても、ClearDB が壊れて接続できなくなり、過去の記事はすべて消えてしまったのでゼロからの再スタートですが・・・一応 Azure Web Apps のバッ…

Azure の Storage Client と Diagnostics の旧バージョンサポート終了について

以前の記事で、Azure の Storage Client と Diagnostics の旧バージョンサポート終了に伴う移行方法を書きましたが、サポート終了日の延期が2回ほど告知されているため、改めて整理してみました。 Azure Storage Client 最新の告知では、Ver.1.7 ~ 1.5.1 …

HttpClient を使って同期で通信する

HttpClient はとても使いやすいのですが、async / await の非同期処理のデッドロックにハマることがあります。 デッドロック 次のコードは、WPF におけるデッドロックの例です。 #MainWindow.xaml.cs private void Button_Click(object sender, RoutedEventA…

ASP.NET でクライアントの IP アドレスを取得する

ASP.NET MVC や Web API で、クライアントの IP アドレスを取得する方法をまとめておきます。プロキシサーバーなどを経由して Web サーバーに接続された場合、HTTP ヘッダーの X-Forwarded-For から取得する必要があります。 ASP.NET MVC サーバー環境変数か…

SlideShare アカウントが一時停止された話

先日、SlideShare アカウントが一時停止されてしまい、ログインできなくなってしまいました。 Oops! Your account was suspended after violating SlideShare's Terms of Service and/or Community Guidelines.Please read the Suspended Users FAQ to resol…

Azure Web Apps に Parameters.xml を使って WebDeploy する

ASP.NET MVC アプリケーションの WebDeploy パッケージを Azure Web Apps にデプロイする際に、Web.config に埋め込まれた Storage などの接続文字列を書き換えるために zip ファイルを展開する作業が非常に手間でした。 調べてみると、デプロイする際に Par…

Go (5) JAZUG / JAZUG5周年総会に参加して LT してきました

jazug.doorkeeper.jp 先週の土曜日、Go (5) JAZUG / JAZUG5周年総会に参加して LT してきました。 docs.com 今回は、ご当地 JAZUGのセッションがあり、普段東京のイベントにしか参加したことがなかったので、支部の方々とお話しできたのが良かったです。機会…

Azure Cloud Services のデプロイが完了しない原因を特定する方法

久しぶりに Azure Cloud Services のデプロイでハマってしまったので共有しておきます。 Web Role や Worker Role のプロジェクトをデプロイした際、パッケージに問題があり、ビジー → 再開中 が繰り返されてデプロイが完了しないときがあります。ポータル上…

ASP.NET MVC で JSON の一部として PartialView を返す方法

gooner.hateblo.jp 前回の記事では、Ajax 通信でページを部分更新する際の例外処理について記載しましたが、それに関連した内容です。 ASP.NET MVC 5 の Ajax 通信で PartialView を返す際に、JSON の一部として返したいケースがありました。例外処理と似た…

ASP.NET MVC の Ajax 通信で例外を処理する

ASP.NET MVC 5 の Ajax 通信でページを部分更新する際に、どのように例外を処理すべきかを悩んだので、まとめておきます。 現象 Ajax 通信で PartialView を返すアプリをシンプルなコードで実装します。 #HomeController.cs public class HomeController : C…

SuppressFormsAuthenticationRedirect プロパティが便利だった件

.NET Framework 4.5 から追加された SuppressFormsAuthenticationRedirect プロパティが便利でした。フォーム認証を設定している ASP.NET MVC アプリと同じプロジェクトに ASP.NET Web API を実装した場合、Web API の Controller のアクションメソッドで Ht…

アーセナルが FA カップを連覇!!

5月30日に ウェンブリー スタジアム で行われた FA カップ決勝戦、アーセナル vs アストン・ヴィラは 4-0 でアーセナルが勝利し、歴代最多 12 回目の優勝を果たしました。優勝の余韻が消えないうちに、グーナーの思いを綴ってみることにしました。 スタメン…

Azure SDK 2.6 の Azure Diagnostics に移行する

gooner.hateblo.jp 以前の記事でも書きましたが、Cloud Services で Azure Diagnostics を利用している場合、2015年12月9日までに Azure SDK 2.5 以降で利用できる Diagnostics 2.0 にアップグレードする必要があります。重複する部分もありますが、この記事…

Global Azure Boot Camp 2015 in Japan に参加して LT してきました

jazug.doorkeeper.jp 先日、Global Azure Boot Camp 2015 in Japan に参加して、LTしてきました。 docs.com Azure App Services のネタが中心だったので、最近仕事でも使い始めた Web Apps の話をしました。LT の最後に紹介した孤独のグルメのアプリは、Azur…

Semantic Logging Application Block で ETW ログを Azure Search に出力する

www.buildinsider.net 先月、Build Insider MEETUP with Grani に参加してきました。C# で Web アプリケーションを作るフレームワークの話のなかで、Semantic Logging Application Block(SLAB)が面白そうだったので、試してみました。 SLAB は、Event Trac…

SendGrid の Event Webhook から POST されたデータを Azure DocumentDB に登録する

SendGrid の Event Webhook を利用すると、メールを送信する際に発生したイベントを指定した URL に POST することができます。POST されるデータは、delivered や bounce などのイベントタイプによってスキーマが異なる JSON 配列なので、スキーマフリーの …

SendGrid の Web API v3 で統計情報を取得する

久しぶりに、SendGrid の Web API のドキュメントを読んだら、Web API v3 が公開されていました。Web API v3 は、Basic 認証を使うようになり、API のリクエストの送信先ホストも変更されています。 gooner.hateblo.jp 以前の投稿で、統計情報を取得する Gen…

Azure Search で地理空間検索アプリを作ってみる

Azure Search の地理空間検索を使用すると、ある地点から特定の距離内にある検索対象を見つけることができます(現在位置から 5 km 以内にあるすべてのレストランを検索するなど)。この機能を使って、孤独のグルメに登場したお店を検索できる ASP.NET MVC …

Azure SDK 2.5 の Azure Diagnostics に移行する

(追記)Azure SDK 2.6 の Azure Diagnostics に移行することをお薦めします。 gooner.hateblo.jp 昨年の 12月10日に Azure アカウント宛にメールが来ていて、Cloud Services(Web Role, Worker Role)で Azure Diagnostics を利用している場合、2015年12月9…

Windows Phone 8.1 アプリにプライバシーポリシーのリンクを実装する

新年早々、公開している Save to Instapaper が 10.5.1 のポリシーに違反しているとのメールが来ました。理由が分からず Twitter でつぶやいてみると、biacさんから情報を頂きました。 .@TonyTonyKun う~ん、へんですねぇ。 Save to Instapaperはユーザー情…

2014年振り返り

しばやんさんが作った 2014 年の人気記事ランキングを生成するサービスを使わせてもらい、今年を振り返ってみます。 2014 年の人気記事ランキングです。 ASP.NET Web API で multipart / form-data を使ってファイルをアップロードする Azure Virtual Machin…

Azure Media Indexer で動画の字幕検索アプリを作ってみる

この記事は、Azure Advent Calendar 2014 と ASP.NET Advent Calendar 2014 の両方の 13 日目 の記事です。 qiita.com qiita.com Azure Media Indexer と Azure Search を使って、動画に字幕を表示し、検索した字幕データの時間から再生できる ASP.NET MVC …

ASP.NET Web API で Jil JSON Serializer を使ってみる

この記事は、ASP.NET Advent Calendar 2014 の2日目の記事です。 qiita.com 「ASP.NET Web API の パフォーマンスを改善するための8つの方法」というブログから、JSON のシリアライズを高速化する方法として、MediaTypeFormatter を Jil JSON Serializer …

Helios を使うとワーカースレッド数が制限されていた話

まだ、Version 1.0.0 - alpha 1 ですが、Project Helios を使った Web アプリケーションでは、リクエストの実行に使用するワーカースレッドと完了ポートスレッドの数が制限されていました。 気が付いたきっかけは、Azure Web サイトにデプロイして動かした際…