redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

SQL Server データベース プロジェクトを使用してDBのリファクタリングを行う

はじめに 明けましておめでとうございます。本年もよろしくお願いいたします。去年はあまり更新できなかったので、今年はもっと増やしていきたいですね。 さて、Visual Studio で作成できるプロジェクトの中には、「SQL Server データベース プロジェクト」…

(小ネタ)Entity Framework でdbo以外のスキーマを使用する

Entity FrameworkのCode FirstでDBを作成すると、テーブルはdboスキーマで作成されます。今回スキーマを分ける必要が出てきたので調べました。非常に簡単に設定できたので小ネタです。 Entity Frameworkでdbo以外のスキーマを使用するには、モデルクラスのク…

データベースからドメインモデルを作るのも有りな気がしてきた

Entity Framework 6が発表された当時は、Code Firstが盛んに宣伝されていたと思う。Code First以前はデザイナーで操作できると言っても自動生成されるxmlファイルの差分を見るのは辛そうだった。 そこでEntity Frameworkを使い始めた頃はCode Firstを使用し…

ユニットテストでのDBトランザクションのロールバックを共通化する

以前こんな記事を書きましたが、 redwarrior.hateblo.jp 毎回テストメソッドの中で using 文やデータ投入処理を書くのが面倒になってきたので、テストフレームワーク(MSTest)の機能を使って TestInitialize 属性でDB接続、データ投入を行い、TestCleanup …

Entity Framework で楽観的同時実行制御

EF6

基本的な内容は以下の書籍に書かれているので、今回はもう少し踏み込んだ話です。 www.shuwasystem.co.jp 上記書籍の5-4-4(236ページ)では、バージョン管理用のプロパティ名と付与する属性名の両方をTimestampとしていますが、どちらを指しているのかわか…

(小ネタ)Chaining AssertionのParameterized TestでどのTest Caseで失敗したかを記録する

Chaining Assertionでは、Parameterized Testがサポートされているが、テストが失敗した時のメッセージにはどのケースで失敗したかの情報は含まれていないため、多くのテストケースを試す場合は以下のように工夫すると良い感じです。 //公式サンプルコードを…

C#でExcelファイルを扱うライブラリごとのファイルクローズ方法(EPPlus、NPOI)

C#(ASP.NET MVC)でExcelファイルを扱う方法を調べていて、EPPlusが良さそうだったので簡単なプログラムを作成して動作を確認した。しばらく経って実際に使用する時になって、ファイル形式が .xls であることが判明。 EPPlusでは .xls のファイルは読み込め…

(小ネタ)bootstrap-datepicker (Bootstrap 3 に対応した Date Picker) で選択した日付がハイライトされない

使用しているライブラリ(NuGetから取得可能) github.com 参照するcssが間違っていた。 bootstrap.datepicker.cssではなく、bootstrap.datepicker3.cssを参照する。

TFS 2015のXAMLビルドでNuGetの復元を行わない設定をしたらビルドが超速く終わるようになった

メモ:TFS 2017は、NuGetサーバーをローカルで建てることが出来るらしいので、そちらを使った方がディスク容量の節約になると思いますし、そちらを使いましょう。 TFS 2015から新しいビルド方式が用意されて、TFS 2017もリリースされ、今後あまり使われなく…

IIS上で動くASP.NET (MVC)アプリケーションの権限について

ASP.NET MVC アプリケーションを別サーバーにデプロイして動作確認しようとしたが、DBやフォルダへのアクセス権限でエラーが発生しました。以前に設定したのが少し前で、やり方を忘れていたのと、IIS上でASP.NET MVC アプリケーションの権限について理解があ…

(小ネタ).NET Frameworkの本体と、targeting packは別物

タイトルからして、何当たり前のことを言っているんだ感が全開ですが、今後同じ間違いをしないように書いておきます。 開発環境とネットワークでつながっていない環境に、ASP.NET MVC 5 アプリケーションをデプロイする必要がありました。 デプロイの「発行…

デプロイできたけど実行できない場合の対処方法(とTFS上のデプロイ)

ASP.NET MVC5でWebアプリケーションを作成し、IISへの公開も成功して、さて確認するぞ!という事でアクセスしたらエラーが発生して表示できなかったので、原因を調べました。 動作環境 ASP.NET MVC 5.2.3 Windows 2008 IIS 7 設定内容 IIS 7では以下の設定が…

(小ネタ)Table-Per-Hierarchy とは

仕事の都合やら、質の高い内容を書こうとしたせいで、4か月近く更新が出来ていませんでした。今日からリフレッシュして、改めて気負わずに記事を書いていきたいと思います。 Entity Framework 6とEntity Framework Coreの違いを紹介した記事を読んでいて、…

バリデーションのメッセージを変更する

ASP.NET MVCの入力値の検証は便利ですよね。デフォルトでもメッセージの意図は伝わります。 でも、カラムに必ず○○フィールドは~とつくため、これをなくしたい場合もよくあると思うので変更方法を調べました。 ちなみに、良くあるバリデーションのメッセージ…

Entity Framework で既存DBを使用した時にログ出力されるエラーの解消方法

EF6

新年一つ目の記事ということで、あけましておめでとうございます。今年もよろしくお願いいたします。 Entity Framework を使用して開発を進めていく場合に、開発中は Code First を使用してDBを再作成するけれど、 本番環境やステージング環境には既にDBが用…

ASP.NET MVC でユーザの氏名(!=アカウント名)を表示する(Windows認証を使用)

ASP.NET MVC で Windows認証を使用して、ログインアカウント名(ドメイン名\アカウント名)からユーザーの氏名(フル・ネーム:Full Name)を取得して画面に表示する方法を調べたら、以下のサイトに書いてあった。 stackoverflow.com 上記サイトが見れなくな…

Web Deployの整理

ASP.NET MVC 5 の Web Deploy について自分用にまとめたメモ。 2018/12/11 追記 作業手順の順番を変更しました。 旧)Web Deploy 3.6のインストール→管理サービスのインストール 新)管理サービスのインストール→Web Deploy 3.6のインストール 対象環境 Wind…

git-flow や GitHub Flow を運用しやすいようにアレンジして使っていました

Git

ちょっと前の開発プロジェクトで使っていたGitを使用したワークフローについて書いてみます。 ざっくり言うと、リポジトリを一つしか使用しない git-flow って感じです。もしくはルールを追加した GitHub Flow でしょうか。

(小ネタ)Microsoft の Markdown ガイダンス

正しくは、TFS/VSTS上でMarkdown記法を使用するときのガイダンスだけど。 Markdownを書くときに参考になりそう。いつの間にか用意されていた。 www.visualstudio.com URLがja-jpなのに、全編英語。まあ、内容は予想がつくのでよしとする。 ちなみに、はてな…

ELMAH と Glimpse を組み合わせて使用する

ASP.NET でデバッグ作業目的に使用するツールとして、ELMAH と Glimpse がある。合わせて使ってみた。

AutoMapper は使わない!

ASP.NET MVC で開発をしている時に気になってくるのが、Entity Framework で作成したエンティティと画面で使用するモデル(ViewModel)の詰め替えをどうするかということ。 少しググってみると、AutoMapper を使用すると良いと出てくる。プロパティを一つず…

ASP.NET MVC でテキストボックスとラベルに別の書式を使用する

ASP.NET MVCでは、ビューヘルパーを使用することで、テキストボックス等のフォーム部品をシンプルに記述することが出来ますよね。 さらに、***Forメソッドを使用すると、モデルクラスのプロパティを扱うことが出来て、EditorForメソッドやDisplayForメソッド…

ASP.NET MVC で備考入力欄を作成する方法のまとめ

入力フォームを作る時に、大体作ることになる備考入力欄について、ASP.NET MVC での実装方法のポイントをまとめてみました。

(小ネタ)C#でデフォルト引数に今日の日付や現在時刻を指定する

ちょっと前ですが、以下の記事を読みました。あわせて読みたいの記事も読みましたが、どれも丁寧にまとめられていて良い内容でした。 techlife.cookpad.com 日付を渡すには、Rubyではデフォルト引数で行うのが簡単と書かれていたので、これをC#でやってみよ…

TFS 2015でプロジェクトを.NET Framework 4.6にダウングレードしてビルドする

前振り 前回の記事で.NET Framework 4.6.1を使用してビルドが出来るようになったので、次にテスト環境を用意しようと思いました。 redwarrior.hateblo.jp いきなりTFS上からテスト環境へデプロイをするのは大変そうなので、まずはローカルマシンからデプロイ…

TFS 2015で.NET Framework 4.6.1のプロジェクトをビルドする

新プロジェクトが開発に入るにあたって、どうせならばTFSでビルド出来るようにして、ゆくゆくはプルリクエストがマージされたらテスト環境にデプロイされるようにしたい。 またVisual Studio 2015で開発するのだから、.NET Frameworkも4.6.1を使い、作成する…

VSUG DAY FINALに参加してきた。

etc

イベント参加レポートが毎回遅くなってしまった。またも2カ月くらい前になってしまいましたが、参加した感想を書いておきます。 FINALということで、過去をふりかえる内容がありましたが、自分は初めてなので、そんなこともあったんだーというくらいの気持ち…

(小ネタ)SQL Server のテーブルをまとめて選択して削除したい

データベースの削除やSQLを実行するのではなく、GUIでテーブルを選択して削除したい場合のメモ。 SQL Server Management Studioや、Visual Studio上のサーバー エクスプローラーではなく、SQL Server オブジェクト エクスプローラーを使う。 外部キー制約な…

Unity で AOP

ASP.NET MVC 5.2.3 で Unity 4.0.1 を使用して、AOPでログ出力やってみた

(小ネタ)Firefoxのはてなブックマークの拡張機能がなおった

しばらく前から、Firefoxのはてなブックマークの拡張機能で、 サイドバー表示した場合に、タグによる表示の絞り込みが出来なくなっていたのだけど、 今確認してみたら、なおっていた(絞り込まれて表示されるようになっていた)。 地味に不便だったので、な…