2013-01-01から1年間の記事一覧

ASP.NET - AppDomain がシャットダウンされた理由を取得してみる

アプリケーションがリスタートされるタイミングを調べていたときに ApplicationShutdownReason という enum 値を見つけました。この値から AppDomain がシャットダウンされた理由、たとえば bin フォルダ内のファイルが変更されたからとか、web.config が変…

TypeScript で「"tsc.exe" はコード 1 を伴って終了しました。」

TypeScript でエラーがなさそうなのに次のコンパイルエラーが出てさんざん悩んだのですが、どうもコードに日本語があるとだめっぽいです。そんなもの? error MSB6006: "tsc.exe" はコード 1 を伴って終了しました。 Visual Studio 2013 TypeScript 0.9.5 で…

T-SQL - sum 関数と over 句を使って累計を求める

sum 関数と over 句を使って累計を求めてみたいと思います。 SUM (Transact-SQL) OVER 句 (Transact-SQL) とりあえずデータ。どこかにある焼き鳥屋さんの売り上げのようなテーブルだと思ってもらえると。 select * into #Sale from (values ('2013/12/09', N…

ダウンロードフォルダはデスクトップ派です

ということで、各ブラウザのダウンロードフォルダ(ダウンロードファイルの保存先)を変更する手順へのリンクです。 デフォルトだと「ダウンロード」フォルダになっている(Windows 8.1から?昔から?)のですが、デスクトップや他のフォルダに変更したいっ…

T-SQL - like 演算子でワイルドカード文字(「%」や「_」)を検索

方法は2つあるんですね。探せば出てくるとは思いますが、メモしておきます。 ワイルドカード文字を角括弧([と])で囲む escape 句を使う LIKE (Transact-SQL) いつも通りとりあえずデータを用意して。 select * into #Message from (values(N'30cm'), (N'50…

Visual Studio 2013 のショートカットキー「Ctrl + コンマ(,)」がすごく便利

Visual Studio 2013 の Ctrl + コンマ(,)はすごく便利ですね。捗ります。 Sublime Text を使っている方には Goto Anything(Ctrl + P)のような機能と言えば伝わるでしょうか。前に Channel 9 の Build 2013 の動画でこの機能を見かけてからずっと気になって…

Bootstrap の Modal と jQuery の Deferred を使って confirm もどき

Bootstrap の Modal を confirm の代わりとして使いたい時がありますよね。そんなときに Modal と jQuery.Deferred を組み合わせるといいかなと思ったので試してみました。 JavaScript · Bootstrap Deferred Object | jQuery API Documentation まず html。…

jQuery - on メソッドで selector を指定した場合のハンドラ内の this

on メソッドで selector を指定した場合、ハンドラ内の this は selector の要素になるんですね。 ってことを確認してみましたってだけです・・・。 ちなみに selector を指定した場合は delegated events と言うようで、特徴としては、 後から document に…

t-sql - object_id 関数で一時テーブルを指定する

テーブルの存在チェックなどで使う object_id 関数で一時テーブルを指定する場合は、 object_id('tempdb..#Test') のように書くんですね。 また一つ勉強になりました。 OBJECT_ID (Transact-SQL)より。 一時テーブル名を指定する場合は、現在のデータベース…

ASP.NET MVC - フォーム認証のタイムアウトで、ログインページにリダイレクトしないようにする(.NET 4.5~)

先日 MSDN で偶然このプロパティを見つけました。 HttpResponse.SuppressFormsAuthenticationRedirect プロパティ (System.Web) 思わず、おおーとなりました。 なぜかと言うと、MSDN の解説にも書いてありますが、ASP.NET では、認証されていない状態(認証…

TypeScript - インターフェイスのマージ

TypeScript では、同じ名前のインターフェイスを複数宣言できて、それぞれが1つのインターフェイスにマージされるようです。 どういうことか試してみましょう。 interface User { id: number; name: string; } interface User { valid: boolean; } function …

ASP.NET MVC - TextBoxFor でフォーマット指定

すっごい今頃気づいたんですが、ASP.NET MVC 4 から TextBoxFor メソッドでフォーマット(書式)を指定できるんですね。知らなかった・・・。 TextBoxFor メソッドのオーバーロードは6つあって、そのうちの下3つは引数に format があります。 InputExtension…

Json.NET - JSON から取得した値でインスタンスのプロパティを上書き

Json.NET で、「デフォルト値が設定してあるインスタンスのプロパティを、JSON から取得した値で上書きする」方法についてです。 結論を先に書くと JsonConvert.PopulateObject メソッドを使います。 したいことも含めて、コードを見てもらった方が早いと思…

NLog - config ファイルで variable を使って変数を定義する

ちょっとしたツールのログ出力に NLog を使ってみたときのメモです。 NLog の config ファイルでは、variable 要素を使うと変数を定義できます。 <variable name="sample" value="値" /> 定義した変数は、${変数名}(この場合は${sample})と書くことで参照できます。 例えば、ファイルとコンソー</variable>…

ASP.NET MVC - 引数なしの Html.BeginForm メソッドの動き

HtmlHelper の BeginForm 拡張メソッドはオーバーロードがたくさんありますね。 FormExtensions.BeginForm メソッド (System.Web.Mvc.Html) そのなかで、引数を渡さないメソッド(引数が HtmlHelper だけのって言った方がいいんでしょうか)は、他のメソッド…

T-SQL - select into 文とテーブル値コンストラクタ

select into文を使うと、create table文を使わずに新しいテーブルを作成できることを知りました。 INTO 句 (Transact-SQL) SELECT INTO を使用した行の挿入 そして、テーブル値コンストラクタ(values (...)のあれ)は、from句にも書けることを知りました。 …

ASP.NET MVC - SessionStateAttribute と SessionStateBehavior その2

前回に続き SessionStateAttribute についてです。 今回は、SessionStateAttribute に SessionStateBehavior のそれぞれを指定した場合にセッションの動きがどうなるか、実際に試してみました(まぁ実際に知りたかったのは ReadOnly と Disabled の2つですが…

ASP.NET MVC - SessionStateAttribute と SessionStateBehavior

先日、SessionStateAttribute クラスを知りました。コントローラに SessionStateAttribute を指定すると、コントローラ内でのセッションの振る舞いを制御できるようです。たとえば、セッションを読み取り専用にするとか。 SessionStateAttribute クラス (Sys…

ASP.NET - アプリケーションデータのキャッシュのサンプル

ASP.NETでアプリケーションデータのキャッシュについて少し試してみました。 アプリケーション データのキャッシュ 例として、App_Dataフォルダ内にあるSample.txtの内容をキャッシュするコードを書いてみました。たいしたサンプルでありませんが、せっかく…

行が存在すればupdate、存在しなければinsertするmerge文

merge文はたまーに使う時があって、いざ書こうとすると忘れてたりします。 なので簡単な例をメモしておきます。 merge文の例 こんなテーブルがあったとして。 create table #Fruit( Name nvarchar(3), Price int, constraint PK_Fruit primary key(Name)); @…

T-SQLのトリガーで時間帯(期間)の重なりを防ぐ

タイトルが微妙で後から自分が見ても、ん?なんだっけ?ってなりそうな気も・・・。 それはさておき、会議室とかを予約するようなシステムで「誰かがある会議室のある時間帯を予約したら、他の人はその時間帯を予約できない」といった制御をSQLだけでどうす…

Json.NETでプロパティ名を変更してシリアライズする

Json.NETでプロパティ名を変更してシリアライズするには、JsonPropertyAttributeを使います。 JsonPropertyAttributeのコンストラクタにプロパティ名を渡します。 class User { [JsonProperty("first_name")] public string FirstName { get; set; } [JsonPr…

case式を使って条件分岐するupdate文を試す

CASE式のススメ(後編)を読んで、update文でcase式を使って条件分岐するテクニックを知ってかなり感動しました。行ごとに異なる更新を1つのupdate文でできるのすごいですね。 今回はこの記事に書いてある、主キーを入れ替えるテクニックを少し応用してみた…

dapper dot netで列挙型にマッピングする

dapper-dot-netは列挙型へのマッピングにも対応しています。 ドキュメントには書いていないようなんですが、テストコードにはありました。 早速試してみます。 まずは列挙型のプロパティにマッピング。2つとも"Monday"と表示されます。文字列もenumにマッピ…

dapper dot netで1レコードを"Id"列以外で分割してマッピングする(splitOnパラメータ)

前回はdapper-dot-netを使って1レコードを複数オブジェクトにマッピングしてみました。 dapperはIDカラム名が"Id"と仮定して1レコードを複数のオブジェクトにマッピングしているようです。("Id"列をキーに分割してると言った方が分かりやすいかも。) impor…

dapper dot netで1レコードを複数のオブジェクトにマッピングする

dapper-dot-netを使って、2つのテーブルをjoinして取得した1レコードを2つのオブジェクトにマッピングしてみます。 まずはこんなモデルを用意します。 class Category { public int Id { get; set; } public string Name { get; set; } } class Book { publi…