Mengapa dunia .NET tidak memiliki apa pun seperti rails / grails / django / roo? [Tutup]

10

Tampaknya bagi saya bahwa platform web perkembangan cepat akan secara radikal mengubah dunia aplikasi web.

Sudah lima tahun sejak Rails 1.0 dirilis untuk Ruby, dan sejak saat itu kita telah melihat Grails untuk Groovy, Django untuk Python, dan Roo untuk Java.

Tapi setahu saya (yang mungkin terbatas, menjadi progammer Java / Groovy) tidak ada kerangka kerja yang sama untuk C #.

Apakah hal semacam itu ada? Jika tidak, mengapa tidak?

Sunting: Sangat mungkin saya tidak menggunakan kata-kata yang tepat ketika saya mengatakan "pengembangan cepat," tapi saya sedang berbicara tentang kerangka kerja yang memungkinkan Anda untuk membangun mesin blog yang berfungsi dalam 30 menit. Anda tidak bisa melakukan ini secara wajar dengan, katakanlah, Java, Spring, dan Hibernate, mengingat berbagai konfigurasi yang diperlukan untuk memungkinkan pengontrol Anda ditemukan, dan kedua konfigurasi dan kode yang diperlukan agar entitas Anda bertahan dan diambil.

Jadi saya berbicara tentang kerangka kerja yang menangani semua CRUD dengan mentalitas konvensi-konfigurasi. Jika seseorang memiliki kata-kata yang tepat untuk apa yang saya bicarakan, beri tahu saya.

Eric Wilson
sumber

Jawaban:

5

Sepertinya saya belum ada nama untuk kerangka kerja seperti ini yang Anda semua bicarakan di utas ini. Saya menyebut mereka untuk saat ini hanya Kerangka Kerja seperti KERETA : Kerangka kerja yang meningkatkan produktivitas dengan mengatur kerangka kerja lain yang ada dengan tujuan memecahkan kebutuhan dasar sebagian besar aplikasi web, tetapi pada saat yang sama menyembunyikan semua kerumitan dari pengembang.

Maksud saya adalah implementasi Penyedia Kegigihan, Kontainer Ketiadaan Ketergantungan, alat Pencatatan, platform MVC, Engine Template HTML, Kit Starter Templat Situs Web dengan preset CSS, Kerangka Keamanan, dan beberapa Javascript Library untuk fitur AJAX dan hal keren lainnya. Kerangka kerja seperti KERETA API mengatur semua kerangka kerja dan alat-alat ini berdasarkan model Domain (entitas sistem Anda dengan atributnya).

Berkat prinsip Convention-over-Configuration, kerangka kerja ini menghindari perlunya mendefinisikan banyak file konfigurasi yang biasanya diperlukan oleh kerangka kerja yang mereka susun (seperti Spring, Spring MVC, Hibernate, Log4J, dll.), Dengan asumsi konfigurasi secara default berdasarkan penamaan , struktur dan metadata termasuk dalam definisi kelas yang sama.

Berkat bahasa dinamis yang digunakan kerangka kerja ini (seperti Ruby, Groovy, Python, Clojure, dll.), Dengan pengecualian SpringRoo yang mengimplementasikan perilaku dinamis di Jawa dengan menggunakan AspectJ, fungsionalitas yang termasuk dalam kerangka kerja di bawah diperluas dan dibuat tersedia untuk pengembang dengan cara yang seragam dan elegan sehingga dia hanya menyadari teknologi yang mendasarinya.

Akhirnya berkat teknik Scaffold, tes unit, tes integrasi, pengontrol, dan tampilan secara otomatis dihasilkan untuk fungsi utama (CRUD) atas masing-masing objek domain yang ditentukan oleh pengembang.

Di dunia .NET belum ada yang dikembangkan, mengikuti semua definisi sebelumnya. Tetapi tidak ada yang mencegah hal itu terjadi segera. Ada banyak kerangka kerja, alat, dan perpustakaan yang sudah tersedia di dunia .NET yang dapat diatur oleh kerangka kerja seperti KERETA API baru yang dibuat untuk CLR. Ada Unity, Spring.NET dan Castle Windsor antara lain untuk kebutuhan Ketergantungan Inyection. Entity Framework 4, NHibernate, dan iBatis.NET cukup bagus. Penyedia Persistensi NET. ASP.NET MVC telah dengan kuat tiba dengan dukungan untuk berbagai Mesin Templat selain ASP.NET tradisional.

Bahkan jika tidak ada orang yang berhasil menggunakan bahasa DLR untuk membangun kerangka kerja semacam ini, siapa pun yang memiliki cukup akan dapat mengikuti jalur SpringSource dan mengimplementasikan kerangka kerja seperti KERETA API dengan beberapa bahasa statis seperti F #, C # atau VB.NET, memanfaatkan Aspek -Oriented Container (seperti AspectSharp atau Gripper-LOOM.NET) untuk mendapatkan perilaku dinamis.

Saya ingin tahu tentang sekelompok orang yang mencoba mengembangkan kerangka kerja seperti itu di .NET.


sumber
4

Saya tidak tahu apa yang Anda maksud dengan "platform web pengembangan cepat". Definisi "perkembangan cepat" yang saya kenal tidak ada hubungannya dengan bahasa, paradigma, atau kerangka kerja, melainkan penggunaan prototipe cepat dan pengembangan berulang untuk menghasilkan suatu sistem. Bahasa atau kerangka kerja apa pun dapat digunakan dengan sama baiknya.

Saya belum pernah menggunakan Grails atau Roo sebelumnya, tetapi Django dan Rails keduanya adalah kerangka kerja MVC, jadi rekan mereka di .NET adalah ASP.NET MVC .

Thomas Owens
sumber
1
Yah, saya akan melihat ASP.NET MVC sebagai mitra Spring MVC. Dan untuk mengatakan bahwa Rails adalah kerangka kerja MVC seperti mengatakan bahwa Stackoverflow adalah situs QA, seperti pertukaran pakar. Ini adalah pernyataan yang benar, tetapi melewatkan fitur yang paling penting dan alasan keberhasilannya.
Eric Wilson
1
Tolong jelaskan "fitur yang paling penting". Rails tidak lebih dari kerangka kerja MVC untuk bahasa Ruby. Itu menangkap segala hal tentang itu.
Thomas Owens
2
Nah, Spring adalah kerangka kerja MVC untuk Jawa, tetapi tidak banyak membantu apa yang membuat Rails dan Grails hebat. Misalnya, dengan grails, setelah membuat objek domain, saya bisa mengetik grails generate-alldan grails menghasilkan pengontrol, tampilan, dan akan mengelola kegigihan.
Eric Wilson
3

Anda bisa masuk ke Visual Studio dan drag and drop kontrol pada halaman web dan menghubungkannya ke database dengan sedikit atau tanpa kode. Satu klik untuk menguji / melihat. Dan satu klik untuk mengunggah ke situs web (ok, masukkan kredensial).

Bukan berarti ini adalah cara yang paling sering digunakan atau bahkan direkomendasikan untuk melakukannya, tetapi sebenarnya tidak jauh lebih mudah dari ini.

JeffO
sumber
0

Karena aplikasi web .NET memiliki siklus pembuatan.

Ruby / Python adalah bahasa yang sangat gesit / gesit dan dinamis.

Di tempat saya bekerja, kami memiliki aplikasi web .NET yang besar, dan waktu kompilasi dapat dibandingkan dengan program C ++ menengah hingga besar.

Dalam cadangan saya, saya mengembangkan aplikasi web dengan python, dan waktu kompilasi adalah 0. Tidak ada langkah kompilasi sama sekali. Juru bahasa yang menjalankan hanya memuat kembali file .py saat Anda menyimpannya.

Hasen
sumber
1
Ya, aplikasi Java memiliki siklus build, tetapi Spring Roo masih berfungsi dengan baik untuk aplikasi Java / Spring. Jadi saya pikir ada masalah lain di sini.
Eric Wilson