Apakah disarankan untuk memprogram aplikasi .net dengan C ++

9

Dari apa yang saya bisa mengerti, C # adalah bahasa defacto saat coding aplikasi .NET. Apakah direkomendasikan untuk memprogram aplikasi .NET [biarkan itu ASP.NET, WinPhone 7, GUI, dll] di C ++? Apa jebakan dan kelemahannya jika kita memilih untuk menempuh jalan ini?

Terima kasih telah berbagi.

Joshua Partogi
sumber
3
C ++ / CLI berbeda dari sisa bahasa .NET, karena menghasilkan majelis mode campuran (yang membatasi kemungkinan penggunaannya dengan parah). Sebaiknya gunakan hanya bahasa yang sesuai dengan CLI, kecuali jika Anda benar-benar ingin memiliki interoperabilitas yang rumit dengan basis kode C ++ yang tidak dikelola.
SK-logic

Jawaban:

16

Sebagai programmer lama yang menggunakan C ++ sampai saya pindah ke C # /. Net saran saya adalah jangan menggunakan C ++ untuk pengembangan .Net. Sebenarnya Anda tidak dapat menggunakan C ++ nyata untuk memprogram dalam. Net tetapi kekejian microsoft yang disebut C ++ / CLI dengan keburukan yang tidak ditemukan dalam ISO C ++. Saya akan mengatakan hanya dari sudut pandang keterbacaan C ++ / CLI tidak boleh dianggap sama sekali. Apakah Anda ingin menggunakan _gc, gcnew dll.
Juga untuk tujuan praktis Anda tidak akan menemukan banyak contoh kode, tutorial, blog, dll. Menggunakan C ++ / CLI, dan Anda juga tidak akan menemukan programmer yang mengetahui atau mau bekerja di C ++ / CLI. Ini bukan bahasa alami untuk pengembangan .Net. C # / VB.Net / F # akan terus berubah lebih cepat dengan fitur-fitur baru dibandingkan dengan C ++ / CLI.

softveda
sumber
C ++ dengan kelas yang dikelola menyedihkan, tetapi C ++ / CLI jauh lebih baik. Saya tidak membeli bit "bahasa alami" karena itu sebenarnya tidak terlalu sulit bagi seorang programmer C ++ untuk belajar C ++ / CLI. Setidaknya bukan untukku. Tidak kecuali Anda sangat bergantung pada sampel kode untuk pengkodean. Dan Microsoft tidak pernah bermaksud agar standar C ++ / CLI menjadi pesaing bagi standar C ++ 0x yang baru. Mereka dimaksudkan untuk dua hal yang berbeda. Mengingat bahwa C ++ / CLI telah ada selama 3-4 tahun sekarang dan standar ISO baru siap untuk rilis sekarang, saya pikir itu adalah hal yang wajar untuk dilakukan MS.
DPD
2
C ++ / CLI melayani tujuannya dengan baik. Ini dirancang untuk lapisan interop kecil antara dunia yang dikelola dan tidak dikelola. Tidak bijaksana untuk menggunakannya untuk apa pun selain itu.
SK-logic
Yah saya sedang menggunakannya untuk proyek baru. Bukan untuk interoperabilitas, tidak untuk membungkus perpustakaan asli, dari awal. Satu-satunya masalah yang saya miliki adalah waktu awal yang diperlukan untuk membiasakan diri dengan sintaksis C ++ / CLI dan kerangka Dot Net, yang saya percaya, jauh lebih sedikit daripada waktu yang dibutuhkan untuk membiasakan diri dengan C #. Yah semua orang punya pengalaman sendiri. Jadi untuk masing-masing :-)
DPD
2
@DPD - Saya tidak melihat tipe proyek C ++ / CLI untuk ASP.NET (MVC), LINQ, EF, ODATA dll di Visual Studio 2010. Jadi, bahkan jika mungkin untuk melakukan hal di atas, akan sulit tanpa tooling dukungan, kurangnya dokumentasi dll. Jadi saya tetap berpegang pada pendapat saya bahwa C ++ / CLI bukan warga negara kelas satu di dunia .Net.
softveda
12

Ide dari .Net adalah bahwa Anda dapat menggunakan bahasa apa pun yang sudah Anda sukai dan menggunakan platform DotNet tanpa harus belajar bahasa baru lagi. Salah satu cara memandangnya adalah sebagai inversi dari piramida Jawa. Java dapat dijelaskan sebagai "OS tunggal-executable tunggal (IL) -banyak OS". dot net adalah "banyak bahasa-satu yang dapat dieksekusi-satu OS" (tentu saja bit satu-OS salah karena kita memiliki Mono tetapi saya tidak berpikir itu yang ada dalam pikiran Microsoft: -P).

Ya C # dimaksudkan sebagai bahasa untuk DotNet, tetapi tidak "THE ONLY". Microsoft mungkin berharap untuk mendapatkan programmer C ++ untuk bermigrasi ke C # dalam jangka panjang, jika tidak segera. Tapi itu sepertinya tidak terjadi. C ++ masih merupakan bahasa terpopuler ketiga. Faimiliaritas dengan bahasa dan upaya yang dibutuhkan untuk port aplikasi dari C ++ ke C # telah membuat sebagian besar pengembang enggan. Lagi pula, mengapa memperbaiki sesuatu yang tidak rusak? Itu sebabnya Microsoft datang dengan C ++ / CLI. Ini adalah cara yang luar biasa untuk mendapatkan programmer C ++ di kereta DotNet tanpa harus belajar bahasa baru. Butuh sedikit waktu untuk membiasakan diri dengan C ++ / CLI. Satu-satunya kelemahan yang saya lihat adalah notasi pointer baru untuk kelas yang dikelola dapat membingungkan mereka yang memiliki pemahaman yang lemah tentang pointer di C ++. Tidak memengaruhi saya.

DPD
sumber
2
Kelemahan utama untuk C ++ / CLI adalah bahwa ia sangat berbeda dari standar C ++, karena beberapa konstruksi C ++ tidak mentransfer ke CLI sama sekali dengan baik. SK-logic juga mengklaim bahwa itu tidak berfungsi dengan mulus dengan .NET, jadi saya sarankan menghindarinya.
David Thornley
9

Saya tidak melihat apa manfaatnya. Manfaat utama C ++ adalah kode kinerja asli, level rendah, mandiri / asli. Setelah Anda menggunakan lingkungan yang dikelola dan semua bagasi yang dibawa, saya tidak bisa melihat mengapa Anda tidak ingin bahasa yang lebih modern yang dirancang untuk lingkungan yang dikelola.

dsimcha
sumber