redwarrior’s diary

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

(小ネタ)2重ループをLINQを使って書く

コレクションが二つあって、片方のコレクションの値で、もう片方のコレクションを検索して処理を行う時に、2重ループを使うことがありますが、これはLINQを使用して書くことも出来ます。 C#で解説する「データ処理の直交化と汎用化」 − @IT ただしサイト内…

(小ネタ)改行文字を削除する

ささいな事ですが、うっかり引っかかったのでまとめておきます。 C#で文字列に含まれている改行文字を取り除く方法は、改行文字を含む位置によって違います。 末尾にある場合 TrimEndメソッドに改行文字を渡します。環境に依存しないようにCRとLFを両方とも…

awaitは、中断と再開

前回からだいぶ時間が空いてしまいました。本年もよろしくお願いいたします。 C# 5.0以降で可能になったasyncとawaitとTaskについての自分用のメモ。ASP.NET MVCやWeb APIでは必要になってくる知識。 ググった結果を斜め読みしてまとめたメモなので、awaitの…

テストプロジェクトからメインプロジェクトのDBを参照する

この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 - Qiita の15日目です。 アドベントカレンダーからいらした方、初めまして。今年の始めのあたりからブログを書き始めた redwarriror と申します。 普段はC#等のMicrosoft系の技術を中心に書い…

Visual Studio 2015は、Professionalでもユニットテスト機能(MSTest)が充実している

Visual Studio 2015になって、Professionalエディションでもユニットテストが便利になったと実感したので忘れずに書いておく。 便利だと思ったのは以下の2つ。 テスト対象クラスのメソッドから、テストクラス/メソッドを作成する テスト対象クラスのメソッ…

(小ネタ)EqualsメソッドもGetHashCodeメソッドもReSharperで!

ReSharperカテゴリの2つ前と操作がほとんど一緒ですが、機能紹介ということで。 csファイル(クラス)を開いて、メニューのRESHARPER→Edit→Generate Codeと選択し(もしくはクラス内にカーソルを合わせて「Alt」を押しながら「Insert」を押す)、 出てきたメ…

(小ネタ)C#のユニットテストで public でないメソッドをテストする方法(MSTest)

Javaでは、publicでないメソッド(かつ、privateでもない)をテストする場合は、packageを一緒にすれば良かったのですが、C#ではどうやるんだろうと思って調べました。 参照先の通りにやったら出来たので、特に追記することはありません。 ソースコード単位…

(小ネタ)C#でメソッドの引数に値渡しが行われるのは、値型のみ

自作クラスなどの参照型の引数に ref とか out とかつけるのは意味がなく、m9(^Д^)プギャーされるのでやめた方が良いですね。 自作の構造体や列挙型は値型なので、参照渡しが必要ならばつけましょう。

LINQを使用したメソッドの共通化の試行錯誤

LINQを使用して、DBから取得したデータでDTOを構築するメソッドを作成していると、インターフェイスは違うのに処理の流れがほぼ同じになる事ってありませんか? どういうことかと言うと、片方の処理では、単純なLINQを使用しているのでIQueryable<T>を返します</t>…

PowerShellでGit操作が楽になるposh-gitをインストールしてみた。

以前の投稿で、PowerShellでGitコマンドを実行できるようになりました。 redwarrior.hateblo.jp その時に行ったposh-gitのインストールと設定についてまとめておこうと思います。 PowerShellの設定 PowerShellを使用して、プロキシ経由でファイルをダウンロ…

(小ネタ)GitコマンドをPowerShellスクリプトに組み込む最も簡単な方法

前回の記事で、ClickOnceアプリケーションをコマンドラインから発行する方法を書きましたが、 どうせならばバージョン管理システムからソースコードをダウンロードして、ビルドが出来るようにしたいと思い、GitコマンドをPowershellスクリプトに組み込む方法…

ClickOnceアプリケーションをコマンドライン(MSBuild)から発行する方法

ClickOnceアプリケーションをコマンドラインもしくはPowerShellから、MSBuildを使用して発行する方法がわかったので、忘備録としてまとめておく。 MSDNと@ITで必要な情報は足ります。 MSDN ClickOnce のセキュリティと配置 MSBuild ClickOnce アプリケーショ…

ClickOnceアプリケーションをMSBuildで発行しようとしたらエラー発生(したけど解決した)

ClickOnceアプリケーションをMSBuildを使用して発行しようとしたら、エラーに遭遇したのでメモを残しておきます。 エラーメッセージは、以下の通りです(見辛いので改行しています) C:\windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targ…

(小ネタ)Visual Studio 2015 のバージョンがv14なわけ。(Visual Studio 2013 はv12です)

ものすごい小ネタですが、ASP.NETのフォーラムで議論されていました。 forums.asp.net アメリカでは13が不吉な番号だかららしいです。CTPの時点で話題になっていたようですね。 以下のページで、より詳しく検証されています。 blog.livedoor.jp Officeで既に…

Visual Studioを使用したテスト駆動開発ブートキャンプ(TDDBC)に参加しました

2015/9/2にマイクロソフトセミナーを品川のマイクロソフト社で受けてきました。タイトルの通り、和田卓人(id:t-wada)さんは日本のTDD(テスト駆動開発)の第一人者であり、とても勉強になりました。 著名人の話を無料で聞けるとは、マイクロソフトセミナー…

Spring in Summer に参加しました

日本Springユーザ会が主催する「Spring in Summer」というカンファレンスに参加しました。Springは、JavaのWeb開発などでよく使われるフレームワークです。 会場は東京駅の近くのグラントウキョウサウスタワーで、リクルートテクノロジーズのセミナールーム…

(小ネタ)WindowsフォームでShowDialogメソッド、Showメソッド、Closeメソッド、Disposeメソッドの動作を理解する。

Windowsフォームアプリケーションのソースコードを見ていて、ShowDialogメソッド、Showメソッド、Closeメソッド、Disposeメソッドの動作の理解があいまいだったので調べました。 ShowDialogメソッド フォームクラスのShowDialogメソッドを実行すると、画面が…

(小ネタ).NETで設定ファイル(***.config)の値に半角スペースを使用する方法

.NETで設定ファイル(Web.configやApp.config)の値に半角スペースを使用したい場合がたまにあります。 代表的なのはDBの接続文字列で、AttachDbFilenameにmdfファイルのパスを指定する場合です。 コンソールアプリケーションで、SQL Server 2012 Express Lo…

(小ネタ)INotifyPropertyChangedの実装も、ReSharperはサポートしている

Windowsフォームでデータバインディングをする場合に、INotifyPropertyChangedをオブジェクトに実装する必要があるが、ReSharperを使用するとメニューから選択するだけで作成してくれる。 (どのフィールドを通知対象とするかは、フィールドごとに設定する必…

(小ネタ)ToStringメソッドもReSharperで作成してくれる!

クラスを開いて、メニューのRESHARPER→Edit→Generate Codeと選択し、出てきたメニューから「Formatting members」を選択するとプロパティを選択する画面が出てくるので、ToStringメソッドに含んでほしいプロパティを選択して、作成すると、ToStringメソッド…

(小ネタ)インターフェースのシグネチャを変更したら、実装クラスのシグネチャも変更されるReSharperならね。

タイトル以上のものは無いのですが。はは~、<m(__)m> とお辞儀をしたくなる便利さです。 やり方: interfaceソースを開いて、メソッドにカーソルを置いた状態で、メニューのRESHARPER→Refactor→Change Signatureを選択すると、メソッド名、戻り値、パラメータを編集</m(__)m>…

(小ネタ)BindingSourceを手動で更新すると、行の設定が解除される場合がある

System.Windows.Forms.BindingSourceのDataSourceプロパティに通常の(BindingListではない)Listを代入した場合、 Listの要素を更新を反映させるためには、BindingSourceのResetItemメソッドに対象のインデックスを渡して呼ぶか、ResetBindingsメソッドを呼ぶ…

foreachでループのindexを取得して、さらに絞り込む

以下のサイトで、foreachでループのindexを取得する方法がのっています。 foreachでループのindexを知る方法 - かずきのBlog@hatenaokazuki.hatenablog.com これだけでも十分便利なのですが、indexを取得しながらさらに絞り込むことが出来ます。以下のサイト…

(小ネタ)ASP.NET Web APIのコントローラーがIHttpActionResultを返す理由

ASP.NET Web APIのスキャフォールディングでコントローラーを作成する時、「Entity Framework を使用したアクションがある Web API 2 コントローラー」を選択すると、戻り値に、IHttpActionResultが指定される。 これはIHttpActionResultを戻り値にすれば、…

(小ネタ)ASP.NET Web API で 省略可能なパラメータを使用する

ASP.NET Web APIのメソッドの引数にデフォルト値を指定すると、パラメータをオプションとして使用する(あってもなくても動作し、省略されたパラメータにはデフォルト値を設定する)ことが出来る。 以下を参考にさせていただきました。 ASP.NET WEB API Quer…

(小ネタ)HttpClientのusingとDisposeについて

System.Net.Http.HttpClientは、IDisposableを実装しているので、usingブロックで使用すると自動的にリソースの解放が行われる。 ブロック内でHttpResponseMessageオブジェクトのDisposeメソッドの実行は不要。 ※タイトルに(小ネタ)とつけて、作業中に気づい…

環境ごとに設定を変更する(DBへの接続文字列)

Visual Studioでは、DBへの接続文字列を環境ごとに設定を変更する方法が複数あって、混乱しそうだったのでまとめてみました。 発行プロファイルで変更する 構成で変更する(Web.config変換) 発行プロファイルのWeb.configで変更する。 発行プロファイルで変…

チームと人の本

チームと人について書かれた本のうち、読了済みの本をあげてみる。せっかくなので一言感想を書いてみた。 スーパーエンジニアへの道―技術リーダーシップの人間学 リーダーシップというか、チームで問題解決をするために必要なふるまいであったり、人の成長に…

WCF Data Servicesのログ出力メモ

WCF Data Servicesというか、WCFのログ出力に関するメモ。 System.ServiceModelを設定すると、WCFの各段階での処理を記録する ActivityTracingをswitchValueに設定するのは、System.ServiceModel System.ServiceModel.MessageLoggingを設定すると、クライア…

「第25回 #TFSUG 鉄人から学ぶ TFS セミナー/ハンズオン」に行ってきました。

etc

チームに導入されたTeam Foundation Server (TFS)について、まだまだ使いこなせていないと感じたので、外部の知識を得ようと参加しました。 感想の前に、TFSUGについて説明しようと思います。セミナーのイベントページによると、「Team Foundation Server ユ…