Keuntungan dan kerugian menggunakan XAML / C # atau HTML5 / JavaScipt untuk aplikasi Metro? [Tutup]

19

Saya hanya ingin tahu apakah ada kelebihan atau kekurangan utama untuk menggunakan XAML / C # atau HTML5 / JavaScript untuk Metro Apps.

Ein Doofus
sumber

Jawaban:

18

Sebagai sedikit latar belakang, saya membangun aplikasi American Airlines Windows 8 dalam HTML5. Saya harus mengatakan itu fantastis.

Pertama, letakkan semua ide Anda tentang HTML5 yang terkait dengan aplikasi seluler. Di Windows 8, JavaScript adalah bahasa ibu kelas satu. Anda memiliki akses ke semua fitur perangkat keras yang akan dilakukan oleh aplikasi XAML. Ada juga templat fantastis yang dibangun ke dalam Visual Studio 2012 untuk aplikasi WinJs.

WinJs bukan hanya sebagian pemikiran implementasi webview. Microsoft akhirnya menunjukkan rasa hormat yang layak kepada JS.

Saya akan menyarankan untuk mempercepat dengan yang terbaru dan terbaik di IE10. Jujur itu adalah kerangka kerja inti untuk semua hal WinJs. Ini kuat dan cepat! Berikut adalah contoh dari apa yang dapat Anda lakukan dengannya: http://www.cuttherope.ie/ .

Juga, inilah tempat yang bagus untuk memulai dengan WinJs: http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

Masa depan terlihat cerah untuk JS sebagai bahasa asli untuk Windows.

Phillip Burch
sumber
4
Pertama JavaScript adalah bahasa skrip bukan bahasa asli. (Kecuali saya melewatkan sesuatu dan sekarang langsung dikompilasi ke dalam kode mesin). Kedua ini bukan bahasa kelas satu di Win8, karena ini dimaksudkan untuk digunakan untuk mengembangkan aplikasi Metro, bukan aplikasi apa pun (aplikasi desktop, game DirectX 11 dll.).
Den
3
'Cut the Rope' adalah anak poster yang dipilih dengan cermat. Perhatikan bahwa jumlah kejadiannya relatif kecil pada waktu yang bersamaan. Jika memiliki ratusan sprite sebagai permainan desktop modern cenderung akan berjuang untuk menunjukkan FPS yang layak berjalan di JS.
Den
2
Hai Den - komentar Anda sepertinya tidak menambah diskusi. Apakah Anda mengatakan itu karena itu tidak dikompilasi ke dalam kode mesin yang tidak baik untuk digunakan untuk aplikasi metro? Untuk komentar kedua Anda tentang Cut the Rope, Anda tidak akan menulis "game desktop modern" dengan banyak FPS di javascript atau XAML, jadi saya pikir itu tidak relevan dengan diskusi.
Phillip Burch
1
Phillip, Anda berkata "Anda tidak akan menulis" game desktop modern "dengan banyak FPS di javascript atau XAML," apakah mungkin kemudian membuat game modern untuk perangkat Windows 8? Dan jika demikian, apakah game modern akan terbatas pada perangkat Intel karena perangkat ARM hanya mendukung WinRT?
Ein Doofus
1
@PhillipBurch: maksud saya adalah bahwa "asli", "kelas satu", "kuat dan cepat" adalah pilihan kata yang menyesatkan. Dan saya pasti akan mempertimbangkan menggunakan C # + SharpDX / MonoGame (bukan XAML tentu saja) untuk mengembangkan game berkinerja tinggi untuk Metro (ARM adalah cerita yang berbeda).
Den
4

Kedua. Karena keduanya sedang diadopsi oleh pengembang (meskipun tidak pada saat yang sama, yang saya maksud adalah ketika beberapa pengembang menggunakan XAML / C #, beberapa lainnya menggunakan HTML / JS). Bagi mereka yang berasal dari latar belakang pengembang aplikasi Web, lebih mudah untuk beralih ke HTML / JS. Dan bagi mereka yang terbiasa dengan XAML melalui WPF dan Silverlight, masuk akal untuk membawa alih keterampilan ke XAML + C #. Dan sejauh menyangkut hasil, kedua teknologi menunjukkan hasil yang baik. Jadi saya kira keduanya akan sama-sama baik di tahun-tahun mendatang.

Mamta D
sumber
3

Aplikasi Metro yang dibuat menggunakan API HTML5 / JS mungkin akan diklasifikasikan sebagai "lebih sederhana", dibandingkan dengan mitra C # / XAML mereka. Sementara yang pertama pasti akan mampu membuat aplikasi yang fungsional dan dirancang dengan baik, tidak diragukan lagi akan ada batas untuk kemampuan aplikasi yang dibangun di HTML5. Di sisi lain, sementara C # mungkin lebih mampu, itu juga lebih rumit. Aplikasi HTML5 akan sangat mudah untuk dirancang dan dirawat, secara komparatif.

Setidaknya, itu perkiraan perkiraan terbaik saya. Saya belum memiliki pengalaman mengembangkan aplikasi Win8 (belum).

Zach Dziura
sumber
3
Saya tidak berpikir ini masalahnya. Mereka berdua memiliki akses ke API yang persis sama di WinRT.
Ian
2

Keduanya akan berjalan di WinRT (alias dipangkas versi Windows 8 yang digunakan pada perangkat MS Surface ).

Ini benar-benar akan tergantung pada preferensi pengembang . Dengan demikian, pengembang dengan pengalaman HTML5 / JS akan memiliki kekuatan yang sama untuk mengembangkan untuk Window 8.

Yusubov
sumber
WinRT BUKAN "Juga Dikenal Sebagai" Windows 8. Ini adalah versi singkat dari OS Windows 8 lengkap yang hanya menjalankan metro ui / aplikasi dan bekerja pada tablet berbasis ARM.
treecoder
Ya, windows 8 bukan Win RT. Namun, jika itu adalah makna yang Anda dapatkan dari membaca jawaban saya, saya telah membuat pernyataan itu lebih eksplisit.
Yusubov
1

Bukan programmer MS - Dari sudut pandang programmer, akan sangat berharga menginvestasikan waktu dan usaha Anda dalam platform agnostik, standar terbuka seperti JS + HTML 5. Pengetahuan yang Anda peroleh dapat digunakan kembali di tempat lain.

Win 8 mendukung JS secara native , jadi tidak banyak yang bisa Anda capai menggunakannya.

JVXR
sumber
0

Ya, dalam kebanyakan kasus, JavaScript adalah bahasa ibu. Tergantung di mana itu berjalan, dikompilasi (Gaya JIT) ke dalam kode mesin.

Misalnya, jika Anda menjalankan browser Chrome, mesin V8 melakukan apa yang disebutkan di atas. Ini pemahaman saya bahwa IE 10 melakukan hal yang sama, seperti dengan browser lazim lainnya yang mendukung standar ECMAScript 262.

Entou, dalam kebanyakan kasus, JavaScript tidak lagi merupakan bahasa yang ditafsirkan. Ini adalah bahasa pemrograman penuh, Berorientasi Objek, berbasis Prototypal, sisi klien / server, di mana-mana.

kevin
sumber