ようこそ Go!Go! ASP.NET へ ログイン | 登録 | ヘルプ

ScottGu's Blog 翻訳記事が CodeZine にて復活!

一部の方はご存知かもしれませんが、@IT で連載されていた「ScottGu氏のブログより」が先月幕を閉じました。しかし、場所を変えて CodeZine にて復活しております。

 

既存のデータベースでEF『コード・ファースト』を使用

 

連載一覧はこちら。

Scott Guthrie氏 Blog翻訳

 

今のところ、全ての投稿が翻訳されるわけではないようですが、PV 次第では枠の拡大などが検討されるようです。
(逆に PV が少ない場合は再び幕を閉じる可能性も…)

.NET 開発者にとって必見とも言える ScottGu's Blog の翻訳記事、是非応援を兼ねて一読またはそれに関する感想などを外套記事にコメント頂ければと思います。 

投稿日時 投稿者 naoki | コメント数:1

Visual Studio LightSwitch Beta が MSDN Subscription で公開!

さっそく触ってみたけど圧巻です(下記内容は、はてなの内容を転載したものです)。

Visual Studio LightSwitch の Beta が MSDN Subscription で提供開始という投稿を見て、さっそくインストールしてみました。

f:id:naoki0311:20100819102401p:image

f:id:naoki0311:20100819102400p:image

f:id:naoki0311:20100819102358p:image

f:id:naoki0311:20100819102356p:image

f:id:naoki0311:20100819102355p:image

プロジェクトテンプレートのカテゴリはVB/C# ではなく、LightSwitch です。真剣に Silverlight テンプレート内を探して、無い!無い!!!と焦ってました。

f:id:naoki0311:20100819102353p:image

プロジェクトを展開すると最初に DB 選択画面。今回は下を選択。

f:id:naoki0311:20100819102621p:image

DataBase/SharePoint/WCF RIA Service から選択できます。

f:id:naoki0311:20100819103237p:image

見覚えのある、DB 接続設定画面(SQL Server プロバイダ しか表示されませんでした。EF だから?ちょっと不明です)。

f:id:naoki0311:20100819103236p:image

最後に利用するテーブル選択画面(初回なのでは全部選択)。

f:id:naoki0311:20100819103235p:image

Warningsなどもしっかり出ます。とりあえず気にせずContinue

f:id:naoki0311:20100819103554p:image

ひな形完成!

f:id:naoki0311:20100819103705p:image

とりあえず実行してみた。何も選択できず…

f:id:naoki0311:20100819104148p:image

ちなみにソリューションはこんな感じ。

f:id:naoki0311:20100819104300p:image

Screen選択するとビューを選べる模様。

f:id:naoki0311:20100819105018p:image

いくつかの選択肢の中からビューなどを選択。

f:id:naoki0311:20100819105016p:image

全くコードを書いていないのにリストボックスや、テキストボックスやら色々作られてます。

f:id:naoki0311:20100819105014p:image

ここで実行。なんと、わずか10分程度でリボン UI 付のアプリができました!

クリックすると右側に詳細が表示されます。ちなみに、中央にある Export to Excel をクリックすると…

f:id:naoki0311:20100819105258p:image

列だけですが、値を Excel にエクスポートできちゃいます!これは便利な予感。

f:id:naoki0311:20100819105514p:image

Addを選択するとMDIウィンドウが表示され、入力できます。

f:id:naoki0311:20100819105814p:image

しっかり表示もされます。

f:id:naoki0311:20100819105813p:image

なお、右上の Customization Mode をクリックすると、カスタマイズ画面が表示されます。

f:id:naoki0311:20100819110607p:image

VS の画面と同じですね。とりあえず、ここで左ペインの表示を List から DataGrid に変更します。

f:id:naoki0311:20100819110606p:image

Save して、見てみると当然表示も切り替わる!

f:id:naoki0311:20100819110605p:image

ExcelにExport してもしっかりとエクスポートされてます。

f:id:naoki0311:20100819110603p:image

なんていうか、かなり凄いです。ノンコーディングでここまでできるとは…

やったのはマウスで選択しただけ。なんというか、大きな可能性を秘めたプロジェクトだなぁと実感しました。

投稿日時 投稿者 naoki | コメント数:2

MVC HTML5 Toolkit が CodePlex にて公開!

Dean Hume からです。

 

ASP.net MVC HTML5 Toolkit

 

タイトル通りなんですが、 HTML5 対応されているヘルパーメソッドの Toolkit を作成 & 公開されたようです。
ダウンロードはこちらからできます。

http://mvchtml5.codeplex.com/

Dean Hume さんが Blog 投稿しているサイトも ASP.NET MVC + jQuery で作成されていること、何故これを作る気になったのか?どのように使うか?などが記載されています。

ASP.NET で HTML5 対応という気になるポイントをある意味予想した通りの形で回答として具現化してくれた Dean さんには感謝です(しかも簡単に利用できるし)。

MS も何らかの形で HTML5 対応はするかと思いますが、まずはお手軽に HTML5 に触れてみたい方は試してみてはいかがでしょうか。

 

※19日追記
早速たけはらさんが Blog 投稿しています。MVC 3 + Razor の組み合わせでも行ける!という素敵な情報付です。興味がある方はぜひ読んでみてください。

MVC HTML5 Toolkit を MVC3 Preview1のRazorで使う

 

投稿日時 投稿者 naoki | コメント数:2

Tech・Ed 2010 の BoF10 に登壇します

いよいよ開催まで一週間に迫った Tech・Ed。今年も BoF に登壇することになりました。

マイクロソフトの Web テクノロジ最前線と現実解を語ろう

 

メンバーは去年から恒例?の 小野さんたけはらさんです。もしかすると、その日の1コマ目にセッション担当されているあの方もさりげなく登壇しているかも!?

BoF 自体はタイトル通り、リリースが早く製品も多くなってきた Web 周りのテクノロジと、実際の使いどころやおススメ技術などを BoF 参加者の方々と一緒にディスカッションをしていこうと考えています。

#現在多忙中ですが、恒例?のたけはらさん作成の面白いアプリも見れるかもしれません。

 

ジニアスの裏セッションですが、宜しければご参加ください。また一緒にディスカッションしましょう!

投稿日時 投稿者 naoki | コメント数:1

【9月8日夜】第二回 SQLDO 勉強会開催

第一回が5月に開催で、その後各コミュニティなどの開催状況から間が空いてしまいましたが、TENKI 代表が上手く調整し、開催までたどり着きました。第二回目の講師は北海道ではお馴染み?になりつつあるジニアス平井です。平日のセミナーですが SQL Server 2008 や開発者が扱う ADO.NET 周りまで学習できると思うので、興味がある方はご登録ください。   

 

以下、公式サイトから転載。

かなり時間が開きましたが第2回勉強会を開催します!

第2回はナイトセミナースタイルです
日時     :2010年9月8日 19:00 - 21:00
場所     :マイクロソフト 北海道支店セミナールーム
セッション1 :SQL Server 2008 R2 の開発者向け機能について
スピーカー1 :ジニアス平井

セッションはもう一つ追加するかも?詳細は後日追加
→リクエスト受け付けます。


★参加申し込みはこちら★
http://sqldo.mucleus.jp/cgi-bin/seminar.rb


セッション詳細

 

『夜の SQL Server 2008 – 開発者向けナイトデモ』

■概要■

SQL Server 2008 (R2) と Visual Studio 2010 によるアプリケーション開発についてご紹介します。
T-SQLの拡張、階層データ、XMLデータ対応強化、FILESTREAMストレージ、空間データ(Geometry, Geography)、LINQ to SQL、ADO.NET Entity Framework、Microsoft Sync Framework など、開発者向けのトピックをデモンストレーション満載でお届けします。
ぜひこの機会に次世代データベース SQL Server 2008 をご体験下さい。
なお、今回は TechED No.1 講師 ジニアス平井によるスペシャルセミナーです。楽しくご受講できることと思います。

リクエスト・お問い合わせは tenki[at]sqldo.jpn.org まで
投稿日時 投稿者 naoki | コメント数:1

CLR/H 第1回ナイトセミナー開催 テーマは【あなたの手助けをしてくれるおススメツール自慢 】

構想自体は数年前からありましたが、ようやく開催までたどり着きました。CLR/H でも今後ナイトセミナーを開催していきます。
まずは、第1回目の予告です。第1回目はある程度ハードルを下げつつも、業務などですぐ活用できそうなツール部分をテーマにしてみました。

CLR/H 第1回ナイトセミナー 予告

CLR/H 初となる、ナイトセミナーを8月18日水曜日に開催します。都合の付く方は是非ご参加ください(情報は都度更新します)。

 

日時・場所その他

日時

2010年8月18日(水) 19:00~21:00

場所

 札幌市民ホール第3会議室(24名部屋)

参加費 500円(会場費代、お菓子代、運営費などに利用します。)
懇親会

ナイトセミナー終了後、有志の方達で晩御飯を食べる予定です。

内容

【タイトル】 あなたの手助けをしてくれるおススメツール自慢
 
【概要】 みなさん業務や、趣味で端末を触る際、お気に入りのツールがありませんか?開発のサポート、ドキュメント作成の補助、趣味を楽しむための… 恐らく人により好みのツールお勧めのツールがあると思いますが、もしかすると他の方はそのツールを知らないかもしれません。即使える便利ツールを皆さんで共有しませんか?

また、次回以降は本格的に.NETプログラミング再入門、きれいなコードを書くためには?等のセミナーを実施予定です。その為参加者の皆さんからの聞きたい内容をディスカッションできればと思います。

【持ち物】

  • メモ帳・ボールペン
  • あなたのおすすめツール名など
  • ノートPC(あると便利) ※電源有ります 
参加申し込み

お申し込みはこちらからよろしくお願いします。 http://clr.mucleus.jp/cgi-bin/seminar.rb

過去の勉強会に関する全ての記録は、CLR/H 活動実績を御覧ください。

 

#定番ツールがあったとしても、逆に自分しか使用していないマイナーなツールなんかもあると思うので、参加者の方には面白いツールを紹介してもらいたいです。

投稿日時 投稿者 naoki | コメント数:1
タグ :

【MS】テクニカル サポート インシデント使用のススメ

MS製品におけるテクニカル サポート インシデント(事件、出来事、ハプニング)はご存知でしょうか?簡単に言うと非本番環境における技術的な問題の解決手助けをしてくれる"有償"のサポート窓口です。

詳細は下記リンク先に記載されています。
テクニカル サポート インシデント

今回はこのインシデントの使い方と窓口の対応について記載します。

 

インシデントの数について

MSDNサブスクリプションの会員の場合、またはマイクロソフトと認定パートナー契約を結んでいる企業では、その契約に応じてインシデントが一定数割り当てられています。

  • MSDN Premium: サブスクリプションごとに 4 インシデント
    MSDN Operating Systems または MSDN Professional、MSDN Embedded: サブスクリプションごとに 2 インシデント

認定パートナーの場合はグレードに応じて変わりますので、契約されている企業の方は、パートナーサイトで検索してみてください。(記載して良いのか不明なため書きません・・・)

1つのインシデント(簡単に言うと問題)を解決すると1インシデント消費になりますが、相談した製品の問題に該当する場合(簡単に言うとバグ)はインシデントクローズ時にインシデントが返却されます(実質未消費)。

 

インシデントを使用するケースについて

ここが悩ましいところだと思います(こんなので質問して良いのか?どこまで質問できるのか?)。簡単に言うと、コード書いて!とか、自作メソッドが上手く動かない!以外で、MSDN製品が関わる内容を質問できます。
「Windows Server 2008上でどうやってもアクセスできない権限が足りないならどうすればいい?UACは切りたくない…」など今回私は、「Word 2007のVBAでFindメソッドを利用した際に、特定のEditionだけアプリケーションエラーが発生する」という質問をしました。

 

事前準備

用意するものとして次のリストが必要です。

  • MSDN サブスクライバー ID 9ケタの数字
  • 登録ユーザー情報(名前、メールアドレス、登録電話番号、並びに日中連絡が取れる電話番号)
    アクセスID(初回に連絡を受け、次のインシデント対応時に必要になります)
  • サポートを受けたい内容をまとめる
  • サポート窓口に提出できる資料やログ、現象を再現できるアプリ等を用意できる場合は用意する
    (あるのと無いのとでは解決に大幅な時間の差が出てくる可能性があります)

 

インシデントを使用する方法

テクニカル サポート インシデントに書かれている電話番号に電話します。多少たらいまわしにされるかもしれませんが、対応は早いです。
Webからだと、製品別 お問い合わせ - 製品一覧でも選択できます。製品を選択して、サポートの種類の選択画面で"有償インシデント サポートを利用"を選択してウィザードを進めるだけ。

後は、個別の製品担当者から連絡が来るので、その方に提供できる情報を全て提供して、回答を待つ形になります。

ただ、インシデントを使用する場合はある程度切迫していて、自分たちで追加調査をしている可能性がありますので、追加提供できる情報があれば、直ぐに連絡する事が早期解決へと繋がると思います。後は都度やり取りをしていきます。

 

インシデント対応の例(今回の流れ)

主に、電話かメールでのやり取りになります。

今回利用した例ではサポート担当者の方から次の内容が記載されたメールが届きました(内容そのまま引用は NG が出たのでざっくりと記載)。

  • [インシデント内容]
  • [インシデント概要]
  • [インシデントに対する調査方針]
  • [最終回答となる内容の確認]
  • [次回連絡予定]

多分利用したことが無い方が想像している以上に丁寧で詳細な内容のサポートが得られます。経過報告や追加確認事項などの連絡も来ますので、そのまま社内への報告へと展開することもできます。

以下、実際のやり取りの流れ…(読み飛ばしても OK です。)

途中経過報告時に、今回のインシデントは、レジストリが原因でエラーが発生する事例がある事が判明し、その事例では Word の修復インストールか、Service Pack の適用をする事で解決するという報告を受けました。

そこで、修復セットアップを実行した所、無事現象は回避。

修復インストールのログやレジストリ情報を提供した所、今回のインシデントは、KB292744 に該当するということが判明しました。
#調査の裏付けとしてレジストリ情報、修復インストールログを詳細に解析してくれました。

一見解決に思えましたが、複数台端末に対して修復インストールを1台ずつ実行できるのか…?と疑問に思いそれを質問した所(この時は電話でした)

修復インストールはコマンドで実行できることを報告してくれました。Officeのセットアップコマンドで、/repair オプション(Office 2010 のセットアップのコマンド ライン オプション)を使用すると OK 。という事でしたので、バッチで簡単に該当端末に適応できることが判明して今回のインシデントは終了。
#2010とありますが、2007でも同様だそうです。/repair は2007以降で利用可能なオプション。

サポート担当者の方の対応が懇切丁寧であったこと、予想以上の報告や解決策を提示してくださったこと。利用して本当に良かったと思い、インシデントを利用する権利があっても利用したことが無い方に対して Blog で利用を推奨したいのですが良いですか?という旨連絡した所、快諾くださいました。

また、Office 2003 以前では REINSTALL を利用するので。こちらも紹介頂ければ…と追加情報まで頂きました。
セットアップ プロパティ REINSTALL

至れり尽くせり過ぎです。

 

まとめ

インシデントと言うと、仰々しく感じるかもしれませんが、折角あるインシデント活用してみてはいかがでしょうか。

また、とあるサポートの方が仰ってましたが、電話やメールだけのやり取りはもどかしいと感じるかもしれません。しかし、サポート担当者の方も同じ思いは抱いているので、客観的なデータなどがあると共通理解が進み早期解決に繋がります。当然ながら、質問する側がぼやけたままだと相手には伝わりません。

お互いが幸せになるには相互理解がしやすいデータをしっかりと用意してからインシデントを利用してみましょう~。

 

利用の流れの中にインシデント内容入れたのでわかりづらいかもしれないので、今回のインシデントのまとめ。

Word 2007 VBAで、Findメソッド使った時にアプリケーションエラーで起きる際は、KB292744 に該当していて、解決方法は修復インストールか、SP を充てること。また、Office は、コマンド対応してるので一括配信なんかもできるよ。という事でした。

投稿日時 投稿者 naoki | コメント数:4

ASP.NET MVC 3 Preview 1 リリース!要チェック Blog などのまとめ(自分用)

最近 Google Reader が常に 1000+ と表示されがちなので、忘れないようにメモしておきたいと思います。

本日リリースされた ASP.NET MVC 3 Preview 1 に関する開発者や日本語 Blog などのまとめ投稿です。

 

英語情報(ASP.NET MVC 開発チーム)

Introducing ASP.NET MVC 3 (Preview 1) ScottGu's Blog

ASP.NET MVC 3 Preview 1 Released – Channel 9 Video and Hanselminutes Podcast 224, Oh My!Scott Hanselman's ComputerZen.com

ASP.NET MVC 3 Preview 1 Releasedyou've been haacked and you like it

 

日本語情報

早くも ASP.NET MVC 3 Preview 1 リリースですTHE TRUTH IS OUT THERE

ASP.NET MVC 3 and MEF sitting in a tree...等閑に付さないように

ASP.NET MVC 3 preview 1 is out! Quick review...等閑に付さないように

aspnet - Release: ASP.NET Web Pages Templates等閑に付さないように

 

ASP.NET MVC 3 ファーストインプレッション

早速 ASP.NET MVC 3 Preview 1 をインストールして触ってみた感想ですが、

  • Razor 時にデザインビューを利用できない
  • コードがハイライトされない(開発チームの既知の部分)
  • インテリセンスが使えない

この3点がやはり気になりました。Razor は面白い新機能ですしこれから活用するシナリオも多く出てくると思うので、これから MVC を触る方は頭の片隅にでもおいておくといいでしょう。DI 部分とか少しずつ触ってみないとなぁ。

それと、MVC 3 からは.NET 4 の機能をフル活用し、DI の利用など MVC の流れとしてはあるべき方向に進化していると思います。

 

以下気になる点。。。

MVC 3 がリリースされるのっておそらく IE 9 と同じ頃な気がします。ということは・・・
HTML 5 との組み合わせなんかもトレンドになるかもしれませんね。ヘルパーメソッドも HTML 5 対応してくれるとうれしいけどそれは MVC 4 以降かな。
むしろ、Web Form の HTML 5 対応のほうが気になって仕方が無い今日この頃・・・

投稿日時 投稿者 naoki | コメント数:1

WebMatrix 実行後すぐにクラッシュする場合の対処方法

WebMatrix の発表から2週間ほど経過しましたね。そろそろ触れてみた方、興味はあるけど、まだ触れたことの無い方が出始めてるのではないでしょうか。

 

WebMatrix 自体は日本語で言うと2か所ほど詳細に解説されています。

もっと Web 開発を簡単に ~ 復活!? WebMatrix ~(MS 井上章さんの Blog)

WebMatrixの紹介(@IT Scott Guthrie さんの Blog 翻訳記事)

 

IME が原因で落ちる WebMatrix

Razor の面白さやクリーンで軽快な Web ページの作成は ASP.NET 開発者なら気になるところだと思いますが、日本語環境ではエラーで体験できない場合があります。

具体的にいうと、井上さんの投稿にあるように実行後すぐにクラッシュして落ちてしまう場合です。

このクラッシュしてしまう原因ですが、どうやら Office に付随している IME にあるようです(2007/2010 問わず)。
※もしかしたら64 bit の環境でのみ発生という可能性もあります。

 

解決方法は既定の言語を変える!

解決方法は簡単です。 既定の言語を Office の IME 以外に設定してあげるだけです。

コンパネ - 地域と言語 - キーボードと言語 - キーボードの変更 で表示される【テキスト サービスと入力言語】ダイアログで既定の言語を Microsoft IME か、Google 日本語入力 に設定!こうすることで、WebMatrix の開発を楽しむことができます。

投稿日時 投稿者 naoki | コメント数:1

CLR/H Office 2010 Launch 勉強会は 7月17日開催

 次回の第49回 CLR/H 勉強会は7月17日土曜日に、開催予定です。詳細は決まり次第更新していきますので、都合の付く方は是非ご参加ください。なお、現在公式サイト移転準備のためアクセスできない可能性があります。申し込みは本投稿の下部のリンクからお願いします

  

日時・場所その他

日時

 2010/7/17(土) 13:00~18:20
 (開場12:30)

場所


  マイクロソフト株式会社北海道支店 セミナールーム
 札幌市中央区北5条西2丁目 JRタワーオフィス 20階
 (JR札幌駅、地下鉄さっぽろ駅直結)

参加費  500円(お菓子代、飲み物代、運営費などに利用します。)
懇親会会場と
開始時間

 現在調整中

懇親会費用

 3,500円以内で検討中

内容


■タイムテーブル(随時更新します)
12:30 開場
13:00 ご挨拶 (CLR/H)
13:05 セッション1(60分):~ Chikoといく ~ 
                                       最新Office 2010新機能ツアーへようこそ!

14:05 休憩(5分)
14:10 コミュニティライトニングトークス(30分)

  • OneNoteとPublisherのすゝめ(naoki)
  • (j.sakamoto)
14:40 Peer Talk  おやつ(30分)
15:10 セッション2(75分):
16:25 休憩(10分)
16:35 VS2010 による Office 2010 Client アプリケーション開発(90分):

18:05 次回予告とご挨拶(15分)
18:20 終了予定
18:45 懇親会開始予定
 
スピーカー紹介&セッション概要
 
【タイトル】
VS2010 による Office 2010 Client アプリケーション開発
 
【スピーカー】
ジニアス平井
 
【概要】
Office Open XML SDL によるドキュメントの作成や処理、Visual Studio 2010 による
アドイン開発(Ribbon, Backstage View)、テンプレート開発、VBA からマネージドコードへの
移行など、Office 2010 クライアント開発を取り上げます。
 
【スピーカー紹介】

類い稀なプログラミング能力とデザインセンスを持った天才児?。1993年に開発言語のサポート

エンジニアとしてマイクロソフトに入社。現在はオヤヂ SE として ISV や開発ベンダーへ

講演活動や技術支援を行っており全国各地に出没する。

MS 歴は長いものの権限とお金をまったく持っていないという技術オタクでもある。
 

 

 
【タイトル】SharePoint Server 2010のススメ
 
【スピーカー】北端 智
 
【概要】
SharePoint Server はOffice製品の中核になるサーバーアプリケーションです。
SharePoint Server 2007から多くの組織に導入されましたが、多機能なゆえに上手に、
効果的に使用するのが難しいアプリケーションでもあります。もしかすると、
あなたの組織でも「文章置き場」になっていたり、「お知らせ」しか使われていなかったりしませんか? 
2010が発売された今、今一度上手なSharePoint Serverの活用を考えてみませんか。
また同時に、2010になってからの向上点や新機能もご紹介いたします。
 
【スピーカー紹介】
Information Worker向けと分類されているマイクロソフト製品「Exchange Server」「SharePoint Server」
「Dynamics CRM」「Communications Server」などの技術教育をエンタープライズ企業様を対象に
提供しているMCT(Microsoft Certified Trainer)です。本当はExchangeが大好きですが、
いつのまにかSharePointにはまっているところです。

 

 

 
【タイトル】
~ Chikoといく ~ 最新Office 2010新機能ツアーへようこそ!
 
【スピーカー】
Chiko
 
【概要】
最新Office 2010 の主な新機能や強化されたポイントをダイジェスト版でご紹介!
 
【スピーカー紹介】

はじめましてchikoです。9年間某社にて総務人事・経営政策室宣伝・広報を担当。
ありえないほどのアナログ人間。
在職中にMOT(もっと)知りたいシリーズでモデルインストラクターの制服にあこがれ

MOT2007を取得。これがきっかけで現在に至る。

 
参加申し込み

 お申し込みは、こちらからお願いします。
 http://clr.mucleus.jp/cgi-bin/seminar.rb

なお、最近行った勉強会の開催内容(新しい順)は、前回までのCLR/H勉強会を御覧ください。

また、過去の勉強会に関する全ての記録(古い順)は、CLR/H 活動実績を御覧ください。

投稿日時 投稿者 naoki | コメント数:1

Web Matrix 公開~ASP.NET MVC の新たな進化の方向性~

ScottGu's Blog からです。

 

Introducing WebMatrix

 

少し前から連続で発表されている Web 製品の流れその集約として WebMatrix が発表されました
古くから ASP.NET を触っている方だと 1.1 時代を思い出すかもしれませんね…

IIS Developer Express / SQL Server Compact Edition / ASP.NET “Razor”

WebMatrix の紹介はこちらに。ダウンロードはこちらからできます(WPI 3 Beta での提供)。
かなりの分量ありますが、詳細はおそらく MS 井上さんが今日明日中に、@IT でちかさんが翻訳してくれると思うのでそちら待ちで。

気になる点。
MVC における Razor サポートは今月末に出る ASP.NET MVC Preview に搭載されるようですので、今すぐには試せないようです。
Preview…?どういうことでしょうね。2 に乗るための Preview なのかそれとも、こっちなのか…

いずれにせよ、この WebMatrix はこれから ASP.NET 程リッチでなくてもいい。PHP のようにさっと作りたい。というニーズには応えられる可能性を持った製品じゃないかと思います。もっと言うと、祝日プログラミングにもピッタリかもしれません。クラウドプラットフォームを睨んで勉強するにはいいかも。

私もこれから触ってみたいと思います!

投稿日時 投稿者 naoki | コメント数:3
タグ : , ,

ASP.NET MVC 2 でカスタム属性の作成と、クライアントサイド検証のポイント

ASP.NET MVC でメジャーな DataAnnotation による検証。MVC 2 ではより高度に扱えます。

検証属性も既定でいろいろ提供されていますが、アプリケーションによっては独自の検証を行いたいこともあるでしょう。
そんな時はカスタム検証属性の作成がお勧めです。

カスタム検証属性の作成から、クライアントサイド検証の実装まで見てみます。
なお、詳細は後日公開されるであろう CodeZine 記事に譲りますので、非常にざっくりとした説明しかしませんのでご了承ください。
(多分、ASP.NET MVC 触ってて DataAnnotation も触ったことないと意味が分からない予感…)

とりあえず、今回の投稿の全体像はこちら。

MVC 1 の時の xVal よりは気軽にできるようになっているので、MVC 2 時代はフレームワークが提供している検証お勧めです。

 

今回はゲームでよくある、CERO を指定して、入力検証を実施してみたいと思います。
(今回のサンプル Create ページ上での検証のみなので、かなりちぐはぐだと思いますがご容赦を…)

まずはカスタム属性の作成から。検証属性の元クラス、ValidationAttribute クラスを継承して作成します。

①CEROAttribute 属性クラスの作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.ComponentModel.DataAnnotations;

namespace CustomValidationSample.Models
{
public class CEROAttribute:ValidationAttribute
{
/// <summary>
/// CERO対象として設定する値を次から選択してください。A/B/C/D/Z
/// </summary>
public char CERO { get; set; }

public override bool IsValid(object value)
{
// nullの時は検証しない
if (value == null) {
return true;
}
var age = (int)value;

// trueが検証成功、falseが検証失敗
switch (CERO)
{
case 'Z':
if (age < 18)
return false;
return true;
case 'D':
if (age < 17)
return false;
return true;
case 'C':
if (age < 15)
return false;
return true;
case 'B':
if (age < 12)
return false;
return true;
case 'A':
return true;
default :
return false;
}
}
}
}

属性にパラメタつけたい場合は、Property で追加してあげてください。後は検証実施のために IsValid メソッドオーバーライドするだけ。
(属性のパラメタに列挙体使えたらいいかなと思ったんですがエラー出ました…)

これである意味完成です。メタモデル側でこんな指定ができるようになります。

1
2
        [CERO(CERO='Z',ErrorMessage="18歳以上が対象です")]
public Int32 Age { get; set; }

この状態で実行すると、サーバーでの検証が実施されます。ですので、一度データをサーバーに送ることになり、リクエスト・レスポンス等が増えてしまいます。

サーバー負荷の多少の軽減とユーザビリティを考えてクライアントサイドも実装してみましょう。

 

②アダプタの作成

CEROAttribute を指定した際に設定された CERO プロパティの値と、ErrorMessage の文字列をクライアントサイドに送るためにアダプタを用意します。ポイントはDataAnnotationModelValidator を利用している点ですね。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Web.Mvc;

namespace CustomValidationSample.Models
{
public class CEROAdapter : DataAnnotationsModelValidator<CEROAttribute>
{
string message;
char cero;

public CEROAdapter(ModelMetadata metadata, ControllerContext context, CEROAttribute attribute)
: base(metadata, context, attribute)
{
// パラメタとエラーメッセージ取り出し
cero = attribute.CERO;
message = attribute.ErrorMessage;
}

public override IEnumerable<ModelClientValidationRule> GetClientValidationRules()
{
// パラメタとエラーメッセージ格納
var rule = new ModelClientValidationRule
{
ErrorMessage = message,
ValidationType = "ceroAttribute"
};
rule.ValidationParameters.Add("CERO",cero);

return new[] {rule};
}
}
}

③クライアントサイドへ送る

Global.asax の Application_Start()内に アダプタ登録します。

1
2
3
4
5
6
7
8
        protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();

RegisterRoutes(RouteTable.Routes);

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(CEROAttribute), typeof(CEROAdapter));
}

これで、クライアントサイドにプロパティの値とエラーメッセージが送られます。

 

④クライアントサイドスクリプトの実装

渡されるのはプロパティの値とエラーメッセージだけなので検証のロジックを JavaScript で記載します。

その前に、クライアントサイドの検証を有効にするために次の構文を ViewPage に記載。

1
    <% Html.EnableClientValidation(); %>

後はスクリプトをゴリゴリ書くだけ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script>
<script type="text/javascript">
Sys.Mvc.ValidatorRegistry.validators["ceroAttribute"] = function (rule) {

var _cero = rule.ValidationParameters["CERO"];

return function (value, context) {
if (value == false) {
return true;
}

switch (_cero) {
case 'Z':
if (value < 18)
return false;
return true;
case 'D':
if (value < 17)
return false;
return true;
case 'C':
if (value < 15)
return false;
return true;
case 'B':
if (value < 12)
return false;
return true;
case 'A':
return true;
default:
return false;
}
};
}
</script>

実行結果は次の通り。作成するのに18歳以上じゃないとダメなユーザーとか…突っ込みは無しでお願いします(汗)

 

この方法では ASP.NET MVC 2 が既定で提供しているスクリプトでしか利用できません。せっかく Microsoft <3 jQuery だったり、 jQuery Validation が Scripts フォルダ内にいるのでそちらを流用する例も記載します。なお、jQuery Validation を利用したい場合は CodePlex 上の ASP.NET MVC 2 ページから ASP.NET MVC 2 Futures を落として、その中にある MicrosoftMvcJQueryValidation.js を追加しましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
    <%-- jQueryを使用する場合 --%>     
<script src="<%= Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.validate.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcJQueryValidation.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
jQuery.validator.addMethod("ceroAttribute", function (value,element,params) {
if (value == false) {
return true;
}

switch (params.CERO) {
case 'Z':
if (value < 18)
return false;
return true;
case 'D':
if (value < 17)
return false;
return true;
case 'C':
if (value < 15)
return false;
return true;
case 'B':
if (value < 12)
return false;
return true;
case 'A':
return true;
default:
return false;
}
})
});

</script>

実行結果は上と同じです。まぁ、好みの問題もあると思います。

 

ざっと書きましたが、この流れを知っておけば、サーバーサイドで複雑な検証を作成後、クライアントサイドでもそれを活用できる検証が実現できます。

属性作って、アダプタ作って、Global.asax に登録して、JavaScript を書く!このポイントを押さえて貰えれば実務でも応用できるのではないでしょうか。

 

ほぼコードの説明なし、詳細な説明なしという状態ですが、詳細が気になる方は冒頭にも記載したように CodeZine で公開予定の MVC 2 記事公開までお待ちいただければと思います。

投稿日時 投稿者 naoki | コメント数:1

VS 2010 で jQuery 使うなら jQuery Code Snippets を入れて開発生産性アップさせよう

jQuery Code Snippets for Visual Studio 2010

 

VS 2010 限定ではありますが、 jQuery 開発を強力にサポートする jQuery Code Sunippets が CodePlex にあります。

もう去年から MS 井上さんが投稿されているネタですので、ご存じの方も多いでしょう。

 

Visual Studio 2010 で jQuery のコード スニペットを使おう

 

私も知ってはいたんですが、そこまで jQuery ゴリゴリ書く機会も無かったので、手書きでいいやーとインストールまではしていませんでした。先週の OSC Hokkaido 2010 のセッションや SaCCS 勉強会(jQuery ハンズオンラボの回)に参加する中で実際にインストールしてみるとありえない開発生産性に驚愕。

 

VS 2010 入れてて、jQuery 少しでも使うならこれは入れておくべきです。

利用できるスニペットは 131 種類。どんなスニペットがあるかはこちらに一覧表として記載されています。

 

MS 製品ってだけで、.NET 開発者以外は敬遠するかもしれませんが、MS 井上さんが書いているように『jQuery コードスニペット以外にも、インテリセンスなど Visual Studio で jQuery を使うための便利な機能がありますので、jQuery とともに Visual Studio もご活用ください。』これ本当の事です。

インテリセンスの恩恵(CSS 含む)、JavaScript のデバッグなんかもできます。
意外に思うかもしれませんが ASP.NET 使わなくとも、ただの HTML ページ + jQuery 開発するだけでもこれらの機能は利用できます。

jQuery 開発のお供に 無償で使える Visual Web Developer + jQuery Code Snippets いかがでしょうか。

投稿日時 投稿者 naoki | コメント数:1

Active Directory の既定の設定で一般ユーザーがドメインに参加させる PC の上限 10台を変更する方法

インフラ作業の中でかなり長い間困って解決できていなかった問題としてタイトルの物が挙げられます。中小企業等ではこの問題にあたる方も多いでしょう。一番楽な解決方法として、ドメインアドミンの権限を持つユーザーで PC を追加する事です(ドメインアドミンの場合無制限に追加できる為)。

本日開催されている Tech Fielders セミナー System Center 祭り に参加して、講師の安納さんに質問したところ直ぐに回答を頂けました。

さらには、Blog 投稿までして下さいました。

 

【Active Directory】一般ユーザーがドメインに参加させられるPCの数は10台

 

安納さんの投稿にもありますが、10台以上に解放することも、1台に規制することもできるようになります。覚えておいて損はしない Tips だと思います。

安納さんありがとうございました。さっそく明日以降に試してみますー!!

 

投稿日時 投稿者 naoki | コメント数:0

Microsoft Silverlight 4 Tools for Visual Studio 2010 公開ー

Silverlight 4 の日本語版開発環境がついに出ました!ダウンロードセンターからダウンロードできます。

 

Microsoft Silverlight 4 Tools for Visual Studio 2010

 

Beta や RC はちょっと・・・と思っていた方もいよいよ Silverlight 4 開発を楽しめますね。ただ、タイトル通りですが、VS 2010 専用です。 VS 2008 では、 Silverlight 4 開発ができないのには注意が必要です。

ブラウザ外実行等も試していないのでそのあたりも含めて Silverlight 開発に挑戦してみたいと思います(ちょっと真面目に Silverlight 開発に取り組みそうなので…)。

投稿日時 投稿者 naoki | コメント数:0
続きを見る 次のページ »