Ưu điểm và nhược điểm của việc sử dụng XAML / C # hoặc HTML5 / JavaScipt cho các ứng dụng Metro? [đóng cửa]


19

Tôi chỉ tự hỏi liệu có bất kỳ lợi thế hay bất lợi lớn nào khi sử dụng XAML / C # hoặc HTML5 / JavaScript cho Ứng dụng Metro.

Câu trả lời:


18

Để làm nền tảng, tôi đã xây dựng ứng dụng Windows 8 của American Airlines trong HTML5. Tôi phải nói rằng nó thật tuyệt vời.

Đầu tiên, bỏ tất cả các ý tưởng của bạn về HTML5 vì nó liên quan đến các ứng dụng di động. Trong Windows 8, JavaScript là ngôn ngữ bản địa hạng nhất. Bạn có quyền truy cập vào tất cả các tính năng phần cứng mà ứng dụng XAML sẽ có. Ngoài ra còn có các mẫu tuyệt vời được tích hợp trong Visual Studio 2012 cho các ứng dụng WinJs.

WinJs không chỉ là một nửa thực hiện webview nghĩ. Microsoft cuối cùng đã cho JS thấy sự tôn trọng mà họ xứng đáng.

Tôi sẽ đề nghị tăng tốc với phiên bản mới nhất và tốt nhất trong IE10. Thành thật mà nói đó là khuôn khổ cốt lõi cho tất cả các công cụ WinJs. Nó mạnh mẽ và nhanh chóng! Đây là một ví dụ về những gì bạn có thể làm với nó: http://www.cuttherope.ie/ .

Ngoài ra, đây là một nơi tuyệt vời để bắt đầu với WinJs: http://msdn.microsoft.com/en-us/l Library / windows / apps / br211385.aspx

Tương lai có vẻ tươi sáng cho JS như một ngôn ngữ bản địa cho Windows.


4
Thứ nhất JavaScript là ngôn ngữ script không phải là ngôn ngữ bản địa. (Trừ khi tôi bỏ lỡ điều gì đó và bây giờ nó được biên dịch trực tiếp thành mã máy). Thứ hai, nó không phải là ngôn ngữ hạng nhất trong Win8, vì nó được sử dụng để phát triển ứng dụng Metro, không phải bất kỳ ứng dụng nào (ứng dụng trên máy tính để bàn, trò chơi DirectX 11, v.v.).
Den

3
'Cut the Rope' là một đứa trẻ được chọn cẩn thận. Lưu ý rằng nó có số lượng tương đối nhỏ của những điều xảy ra cùng một lúc. Nếu nó có hàng trăm họa tiết như các trò chơi trên máy tính để bàn hiện đại, nó sẽ phải vật lộn để hiển thị FPS tốt chạy trên JS.
Den

2
Hey Den - ý kiến ​​của bạn dường như không thêm vào cuộc thảo luận. Bạn có nói rằng vì nó không được biên dịch thành mã máy nên sẽ không tốt khi sử dụng cho các ứng dụng tàu điện ngầm? Đối với nhận xét thứ hai của bạn về Cut the Rope, bạn sẽ không viết một "trò chơi máy tính để bàn hiện đại" có nhiều FPS trong javascript hoặc XAML, vì vậy tôi nghĩ rằng điều đó không liên quan đến cuộc thảo luận.
Phillip Burch

1
Phillip, bạn đã nói "bạn sẽ không viết một" trò chơi máy tính để bàn hiện đại "có nhiều FPS trong javascript hoặc XAML," sau đó có thể tạo một trò chơi hiện đại cho các thiết bị Windows 8 không? Và nếu vậy, các trò chơi hiện đại sẽ bị giới hạn trong các thiết bị Intel vì các thiết bị ARM chỉ hỗ trợ WinRT?
Ein Doofus

1
@PhillipBurch: quan điểm của tôi là "bản địa", "hạng nhất", "mạnh mẽ và nhanh chóng" là một lựa chọn từ ngữ sai lệch. Và tôi chắc chắn sẽ cân nhắc sử dụng C # + SharpDX / MonoGame (tất nhiên không phải XAML) để phát triển các trò chơi hiệu năng cao cho Metro (mặc dù ARM là một câu chuyện khác).
Den

4

Cả hai. Bởi vì cả hai đều được các nhà phát triển chấp nhận (mặc dù không phải cùng một lúc, ý tôi là trong khi một số nhà phát triển đang sử dụng XAML / C #, một số người khác đang sử dụng HTML / JS). Đối với những người đến từ nền phát triển ứng dụng Web, việc chuyển đổi sang HTML / JS sẽ dễ dàng hơn. Và đối với những người quen thuộc với XAML thông qua WPF và Silverlight, sẽ rất có ý nghĩa khi chuyển các kỹ năng sang XAML + C #. Và theo như kết quả, cả hai công nghệ đều cho thấy kết quả tốt. Vì vậy, dự đoán của tôi là cả hai sẽ tốt như nhau trong những năm tới.


3

Các ứng dụng Metro được xây dựng bằng API HTML5 / JS có thể sẽ được phân loại là "đơn giản hơn", so với các đối tác C # / XAML của chúng. Mặc dù trước đây chắc chắn sẽ có khả năng tạo ra các ứng dụng được thiết kế tốt, có chức năng, chắc chắn sẽ có giới hạn về khả năng của một ứng dụng được xây dựng trong HTML5. Mặt khác, trong khi C # có thể có nhiều khả năng hơn, thì nó cũng phức tạp hơn. Một ứng dụng HTML5 sẽ rất dễ dàng để thiết kế và bảo trì, tương đối.

Ít nhất, đó là dự đoán tốt nhất của tôi. Tôi chưa có kinh nghiệm phát triển ứng dụng Win8 (chưa).


3
Tôi không nghĩ đây là trường hợp. Cả hai đều có quyền truy cập chính xác các API trong WinRT.
Ian

2

Cả hai sẽ chạy trên WinRT (phiên bản rút gọn của Windows 8 được sử dụng trên thiết bị MS Surface ).

Nó sẽ hoàn toàn phụ thuộc vào sở thích của nhà phát triển . Do đó, các nhà phát triển có kinh nghiệm HTML5 / JS sẽ được cung cấp năng lượng như nhau để phát triển cho Window 8.


WinRT KHÔNG phải là "Còn được gọi là" Windows 8. Đây là phiên bản rút gọn của HĐH Windows 8 chính thức, chỉ chạy các ứng dụng / ứng dụng metro và hoạt động trên máy tính bảng dựa trên ARM.
treecoder

Có, windows 8 không phải là Win RT. Tuy nhiên, nếu đó là ý nghĩa mà bạn nhận được từ việc đọc câu trả lời của tôi, tôi đã làm cho câu nói đó rõ ràng hơn.
EL Yusubov

1

Không phải là lập trình viên MS - Từ quan điểm lập trình viên, sẽ đáng để đầu tư thời gian và công sức của bạn vào một nền tảng bất khả tri, tiêu chuẩn mở như JS + HTML 5. Kiến thức bạn có thể được sử dụng ở nơi khác.

Win 8 hỗ trợ JS nguyên bản , do đó sẽ không có nhiều thứ bạn không thể thực hiện được khi sử dụng nó.


0

Có, trong hầu hết các trường hợp, JavaScript là ngôn ngữ bản địa. Tùy thuộc vào nơi nó đang chạy, nó được biên dịch (Kiểu JIT) thành mã máy.

Ví dụ: nếu bạn đang chạy trình duyệt Chrome, công cụ V8 sẽ thực hiện công việc được đề cập ở trên. Theo hiểu biết của tôi thì IE 10 cũng hoạt động tương tự, như với các trình duyệt phổ biến khác hỗ trợ tiêu chuẩn ECMAScript 262.

Entou, trong hầu hết các trường hợp, JavaScript không còn là ngôn ngữ được dịch. Đó là một ngôn ngữ lập trình đầy đủ, hướng đối tượng, dựa trên nguyên mẫu, phía máy khách / máy chủ, có mặt khắp nơi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.