Friday, June 29, 2007

Simple MVC Test Konsep

Pagi nie, sementara tengah tunggu file dari another group untuk buat automated test, saya cuba try simple coding konsep mvc. Bila try simple coding mcm nie lebih menjadikan kita faham akan sesuatu pattern itu. Tapi saya tak sure adakah konsep yang saya fikirkan nie betul atau pun tidak.

Pattern MVC terdiri dari tiga element, Model, View dan Controller. Controller akan menjadi raja dalm kes MVC, Controller akan manipulate data dari Model dan akan panggil which View untuk process seterusnya.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace MVC
{
public class Program
{
public static void Main(string[] args)
{
IndexController ic = new IndexController();

ic.Index();
ic.Save();

Console.ReadKey();
}
}

public class IndexController
{
Hashtable ht = new Hashtable();

PersonView pv = new PersonView();

public void Index()
{
Person p = new Person();
p.Name = "Azam";

ht.Add("name", p.Name);

string indexHtml = pv.IndexHtml();

indexHtml = indexHtml.Replace("$name", ht["name"].ToString());

Console.WriteLine(indexHtml);

}

public void Save()
{
ht.Add("save", "Record Has Been Saved");
string indexHtml = pv.SaveHtml();
indexHtml = indexHtml.Replace("$save", ht["save"].ToString());

Console.WriteLine(indexHtml);
}
}

public class Person
{
public string Name;
}

public class PersonView
{
public string IndexHtml()
{
return "Name :$name";
}

public string SaveHtml()
{
return "Save :$save";
}
}
}

Output:

Name: Azam
Save: Record Hass Been Saved


Code diatas memang simple dan itu hanya lah 0.1% dari MVC yang real. :)

2 comments:

Ikhwan Hayat said...

IMHO, kalau cara MVC biasa, controller tu (i.e IndexController) lebih molek dinamakan PersonController. Baru cukup person tu ada part M, V, dan C ..tapi not necessarily setiap domain object ada controllernya sendiri.. lebih kurang mcm konsep aggregate class dlm DDD (kot?)...

ryzam said...

ya, ya setuju sekali.... emm memang sepatutnya PersonController lah ekk :) thanks.. agak-agak mcm tu ek code MVC nyer konsep kot!!