none
(Sumber: milist DOTNET) Kolaborasi MVC & Component, bagaimana cara bekerjanya?

    Question

  •  

    Hi semua,

    Saya penasaran bahwa di ASP digabungkan antara MVC dan Visual Component

    sesuai konsep MVC, request user dihandle oleh controller, baru kemudian menghubungi Model dan dilempar ke View

    sementara di component based, misal Grid
    ketika kita sudah menempel sebuah Grid, maka barang sudah jadi,
    dimana interaksi user dengan grid sudah terjadi begitu saja,
    tanpa harus membuat Controller secara eksplisit

    sebenarnya bagaimana sih konsep ini bekerja?
    seingga visual component bisa berkolaborasi dengan MVC?

    terima kasih atas pencerahannya


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:42 AM
    Moderator

Answers

  •  

    coba bantu menambahkan ,

    1. gunakan third party component yg versi MVC. bukan versi webform

    2. component hanya pembungkus , yang sebenarnya terdiri dari CSS + JS.

    3. untuk component seperti grid , biasa nya menggunakan ajax. 

    memanggil controller MVC ketika button dalam component itu di click

    misalkan ketika click next page pada grid , component itu menggunakan javascript, memanggil controller , biasa nya output berupa json

    kesimpulannya , cara kerja seperti jQuery , cuma penggunaan nya lebih mudah

    Dijawab oleh: Edwin Bernadus


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:45 AM
    Moderator

All replies

  •  

    pada MVC, ketika kita menulis View (file2 yg ber-extensi cshtml, aspx, dll). sebenarnya kita mendefinisikan metadata untuk nanti kemudian dibaca oleh parser (RazorViewEngine, WebFormViewEngine, third party : Spark, NHaml, Brail, NVelocity ).

    misalnya dengan sintax razor kita menulis : <div>@Html.TextBox("Firstname")<div />; atau dengan WebForms sintax kita menulis : <div><%=Html.TextBox("Firstname");%><div />

    maka ketika runtime sintax tersebut akan dibaca oleh parser dan kemudian dia akan mengenerate sebuah file cs, atau vb untuk kemudian dicompile, lalu pada proses akhir dia juga akan mengenerate file html berdasarkan metadata yg kita definisikan di View. Bisa dikatakan dengan kata lain bahwa View itu sebenarnya adalah template. yg akan menjadi dasar bagi MVC untuk mengenerate file cs/vb dan file html.

    pada WebForms saya kurang tau cara kerjanya bagaimana, tapi saya rasa prosesnya kurang lebih sama. 

    intinya sintax2 yg terdapat pada file aspx atau view, yg kita tulis ataupun digenerate secara otomatis oleh VS. sebenarnya hanyalah metadata yg pada saat runtime akan ditransform oleh parser menjadi sintax2 html.

    saya enggak ngerti maksud dari pertantanyaan anda yg ini : "sebenarnya bagaimana sih konsep ini bekerja?

    seingga visual component bisa berkolaborasi dengan MVC?"

    Dijawab oleh: Agus Syaputra


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:44 AM
    Moderator
  •  

    coba bantu menambahkan ,

    1. gunakan third party component yg versi MVC. bukan versi webform

    2. component hanya pembungkus , yang sebenarnya terdiri dari CSS + JS.

    3. untuk component seperti grid , biasa nya menggunakan ajax. 

    memanggil controller MVC ketika button dalam component itu di click

    misalkan ketika click next page pada grid , component itu menggunakan javascript, memanggil controller , biasa nya output berupa json

    kesimpulannya , cara kerja seperti jQuery , cuma penggunaan nya lebih mudah

    Dijawab oleh: Edwin Bernadus


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:45 AM
    Moderator
  •  

    apakah di sini controller untuk paging didefinisikan  secara explisit?
    jika ya bukankah konsep component nya jadi kurang berfungsi
    karena ketika kita menempel component
    bukankah paging, secrolling, searching sudah otomatis, sesuai konfigurasi yang ada?

    tetapi kalau controller tidak perlu didefinisikan secara explisit, bagaimana cara kerjanya?
    maksudnya controller hanya dipakai untuk load grid pertama kali saja.

    terima kasih


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:46 AM
    Moderator
  •  

    saya bingung membaca pertanyaan anda, sebelumnya mungkin kita harus kita luruskan dulu.

    controller itu adanya cuma di MVC. kalau di Webform enggak ada yg namanya controller. MVC itu sebenarnya adalah design pattern. 

    dan ASP.Net MVC itu adalah framework untuk membantu membuat web yg merupakan realisasi dari MVC design pattern.

    tujuan utama dari MVC design pattern adalah separation of concern. yaitu code yg berisi bisnis logic seharusnya tidak disatukan dengan code untuk mengatur tampilan (presentation). Controller berususan dengan bisnis logic sedangkan View hanya berurusan dengan tampilan. kalau pada layer View anda mendefiniskan jQuery UI misalnya. maka dia enggak ada hubungannya dengan controller, karena seharusnya dia hanya berususan dengan layer View (presentation).

    seperti yg saya sebut sebelumnya pada MVC halaman aspx itu sebenarnya adalah template, yg akan dibaca oleh asp.net pada saat runtime. pada mvc, asp.net akan membaca template tersebut untuk meng-create halaman html.

    pada ASP.Net webform konsep controller enggak ada, karena salah satu fitur Webform yg juga menjadi kelemahannya dibanding MVC adalah dia mengadopsi event-driven programming model, seperti windows form. 

    kalau pada asp.net webform saya kurang tau detailnya bagaimana. 

    tapi sebagai gambaran kalau anda heran kenapa grid pada asp.net webform bisa berjalan secara otomatis, mungkin bisa dibayangkan seperti grid pada windows form, yaitu sebenarnya banyak code yang di create di belakang layar. ketika anda men-drag control ke halaman aspx, maka sebenarnya VS men-generate metadata(tag2 asp) di file aspx tersebut. dan pada saat runtime, asp.net akan membaca file aspx tersebut lalu membuat class2 dan kemudian memanggil method2 untuk mengisi grid pada halaman aspx tersebut.

    kalau mau tau behind the scene pada asp.net coba cari di google : asp.net webforms request processing pipeline atau asp.net mvc request  processing pipeline 

    Dijawab oleh: Agus Syaputra


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:47 AM
    Moderator
  •  

    ngobrol dengan contoh aja :

    ASP.NET web form (ada process editing)

    kalau diperhatikan , pada code behind , banyak code yang harus di tulis di event

    http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/templateformupdate/defaultcs.aspx

    ASP.NET MVC , read only , ada paging.

    setiap perubahan , menggunakan ajax , panggil  ulang controller. 

    refresh bagian table saja http://demos.telerik.com/aspnet-mvc/razor/Grid

    kedua nya memiliki persamaan,

    kalau grid read only saja , coding nya ga akan ribet. kalau grid update data , pasti coding jauh lebih complex

    yang paling penting mengerti filosofi nya web form (yang bukan MVP pattern) , sifat nya drag and drop.

    susah di unit test. tidak transparant.

    asp.net MVC , component berbentuk html syntax dan javascript.

    unit test lebih mudah. transparant. 

    Dijawab oleh: Edwin Bernadus


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:49 AM
    Moderator
  •  

    Sekedar menambahkan

    Contoh implementasi Grid dalam ASP.NET MVC bisa dilihat disini: http://mvccontrib.codeplex.com/ Atau lebih jelasnya disini: http://mvccontrib.codeplex.com/wikipage?title=Grid&referringTitle=Documentation

    Dari situ nanti bisa dipahami cara kerja antara WebForm dengan MVC

    Dijawab oleh: Roni Kurniawan


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, February 07, 2012 5:50 AM
    Moderator