X + + dirancang untuk menjadi superset dari Java dengan fitur akses data yang kuat. Dalam beberapa hal fitur akses data yang seperti LINQ, tapi jauh lebih tua dan dalam beberapa hal lebih kuat. Misalnya, X + + mendukung set berbasis manipulasi data melalui insert_recordset, update_recordset, dan kata kunci delete_from. Peta ini untuk Insert, Update, dan Delete pernyataan dalam SQL. Sementara ini menawarkan performa terbaik, Anda juga dapat menggunakan pendekatan hybrid yang menggabungkan set-berbasis akses dengan pernyataan imperative-style.
Pernyataan pada kode di atas " myTable.AmountMST + = 100 ; "
sebenarnya operasi berbasis set yang akan mempengaruhi semua record
yang cocok dengan klausa sebelumnya.
Perbedaan
lain adalah bahwa tidak seperti LINQ , yang bergantung pada objek proxy
yang dibuat dengan ORM , X + + memiliki real-time kompilasi akses ke
metadata database . Hal ini memungkinkan untuk pemeriksaan statis yang lebih ketat daripada C # atau VB.
Seperti banyak bahasa pemrograman , pada dasarnya X++ stack yang eksklusif . IDE
, compiler , Format p -code , dan penerjemah yang khusus untuk IBM
Axapta , produk yang akhirnya akan menjadi Microsoft Dynamics AX . X + + hampir selalu ditulis untuk instalasi spesifik Axapta , x++ bisa mengikat compiler langsung ke database . Ini berarti bahwa ketika seseorang mengakakses kelas tabel Pelanggan mereka benar-benar mengakses tabel Pelanggan .
Dimulai dengan Dynamics AX 2009 , X + + memperoleh compiler kedua dibangun di atas . NET stack. Hal ini menyebabkan beberapa masalah yang menarik . Seperti versi Visual Basic , X + + digunakan pengumpulan deterministik . Sayangnya
pengumpul itu mengakibatkan beberapa masalah kinerja yang
parah. Setelah itu mereka memutuskan untuk memanfaatkan salah satu di . NET runtime .
Pindah dari runtime eksklusif untuk . NET menimbulkan tantangan tersendiri . The
X + + tim tidak berpikir mereka bisa mendapatkan
dana untuk menulis ulang compiler dari end- to-end . Jadi, mereka mulai pada tingkat p -code . Compiler yang sama digunakan , tapi mereka malah menafsirkan p - kode kemudian menjalankan alat bantu yang mengkonversi ke kode IL . Keduanya p - kode dan IL adalah tumpukan berbasis bahasa sehingga hasil terjemahan mengherankan .
Selain pengumpulan deterministik , X + + juga kehilangan fitur client-server yang menarik . Seperti DCOM atau . NET Remoting , fitur di X + + bisa hidup pada kedua server dan klien pada saat yang sama . Setiap
metode client - side panggilan pada salah satu kelas ini kemudian akan
melakukan perjalanan melintasi eksekusi , memungkinkan untuk
beberapa desain arsitektur yang menarik . Sayangnya desain stateful ini skalanya tidak baik sehingga X + + tim ingin berhenti menggunakannya cara itu.
Di beberapa kasus X + + memiliki kelemahan dibandingkan Jawa . Sebagai
contoh, dalam sebuah kondisi " if" pernyataan tidak perlu menjadi
Boolean : bilangan bulat non - nol dan non -null dievaluasi
sebagai benar . Operator = akan mencoba untuk melakukan konversi implisit bahkan jika kehilangan data. Casting dari tipe dasar ke tipe turunan juga implisit sebelum AX 2012 .
Penanganan string di X + + berbeda juga. String dapat bekerja dengan baik dengan tanda dan perbandingan tunggal atau double- kutipan yang tidak sensitif . X + + tidak memiliki tipe data char, tapi satu dapat mendeklarasikan string tetap ukuran 1 . Seperti
kebanyakan bahasa berbasis - c , X + + tidak akan membuat kesalahan dengan
menggunakan operator tambahan untuk penggabungan . Seperti C # , string literal akan menggunakan backslash ( ) untuk escape sequence kecuali string diawali dengan tanda (@ ) .
Variabel lokal harus dideklarasikan sebelum pernyataan di X + + metode . Ini termasuk variabel lingkaran , membuat sintaks yang sedikit berbeda dari bahasa berbasis C lainnya . Sementara pernyataan yang sama dan mendukung terus dan istirahat .
Pernyataan switch di X + + mendukung beberapa nilai dan ekspresi untuk kasus-kasus . Setiap ekspresi konstan atau pada kasus tertentu dipisahkan dengan koma. X + + tidak mendukung rentang ( misalnya kasus > 5 ) , menempatkannya di antara VB dan C # dalam kurva daya .
X + + memiliki kedua enumerator dan iterator . Iterator
di X + + adalah seperti sebuah iterator di Jawa , tidak hanya itu x++ dapat
menavigasi juga dapat menambah dan menghapus item sebagai
kelanjutannya . X + + pencacah adalah seperti IEnumerator dalam . NET , adalah
pandangan read-only yang akan mengotori jika koleksi dimodifikasi .
Penanganan
kesalahan yang sebagian besar didasarkan pada penanganan eksepsi
terstruktur ditemukan di Jawa dan C # dengan tiga perbedaan penting . Sebuah
X + + pengecualian adalah benar-benar hanya kode kesalahan numerik
sehingga tidak memiliki informasi yang kaya ditemukan dalam
bahasa-bahasa tersebut . X + + juga memiliki pernyataan retry , yang secara efektif goto yang melompat ke awal dari blok try terdekat . Ini bisa sangat berguna untuk menangani kesalahan intermiten seperti kunci mati . X + + tidak memiliki akhirnya blok , yang bisa menjadi masalah
mengingat bahwa itu tidak lagi memiliki pengumpulan sampah deterministik
baik .
X + + mendukung warisan dan metode utama , tetapi tidak overloading . Untuk mensimulasikan overloading kita harus menggunakan parameter opsional . Seperti Jawa , metode yang virtual secara default , tetapi dapat disegel menggunakan " akhir " kata kunci .
Source: http://sixghadesign.vv.si
Tidak ada komentar:
Posting Komentar