Kembali ke ASP.Net Webforms dari ASP.Net MVC. Rekomendasikan pola / arsitektur?

12

Bagi banyak dari Anda ini akan terdengar seperti pertanyaan konyol, tapi saya bertanya karena saya memiliki sedikit pengalaman atau tidak dengan ASP.Net Webforms - saya langsung menuju ke ASP.Net MVC.

Saya sekarang sedang mengerjakan proyek di mana kami terbatas pada .Net 2.0 dan Visual Studio 2005.

Saya menyukai pemisahan yang bersih dari kekhawatiran ketika bekerja dengan ASP.Net MVC, dan saya sedang mencari sesuatu untuk membuat bentuk web lebih tak tertahankan. Apakah ada pola atau praktik yang disarankan untuk orang yang lebih suka asp.net MVC, tetapi terjebak di .net 2.0 dan visual studio 2005?

Terima kasih
sumber
Terima kasih untuk semua saran kalian - semoga saya bisa memilih lebih dari satu jawaban.
jlnorsworthy
1
Saya berharap bahwa tugas baru Anda hanya untuk proyek yang sudah ada dan bukan sesuatu yang dimulai dari awal. Ada banyak hal dasar di mana Anda akan menjadi tergantung pada yang akan hilang seperti menggunakan Linq untuk pertanyaan sederhana pada koleksi. Frustrasi besar akan datang dari melihat HTML yang dihasilkan dan melihat bahwa itu tidak seperti yang Anda harapkan. Semoga beruntung, dan saya harap Anda berhasil.
Chris

Jawaban:

7

Saya akan merekomendasikan Model View Presenter (MVP). Kami menggunakan ini pada aplikasi WebForms baru-baru ini dan itu meningkatkan kemampuan uji kami dan memungkinkan kami untuk menegakkan pemisahan kekhawatiran.

http://msdn.microsoft.com/en-us/magazine/cc188690.aspx adalah artikel hebat oleh Jean Paul Boodhoo tentang pola ini; download kode juga bagus. Anda mungkin menemukan Anda tidak membutuhkan DTO dan antarmuka untuk DTO.

Artikel bagus lainnya adalah artikel ini di codeproject.com: http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx

Sunting: ada juga kerangka kerja yang disebut WebForms MVP tapi saya tidak tahu banyak tentang itu.

Ciaran
sumber
Webvorms MVP terlihat sangat keren, tetapi proyek tersebut tampaknya macet (rilis terakhir pada 07/10). Tidak ada banyak dokumentasi atau tutorial yang tersedia
jlnorsworthy
Tampaknya juga membutuhkan. NET 3.5 SP1 jadi mungkin tidak terlalu berguna untuk Anda. Namun, sampel dan sumber dapat membantu Anda mengevaluasi pola MVP.
Ciaran
Poin bagusnya, aku bahkan tidak menyadarinya. Saya akan mengawasi proyek itu jika saya harus melakukan webform dengan perusahaan yang memiliki teknologi terkini :)
jlnorsworthy
4

Saya akan merekomendasikan bagi Anda untuk memahami siklus hidup halaman .net 2.0

Video-video ini mungkin layak ditonton meskipun tidak semua gratis tetapi setidaknya ini akan menjadi awal yang baik untuk Anda .... Masalahnya adalah ini akan memberi Anda ide tentang apa yang harus diteliti lebih lanjut di kemudian hari.

Carls Jr.
sumber
3

Seperti yang mungkin sudah Anda temukan sekarang bahwa Anda perlu menghapus beberapa hal yang telah Anda pelajari dengan ASP.NET MVC (btw - hal yang sama terjadi ketika orang ASP.NET bergabung untuk mempelajari ASP.NET MVC). Anda masih dapat menerapkan pola MVC di ASP.NET tetapi pemisahan View and Model sangat kabur di ASP.NET karena arsitektur posting / page post back arsitektur.

Menurut pendapat saya, Sebagian besar pembelajaran baru Anda akan terkait dengan Page Life Cycle dan Eventing & Controls. Interaksi Sesi, Cache, ViewState, dan DB yang biasa tetap sama.

HTH ...

sajoshi
sumber
2

Pola Checkout Front Controller dan Menerapkan Front Controller di Asp.Net. Lakukan hal-hal ini hanya jika proyek Anda akan berukuran baik. Melakukan ini untuk proyek kecil tidak akan membenarkan ROI.

Dalam proyek kecil Anda dapat mencoba mengatur beberapa pedoman. Misalnya - Tidak ada logika bisnis, tidak ada sesi digunakan dll dalam kode di belakang.

Lihat apa yang paling cocok untuk Anda. Bagaimanapun, tahan godaan untuk melakukan rekayasa.

Pradeep
sumber
0

Kembali di hari-hari gelap. NET 1.1 Saya membuat (saya kira seperti semua orang) semacam sistem MVC untuk aplikasi yang berjalan seperti ini.

Sebuah halaman dibuat untuk menjadi semacam master 'palsu'. Ini memiliki beberapa saluran untuk menampilkan menu, skrip, gaya, dll.

'Tampilan' adalah kontrol pengguna individu.

Ada tabel dengan informasi tentang setiap tampilan. Misalnya, 'Produk' akan dimuat ~/Controls/Product.ascxke placeholder. Tabel juga memiliki bidang yang berisi nama tipe kelas model (seolah-olah). Setiap model menerapkan antarmuka yang terkenal. Kelas ini dipakai menggunakan Activator.CreateInstance()dan dipanggil untuk menginisialisasi, dan kemudian diteruskan ke kontrol itu sendiri (inversi kontrol?). Kontrol kemudian memanggil berbagai metode untuk mendapatkan dataset atau yang lainnya. Antarmuka itu sendiri dinormalisasi untuk memiliki metode CRUD biasa (Baca / Tulis / Daftar / Hapus). Ada juga lapisan DAL / ORM di bawah ini.

Itu tidak cantik, tapi itu bekerja dengan baik. Mudah untuk menguji dan mengembangkan, dan sebagian besar pengembang yang datang akan menangkap cukup cepat. Yang terutama, itu relatif sederhana untuk dibuat.

kprobst
sumber