ASP.NET 5のサンプル「Music Store」

この記事は、ASP.NET 2015 Advent Calendarの12/23分の記事です。

現在大詰めに入ってきているASP.NET5ですが、学習サンプルとして参考にできる「Music Store」の紹介です。

Music Storeについて

ASP.NETのMusic Storeの歴史は古く、2010年4月に0.8バージョンが公開されたところにさかのぼります。

Music Storeは、当時馴染みに薄かったMVCを学べる「音楽アルバムを販売するサイト」のチュートリアルで、Visual Studio 2010と、ASP.NET MVC2.0、Entity Framwork4.0を使って開発できるようになっていました。以下の様な内容が含まれていました。

  • ASP.NET MVCのテンプレート, データアノテーション, バリデーション(Webサイトでの表示機能と更新機能)
  • ショッピングカート、会員制、チェックアウト購入
  • Entity Frameworkによるデータアクセス


このサンプルプロジェクトは、CodePlexにてアップデートされ、2011年にバージョン3.0まで公開されており、
井上さんによって日本語版も公開され、ASP.NET MVCを学ぶ際の重要なリソースとなっていました。
ただ、残念ながら、2011年以降は、アップデートが止まっていました。



GitHubで公開されている最新のMusic Store

ASP.NET5の開発が行われるにあたり、サンプルとしてGitHubの以下のリポジトリで公開されるようになりました。
https://github.com/aspnet/MusicStore.git

サンプルを実行するには、Visual Studio2015とSQL ServerのLocalDBが必要です。
Visual Studioがない場合にはコマンドラインから実行することもできます。)

機能や画面の仕様などは同じですが、実装方法は最新のASP.NET MVCに対応しているので、参考にしてみてはいかがでしょうか。


最後に

はてなブログに引っ越してみたので、テスト投稿(DDD本について)

実践ドメイン駆動設計

実践ドメイン駆動設計

DDDへの誘い

デザインとは、単なる見た目や操作性のことではない。デザインとは、それがどのように動作するかということだ

DDDとは

ドメイン駆動設計というソフトウェア開発手法。 バグがないというさらに、その先に、ビジネス的な意図を明確に反映している素晴らしいソフトを作ること。

誰にでもできるのか

最初は難しいだろう。 ただ、業務を理解できるのなら、ユビキタス言語を生み出すことはできる。 ドメインエキスパートとの会話には大きなメリットがある。

ただ、以下の本のような、技術的なことも理解したほうが良い が、最低限の知識があれば、始めることができる。

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

DDDのメリット

Mac版VirtualBox5のフルスクリーンでメニューバーを非表示にする設定(ゲストOS:Windows10)

MacVirtualBox 5にWindows10を入れて使っていますが、最大化表示(フルスクリーン設定)しても、画面の上部にマウスカーソルを持って行くと、Macのメニューバーが表示されてしまいます。
ゲストOSに集中して操作するには使い勝手が少々悪いです。

メニューを非表示にする設定を調べてみたところ、以下のフォーラムに書いていました。

https://forums.virtualbox.org/viewtopic.php?f=2&t=21676 (の一番下)

この方法だと、確かにメニューは出なくなります。ただ、ゲストOSに限らず、すべてのVirutalBoxのアプリでメニューが非表示になります。
そのため、必要な設定があったりする場合は、たまに元の設定に戻さないといけないかもしれません。


簡単にまとめると以下の手順となります。
info.plistファイルを触りますので、自己責任という感じです。

  1. Finderでアプリケーションを開く
  2. VirtualBox.appを右クリックして、「パッケージの内容を表示」
  3. Contents/Resourcesまで行き、VirtualBoxVM.appを右クリックして 「パッケージの内容を表示」
  4. ContentsにInfo.plistがあるので、デスクトップにコピーする(権限があれば直接編集できるかも)
  5. テキストエディタで編集して、"LSCanProvideIMVideoDataSource"と "NSHighResolutionCapable"の間に以下の文言を追加する
    • LSUIElement 1
  6. 保存して、もとのInfo.plistに上書き保存する(管理者権限のパスワードを入力する)
  7. この設定はメモリに保存されるそうなので、一度Macをログオフして、再度ログインする

ちなみに、最大化でメニューが非表示となっても、ショートカットキーは有効です。最大化モードやスケールモードなどを切り替えたいときは、あらかじめ設定しているショーットカットキーをメモしておいて使うと良さそうです。
また、MacVirtualBoxのデフォルトホストキーは左コマンドボタンです。Windowsでは、ホストキーを右コマンドボタンにしておくことをおすすめします。そうすると左コマンドボタンが、Windowsキーになります。

Azureサブスクリプションファイル(*.publishSettings)のダウンロードURL

Azure Management Studioの設定をするときに、Azureのサブスクリプションファイル(*.publishSettings)をダウンロードしてインポートする必要があったので。以下のURLから。

https://go.microsoft.com/fwlink/?LinkId=254432
→( https://manage.windowsazure.com/publishsettings

自分メモ(Macで入れるソフト)

Evernoteに書いているけど、どこに書いたか忘れがちなので。
2017/4更新


Atom
SublimeText Atomで使わなくなった
Visual Studio Code
Karabiner (KeyRemapForMac) 主にFor PC Usersのところ
http://d.hatena.ne.jp/ttaka_tmp/20110414/1302770240 PCKeyboardHackはSeil)
Sierraで使えなくなったので↓へ
Hammerspoon
Karabiner Elements
BetterTouchTool(ウインドウズサイズ合わせ)有料化されたので
shiftlt ウィンドウ合わせ
MemoryClean最近はなくても気にならない
BatteryHealth最近はなくても気にならない
OneDrive
ScrollReverserトラックパッドだけで使うことにした(BetterTouchToolで代用できそう)
Google日本語入力
SimpleCap(スクリーンショットのキャプチャソフト)Mac標準でOK
TextWringrer最近はなくても気にならない
Firefox
Chrome
Opera最近はなくても気にならない
FreeMindXMindを試してみる
XMind
Hoster特に理由はないが使わないので
iTerm2
EverNote 2台限定なので微妙
OneNote
HyperSwitch(Alt+tabによる切り替え)4本指下スワイプがあるので、なくても大丈夫
MS Office
Pocketあまり使わない
WunderlistMS-TODOが後継だが、Appleリマインダーへ
Skype使わない
Slack個人では使わない
Chatwork個人では使わない
Snap(Cmd+1でDock呼び出し)
Alfred(ラウンチャー)Alfred
TweetDeckあまり使わない
Twitter
VMWare Fusion
Virtual Box (GuestAdtionsCD後、ホストキー右に変更。http://pc-karuma.net/mac-virtualbox-host-key/
WinArchiveLite
XCode
Filezila(FTP使う場合)CiberDuckのほうが良い?
SourceTree
Docker
Eclipse
Java
itsycal
Mowglii - Itsycal for Mac
プリンタドライバ
VPN設定 (環境設定-ネットワーク-VPN-PPTPとか環境に応じて)

defaults write com.apple.dock scroll-to-open -bool true
killall Dock

defaults write com.apple.screencapture location ~/SS/;killall SystemUIServer

Azure Storage Emulatorのインストールエラー(CAQuietExec Failed 1603)


申し訳ございません。次の製品をインストールできませんでした。
Microsoft Azure strage Emulator - 3.4 この製品は正常にインストールされませんでした。


Windows Azure Storage Emulator - v3.4、製品バージョン: 3.4.6848.0、製品の言語: 1033、製造元: Microsoft Corporation、インストールの成功またはエラーの状態: 1603

というインストールエラーが出た場合の対策のメモです。





http://normalian.hatenablog.com/entry/2015/04/13/145616

にとても良くまとめられています。



私の環境でも「C:\users\<ユーザー名>\*.mdf と *.ldf」を移動後、コマンドプロンプトから

sqllocaldb stop v11.0
sqllocaldb delete v11.0
sqllocaldb create v11.0

とやったものの相変わらず、以下のエラーでした。

CAQuietExec: Windows Azure Storage Emulator 3.4.0.0 command line tool
CAQuietExec: Error: Cannot create database.
CAQuietExec: Error 0xfffffff3: Command line returned an error.
CAQuietExec: Error 0xfffffff3: CAQuietExec Failed
CustomAction RunInitialize returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)

困っていたところ、

http://stackoverflow.com/questions/23307477/azure-storage-emulator-wont-install

に、

sqllocaldb stop MSSQLLocalDB
sqllocaldb delete MSSQLLocalDB
sqllocaldb create MSSQLLocalDB

という記載がありました。
同じく、こちらも実行したところ、Windows Azure Storage Emulatorを正常にインストールできました。


LocalDBを消すので、操作にはご注意ください。

拡張メソッドのライブラリ一覧(C#)

OSSC#の拡張メソッドのライブラリを調べたメモです。
たくさんありつつも、デファクトスタンダートといったものはない印象です。