ASP.NET MVC Preview2に少しだけ触って思った3つの事

1.属性を付けなくても良くなったのは楽だ

  最初は属性が必要で、後のバージョンで属性がいらなくなるプロダクト、前にもあったような・・・

  そんな事を思いつつ、まぁ、Publicにすれば良いので楽と言えば楽。

  でも、個人的には結構、属性を付加するモデルも好きなんだけど。

2. ASP.NETのPostbackを利用したプログラミングモデルが使えないから困った

  ページに対してポストバックするわけじゃないので当たり前といえば当たり前。

  まだ、そんなに触っていないので間違っているかもしれないんだけど、Validator等がうまく利用できないなぁと。

3.私が担当する業務システムで無理に利用する事も無いなぁ

  ASP.NET MVCで作った方が良いのは、ショップ系とかブログ系とかといったステートレスなサイトかなと思った。

  URLの文字列が重要(SEOな意味)で、どこからでもアクセスできるような。

  旧来の業務システムをwebで作成する場合は、通常のASP.NETのプログラミングモデルを利用した方が良いと思った。

  

とりあえず、数時間触ったくらいの、ファーストインプレッションとしてはこんなもの。

ソースコードも公開されているので、いろいろと参考にしたい。(URL周りとか)

Share

ASP.NET 3.5 MVC Preview 2をインストールした。

ちなみにアンインストール→インストールで動きはしましたが、テンプレは前のバージョンを継承しているようなので、

手間がかかりますが、再度前回と同じ事を繰り返した方がいいかもしれません(MVCではなくExtensions Page)。

あとMVCが必要な場合は、やはりMVC Preview 2をインストールする必要がありそうです。

ASP.NET 3.5 Extensions Preview リフレッシュリリース – NAL-6295の舌先三寸

という事だったので、MVC Preview2もインストールした。

構成は同じだけど、属性を設定しなくても良くなっていたり、サンプルページが変更されていたりと結構変わってますね。

ちなみに、

ASP.NET3.5 Extensions Preview

MVC Preview 2

Silverlight Tools Beta 1 for Visual Studio 2008

のダウンロードは下記から

Where can I find these new features?

ASP.NET 3.5 Extensions Preview : The Official Microsoft ASP.NET Site

Share

ASP.NET 3.5 Extensions Preview リフレッシュリリース

予想通り ASP.NET 3.5 Extensions Preview が MIX08 と同時にリリースされています。

まだ、ASP.NET 開発チームの紹介はされていませんが、直ぐにされるでしょう。

ナオキにASP.NET(仮) : ASP.NET 3.5 Extensions Preview リフレッシュリリース

ナオキさんのところ経由、ASP.NET 3.5 Extensions Previewが新しくなったようです。

MVC Frameworkは確か、そこそこ変わっているはずなので(属性を使わなくなった等)、差し替えないと。

単純にアンインストール、インストールでよいのかな。

Share

id:naoki0311さんのおかげで、MVC Frameworkのテンプレートが表示されるようになった。

id:naoki0311 2008/02/29 09:46 ああ、単純に今までの経験則なので、確実にそうなるとは限りませんよー。

Atlasとかがだいたい2?3か月に一度リフレッシュされていたのでそろそろかなと。

ちなみに、日本語環境でも

http://cs.gogo-asp.net/blogs/naoki/archive/2008/01/08/VS-2008-_E5652C679E8A48726730_-MVC-_D730ED30B830A730AF30C830C630F330D730EC30FC30C83092302952287567304D305F30_.aspx

を参照して頂ければテンプレートは表示されます。良かったら参考にしてくださいー。

ASP.NET MVC Frameworkは気になるんだけど、自作のFrameworkも捨てがたい – NAL-6295の舌先三寸

ありがとうございます。

テンプレートはC#のみで、VB.NETはまだ無いんですね。

ちょっと見てみた感じだと、Modelの部分はLINQ to SQLで実装されているけど、ここはそうじゃなくちゃいけないわけではなさそうだ。特にModelフォルダの下にある必要もなさそう。

自作フレームワークのUI部分だけ捨てて、ViewとControllerの部分だけをうまく利用してみるのも面白いかも。

でも、ちょっと眺めてみただけで、まだ何もコードも書いてないからなぁ。

やっぱり、駄目かもしれないし。とりあえず触ってみようかな。

Share

ASP.NET MVC Frameworkは気になるんだけど、自作のFrameworkも捨てがたい

ASP.NET 3.5 Extensionsは、2008年公開予定のASP.NET 3.5・ADO.NETに組み込まれる。ASP.NET 3.5は、MVCによる開発スタイルを初めて採用、Web開発者にとってなじみのあるアプリケーション開発が行えるようになっている。

CodeZine:MVCに対応した「ASP.NET 3.5 Extensions Preview版」リリース(Ajax)

というわけで、評価・検証していかないとなぁ。

自作のFrameworkよりもメリットがあるようなら、その部分について、取り込んでいかないと。

正式版が出るころには、なんらかの回答が出るとよいな。

Share

BlogEngine.NETを入れてみた

BlogEngine.NETを新しいサーバに入れてみた。

どうも、検索フォームだけエラーになる。

あと、削除系がうまくいかない。というか無反応。

思わずblogsというフォルダにしたけど、複数のブログを展開できるようには出来ていないっぽい。

このあたりはCommunity Serverに利があるか。

でも、手軽にブログをレンタルサーバではじめるには楽だと思った。

追記:

削除系はいつのまにかうまくいくようになった。

どうやってトラックバックをsendするのかよくわからないなぁ。

Share

responseHeaderEncodingは開発サーバには適用されない。

Visual Studio2005の話です。

ASP.NET2.0以降、ダウンロードファイルのファイル名に日本語を使いたい場合web.configのglobalizationの設定でresponseHeaderEncodingをshift-jisにした上で、UrlEncodingしないでファイル名を設定する必要がある。

だが、IISではなく開発サーバでデバッグすると、reponseHeaderEncodingが適用されないで、文字化けする結果となる。

Share

今更ながらSessionをInProcで持つのはやめましょうという話

正直なところ、

「SessionをInProcで利用してはいけない。」

というのは、誰もが知っている常識だと思っていたが、最近、仕事の中で案外そうでもない事に気づかされたので、あらためて解説します。

解説するのは以下の2点

1.なぜInProcで管理してはいけないのか。

2.どのタイミングでInProc以外にするべきなのか。

です。

まず最初に、「1.なぜInProcで管理してはいけないのか。」について解説します。

ASP.NETのプロセスは、ある条件(IISにて設定できる。経過時間だったり、特定の時間だったり、消費メモリ量だったり)に基づいて自動的に再起動するようになっています。

再起動するということは、プロセスに保持していた内容も最初からという事になります。

ということは、InProc(SessionをASP.NETのプロセス内で管理する。)だと、Sessionの内容が消去されてしまいます。

その仕組みを知らないままだと、知らないがゆえの原因不明のバグ(突然セッションの内容が消えた等・・・)に悩まされることになります。

特に開発時は発生しないためそのままリリースしてしまい、運用に入ってから突然発生して驚かされるという事になります。

そのため、SessionのモードはInProc以外(StateServerやSQLServerを利用して、プロセス外に保持するようにする。)を適用するようにしたいところです。

では続いて、「2.どのタイミングでInProc以外にするべきなのか。」について解説します。

最初に結論から述べると、

「開発の初期から。つまり最初から。」

となります。

ではなぜ最初からInProc以外にする必要があるのでしょうか。

それは、以下の2点

1.InProc以外のモードはシリアライズ可能なオブジェクトしか管理できない。

2.InProc以外のモードはSessionのEndイベントが発生しない。

について、InProcとそれ以外のモードでは動作が違うからです。

そのため、最初からInProc以外のモードを前提として開発していないと、いざ運用に入ってから

「シリアライズ可能じゃないから、セッションで管理できない。」

といった、例外が発生して、大幅な手戻り(セッションで管理しているオブジェクトがシリアライズ可能になるようにしなくてはいけない。)が発生する可能性や

「SessionのEndイベントが発生する前提で設計してしまった。」

といった事態が起きて設計の変更という手戻りが発生するが出てきます。

本来、最初からInProc以外のモードを前提としていれば、発生しない手戻りなわけです。

以上の事からも、

「運用時に利用するセッションのモードで最初から開発を行うべき。」

だという事が言えます。

今更感のあるエントリですが、あらためて解説してみました。

Share

ASP.NET AJAX 1.0がリリースされたようです。

ナオキさんのブログで発見しました。

遂に ASP.NET AJAX がリリースされました。今まで製品版では無かったから手が出なかったと言う方も製品版になった今だからこそ触れて見てはいかがでしょう?

ナオキにASP.NET(仮) : ASP.NET AJAX 1.0 リリース!

ダウンロードはこちらから可能です。

仕事は当分1.1ベースなので、使えませんが、ちょこちょこいじっていこうかと思います。

Share