AJAX
Saya pikir pertanyaan Anda bermuara pada, "Haruskah aplikasi web saya menghasilkan HTML di sisi klien atau di sisi server?" Generasi sisi klien berkomunikasi ke server menggunakan AJAX, meskipun X (XML) umumnya telah diganti dengan JSON, tetapi kebanyakan orang masih menyebutnya AJAX karena kedengarannya lebih baik. Sisi server, server hanya membuat HTML di server.
Saya memiliki banyak pengalaman dengan XML dan hampir tidak ada dengan JSON. Semua yang saya tahu tentang XML membuat saya menyarankan agar Anda menggunakan JSON jika memungkinkan.
Pro AJAX:
- Kirim lebih sedikit data melalui HTTP (S) sehingga mereka dapat berjalan lebih cepat.
- Server pada dasarnya adalah layanan web sehingga orang lain (atau Anda) dapat menulis klien mereka sendiri. Ini dapat membantu saat membuat versi seluler situs Anda. Juga, banyak penemuan menjadi populer karena alasan pencipta mereka tidak pernah bermaksud. Layanan lebih ramah kepada orang yang menemukan penggunaan baru untuk kode Anda.
- Sepertinya aplikasi yang lebih baru
AJAX Cons:
- JavaScript debugging
- Kompleksitas?
- Hal-hal yang dapat Anda lakukan dengan JavaScript seringkali sama sekali tidak mungkin digunakan oleh orang yang buta atau cacat.
- Mungkin memerlukan lebih banyak kode total (penyimpanan keseluruhan yang lebih besar pada perangkat tertanam Anda)
Server klien
Semua aplikasi web menggunakan arsitektur client-server. Protokol HTTP memaksa aplikasi web untuk berperilaku seperti itu. AJAX menggunakan penyelesaian untuk keterbatasan desain itu, tetapi model dasar HTTP yang mendasar masih client-server. Saya tidak akan terpaku pada semua hal tentang cara terbaik untuk menerapkan MVC ke aplikasi web. Jika Anda harus melakukan MVC karena alasan politik, lihat bagaimana Ruby / Rails melakukannya. Sebenarnya, Rails adalah arsitektur yang bagus untuk disalin (atau digunakan).
Layanan vs. Aplikasi.
Layanan yang baik hampir selalu lebih baik daripada aplikasi. Tetapi membuat layanan yang baik itu sulit! Anda mungkin perlu membuat aplikasi sebelum dapat menulis spesifikasi yang dirancang dengan cukup baik untuk suatu layanan. Jangan membuat pekerjaan Anda lebih sulit dari yang seharusnya. Untuk versi 1, fokuslah untuk membuat aplikasi yang hebat. Sampai aplikasi Anda relatif stabil dan Anda yakin itu memenuhi persyaratan pengguna Anda, memiliki layanan mungkin tidak akan ada gunanya bagimu. Merancang layanan yang salah terlalu dini adalah buang-buang waktu yang terus memboroskan saat Anda mencoba untuk memperbaiki antarmuka layanan Anda, dan berurusan dengan refactoring besar-besaran dari kedua kode server dan klien yang akan mengikuti.
C / Web
Wow. Saya bekerja di C dan Assembly selama 3 tahun sebelum saya beralih ke pengembangan web. Saya tidak bisa memikirkan bahasa yang lebih buruk untuk menulis aplikasi web - terutama dari sudut pandang keamanan. Validasi input dan output yang keluar sangat penting ... SANS merilis daftar kesalahan paling umum setiap tahun. Buffer overflow, suntikan, masalah lintas situs (pengodean output yang tidak benar) ... Semua kesalahan ini sangat mudah dilakukan di C atau perakitan. Setidaknya bahasa seperti Java memiliki String yang kebal terhadap luapan dan mekanisme penanganan pengecualian yang umumnya mencegah kesalahan satu per satu dari memungkinkan kode berbahaya mengakses memori sistem. Belum lagi menangani set karakter internasional (gunakan UTF-8 bila memungkinkan).
Jika Anda perlu menggunakan C untuk alasan memori atau firmware, maka itulah yang harus Anda lakukan. Hati-hati!
Dukungan Browser
Langkah pertama untuk membuat aplikasi web adalah menemukan browser mana yang akan digunakan oleh klien Anda ? W3Schools dan Wikipedia keduanya sumber statistik umum yang baik, tetapi YMMV.
Di mana saya bekerja sekarang, kami saat ini memvalidasi bahwa aplikasi kami hanya membuat HTML transisi XHTML 1.0 yang valid. Kami juga menggunakan DOCTYPE spesifik dan format yang diperlukan untuk menghindari Mode Quirks di IE, yang membuat HTML lintas-browser lebih mudah untuk ditulis (lihat tips di blog saya ). Kami menguji pada 3 versi terbaru IE, ditambah Firefox dan Chrome di Windows dan Linux (Safari menggunakan mesin rendering yang sama seperti Chrome). Dengan validasi dan pengujian itu, aplikasi kami cukup berfungsi di mana-mana (Windows, Mac, Linux, iPhone, Android, dll.) Kecuali BlackBerry.
BlackBerry belum pernah memiliki browser nyata dengan JavaScript, jadi kami tidak mendukungnya. Pengguna BlackBerry terbiasa tidak memiliki browser web asli, sehingga mereka tidak mengeluh. Mungkin itu berubah? Saya akan mencoba bertanya kepada beberapa klien browser apa yang mereka gunakan dan pastikan untuk menguji dengan browser tersebut.
Ringkasan
Semua situs web dibangun di atas HTML dan HTTP. Punya referensi yang baik untuk teknologi ini saat Anda membuat aplikasi. Dalam proses membuat aplikasi, bahkan dengan toolkit, Anda akan menghadapi masalah yang membutuhkan pemahaman dasar teknologi ini untuk menyelesaikannya.
Anda mungkin juga perlu merasa nyaman dengan CSS, dan kompresi gambar untuk membuat sesuatu yang terlihat baik dan merespons dengan cepat. JavaScript, server web, dan browser adalah bidang pengetahuan tambahan yang pada akhirnya Anda perlukan.
Jika Anda membuat HTML di sisi server, basis kode Anda mungkin akan lebih kecil dan Anda mungkin tidak perlu belajar JavaScript. Model sisi server berarti pemrogram Anda akan menulis kode (C?) Yang menghasilkan HTML yang dapat mereka lihat langsung sebelum dikirim ke klien. Model AJAX berarti pemrogram Anda akan menulis JavaScript yang menghasilkan HTML. Saya tidak mengetahui banyak alat untuk memvalidasi atau bahkan melihat kode HTML yang dihasilkan oleh JavaScript dalam browser, membuatnya lebih sulit untuk diprogram dengan benar.
Di mana saya bekerja sekarang, kami menggunakan pendekatan hybrid yang kadang-kadang melibatkan kode Java yang menghasilkan JavaScript yang menghasilkan HTML. Jika Anda baru mengenal pengembangan web, itu bukan tempat untuk memulai. Saya kira saya harus mengatakan bahwa kecuali Anda memiliki alasan kuat untuk menggunakan model AJAX, saya akan mulai dengan model generasi server-side-HTML-generasi yang lebih lama dan melihat sejauh mana hal itu dapat menjangkau Anda.