MVVM

07Oct13

Apakah ini pengganti MVC? Menurutku sih nggak. MVVM dan MVC bisa dikolaborasikan. Tujuan penggunaannya juga berbeda. MVVM kepanjangan dari Model-View-ViewModel. MVVM itu tujuannya untuk memaintain bisnis logic dari sisi client. Sedangkan MVC mengontrol logic di sisi server.

ViewModel sebagai data container yang menangani  model yang ditampilkan si view dan event yang di-binding si view.  View model sebagai penghubung model dengan view. Kalau view, itu seperti HTML biasa. Model itu, representasi data yang digunakan.

</pre>
<script type="text/javascript" src="@Url.Content("~/Scripts/knockout-2.3.0.js")"></script>

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-2.0.3.min.js")"></script>

//viewmodel

<script type="text/javascript">

var cthviewModel = {

Name: ko.observable('bejo'),

buttonClicked: function () {

alert(cthviewModel.Name());

}

};

$(function() {

ko.applyBindings(cthviewModel);

});

</script>

//view

<input type="text" data-bind="value: Name" />

<input type="button" data-bind="click: buttonClicked" />

//Model
 class ContohModel{
 public string Name{set;get;}
 }
<pre>

NB: Contoh diatas menggunakan knockout.js,jquery, dan MVC .NET.

Banyak yang bilang, kalau MVVM ini cocoknya untuk skala besar. Berdasarkan gugling, menurutku tujuan MVVM ini sebenarnya me-manage event  yang ada di view lebih terstruktur. Bayangin aja kalau si view gak perlu update model dan yang hanya  ada eventnya hanya onclick, kita mesti pake ini di semua view, agak ribet juga ya gak?  Semoga gak jadi semantic duffussion. CMIIW. 😀

Advertisements


No Responses Yet to “MVVM”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: