私はしばらくの間asp.net mvcをやっていて、最近このtechdays tutorialに出会いました。
これは非常に興味深いように思えましたが、似たようなことをどのように始めればよいのか、ちょっと混乱しました。
現在、私はで作られたWebアプリケーションを持っています
1. Jquery
2. Asp.net mvc 3 razor
3. Nhibernate
私のアプリケーションは、基本的にいくつかのタブを持つ 1 つのページであり、すべてが ajax と jquery モデル ダイアログによって制御されます。
私は自分のもののためにパターン化されたこれに従いました
View -> View Model -> Controller -> Service layer (別のライブラリ内) -> nhibernate
[HttpGet]
public ActionResult Courses()
{
// get all courses back from service layer
// automap domain results to view model
return View(vm);
}
[HttpPost]
public ActionResult CreateCourse(CourseFormViewModel vm)
{
// check if data meets basic validation
if (ModelState.IsValid)
{
//map back to domain object
// send to service layer
// return data back view through json.
return Json(data);
}
// return errors back to server
return Json(wrapper);
}
// 基本的な検証を含むビュー モデル
public class CourseFormViewModel
{
public int CourseId { get; set; }
[Required(ErrorMessage = "Course name is required")]
[StringLength(40, ErrorMessage = "Course name cannot be this long.")]
public string CourseName { get; set; }
}
// 意見
私のビューには、ビュー モデルを使用する厳密に型指定された HTML ヘルプがほとんど含まれています。
// Javascript
前述したように、私は多くの Ajax を使用しています。ほとんどの場合、serliazeArray を使用してから、データをコントローラの Action Result(CreateCourse) にポストし、次にビュー モデルの値をバインドします。
// サービス層
私のサービス レイヤーでは、いくつかのビジネス ロジックを実行し、必要に応じて nhibernate を使用してデータベースに保存します。必要に応じてドメイン転送オブジェクトを作成します。それ以外の場合は、ドメイン オブジェクトを使用します。
私は最近、jquery のモバイルと電話のギャップを調べていました。このテクノロジーを使用するプロジェクトに参加したのですが、非常に便利なようでした。私はasp.net mvcに非常に精通しているので、ミックスでmvcを使用できるかどうかを調べ始めたとき、この投稿の上部に投稿したビデオに出くわしました。
たとえば、私が現在作成している個人的なプロジェクトを見て、それのモバイル バージョンを作成したい場合、アプリケーションは、データを表示する際にまったく異なるものにする必要があります。ユーザー。
たとえば、私の Web アプリケーションには、すべてを表示するために多くのスペースが必要なだけのテーブルがあり、おそらくモバイルでは見栄えがよくありません。これにより、テーブルをトリミングするか、別の表示方法を考えなければならなくなります (おそらく私はそうするでしょう)。
Steve が作成したものがすべてのモバイル デバイスで動作するという事実が気に入っています。彼が行っていることに似たものを試してみたいと思っていますが、私が作成するバージョンはモバイル デバイスとおそらく小さなタブレット用です。
1024 以上の解像度をサポートできる他のすべてのものは、現在の Web アプリケーションを使用する必要があると思います。
どこから始めればいいのか、自分が使っているものに合わせる方法がわからないだけです。
彼は webapi と Entity フレームワークを使用していますが、これを nhibernate で機能させるにはどうすればよいですか?
ビューモデルはもう使わないのですか? 彼は自分のドメイン モデルを接続して、それをすべてビューに送信したようです。私はビューモデルが好きなので、それについてあまり夢中ではありません。
彼は Knockout.js と、データをサーバーに送り返すために使用するボタンへのバインドなど、すべてのバインド要素を使用します。それはいいことですが、jquery ダイアログや独自のボタンを生成するものを使用している場合はどうなりますか。これらの場合、どのようにノックアウトをフックしますか?
彼は自分のプロジェクトを取り、phonegap のようなものを使ってそれを市場に出すことができると述べています。phone gap は html/javascript/css しかサポートしていないので、彼が asp.net mvc コードを使用している場合、どうすればそれができるでしょうか?