nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

新しめのSQL ServerでサンプルDB Northwind・pubsを使う方法

古めのサンプル DB の Northwind と pubs ですが、特に Northwind は簡単なテストに使いたい時がままあります。つぎのリンクからダウンロードするとmdfファイルが含まれているのですが、互換性の問題でそのままアタッチすることができません。

https://www.microsoft.com/en-us/download/details.aspx?id=23654

ここでは、二つのサンプルDBを新しめの SQL Server で利用する方法を解説します。

続きを読む

リモートのIISへVisual StudioからWebアプリをWeb Deployする

本エントリーでは Visual Studio 上で ASP.NET などで実装した Web アプリケーションをリモートの IIS 上に公開する方法を記載します。

毎回忘れてしまうんですよね…

オンプレミス環境でTFSなどから自動ビルド・自動配置するときにも、この設定が適用できます。

続きを読む

SQL Server でサンプルDBを利用する

SQL Server では公式のサンプルデータベースがGithubで複数公開されています。

github.com

本エントリーではSQL Serverのインストールから、サンプルデータベースの「Adventure Works 2017」を利用する方法について解説します。

ちなみに Adventure Works は非常に素直な?データベース設計です。ただしSQL Server の最新の機能を使いこなしているとは言えません。そういう用途では World Wide Importers が参考になります。World Wide Importers も本エントリーの手順で利用できますので、興味のある方はお試しください。

続きを読む

【連載】ASP.NET Web API を使おう:第6回 Castle.Core DynamicProxy で AOP

本エントリーは連載「ASP.NET Web APIを使おう」の第3回となります。連載の目次はこちら。

www.nuits.jp

さて今回はWeb APIでもAspect Oriented Programing(AOP)をする為、Simple Injector 上でCastle.CoreのDynamicProxyを利用する方法を解説します。実際のところ、Web API に依存する内容ではないため、例えばWPFなどでもSimple Injectorを利用するなら、この方法はそのまま使えます。

という訳で早速始めましょう。

続きを読む

【連載】ASP.NET Web API を使おう:第4回 Simple Injector(DIコンテナ)を適用する

本エントリーは連載「ASP.NET Web APIを使おう」の第3回となります。連載の目次はこちら。

www.nuits.jp

これまでWeb APIを作成し、swagger-codegenを使って生成したクライアントから、作成したAPIを呼び出す方法について説明してきました。

今回はWeb APIつまりサーバーサイドにDependency Injection(DI)コンテナを適用する方法を解説します。DIコンテナーには Simple Injector を今回は選択しました。

DIコンテナは星の数ほどありますが、なぜ Simple Injector を選択したかは、以下の記事をご覧ください。

www.nuits.jp

こちらに記載している内容に加え、次のような観点から Simple Injector を取り上げました。

  • 全体的にモダンなアーキテクチャが採用されているように思えること
  • コミュニティが十分に成熟しているように見えること
  • 結果、ドキュメントなども十分に揃っていること(英語ですが) 

なお本エントリーでは、DI そのものの解説や、Simple Injector の詳細な解説は省きます。

続きを読む

【連載】ASP.NET Web API を使おう:第3回 swagger-codegenでクライアントコードを生成する

本エントリーは連載「ASP.NET Web APIを使おう」の第3回となります。連載の目次はこちら。

www.nuits.jp

さて第1回第2回でWeb APIを作成し、SwaggerのAPIドキュメントを公開する方法を解説してきました。今回は、これまで作成したWeb APIに対してswagger-codegenを利用して、C#用のクライアントコードを生成し、実行する方法を解説します。

ところでVisual Studioには標準でSwaggerのAPIドキュメントから、RESTクライアントのコードを生成する機能が存在します。しかし今回は、次の理由から利用せずswagger-codegenを利用する事にしました。

  1. メソッドが拡張メソッドとして生成されるためテストが困難
  2. メソッドに別名を付与する場合はWeb API全体でユニークな名称にしなくてはならない

それでは実際の作り方を説明していきます。

続きを読む