読者です 読者をやめる 読者になる 読者になる

TypeScript - lib.d.tsの場所

lib.d.tsの場所のメモです。 ローカルだと(Visual Studioがインストールされていれば)ここ。 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TypeScript\lib.d.ts またはcodeplexにも。 http://typescript.…

IIS - MWAでWebアプリのIP制限を操作する

MWA(Microsoft.Web.Administration)を使って、IIS上にあるWebアプリのIP制限を操作するC#のコードを書いてみましたので残しておきます。 MWAを使うにはプロジェクトの参照にMicrosoft.Web.Administration.dllを追加する必要があります。私のローカル環境(…

t-sql - backup database と restore database で変数を使う

backup database や restore database で DB名のところに変数を指定できます。 DB名やテーブル名などでは変数が使えないと思っていたのでちょっとした発見でした。ということでクエリを残しておきます。 BACKUP (Transact-SQL) RESTORE (Transact-SQL) backu…

Entity Framework - ログ出力でトランザクションを確認してみる

Entity Framework のトランザクションについて、前回と同じようにログを確認してみます。Entity Framework のトランザクションのデフォルトの動きやトランザクション自体の使い方はこちらが参考になります。 Entity Framework Working with Transactions (EF…

Entity Framework - ログ出力を試してみる

Entity Framework 6でログ出力できるようになったことを知ったのでちょっと試してみました。 ログを出力するには DbContext.Database.Log プロパティに string を受けとる Action デリゲートを渡します。 using (var context = new AppDbContext()) { contex…

ASP.NET Identity - プロキシ環境下で外部サービスによるユーザ認証を行う

ローカルの開発環境などプロキシを使っている環境下で、ASP.NET Identity を使って外部サービスによるユーザ認証を行うには、サーバ間通信の際にプロキシの設定を行う必要があるのですが、それはどこでするの?ってお話です。 たとえば Google の OAuth 2.0 …

SqlCommand の実行を SQL Server Profiler でトレースしてみた

SqlCommand の ExecuteReader でクエリを実行する時にパラメータを渡すと sp_executesql を使って実行されます。パラメータを使わないと sp_executesql は使われないようです。 MSDN より引用します。 ADO.NET での side-by-side 実行 .NET Framework versio…

とりあえず覚えた cURL のオプション

cURL のオプションはたくさんあります。たまに使う頃には忘れているということを何度か繰り返しています。なので最低限のことをするために覚えたというか思い出すためというか。 とりあえずヘルプ curl -h ずらりと出てきますね。 シンプルに GET リクエスト…

ASP.NET Identity と Katana の MSDN などのリンク先

ASP.NET Identity のサンプルを試したり調べたりしていると、ASP.NET Identity と Katana(Microsoft OWIN)それぞれにあるクラスがこれはどっちだっけ?とかリファレンスどっちだろ?とかなるときがあるので、自分用にメモしておきます。 ASP.NET Identity …

ASP.NET Identity 2.0.0 beta1 のサンプルを動かしてみた

先月 ASP.NET Identity 2.0.0 beta1 がリリースされて、nuget でサンプルアプリケーションをインストールできるので試してみました。 Announcing preview of Microsoft.AspNet.Identity 2.0.0-beta1 - .NET Web Development and Tools Blog - Site Home - MS…

ASP.NET Identity - 外部サービスによる認証のエラーログを有効にしてみる

最近 ASP.NET Identity とか Katana の勉強を始めました。 Introduction to ASP.NET Identity : The Official Microsoft ASP.NET Site Katana Project - Home とりあえず小ネタのメモを1つ。 MVC のプロジェクトで google や facebook のログインがうまくい…

SQL Server - OFFSET 句と FETCH 句

SQL Server 2012 からですが、ORDER BY 句に OFFSET 句と FETCH 句が追加されています。クエリだけでページングを実現できるので素敵ですね。 ということで試してみたのでクエリなどを残しておきます。 まずクエリはこんな感じです。 select * from テーブル…

TypeScript - get アクセサだけを定義したメンバへの代入でコンパイルエラーにならない

get アクセサだけを定義したメンバに値を代入してもコンパイルエラーにならないようです。 サンプルコードです。 class Sample { private _value: number; constructor(value: number) { this._value = value; } // get アクセサだけ定義 get value() { retu…

dapper dot net - splitOn パラメータのカンマ区切り

去年のこの時期に試していた splitOn パラメータの続きです。 以前の記事はこちら。 dapper dot net で1レコードを"Id"列以外で分割してマッピングする(splitOn パラメータ) - いちろぐ 今回は 1レコードを複数のオブジェクトにマッピングする際に、複数の…

SQL Server - ORDER BY 句で null は最小値扱い

当たり前のことのようにそんなもんだと思っていたのですが、あらためて MSDN を読んでいるとちゃんと記述があったのでメモ。 ORDER BY 句 (Transact-SQL) 引数の ASC | DESC のところを引用しておきます。 ASC | DESC 指定した列の値を昇順と降順のどちらで…

TypeScript でライフゲーム

最近少しずつ勉強している TypeScript でライフゲームを書いてみました。 get アクセサ、set アクセサを使いたかったんですが、jsdo.it ではコンパイルエラーになるようなのでメソッドになっています。モデルの width() とか height() とか。 TypeScript 楽…

T-SQL で「数値」と「3桁区切りの文字列」を変換する

SQL Server 2012から format 関数と parse 関数を追加されています。 FORMAT (Transact-SQL) PARSE (Transact-SQL) これらの関数を使うと、 数値を3桁区切りの文字列に変換(format) 3桁区切りの文字列を数値に変換(parse) といったことをクエリだけで行…

ASP.NET MVC - レイアウトの入れ子のメモ

今ごろですが Razor でレイアウトの入れ子を試してみたので、そのときの個人的なメモです。 スクリプト用として使うようなセクションは子のレイアウト(今回の場合は _SubLayout.cshtml)でもう一度定義する必要あると。そらそうか。 _MainLayout.cshtml <html> <head> <meta charset="utf-8" /> </head></html>…

ASP.NET MVC - App_Code フォルダのサブフォルダにあるヘルパーメソッドの呼び出し

App_Code フォルダに cshtml ファイルを作成してヘルパーメソッドを定義すると思いますが、App_Code フォルダにサブフォルダを作成してその中に cshtml ファイルを作成しても呼び出すことができるんですね。知らなかった。 呼び出すには@フォルダ名.ファイル…

dapper dot net でジェネリック型にマッピング

当然なのかもしれませんが、dapper dot net を使ってジェネリック型にもマッピングできました。 試したサンプルコードを残しておきます。 // マッピングするモデル class Sample<TValue> { public TValue Value { get; set; } } // Sample<int>にマッピング var result1 =</int></tvalue>…

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…