Keuntungan terbesar menggunakan ASP.Net MVC vs formulir web

164

Apa saja keuntungan menggunakan salah satu dari yang lain?

pengguna18931
sumber

Jawaban:

165

Keuntungan utama dari ASP.net MVC adalah:

  1. Mengaktifkan kontrol penuh atas HTML yang diberikan.

  2. Memberikan pemisahan yang bersih dari keprihatinan (SoC).

  3. Mengaktifkan Test Driven Development (TDD) .

  4. Integrasi yang mudah dengan kerangka kerja JavaScript.

  5. Mengikuti desain web tanpa kewarganegaraan.

  6. URL tenang yang memungkinkan SEO.

  7. Tidak ada acara ViewState dan PostBack

Keuntungan utama dari Formulir Web ASP.net adalah:

  1. Ini menyediakan pengembangan RAD

  2. Model pengembangan mudah untuk pengembang yang berasal dari pengembangan winform.

cvs
sumber
32
Mengenai SoC, orang dapat mengacaukannya seperti yang biasa mereka lakukan di formulir web, dengan menulis pengontrol "gemuk" dengan banyak logika bisnis atau bahkan kode akses data di dalamnya. Jadi saya akan mengatakan SoC adalah sesuatu yang harus disediakan oleh coder, fw tidak bisa membantu.
rodbv
7
@ rodbv: Sangat benar, tetapi MVC memang mendorong Anda ke arah yang benar, atau setidaknya tidak membuat Anda melompat melewati lingkaran untuk melakukannya. Jadi mungkin saat itu harus membaca sesuatu seperti 'membuat SoC lebih mudah diimplementasikan'
Erik van Brakel
4
Bagaimana cara "Mengaktifkan Pengembangan Didorong Uji Coba" atas metode lain apa pun? Saya juga bingung bagaimana memungkinkan url RESTful ketika HttpContext.RewritePath Metode (String) telah ada sejak. NET 2.0?
Mark Broadhurst
2
Sementara poin-poin ini sebagian besar akurat untuk sisi MVC, banyak dari mereka sedang diintegrasikan ke dalam WebForms sekarang.
rtpHarry
Tautan ke sumber jawaban ini dengan detail lebih lanjut: weblogs.asp.net/shijuvarghese/archive/2008/07/09/…
DK.
91

Formulir Web ASP.NET dan MVC adalah dua kerangka kerja web yang dikembangkan oleh Microsoft - keduanya merupakan pilihan yang baik. Tidak satu pun dari kerangka kerja web yang akan diganti oleh yang lain juga tidak ada rencana untuk membuatnya 'digabungkan' ke dalam kerangka kerja tunggal. Dukungan dan pengembangan berkelanjutan dilakukan secara paralel oleh Microsoft dan tidak akan 'hilang'.

Masing-masing kerangka kerja web ini menawarkan keuntungan / kerugian - beberapa di antaranya perlu dipertimbangkan ketika mengembangkan aplikasi web. Aplikasi web dapat dikembangkan menggunakan salah satu teknologi - mungkin membuat pengembangan untuk aplikasi tertentu lebih mudah memilih satu teknologi dibandingkan yang lain dan sebaliknya.

Formulir Web ASP.NET:

  • Status dukungan pengembangan • Memberikan ilusi bahwa aplikasi web mengetahui apa yang telah dilakukan pengguna, mirip dengan aplikasi Windows. Yaitu Membuat fungsionalitas 'penyihir' sedikit lebih mudah untuk diterapkan. Formulir web melakukan pekerjaan besar dalam menyembunyikan banyak kerumitan dari pengembang.
  • Rapid Application Development (RAD) • Kemampuan untuk hanya 'melompat' dan mulai mengirimkan formulir web. Ini diperdebatkan oleh beberapa komunitas MVC, tetapi didorong oleh Microsoft. Pada akhirnya, ia turun ke tingkat keahlian pengembang dan apa yang mereka sukai. Model formulir web mungkin memiliki sedikit kurva pembelajaran untuk pengembang yang kurang berpengalaman.
  • Toolbox kontrol yang lebih besar • Formulir Web ASP.NET menawarkan toolbox yang jauh lebih besar dan lebih kuat (kontrol web) sedangkan MVC menawarkan set kontrol yang lebih primitif lebih mengandalkan kontrol sisi klien yang kaya melalui jQuery (Javascript).
  • Dewasa • Sudah ada sejak tahun 2002 dan ada banyak informasi mengenai pertanyaan, masalah, dll. Menawarkan lebih banyak kontrol pihak ketiga - perlu mempertimbangkan toolkit yang ada.

ASP.NET MVC:

  • Pemisahan keprihatinan (SoC) • Dari sudut pandang teknis, pengorganisasian kode dalam MVC sangat bersih, teratur, dan granular, membuatnya lebih mudah (semoga) untuk aplikasi web untuk skala dalam hal fungsi. Mempromosikan desain yang bagus dari sudut pandang pengembangan.
  • Integrasi yang lebih mudah dengan alat sisi klien (alat antarmuka pengguna yang kaya) • Lebih dari sebelumnya, aplikasi web semakin kaya seperti aplikasi yang Anda lihat di desktop Anda. Dengan MVC, ini memberi Anda kemampuan untuk berintegrasi dengan toolkit tersebut (seperti jQuery) dengan lebih mudah dan lebih mulus daripada di Formulir Web.
  • Search Engine Optimization (SEO) Friendly / Stateless • URL lebih ramah ke mesin pencari (yaitu mywebapplication.com/users/ 1 - mengambil pengguna dengan ID 1 vs mywebapplication / users / getuser.aspx (id diteruskan dalam sesi)). Demikian pula, karena MVC tidak memiliki kewarganegaraan, ini menghilangkan sakit kepala pengguna yang menelurkan banyak browser web dari jendela yang sama (tabrakan sesi). Sejalan dengan itu, MVC menganut protokol web tanpa kewarganegaraan alih-alih 'melawan' itu.
  • Bekerja dengan baik dengan pengembang yang membutuhkan kontrol tingkat tinggi • Banyak kontrol dalam formulir web ASP.NET secara otomatis menghasilkan banyak HTML mentah yang Anda lihat ketika halaman dirender. Ini dapat menyebabkan sakit kepala bagi pengembang. Dengan MVC, itu cocok untuk memiliki kontrol penuh dengan apa yang diberikan dan tidak ada kejutan. Yang lebih penting, adalah bahwa formulir HTML biasanya jauh lebih kecil daripada formulir Web yang dapat disamakan dengan peningkatan kinerja - sesuatu yang perlu dipertimbangkan secara serius.
  • Test Driven Development (TDD) • Dengan MVC, Anda dapat lebih mudah membuat tes untuk sisi web. Lapisan pengujian tambahan akan memberikan lapisan pertahanan lain terhadap perilaku yang tidak terduga.

Otentikasi, otorisasi, konfigurasi, kompilasi, dan penyebaran adalah semua fitur yang dibagi di antara dua kerangka kerja web.

JC
sumber
27
"Dengan MVC, Anda memiliki kontrol penuh atas apa yang dirender" - Anda juga dapat memiliki kontrol penuh dengan WebForms jika Anda menggunakan Literal alih-alih Label, Placeholder alih-alih Panel, Repeater, bukan Datagrids, dll. Terlalu banyak pengembang membaca pernyataan seperti ini dan percaya itu benar. Downvote ..
masty
3
@ Nyonya - Saya tidak tahu bahwa saya pribadi akan menurunkan suara, tapi saya setuju dengan apa yang Anda katakan.
Peter
4
@masty - Terima kasih karena telah menyelamatkan dunia StackOverflow dengan melakukan nitpicking dan meminta pertanyaan ini diturunkan. Saya mengedit jawaban saya hanya untuk Anda - jadi semoga saya bisa mendapatkan suara Anda kembali bersama semua orang yang Anda minta untuk membatalkannya. Terima kasih!
JC
6
@ masty Saya setuju sebagian, tetapi ketika menggunakan literal, placeholder, dan repeater, Anda memindahkan lebih banyak html ke codebehind. Yang juga dapat menyebabkan kebingungan bagi desainer membaca .aspx, dan untuk coders membaca .aspx.cs Jadi ya itu mungkin, tapi ya, itu juga mengalahkan tujuan ASP.Net WebForms. Saya akan mengatakan bahwa ControlAdapters adalah solusi yang lebih bersih dalam hal ini. Alih-alih mengganti kontrol, Anda mengganti cara mereka diberikan.
Aidiakapi
2
Pernyataan "Dengan MVC, Anda memiliki kendali penuh atas apa yang dirender" bingung. Saya pikir pernyataan yang lebih baik adalah, "Kerangka kerja MVC mengurangi rendering dan apa yang dirender lebih ramping. Anda diberi lebih banyak kontrol atas HTML / CSS spesifik yang diberikan, tetapi Anda harus melakukan pekerjaan untuk mendapatkan kontrol itu."
kingdango
17

Siapa pun yang cukup tua untuk mengingat ASP klasik akan mengingat mimpi buruk membuka halaman dengan kode yang dicampur dengan html dan javascript - bahkan halaman terkecil adalah rasa sakit untuk mencari tahu apa sih yang dilakukannya. Aku bisa saja salah, dan kuharap begitu, tapi MVC sepertinya kembali ke masa lalu yang buruk.

Ketika ASP.Net datang itu dipuji sebagai penyelamat, memisahkan kode dari konten dan memungkinkan kita untuk memiliki desainer web membuat html dan coders bekerja pada kode di belakang. Jika kami tidak ingin menggunakan kondisi tampilan, kami mematikannya. Jika kami tidak ingin menggunakan kode di belakang karena suatu alasan, kami dapat menempatkan kode kami di dalam html seperti ASP klasik. Jika kami tidak ingin menggunakan PostBack, kami dialihkan ke halaman lain untuk diproses. Jika kami tidak ingin menggunakan kontrol ASP.Net, kami menggunakan kontrol html standar. Kami bahkan dapat menginterogasi objek Respons jika kami tidak ingin menggunakan ASP.Net runat = "server" pada kontrol kami.

Sekarang seseorang dengan kebijaksanaan luar biasa (mungkin seseorang yang tidak pernah memprogram ASP klasik) telah memutuskan saatnya untuk kembali ke masa pencampuran kode dengan konten dan menyebutnya "pemisahan kepedulian". Tentu, Anda dapat membuat html bersih, tetapi Anda bisa dengan ASP klasik. Mengatakan "Anda tidak memprogram dengan benar jika Anda memiliki terlalu banyak kode di dalam pandangan Anda" sama dengan mengatakan "jika Anda menulis kode yang terstruktur dan berkomentar dengan baik di ASP klasik, itu jauh lebih bersih dan lebih baik daripada ASP.NET"

Jika saya ingin kembali ke pencampuran kode dengan konten saya akan melihat pengembangan menggunakan PHP yang memiliki lingkungan yang jauh lebih matang untuk pengembangan semacam itu. Jika ada begitu banyak masalah dengan ASP.NET maka mengapa tidak memperbaiki masalah itu?

Terakhir, mesin Razor yang baru berarti lebih sulit membedakan antara html dan kode. Setidaknya kita bisa mencari tag pembuka dan penutup yaitu <% dan%> di ASP tetapi sekarang satu-satunya indikasi adalah simbol @.

Mungkin sudah waktunya untuk pindah ke PHP dan menunggu 10 tahun lagi bagi seseorang untuk memisahkan kode dari konten sekali lagi.

Kevin Farrow
sumber
7
+1 Tempat di. Reaksi pertama saya terhadap MVC adalah saya melakukan Classic ASP lagi; hanya dalam C # kali ini bukan VBScript.
DancesWithBamboo
3
Saya kagum pada mengapa jawaban ini mendapat banyak upvotes ini. Pertama, ASP.NET MVC memiliki pemisahan MVC built in. Tentu saja, Anda dapat melakukannya di ASP. Kedua, ASP.NET MVC jauh lebih dari ASP klasik. Ini menawarkan kontrol halus atas HTML yang dikombinasikan dengan kekuatan .NET disertai dengan banyak pembantu yang berguna. Ketiga, @ adalah notasi yang bagus, seperti <%%>. Editor yang layak untuk tampilan Razor Anda akan mendukung @ -notation. Terakhir, PHP sudah matang? me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design ASP.NET MVC adalah platform yang hebat. Berikan lebih banyak perhatian.
JP ten Berge
Apakah kamu bercanda? Saya telah menggunakan PHP dengan notasi "<? ...?>" Dan menemukannya benar-benar verbose. Saya tidak melihat bagaimana simbol "@" lebih sulit dikenali dari pada tag "<% ...%>". Plus Anda jarang menggunakan simbol "@" di templat HTML.
Eksegesis
Mata saya dapat beristirahat lebih baik pada halaman silet daripada pada simbol "<%%>". Membaca halaman .aspx membuat saya sakit kepala. Saya juga lebih suka melihat apa yang sedang diberikan. Blok @foreach (..) {<tr> ... </tr>} membuat saya merasa lebih nyaman daripada blok <abc: MyViewControl ID = "..." runat = "server" DatasourceID = ".... "/>. Saya melakukan banyak manipulasi sisi klien dan saya perlu tahu persis apa yang akan diberikan di mana, dan dengan mana id, gaya dan kelas. Saya lebih suka melakukannya sendiri daripada membiarkan kontrol melakukannya dengan cepat. Terutama ketika beberapa kontrol diberikan berbeda tergantung pada pengaturannya.
Thanasis Ioannidis
Saya terkejut ini memiliki upvotes, ini adalah kesalahpahaman total kerangka kerja MVC. Jika Anda menemukan diri Anda mencampur kode dengan konten di MVC, Anda salah melakukannya. Tampilan Anda memiliki konten, controller Anda (dan kelas yang mereka gunakan) memiliki kode. Itu salah satu prinsip utama MVC.
Josh Noe
14

Jika Anda bekerja dengan pengembang lain, seperti PHP atau JSP (dan saya kira rails) - Anda akan memiliki waktu yang jauh lebih mudah mengonversi atau berkolaborasi pada halaman karena Anda tidak akan memiliki semua ASP.NET 'jahat' mereka. acara dan kontrol di mana-mana.

Simon_Weaver
sumber
"jauh lebih mudah" menggunakan yang mana?
cregox
5
@cawas - lebih mudah dengan MVC. tidak ada acara di ASP.NET MVC. pada dasarnya Anda berurusan dengan HTML dan css standar dan tidak banyak acara dan kontrol yang perlu dipelajari oleh pengembang PHP / JSP
Simon_Weaver
ASP.NET adalah basis untuk WebForms dan MVC. Orang-orang cenderung membingungkan WebForms dengan ASP.NET. Tidak ada "MVC vs ASP.NET". Ada "ASP.NET MVS" vs "ASP.NET WebForms". Dan sebenarnya mereka tidak saling bertarung. Mereka hanya cara yang berbeda dengan pro dan kontra yang berbeda, untuk membangun situs web
Thanasis Ioannidis
13

Masalah dengan MVC adalah bahwa bahkan untuk "ahli" itu memakan banyak waktu yang berharga dan membutuhkan banyak usaha. Bisnis didorong oleh hal dasar "Solusi Cepat yang berfungsi" terlepas dari teknologi di baliknya. WebForms adalah teknologi RAD yang menghemat waktu dan uang. Apa pun yang membutuhkan lebih banyak waktu tidak dapat diterima oleh bisnis.

Merc
sumber
1
+1 untuk Bisnis didorong oleh hal dasar "Solusi Cepat yang berfungsi"
Dragos Durlut
1
Masalahnya adalah ketika beberapa solusi cepat tidak berfungsi karena mereka dimaksudkan untuk cepat. Pengalaman terbaru: Halaman webforms cepat untuk melakukan beberapa pembaruan buat-edit-dasar. Itu seharusnya "lebih cepat" daripada halaman equiveland infopath yang agak lambat. Sebenarnya solusi baru memiliki kinerja yang hampir sama dengan halaman infopath, kecuali di IE7 itu sangat lambat sampai tidak berguna. 5 detik untuk membuka halaman, dan 5 detik setiap kali kotak kombo diklik ... Semua itu, hanya karena itu harus cepat. Tanpa pikiran, tanpa perencanaan.
Thanasis Ioannidis
1
Setelah itu, kami akhirnya menghapus semua kontrol untuk menyingkirkan skrip sisi klien yang berat dan tidak perlu, dan akhirnya membuat kontrol html manual dengan data dan acara yang di-boot, dan kombinasi jQuery dan BackBone.js. Ini sebenarnya adalah pendekatan MVC yang dihosting di halaman webforms. Tentu saja, dengan perencanaan yang baik dan WebForms dan MVC keduanya dapat bekerja dengan sangat baik, tetapi WebForms menggoda Anda untuk hanya melemparkan kontrol di halaman Anda hanya untuk melihat sesuatu bergerak di layar Anda, dan kemudian Anda menghabiskan lebih banyak waktu men-tweak itu, jika tidak menghapusnya sama sekali.
Thanasis Ioannidis
11
  1. AJAX yang tepat, mis. JSON Menghasilkan tidak ada halaman postback omong kosong.
  2. tidak ada kondisi tampilan +1
  3. Tidak mengganti nama ID HTML.
  4. Bersihkan HTML = tanpa mengasapi dan memiliki hasil yang layak dalam merender halaman XHTML atau standar.
  5. Tidak ada lagi javascript AXD yang dihasilkan.
Francis Shanahan
sumber
9

Keuntungan tunggal terbesar bagi saya adalah pemisahan yang jelas antara lapisan Model, View, dan Controller Anda. Ini membantu mempromosikan desain yang baik sejak awal.

Matthew Ruston
sumber
4
Saya setuju ini adalah titik penjualan utama jika Anda belum pernah bekerja dengan pola jenis ini sebelumnya, tetapi Anda dapat menerapkan pola MVC atau MVP Anda di WebForms. Pujian untuk membuat orang beralih ke pola daripada memonolkan formulir web dengan kumpulan data, tetapi mereka bukan tipe orang yang biasanya saya pekerjakan.
Mark Broadhurst
9

Saya belum melihat kelebihan APAPUN di MVC dibandingkan dengan ASP.Net. 10 tahun yang lalu Microsoft datang dengan UIP (User Interface Process) sebagai jawaban untuk MVC. Itu gagal. Kami melakukan proyek besar (4 pengembang, 2 desainer, 1 tester) dengan UIP saat itu dan itu adalah mimpi buruk belaka.

Jangan hanya ikut-ikutan demi Hype. Semua keuntungan yang tercantum di atas sudah tersedia di Asp.Net (Dengan tweak lebih hebat [ Fitur baru di Asp.Net 4 ] di Asp.Net 4).

Jika tim pengembangan Anda atau keluarga pengembang tunggal dengan Asp.Net hanya bertahan dan membuat produk yang indah dengan cepat untuk memuaskan klien Anda (yang membayar untuk jam kerja Anda). MVC akan menghabiskan waktu berharga Anda dan menghasilkan hasil yang sama seperti Asp.Net :-)

Krish Van Colombo
sumber
1
Menonaktifkan kondisi tampilan secara default sambil mengaktifkannya pada kontrol sesekali yang benar-benar membutuhkannya adalah langkah maju yang bagus di ASP.NET 4.
PeteT
Baik WebForms dan MVC dibangun di atas ASP.NET.
Thanasis Ioannidis
8

Francis Shanahan,

  1. Mengapa Anda menyebut postback parsial sebagai "omong kosong"? Ini adalah fitur inti dari Ajax dan telah digunakan dengan sangat baik dalam kerangka Atlas dan kontrol pihak ketiga yang luar biasa seperti Telerik

  2. Saya setuju dengan pendapat Anda tentang kondisi tampilan. Tetapi jika pengembang berhati-hati untuk menonaktifkan kondisi tampilan, ini dapat sangat mengurangi ukuran HTML yang dirender sehingga halaman menjadi ringan.

  3. Hanya kontrol Server HTML yang diubah namanya dalam model Formulir Web ASP.NET dan bukan kontrol html murni. Apa pun itu, mengapa Anda begitu khawatir jika penggantian nama dilakukan? Saya tahu Anda ingin berurusan dengan banyak peristiwa javascript di sisi klien tetapi jika Anda mendesain halaman web Anda dengan cerdas, Anda pasti bisa mendapatkan semua id yang Anda inginkan

  4. Bahkan Formulir Web ASP.NET memenuhi Standar XHTML dan saya tidak melihat kembung. Ini bukan alasan mengapa kita membutuhkan pola MVC

  5. Sekali lagi, mengapa Anda terganggu dengan AXD Javascript? Mengapa itu menyakitimu? Ini bukan pembenaran yang valid lagi

Sejauh ini, saya penggemar pengembangan aplikasi menggunakan formulir Web ASP.NET klasik. Misalnya: Jika Anda ingin mengikat dropdownlist atau gridview, Anda memerlukan maksimum 30 menit dan tidak lebih dari 20 baris kode (tentu saja minimal). Tetapi dalam kasus MVC, bicaralah dengan pengembang betapa menyakitkannya itu.

Kelemahan terbesar dari MVC adalah kita akan kembali ke masa ASP. Ingat kode spaghetti untuk menggabungkan kode Server dan HTML ??? Ya Tuhan, coba baca halaman MVC aspx yang dicampur dengan javascript, HTML, JQuery, CSS, tag Server dan apa yang tidak .... Siapa saja yang bisa menjawab pertanyaan ini?

Ganesha
sumber
6
Postback sebagian adalah kludge yang jelek
UpTheCreek
3
Jika Anda memiliki banyak kode dalam pandangan Anda maka Anda melakukan sesuatu yang salah. Kode dalam tampilan seharusnya hanya menyangkut tata letak.
UpTheCreek
1
Satu-satunya alasan Anda akan melihat halaman dengan javascript dicampur dengan css dan html adalah jika Anda melihat karya pengembang yang malas yang tidak dapat diganggu dengan gaya dan skrip yang terpisah. Ini bisa terjadi dalam bentuk web DAN mvc. Saya setuju bahwa tag skrip jelek, tetapi dengan MVC3 mereka yakin tidak lagi, dan setidaknya Anda dapat melihat apa yang terjadi tanpa melihat kode di balik file dan menemukan titik di mana kontrol adalah databound ...
jcvandan
Juga jika Anda membuat kode spaghetti menggunakan MVC Anda tidak mematuhi pemisahan prinsipal keprihatinan dan tidak menggunakan model arsitektur yang bagus
jcvandan
1
Dengan menggunakan keduanya, saya dapat mengatakan bahwa tidak ada yang lebih berantakan daripada WebForms. MVC bersih, kecuali untuk tag server, tetapi selain itu, semua kekacauan adalah kesalahan programmer yang buruk. MVC dirancang oleh inti untuk memisahkan logika dari desain. Anda juga menyebut Telerik. Telerik untuk ASP.Net AJAX menyebabkan kode berantakan. Belum lagi kecepatan, (mengaduk) menyortir kotak telerik membutuhkan: 500ms untuk 4 halaman di ASP.Net WebForms, membutuhkan 200ms untuk 84 halaman di MVC. (Diuji menggunakan demo dan pembakar mereka untuk chrome.) Ketika datang ke kinerja dan pemisahan, MVC pasti menang.
Aidiakapi
6

Formulir web juga mendapat manfaat dari kematangan yang lebih besar dan dukungan dari penyedia kontrol pihak ketiga seperti Telerik.

Timbo
sumber
2
Tidak mengatakan itu tidak dapat dilakukan dengan MVC, karena saya yakin sudah, tetapi jika Anda ingin menampar aplikasi intranet atau ekstranet yang cepat dan kotor dengan banyak bling Telerik dan WebForms sulit dikalahkan. Lenyaplah, ini kebenaran yang jujur.
infocyde
Telerik memiliki kontrol MVC juga (lebih sedikit, dan dengan lebih sedikit opsi, tetapi mereka memilikinya), dan mereka BANYAK lebih cepat daripada varian WebForm mereka.
Aidiakapi
5

Dalam formulir web, Anda juga dapat merender hampir seluruh html dengan tangan, kecuali beberapa tag seperti kondisi tampilan, validasi acara, dan yang serupa, yang dapat dihapus dengan PageAdapters. Tidak ada yang memaksa Anda untuk menggunakan GridView atau kontrol sisi server lain yang memiliki output rendering html yang buruk.

Saya akan mengatakan bahwa keuntungan terbesar dari MVC adalah SPEED!

Berikutnya adalah pemisahan paksa yang dipaksakan. Tapi itu tidak melarang Anda untuk memasukkan seluruh logika BL dan DAL di dalam Controller / Action! Ini hanya pemisahan tampilan, yang dapat dilakukan juga dalam format web (pola MVP misalnya). Banyak hal yang orang sebutkan untuk MVC dapat dilakukan dalam format web, tetapi dengan beberapa upaya tambahan.
Perbedaan utama adalah bahwa permintaan datang ke controller, bukan view, dan kedua layer itu dipisahkan, tidak terhubung melalui kelas parsial seperti dalam formulir web (aspx + kode di belakang)

Hrvoje Hudo
sumber
Apakah maksud Anda kecepatan pengembangan atau kecepatan eksekusi?
Jules
1
Terutama saat menggunakan telerik dengan MVC. Dari demo mereka, menyortir kotak membutuhkan: 500 ms untuk 4 halaman (WebForms), 200ms untuk 84 halaman (MVC). Apa yang bagi saya preferensi MVC (meskipun kami menggunakan WebForms di perusahaan saya, pikir kami sedang mempertimbangkan untuk beralih) adalah, adalah lebih bersih, Anda memiliki pandangan, di mana Anda menyesuaikan output Anda, model Anda, di mana Anda mengacaukan data: P, dan pengontrol Anda yang menggabungkan semuanya
Aidiakapi
4

2 sen saya:

  • Formulir ASP.net sangat bagus untuk Pengembangan aplikasi yang cepat dan menambah nilai bisnis dengan cepat. Saya masih menggunakannya untuk sebagian besar aplikasi intranet.
  • MVC sangat bagus untuk Optimasi Mesin Pencari saat Anda mengontrol URL dan HTML secara lebih luas
  • MVC umumnya menghasilkan halaman yang jauh lebih ramping - tanpa kondisi tampilan dan pembersih HTML = waktu pemuatan cepat
  • MVC mudah untuk melakukan cache bagian halaman. -MVC menyenangkan untuk ditulis: - pendapat pribadi ;-)
Nicholas
sumber
3

MVC memungkinkan Anda memiliki lebih dari satu formulir pada satu halaman, Fitur kecil yang saya tahu tetapi berguna!

Juga pola MVC yang saya rasa membuat kode lebih mudah dipelihara, khususnya. ketika Anda mengunjungi kembali setelah beberapa bulan.

Badam
sumber
2
ASP.NET Webforms memungkinkan Anda memiliki sebanyak mungkin formulir pada halaman yang diinginkan.
Batasannya
1
@AndreiRinea Saya pikir maksudnya adalah: P, tidak ada banyak gunanya dalam runat="server"bentuk non- tag ketika Anda masih ingin menggunakan formulir web, dan karena Anda tidak bisa / tidak boleh membuat bentuk sarang, saya pikir agak jelas apa yang ia maksudkan :)
Aidiakapi
2

Pengontrol MVC:

    [HttpGet]
    public ActionResult DetailList(ImportDetailSearchModel model)
    {
        Data.ImportDataAccess ida = new Data.ImportDataAccess();
        List<Data.ImportDetailData> data = ida.GetImportDetails(model.FileId, model.FailuresOnly);

        return PartialView("ImportSummaryDetailPartial", data);
    }

Tampilan MVC:

<table class="sortable">
<thead>
    <tr><th>Unique Id</th><th class="left">Error Type</th><th class="left">Field</th><th class="left">Message</th><th class="left">State</th></tr>
</thead>
<tbody>
    @foreach (Data.ImportDetailData detail in Model)
    {
    <tr><th>@detail.UniqueID</th><th class="left">@detail.ErrorType</th><th class="left">@detail.FieldName</th><th class="left">@detail.Message</th><th class="left">@detail.ItemState</th></tr>
    }
</tbody></table>

Seberapa keras itu? Tanpa kondisi tampilan, siklus hidup Halaman BS ... Hanya kode efisien murni.

Jason
sumber
1

Saya dapat melihat dua keuntungan hanya untuk situs yang lebih kecil: 6) URL tenang yang memungkinkan SEO. 7) Tidak ada acara ViewState dan PostBack (dan kinerja yang lebih baik secara umum)

Pengujian untuk situs kecil tidak menjadi masalah, juga tidak ada keuntungan desain ketika situs dikodekan dengan benar, MVC dalam banyak hal mengaburkan dan membuat perubahan lebih sulit untuk dibuat. Saya masih memutuskan apakah keuntungan ini sepadan.

Saya dapat dengan jelas melihat keuntungan MVC di situs multi-developer yang lebih besar.

Rod Rye
sumber
1

Manfaat utama yang saya temukan adalah memaksa proyek menjadi strcuture yang lebih dapat diuji. Ini bisa dengan mudah dilakukan dengan webforms juga (pola MVP), tetapi mengharuskan pengembang untuk memiliki pemahaman tentang ini, banyak yang tidak.

Bentuk web dan MVC keduanya alat yang layak, keduanya unggul di bidang yang berbeda.

Saya pribadi menggunakan formulir web karena kami terutama mengembangkan aplikasi B2B / LOB. Tetapi kami selalu melakukannya dengan pola MVP yang kami dapat mencapai 95% cakupan kode untuk pengujian unit kami. Ini juga memungkinkan kita untuk mengotomatiskan pengujian pada properti dari nilai properti webcontrols yang diekspos melalui tampilan misalnya

bool IMyView.IsAdminSectionVisible{
       get{return pnlAdmin.Visible;}
       get{pnlAdmin.Visible=value;}
    }

) Saya tidak berpikir tingkat pengujian ini mudah dicapai di MVC, tanpa mencemari model saya.

En.
sumber
0

Anda tidak merasa sedih untuk menggunakan 'kontrol non-post-back' lagi - dan mencari cara untuk menghancurkan mereka ke lingkungan asp.net tradisional.

Ini berarti bahwa kontrol javascript modern (gratis untuk digunakan) seperti ini atau ini atau ini semua dapat digunakan tanpa mencoba menyesuaikan pasak bundar dalam nuansa lubang persegi.

Simon_Weaver
sumber
0

Kontrol javascript modern serta permintaan JSON dapat ditangani dengan lebih mudah menggunakan MVC. Di sana kita dapat menggunakan banyak mekanisme lain untuk mengirim data dari satu tindakan ke tindakan lain. Itu sebabnya kami lebih suka MVC daripada formulir web. Kami juga dapat membuat halaman yang ringan.

Prasanth
sumber
0

Pendapat pribadi saya adalah bahwa, Kelemahan terbesar menggunakan ASP.Net MVC adalah yang CODE BLOCKSdicampur dengan HTML...
html neraka untuk pengembang yang mempertahankannya ...

Nitin Sawant
sumber