2012-09-27 12 views
8

Potrzebuję opracować aplikację w stylu Metro za pomocą C# i XAML, która musi działać na urządzeniach z systemem Windows RT i pełnym systemie operacyjnym Windows 8. Mogę więc używać tylko WinRT bez jakichkolwiek zespołów ramek .net. Czytałem to pytanieWindows RT i C#

Microsoft Surface Tablet: Writing Apps for Both Devices?

i to bardzo przydatne pocztowy: http://blogs.msdn.com/b/jasonz/archive/2012/06/12/what-you-need-to-know-about-developing-for-windows-on-arm-woa.aspx, ale mam stil pytanie: Kiedy nawet utworzyć pusty projekt Metro Style Application mam asseblies NET stylu metra. Czy usunę je sam lub zrobię coś nie tak? I co powinienem zrobić, jeśli trzeba użyć czegoś takiego jak Prism fw przeniesionego na WinRT lub światło mvvvm? Czy pozwalają mi tworzyć aplikacje na WOA tylko w macierzystym WinRT? Te chwile nie są dla mnie jasne.

Czy możesz wyjaśnić, co różnica między Windows RT i Windows na ARM Czy muszę używać tylko WinRT (bez .net) do opracowania dla WindowsRT OS?

Mam nadzieję, że możesz mi pomóc.

Odpowiedz

14

Pozwól, że odpowiem ci w najbardziej bezpośredni sposób. Jeśli otworzysz pusty projekt XAML/C# Windows Store. Ten projekt będzie działał w systemach Windows RT (ARM) i Windows 8 (x86/x64). To dlatego, że jest zbudowany, aby to osiągnąć. Tylko dlatego, że czujesz się jak w .Net Framework, nie martw się - piszesz aplikację wieloplatformową.

Teraz, dla zastrzeżeń. Ta odpowiedź była łatwa z powodu C#. Twórcy CPP nie mają takiej samej gwarancji, ponieważ istnieją kodowanie rzeczy, które mogą zrobić, aby złamać tę zgodność. Nie tak w języku C#. Jeśli napisany kod kompiluje się do "dowolnego procesora", to to, co mówię, jest poprawne.

Jeśli wprowadzisz coś (np. Kontrolkę Bing Maps), która wymaga, aby twoja kompilacja zmieniła się z "Any CPU" na coś innego. Sklep Windows pozwoli Ci przesłać trzy wersje aplikacji pod tą samą nazwą - po jednej dla każdej platformy - a użytkownik nigdy się nie dowie, że jest więcej niż jeden.

W tym ostatnim przykładzie, nadal wspierasz każdą platformę, musisz tylko do określonych trzech różnych kompilacji, aby to osiągnąć - Twój kod może się w ogóle nie zmienić! W większości scenariuszy wspierasz ich wszystkich poza bramą. Jeśli wprowadzisz bibliotekę innej firmy - np. MVVMlite - nadal będziesz w porządku, jeśli uda Ci się zbudować dowolny procesor. Większość bibliotek jest fajna.

+0

Dzięki. Dokładnie tej odpowiedzi szukałem, gdy zapytałem: –

+1

Jeszcze jedno, ponieważ PINVOKE jest nadal dostępne dla zarządzających programistami w WinRT, wciąż jest możliwe, że programiści C# powodują niekompatybilność ARM, ale muszą ciężko pracować, aby to zrobić. –

3

To nie do końca prawda, że ​​nie można używać frameworka .net w aplikacjach w stylu Metro. Bardziej poprawnie, istnieje wersja platformy .net, która jest dostępna tylko dla aplikacji metra. Jeśli twoje złożenia nie zostały zbudowane przy użyciu tej wersji platformy .net, nie będą działać dla metra. Ta wersja platformy .net będzie działać na .86 i ramienia. Istnieje również wersja MVVM Light dla aplikacji metra. Download it here. Aby uzyskać szczegółowe informacje na temat opracowywania ramienia, patrz here.

Niezależnie od tego, czy używasz JavaScript, C++, Visual Basic lub C#, jeśli stworzyliśmy aplikację w stylu Metro kierowaną x86/x64 wtedy już wiedzą, jak zbudować jedną kierowaną ARM . Używasz tych samych szablonów projektów w stylu Metro , które stanowią punkt wyjściowy do stworzenia aplikacji o nazwie .

Edit: Jak Jerry zwraca uwagę, być może trzeba będzie skompilować aplikację przed różnymi wersjami bibliotek jeśli są one napisane w języku C++, ale to kwestia konieczności oddzielnego buduje zamiast zrobić dodatkowy rozwój.

+0

Dzięki za odpowiedź. Być może popełniłem błąd, pisząc "Urządzenia Windows RT (mam na myśli WOA)". Tak, mogę korzystać z frameworka .net w rozwoju aplikacji metra, ale jak mogę się upewnić, że moja aplikacja będzie działała na systemie Windows RT? Potrzebuję nie tylko aplikacji w stylu Metro, która będzie działać na .86 i ARM z Windows 8. Czy jakakolwiek wersja platformy .net będzie dostępna w systemie Windows RT OS? –

+0

Potrzebuję nie tylko aplikacji w stylu metra, która będzie działać na .86 i ARM z Windows 8, ale Windows RT. –

+0

@Bogdan Dudnik Nowoczesne aplikacje są przenośne, będzie działać zarówno na –

1

Po utworzeniu biblioteki przenośnych bibliotek klas można używać ich do komputerów stacjonarnych, stacji metra i aplikacji telefonicznych (i także do Xbox). Możesz wybrać tę opcję, gdy uruchomisz bibliotekę lub we właściwościach projektu. Ułatwia pisanie aplikacji wieloplatformowych w ekosystemie mircrosoft.

Powiązane problemy