これまでのサンプルを NuGet パッケージにしてみました

執筆日時:

以上の内容を NuGet パッケージ(https://nuget.org/packages/DADIU/1.1.0)にしてみました*1。記事では端折った JavaScript なんかも含まれているので*2、もし興味があればみていただければと。

インストール方法

f:id:daruyanagi:20120822065902p:plain

[テンプレート]ボタンを押す。

f:id:daruyanagi:20120822065906p:plain

テンプレートを選択。好きなモノを選んでいいですが、試すだけなら“Empty Site”が無難ですね。

f:id:daruyanagi:20120822065911p:plain

[ファイル]タブを選択。そうしないと[NuGet]ボタンが出てこないみたい*3

f:id:daruyanagi:20120822065916p:plain

[NuGet]ボタンを押す。

f:id:daruyanagi:20120822065921p:plain

パッケージの検索。検索結果はダウンロード数順になっているのかな? かなり下の方にスクロールしないとでてこないです。もし検索されない場合はパッケージのソースも変えてみてください。コマンドラインでインストールできる方法も用意されたらいいですね*4

f:id:daruyanagi:20120822065924p:plain

無事パッケージを発見できたらインストール。パッケージ名いいのが思いつかなかったので、頭文字を並べただけです。

f:id:daruyanagi:20120822065928p:plain

今回は依存パッケージのインストールも使ってみました(jQuery と HttpFileCollectionBaseExtension)。もしインストールされていない場合は自動で依存性が解決され、ダウンロード・セットアップされます。

f:id:daruyanagi:20120822065933p:plain

インストールが成功(するといいな)! いろいろファイルが追加されているはずです。

f:id:daruyanagi:20120822065937p:plain

サンプルは“DADIU.sample”にあるので、ブラウザーで実行してフォルダへアクセスしてください。対応ブラウザーは Google Chrome / FireFox (Opera/IE10?)です。「WebMatrix 2」ではインストール済みのブラウザーのなかから好きなブラウザーを選んで実行できるのが便利ですねぇ。

これまでの記事のウソポイント

ぶっちゃけこのブログは結構ウソも書いています(ごめんなさい!)*5。あんまり完成度を意識してたら、アウトプットなんかできませんからね!*6 とはいえ、ほんとごめんなさい的な記述もあるので、気付いたところだけ直しておきます*7

NuGet Package Explorer

f:id:daruyanagi:20120821221424p:plain

あと、公開(push)の終了がわかりづらい。まぁ、重複して公開するとエラーになる(実害はない)のでわかるのだけれど。

NuGet Package Explorer で NuGet パッケージを作ってみた - だるろぐ

公開が終わったらちゃんとメッセージでてたがな!(見落とし

(・・・・・・)というフォルダー階層にして .nuspec を開いたら、 を書いてなくてちゃんと Contentが読み込まれた。なるほど。

今回のパッケージを作るときは出てこなかった。なんでだろ。まぁ、手動で追加すればいい。

Dictionary の初期化

private Dictionary<string, string> AllowedFileType =
new Dictionary<string, string>();

Dictionary ってその場で初期化できるんだね。

private Dictionary<string, string> AllowedFileType =
new Dictionary<string, string>()
{
{ "image/jpeg", "jpg" },
{ "image/png" , "png" },
{ "image/gif" , "gif" },
};

こっちのほうがいいや。

.NET Framework のターゲット指定

<?xml version="1.0"?>
<configuration>
<system.web>
<compilation targetFramework="4.0" debug="false">
<codeSubDirectories>
<add directoryName="Highlight"/>
</codeSubDirectories>
</compilation>
</system.web>
</configuration>

web.config.transform を少し書き換えて、 .NET 4 を利用するようにしてみたら(targetFramework="4.0")ちゃんと動きました。ついでに、 NuSpec のタグに「.net 40」を追加して「.NET 4 用ですよ!」とわかるようにしておくと*3いいんじゃないでしょうか。

Highlight.js を NuGet パッケージにしてみました - だるろぐ

これはよくないかもしれない。

f:id:daruyanagi:20120822072048p:plain

Visual Studio で開いてデバッグするとき、 compilation 要素がダブってエラーになることがあった。もっとよい作法がありそうな気がする。

App_Code フォルダのサブフォルダで cshtml を使う

でも、この方法でサブフォルダーをコンパイル対象に含めても cshtml ファイルの面倒まではみてくれないみたい……。

App_Code でサブフォルダーを利用する - だるろぐ

もしかしたらされるっぽい。前回は動かなかったのだけれど、今回試したら動作した*8

ただ、フォルダ名が namespace として扱われるので、呼び出すための記述が長くなる。けれども、場合によってはなかなか使えるのかもしれない。

*1:ZIPで配ってもよかったのだけど、こっちのほうが楽……かなぁ?

*2:正直初心者レベルのソースコードで恥ずかしいです

*3:たまに押しても出てこなくね?

*4:できないことはないんだと思うけど、アホでもわかるようにしていただければありがたし

*5:だって、誰かに「教える」ために書いているのではないもの……あくまでも自分の勉強のためなんです

*6:アウトプットしなければ身につきませんよ?

*7:遡って直すのは面倒だからしない。ブログってこういうところがダメね。はてなブログの場合は過去記事に関連リンクもつかないからなおさらダメだ

*8:前回は別の理由で動かなかったのかもしれない