redwarrior’s diary

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

TFSの新しいビルドを試す

前回からあっという間に2か月以上たってしまった。細く長くがんばろう。 2015以降のTFSではXAMLビルドは推奨されない*1方式になるので、新しいビルドを試した。 環境:Team Foundation Server 2015 Update 4、Windows Server 2012、SQL Server 2012 目次 プ…

Windows Server 2016 で WCF Data Services

Windows Server 2008 で動いていた WCF Data ServicesアプリケーションをWindows Server 2016に載せ替えたので、メモを残しておく。 WCF Data Servicesアプリケーションを発行し、アクセスすると404エラーが発生する WCF Data Servicesの拡張子「.svc」がIIS…

ASP.NET MVC でチェックボックスのカスタマイズをCSSのみで行う。

ググると以下のようなサイトがヒットするが、そのままでは、ASP.NET MVC で動作しない。 cultureacademia.jp なぜかと言うと、Form要素を作成するときは、HTMLタグを直接入力することはあまりせず、ビューヘルパー(@Html.***For)を使用することが多く、チ…

(小ネタ)IISのApplicationPoolIdentityでデータベースへのアクセス許可を設定する

以前にメモしていたのに、忘れていて余分な時間を費やしてしまったので、忘れないようにブログに残しておく。 以下のサイトを参考にWebアプリケーションを作成し、リモートのIIS上にデプロイする。 www.nuits.jp Webサイトを追加した場合に設定を変更しなけ…

(小ネタ)SQL Server Management Studio (SSMS) のSQLフォーマットには、ApexSQL Refactor が良さげ

SQL Server Management StudioのSQLの書式をフォーマットするのに、SQL Server 2012の時は、「Poor Man's T-Sql Formatter SSMS & Visual Studio AddIn」を使っていました。 SQL Server 2014にも対応していたのですが、SQL Server 2016にはその時点では対応…

NLogを使用して、開発環境と本番環境でログの出力先を切り替える設定について

問題 Webアプリケーション開発でNLogを使ってログ出力をしていて、本番環境に乗せることになった時に、開発環境と同じパスにログを出力できない事ってありますよね。 例えば、開発時はソリューション内のフォルダに出力していたけど、本番ではWebから参照で…

(小ネタ)ASP.NET MVC でテキストボックスに小数を入力する時に日本語入力をオフにする方法

今回も以下に関連した話題。 redwarrior.hateblo.jp 二つ前の記事でも書きましたが、上記ではinputタグのtype属性が「text」になってしまうため、フォーカスが当たった時に日本語入力モードになってしまいます。 これだと数字を入力した後にいちいち確定しな…

Windows Containersで複数アプリケーションを運用する事例って見ないな

サーバー更改により、今後はWindows Server 2016を使うことになるので、Windows Containersで試してみたいなと思っているのだけど、複数アプリケーションを運用する事例が見つからない。 Docker(というかLinuxコンテナ)では、nginx+nginx-proxyを使用する…

ASP.NET MVC で inputタグの type属性を指定する

redwarrior.hateblo.jp 上記を行うと表示は変えられるのですが、実はinputタグの type属性が全て「text」になってしまいます。 これだと日付項目に bootstrap-datepicker を使用する時にinputタグをtype="datetime"で絞り込めないため、その解決方法を調べま…

(小ネタ)Entity Framework でタイムアウトの設定方法まとめ

ExecuteSqlCommandでストアドプロシージャを実行した時にタイムアウトが発生してエラーになってしまったので、タイムアウトの時間を変更する方法を調べてみました。 また、デバック実行時にDB接続でタイムアウトがぼちぼち発生して面倒なので、コネクション…

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 について自分用にまとめたメモ。 対象環境 Windows Server 2008 IIS 7 Web Deployment Agent Service と Web Management Service どちらを使う?(サーバー側) Web Deployment Agent Service=Remote Agent Service 日本語では…

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 がある。合わせて使ってみた。