Zalety i wady korzystania z XAML / C # lub HTML5 / JavaScipt dla aplikacji Metro? [Zamknięte]

19

Zastanawiałem się tylko, czy istnieją jakieś zalety lub wady korzystania z XAML / C # lub HTML5 / JavaScript dla aplikacji Metro.

Ein Doofus
źródło

Odpowiedzi:

18

Jako małe tło zbudowałem aplikację American Airlines Windows 8 w HTML5. Muszę powiedzieć, że było fantastycznie.

Po pierwsze, porzuć wszystkie swoje pomysły na HTML5, ponieważ dotyczy on aplikacji mobilnych. W Windows 8 JavaScript jest językiem ojczystym pierwszej klasy. Masz dostęp do wszystkich funkcji sprzętowych, które miałaby aplikacja XAML. Istnieją również fantastyczne szablony wbudowane w Visual Studio 2012 dla aplikacji WinJs.

WinJs to nie tylko w połowie myślenie o implementacji webview. Microsoft wreszcie okazuje JS szacunek, na jaki zasługuje.

Sugeruję zapoznanie się z najnowszymi i najlepszymi w IE10. Szczerze mówiąc, to jest podstawowa struktura wszystkich rzeczy związanych z WinJs. Jest potężny i szybki! Oto przykład tego, co możesz z tym zrobić: http://www.cuttherope.ie/ .

Ponadto jest to świetne miejsce na rozpoczęcie pracy z WinJs: http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

Przyszłość wygląda dobrze dla JS jako języka ojczystego dla systemu Windows.

Phillip Burch
źródło
4
Po pierwsze, JavaScript jest językiem skryptowym, a nie językiem ojczystym. (Chyba że coś przeoczyłem i jest to teraz bezpośrednio wkompilowane w kod maszynowy). Po drugie, nie jest to język pierwszej klasy w Win8, ponieważ ma być używany do tworzenia aplikacji Metro, a nie żadnych aplikacji (aplikacje komputerowe, gry DirectX 11 itp.).
Den
3
„Cut the Rope” to starannie wybrane dziecko z plakatu. Zauważ, że w tym samym czasie dzieje się stosunkowo niewiele rzeczy. Gdyby miał setki sprite'ów, jak to robią współczesne gry komputerowe, miałby problemy z pokazaniem przyzwoitego FPS działającego na JS.
Den
2
Hej, Den - twoje komentarze nie wydają się dodawać do dyskusji. Mówisz tak, ponieważ nie jest skompilowany w kodzie maszynowym, że nie byłoby dobrze używać go w aplikacjach metra? Do drugiego komentarza na temat Cut the Rope nie napisałbyś „nowoczesnej gry komputerowej” z dużą ilością FPS w javascript lub XAML, więc myślę, że nie ma to znaczenia w dyskusji.
Phillip Burch,
1
Phillip, powiedziałeś „nie napisałbyś„ nowoczesnej gry komputerowej ”z dużą ilością FPS w javascript lub XAML”, czy można stworzyć nowoczesną grę na urządzenia z systemem Windows 8? A jeśli tak, to czy nowoczesne gry będą ograniczone do urządzeń Intel, ponieważ urządzenia ARM obsługują tylko WinRT?
Ein Doofus,
1
@PhillipBurch: Chodzi mi o to, że „rodzimy”, „pierwsza klasa”, „potężny i szybki” to mylący wybór słów. I z pewnością rozważyłbym użycie C # + SharpDX / MonoGame (oczywiście nie XAML) do tworzenia wysokowydajnych gier dla Metro (ARM to jednak inna historia).
Den
4

Obie. Ponieważ oba są przyjmowane przez programistów (chociaż nie w tym samym czasie, mam na myśli, że gdy niektórzy deweloperzy używają XAML / C #, inni używają HTML / JS). Dla tych, którzy pochodzą z tła programistów aplikacji internetowych, łatwiej jest przejść na HTML / JS. A dla tych, którzy znają XAML przez WPF i Silverlight, sensowne byłoby przeniesienie umiejętności do XAML + C #. Jeśli chodzi o wyniki, obie technologie wykazują dobre wyniki. Sądzę więc, że oba będą równie dobre w nadchodzących latach.

Mamta D.
źródło
3

Aplikacje Metro zbudowane przy użyciu interfejsów API HTML5 / JS prawdopodobnie zostaną sklasyfikowane jako „prostsze” w porównaniu do ich odpowiedników w języku C # / XAML. Podczas gdy ten pierwszy z pewnością będzie w stanie tworzyć funkcjonalne, dobrze zaprojektowane aplikacje, niewątpliwie będzie ograniczenie możliwości aplikacji zbudowanej w HTML5. Z drugiej strony, chociaż C # może być bardziej zdolny, jest również bardziej skomplikowany. Porównywalnie aplikacja HTML5 będzie bardzo łatwa do zaprojektowania i obsługi.

Tak przynajmniej sądzę. Nie mam jeszcze doświadczenia w tworzeniu aplikacji Win8 (jeszcze).

Zach Dziura
źródło
3
Nie sądzę, że tak jest. Obaj mają dostęp do dokładnie tych samych interfejsów API w WinRT.
Ian
2

Oba będą działać na WinRT (aka zmniejszona wersja systemu Windows 8, która jest używana na urządzeniu MS Surface ).

Będzie to całkowicie zależeć od preferencji programistów . W ten sposób programiści z doświadczeniem HTML5 / JS będą mieli taką samą moc do programowania dla Windows 8.

Jusubow
źródło
WinRT NIE jest „znany również jako” Windows 8. Jest to uproszczona wersja pełnoprawnego systemu operacyjnego Windows 8, który obsługuje tylko interfejs / aplikacje Metro i działa na tabletach opartych na ARM.
treekoder,
Tak, Windows 8 nie jest Win RT. Jeśli jednak takie było znaczenie przeczytania mojej odpowiedzi, uściśliłem to stwierdzenie.
Yusubov,
1

Nie jest programistą MS - Z punktu widzenia programisty warto zainwestować swój czas i wysiłek w agnostyczny, otwarty standard platformy, taki jak JS + HTML 5. Zdobytą wiedzę można wykorzystać ponownie w innym miejscu.

Win 8 obsługuje JS natywnie , więc nie byłoby wiele rzeczy, których nie można osiągnąć przy użyciu.

JVXR
źródło
0

Tak, w większości przypadków JavaScript jest językiem ojczystym. W zależności od tego, gdzie jest uruchomiony, jest skompilowany (styl JIT) do kodu maszynowego.

Na przykład, jeśli korzystasz z przeglądarki Chrome, silnik V8 robi dokładnie to, co wspomniano powyżej. Rozumiem, że IE 10 robi to samo, co w przypadku innych popularnych przeglądarek obsługujących standard ECMAScript 262.

Entou, w większości przypadków JavaScript nie jest już językiem interpretowanym. Jest to wszechstronny, zorientowany obiektowo, oparty na prototypach, po stronie klienta / serwera, wszechobecny język programowania.

Kevin
źródło