Stvaranje aplikacije Visual Studio s prozorima
Uvod u stvaranje aplikacija s prozorima
API funkcije za rad s konzolom
Struktura prozorske aplikacije
Kontrole prozora
Grafika u prozorskim aplikacijama
U operacijskom sustavu Windows moguće su 3 vrste programskih struktura:
- dijalog (glavni prozor - dijalog),
- konzolna struktura ili struktura bez prozora,
- klasična (prozor, okvir) struktura
Razgovorne aplikacije za Windows imaju minimalno korisničko sučelje i prenose informacije korisniku kroz standardne dijaloške okvire (na primjer, okvir za poruke MessageBox(). Program radi "na slijepo".
Aplikacije bez prozora (konzole). je program koji radi u tekstualnom modu. Rad konzolne aplikacije nalikuje radu MS-DOS programa. Ali ovo je samo vanjski dojam. Konzolna aplikacija opremljena je posebnim Windows funkcije. Konzolne aplikacije su sustav sredstava za interakciju korisnika s računalom, koji se temelji na korištenju tekstualnog (alfanumeričkog) načina prikaza ili sličnog (MS-DOS naredbeni redak, Far). Konzolne aplikacije su vrlo kompaktne, ne samo u kompajliranom obliku, već iu tekstualnom obliku, te imaju istu mogućnost pristupa resursima sustava Windows putem API funkcija kao prozorske aplikacije.
Prozorske (okvirne) aplikacije izgrađeni su na temelju posebnog skupa API funkcija koje čine GUI korisnika (GUI, grafičko korisničko sučelje). Glavni element takve aplikacije je prozor. Prozor može sadržavati kontrolne elemente: gumbe, popise, prozore za uređivanje itd. Ti su elementi, zapravo, također prozori, ali s posebnim svojstvima. Događaji koji se dogode s tim elementima (i samim prozorom) rezultiraju slanjem poruka prozorskoj proceduri.
Razlika između prozorskih i konzolnih Windows aplikacija je s kojom vrstom informacija rade.
Postoji mišljenje da se u stvarnom životu pametni telefoni s Microsoft OS-om nalaze jednako često kao i ljudi s patronimom "Artemovich". Čudna (blago rečeno) politika “Zle korporacije” prema sedmoj i osmoj obitelji mobitela operacijski sustav odvratio je mnoge korisnike od eksperimentiranja s “windowima” za pametne telefone, a sada se korporacija ozbiljno prihvatila zadatka ispravljanja svoje slike u ovoj korisničkoj niši. Kao underground obožavatelj Microsofta, nadam se da će im sve uspjeti - "desetka" maršira planetom, glavni adut im je jedna jezgra za sve platforme, pa ima sve šanse osvojiti dobar dio mobilnog tržišta. A kao programer, rado ću za vas napraviti uvodni članak o razvoju za ovu mobilnu osovinu, tako da uvijek budete spremni za rast njene popularnosti :).
Pregled arhitekture
Zahvaljujući zajedničkoj jezgri i UWP sustavu izvršavanja aplikacije, jednom napisana, aplikacija će se izvoditi na svim uređajima ispod Windows kontrola 10. Ovaj asortiman uključuje:
- stolna računala;
- poslužiteljski sustavi - OS Windows poslužitelj 2016;
- prijenosna računala - MS Surface Book;
- tablete - MS Surface Pro;
- pametni telefoni - Lumia;
- igraće konzole - Xbox One;
- naočale za proširenu stvarnost - MS HoloLens;
- zidni tableti - MS Surface Hub;
- pametni sat - MS Band 2.
Popis je impresivan. Osim toga, UWP nije ograničen na izvođenje aplikacijskih programa; on također podržava rad upravljačkih programa na razini jezgre. To vam omogućuje stvaranje upravljačkih programa koji funkcioniraju na razne uređaje, pod uvjetom da je određena komponenta za koju je namijenjen ovaj vozač, isto.
UWP podržava i upravljačke programe na razini jezgre i na razini korisnika. Podsustav uključuje sučelja upravljačkih programa uređaja (DDI), od kojih se upravljački program za UWP može koristiti.
Ali sve to ne spašava programera od prilagodbe sučelja određenim platformama i rezolucijama zaslona. U nekim posebnim slučajevima to možda neće biti potrebno.
Razvojni alati
Za pisanje, uklanjanje pogrešaka, implementaciju i testiranje aplikacija za Windows 10 Mobile trebat će vam Visual Studio 2015 (tko bi sumnjao). Ovo ljeto objavljeno je treće ažuriranje. Toplo ga preporučujem! Njegov glavni ispravak je smanjena potrošnja memorije u usporedbi s drugim ažuriranjem.
Također ćete trebati Windows 10 Anniversary Update SDK: uključuje sve potrebne alate za razvoj aplikacija za cijelu flotu uređaja sa sustavom Windows 10. Ako koristite VS 2015 s trećim ažuriranjem, tada već uključuje najnoviji SDK.
Jedna od glavnih inovacija je Windows Ink. Pomoću ovog API-ja možete dodati podršku za olovku u dva retka koda. Za to postoje dva kontrolna objekta: InkCanvas i InkToolbar.
Novi Cortana API olakšava implementaciju glasovne kontrole. Komponenta Cortana Actions u novom API-ju omogućuje vam stvaranje novih fraza/izraza.
Windows Hello biometrijska provjera autentičnosti sada je dostupna web programerima u pregledniku Edge.
Blend za Visual Studio 2015, alat za modeliranje korisničkog sučelja, pruža poboljšane mogućnosti dizajna korisničkog sučelja u odnosu na VS. Uz njegovu pomoć možete stvoriti izglede u XAML-u za sve podržane aplikacije: aplikacije, web, univerzalne, mobilne itd. Također sadrži konstruktore za dodatne zadatke, među njima stvaranje animacije i upravljanje ponašanjem elemenata.
Načini stvaranja aplikacija za Windows 10 Mobile
Glavni način stvaranja aplikacija za pametne telefone sa sustavom Windows 10 Mobile je razvoj Univerzalne (UWP) aplikacije(Skrolajte Visual C# → Windows → Universal New Project Wizards).
Međutim, nije on jedini. Kao što znate, Xamarin je ugrađen u Visual Studio 2015, uz njegovu pomoć također možete kreirati aplikacije za Windows 10 Mobile, istovremeno za Android i iOS, mijenjajući sučelje i ostavljajući programsku logiku u C# (Visual C# → Cross-Platform).
Osim jezika Visual C#, mogu se jednako odabrati Visual Basic ili Visual C++. VS 2015 vam omogućuje stvaranje svestranih aplikacija s koristeći JavaScript(JavaScript → Windows → Universal Apps). Također se mogu implementirati na Windows 10 Mobile uređaj.
Alati za rad s naslijeđenim projektima
Tijekom duge povijesti operacijske dvorane Windows sustavi kolosalan broj najviše različite primjene. Izlaskom Windowsa 8 i WinRT-a (i kasnije Windowsa 10 i UWP-a), stare klasične aplikacije su stvar prošlosti, jer samo desktop Win 8 i Win 10 podržavaju klasične Win32, COM, .NET aplikacije. Ovo je rastužilo Microsoft. No, dečki su shvatili da mogu razviti pretvarač koji bi pretvorio stare aplikacije za novi napredni UWP podsustav. Iz ovoga je rođeno Konverter aplikacija za stolna računala.
Konvertiranje Xcode projekta radi se u dva koraka. Prvo trebate dodati isticanje sintakse za jezik Objective-C u Visual Studio: instalirajte proširenje objc-syntax-highlighting.vsix iz mape winobjc\bin. Zatim pomoću uslužnog programa naredbeni redak vsimporter.exe treba pretvoriti Xcode projekt u VS projekt. Nakon toga, rezultirajuća sln datoteka može se otvoriti u studiju, gdje će Objective-C sintaksa biti istaknuta. Možete izraditi i pokrenuti aplikaciju, radit će kao i svi ostali Windows programi.
Proklet bio, kako je nevjerojatno vidjeti Objective-C kod ispravno istaknut u Visual Studiju!
Za kompajliranje Obj-C koda koristi se besplatni kompajler zveket. Budući da je izlaz standardna UWP aplikacija, možete je pokrenuti mobilni uređaj V Windows okruženje 10 Mobilni. Jedan program može sadržavati kod u C++ i Obj-C.
Ako imate projekt za prošlost Windows verzije Telefon, odnosno 8.1 (ili 8.0), onda kada ga otvorite u VS 2015, studio će automatski ažurirati projekt tako da ispunjava zahtjeve univerzalnog Windows aplikacije(UWP). Ne samo da će se oznaka korisničkog sučelja u XAML-u pretvoriti, već i programska logika u JS/C++/C#/VB zajedno s njim. Ako je u kodu bilo poziva WinRT podsustavu, oni će se pretvoriti u UWP pozive.
Postoji još jedna uobičajena vrsta aplikacije - igre. iOS i Android renderiraju pomoću OpenGL sučelja niske razine. S druge strane, na Windows 10 Mobile, DirectX 11 se koristi za prikaz slika u igrama. To rezultira nekompatibilnošću. Ali postoji rješenje - open source projekt ANGLE. ANGLE (Almost Native Graphics Layer Engine) - gotovo izvorni motor grafičkog sloja - dopušta Windows korisnici Besprijekorno pokrenite OpenGL ES aplikacije na hardveru koji pokreće DirectX 11. To se postiže pretvaranjem poziva iz OpenGL ES API-ja u DirectX 11 API. ANGLE u potpunosti podržava sljedeće tri vrste aplikacija:
- univerzalne aplikacije za Windows 10 (Univerzalne Windows aplikacije);
- aplikacije za Windows 8.1 i Windows Phone 8.1;
- klasične desktop aplikacije Windows radna površina(Windows desktop aplikacije).
O tome se detaljnije govori u mojoj knjizi “Čarolija okretnog momenta” (opet, promovirate svoju knjigu! Pa, u redu, zaslužili ste to. - Urednik).
Nastavak članka dostupan je samo pretplatnicima
Opcija 1. Pretplatite se na Hacker kako biste čitali sve članke na stranici
Pretplata će vam omogućiti čitanje SVIH plaćenih materijala na web mjestu, uključujući ovaj članak, za navedeno razdoblje. Primamo plaćanje bankovne kartice, elektronički novac i prijenosi s računa mobilnih operatera.
U dijaloškom okviru New Project Visual Studio odaberite Visual C#, Silverlight za Windows Phone i jednostavan predložak Windows Phone aplikacije i nazovite ga ExploringXAMLFeatures.
U dijaloškom okviru za odabir ciljnog operativnog sustava odaberite Windows Phone OS 7.1
Nakon izrade projekta, prozor Visual Studio izgledat će ovako:
Pogledajmo strukturu projekta u prozoru Solution Explorera:
Naziv datoteke | Svrha |
AppManifest.xml | Datoteka manifesta potrebna za generiranje XAP datoteke u koju je upakirana aplikacija za implementaciju na telefonu. |
AssemblyInfo.cs | Još jedna konfiguracijska datoteka koja definira neke metapodatke glavnog sklopa aplikacije. |
WMAppManifest.xml | Datoteka metapodataka koja sadrži različite postavke aplikacije: naslov, postavljanje prve stranice, putanje do ikona, definiranje potrebnih mogućnosti sustava itd. |
App.xaml | Ovo je datoteka resursa aplikacije. Ovdje se nalaze globalni resursi (o tome će biti riječi kada se koriste stilovi) ili globalni događaji (koji se događaju prilikom pokretanja aplikacije). Ova je datoteka također ulazna točka aplikacije. |
App.xaml.cs | Datoteka koda (kod iza) za App.xaml. Ovdje možete upravljati događajima i pogreškama na razini aplikacije, uključujući nadgrobni prikaz aplikacije. O ovom konceptu bit će riječi kasnije kada se bude govorilo o multitaskingu. |
ApplicationIcon.png | Slika koja će biti ikona aplikacije na telefonu. Ovo je jako važna datoteka jer je prva stvar koju će korisnici vidjeti kada rade s aplikacijom. |
Pozadina.png | Ova se slika koristi kada je aplikacija prikvačena na početni zaslon telefona. Ovo je u biti velika ikona aplikacije. Ima smisla učiniti ga vizualno sličnim ApplicationIcon.png. |
MainPage.xaml | Ovo je dio odabranog predloška aplikacije. MainPaige nije baš dobar naziv, ali to je ono što koristi zadani predložak projekta. Ova stranica predstavlja sučelje koje korisnik vidi prilikom pokretanja aplikacije. |
MainPage.xaml.cs | MainPage.xaml kodna datoteka stranice. |
SplashScreenImage.jpg | Ova slika se prikazuje dok se aplikacija učitava. Možete postaviti vlastitu sliku s animacijom koja vas obavještava da se aplikacija učitava. Postoji tehnika za stvaranje stranica s vrlo dinamičnim učitavanjem u XNA, ali ona je daleko izvan dosega ove serije članaka. |
XAML datoteke definiraju sučelje aplikacije. Zapravo je jednostavno XML datoteke s XAML označnim jezikom.
Iako je ovo najjednostavniji projekt, on sadrži sve ključne elemente koje sadrže svi ostali predlošci i vrste projekata.
Imajte na umu da su neke od postavki predstavljene u obrascu konfiguracijske datoteke, mogu se uređivati u vizualnom sučelju za uređivanje postavki aplikacije.
Dodavanje kontrola na XAML stranicu
Imajte na umu da Visual Studio prema zadanim postavkama renderira i dizajn i XAML stranice.
Ako ste otišli do drugih datoteka rješenja, dvaput kliknite datoteku MainPage.xaml.
U XAML kodu datoteke MainPage.xaml, unutar Grid elementa pod nazivom ContentPanel, umetnite kontrolu Button:
U prozoru dizajna, gumb će se pojaviti odmah otprilike u sredini sučelja. Obratite pažnju na atribut Ime? Ovo je jedinstveni identifikator elementa koji vam pomaže da ga referencirate u kodu. Zamislite ovo kao ID atribut kontrole. Dodajmo sada radnju kada se klikne na ovaj gumb. Postoje dva načina za vezanje događaja za gumb (ili bilo koju drugu kontrolu). U XAML-u, točno u definiciji gumba, možemo dodati atribut Click i InteliSense će automatski pitati želimo li generirati novi rukovatelj događajima:
Rukovatelja događajem možete vezati izravno u kodu stranice Home.xaml.cs bez navođenja u XAML datoteci:
Public MainPage() ( InitializeComponent(); MyButton.Click +=new RoutedEventHandler(MyButton_Click); )
Obje metode djeluju. Možete koristiti bilo koji od njih. Radi jednostavnosti, ovdje ćemo koristiti definiciju XAML metode. Sada možete pisati upravljani kod u funkciji MyButton_Click koja će promijeniti sučelje ili pozvati druge funkcije. Dovršimo naš primjer aplikacije dodavanjem koda koji će promijeniti tekst u TextBlock PageTitle (PageTitle je naziv, tako da ga možete referencirati izravno u kodu) u "hello wp7". Da biste to učinili, dodajte sljedeći kod u funkciju:
Private void MyButton_Click(object sender, RoutedEventArgs e) ( PageTitle.Text = "hello wp7"; )
Odaberite u postavkama projekta Windows uređaj Emulator
I pokrenite aplikaciju klikom na zeleni trokut ili tipku F5. Nakon pokretanja aplikacije i klika na gumb "Pritisni me", zaslon bi trebao izgledati slično slici ispod:
Dodavanje novih stranica u projekt
Samo se najjednostavnija aplikacija sastoji od jedne stranice. Želimo naučiti kako pisati složene aplikacije s više stranica. Možemo koristiti predloške Pivot, Panorama, možemo koristiti MVVM (Model-View-ViewModel) obrazac dizajna, a prvo ćemo naučiti kako dodati nove stranice u projekt i kretati se između njih.
U prozoru Solution Explorer kliknite desnom tipkom miša na naziv projekta i u izborniku koji se pojavi odaberite Dodaj, zatim Nova stavka, u dijaloškom okviru koji se otvori odaberite Windows Phone Portrait Page i nazovite je SecondPage.xaml:
Sada imamo praznu XAML stranicu, točnu kopiju stranice MainPage.xaml prije nego što smo je uredili.
Kako bismo bolje razlikovali stranice, idemo na XAML kod stranice SecondPage i uredimo element TextBlock s Name PageTitle Svojstvo teksta kao ispod:
Navigacija između stranica aplikacije
Dakle, imamo dvije stranice u projektu; kada se aplikacija pokrene, prikazuje se stranica MainPage.xaml. Kako sada mogu prijeći s MainPage.xaml na SecondPage.xaml?
Pokušajmo dva jednostavnih načina, kako to učiniti.
U XAML kodu datoteke MainPage.xaml nakon koda Buttona koji smo ranije dodali, dodajte kod HyperlinkButton kao što je prikazano u nastavku:
Kontrola HyperlinkButton ima posebno svojstvo, NavigateUri, koje vam omogućuje da navedete Uri do kojeg ćete ići. Dodajmo ovo svojstvo s vrijednošću /SecondPage.xaml, kao što je prikazano u nastavku:
Pokrenimo aplikaciju (F5).
Kada se prikaže sučelje aplikacije, kliknemo li poveznicu Druga stranica, bit ćemo prebačeni na drugu, prethodno kreiranu stranicu SecondPage.xaml. Ako potom pritisnemo hardversku tipku Natrag, vratit ćemo se na glavnu (prethodnu) stranicu – prema zadanim postavkama ova tipka omogućuje odlazak na prethodnu aktivnu stranicu.
Sada iskoristimo programski prijelaz. Prvo dodajte sljedeći kod u odjeljak korištenja:
Private void MyButton_Click(object sender, RoutedEventArgs e) ( NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative)); )
Pokrenite aplikaciju (F5) i provjerite radi li gumb i poveznica.
Dodajmo kontrole i kod na drugu stranicu (SecondPage.xaml) koji će vam omogućiti povratak na prethodnu stranicu.
U XAML kodu datoteke SecondPage.xaml, unutar Grid elementa pod nazivom ContentPanel, umetnite kontrole Button i HyperlinkButton, kao što je prikazano u nastavku:
Za izradu rukovatelja Pritisnite događaje MyButton gumb na stranici SecondPage, desnom tipkom miša kliknite na MyButton_Click tekst u XAML editoru i odaberite Navigae to Event Handler.
Pokrenite aplikaciju (F5) i provjerite da poveznica "Prva stranica" na drugoj stranici vraća aplikaciju na glavnu stranicu.
Sada iskoristimo programski prijelaz. U kodu stranice SecondPage.xaml.cs dodajte sljedeći kod u odjeljak korištenja:
Korištenje System.Windows.Navigation;
Zatim zamijenite kod rukovatelja MyButton_Click sljedećim:
Private void MyButton_Click(object sender, RoutedEventArgs e) ( NavigationService.GoBack(); )
Pokrenite aplikaciju (F5) i uvjerite se da gumb Natrag na drugoj stranici vraća aplikaciju na glavnu stranicu.
Imajte na umu da u kodu koji se pokreće kada se klikne gumb, nismo upotrijebili naziv stranice na koju trebamo ići, već smo tražili od navigacijske usluge, koju predstavlja klasa NavigationService, da ode na stranicu koja je bila u navigacijski stog prije trenutnog.
Događaji prijelaza stranice mogu se programski obraditi, na primjer, kako bi se provjerilo s korisnikom želi li doista napustiti trenutnu stranicu.
Dodajte sljedeći kod u datoteku SecondPage.xaml.cs odmah nakon rukovatelja MyButton_Click:
Zaštićeno nadjačavanje void OnNavigatingFrom(NavigatingCancelEventArgs e) ( base.OnNavigatingFrom(e); // Ako se navigacija može otkazati, provjerite s korisnikom želi li ostati na trenutnoj stranici if (e.IsCancelable) ( MessageBoxResult result = MessageBox. Show("Možete li ostati?", "Potvrda prijelaza", MessageBoxButton.OKCancel); if (rezultat == MessageBoxResult.OK) ( // Korisnik je odlučio ostati e.Cancel = true; return; ) ) )
Kod je dovoljno jednostavan da ga možete sami shvatiti.
Pokrenite aplikaciju (F5) i primijetite da se dijaloški okvir za pojašnjenje prikazuje bez obzira hoćete li se vratiti na glavnu stranicu klikom na gumb ili praćenjem veze.
Sada sve što preostaje je naučiti kako proslijediti parametre između stranica.
Dvaput kliknite na MainPage.xaml za prelazak na uređivanje glavne stranice. U kodu MainPage.xaml, dodajmo kontrolu TextBox iznad elementa Button, kao što je prikazano u nastavku:
Dvaput kliknite na SecondPage.xaml za prelazak na uređivanje glavne stranice. U kodu SecondPage.xaml, dodajmo kontrolu TextBox iznad elementa Button, baš kao na stranici MainPage:
Sada, u rukovatelju događajem MyButton_Click stranice MainPage, dodajte parametre u Uri prijelaza na drugu stranicu pomoću gumba:
Private void MyButton_Click(object sender, RoutedEventArgs e) ( NavigationService.Navigate(new Uri("/SecondPage.xaml?text="+Uri.EscapeDataString(MyTextBox.Text), UriKind.Relative)); )
I na kraju, u kodu stranice SecondPage.xaml.cs, odmah nakon rukovatelja OnNavigatedFrom, dodati ćemo rukovatelj dolaska na stranicu OnNavigatedTo iu njemu ćemo obraditi dolazni parametar i prikazati ga u MyTextBox:
Zaštićeno nadjačavanje void OnNavigatedTo(NavigationEventArgs e) ( base.OnNavigatedTo(e); if (NavigationContext.QueryString.ContainsKey("text")) ( MyTextBox.Text = NavigationContext.QueryString["text"].ToString(); ) )
Pokrenite aplikaciju (F5) i provjerite kako radi, na primjer, kada slijedite poveznicu s glavne stranice na drugu stranicu.
Rezultati i sljedeći koraci
Dakle, shvatili smo što trebamo instalirati za razvoj za Windows Phone 7, upoznali smo se s dostupnim predlošcima i naučili kako izraditi novu aplikaciju iz predloška. Također smo naučili kako dodati kontrole izravno u XAML kod, dodati nove stranice u projekt i organizirati navigaciju između njih pomoću veze i koda s mogućnošću prosljeđivanja parametara.
U sljedećem koraku pogledat ćemo neke od opcija označavanja dostupnih u Silverlightu, pogledati osnovne kontrole i naučiti što je kontekst unosa za tekstualna polja.
Bok svima! Vjerojatno ste već čuli vijest da u prva 4 tjedna Više od 75 milijuna ljudi već je instaliralo Windows 10. U tom kontekstu, posebno nam je zadovoljstvo podijeliti s vama uvodni članak Arsenija Pečenkina iz DataArta o tome kako započeti s razvojem prvih deset aplikacija.
Za one koji se dvoume da li se kladiti na svog favorita ili ne Windows stroj 10, predlažemo kratki osvrt materijali o platformi, razvojnim alatima i novim značajkama dostupnim pri razvoju aplikacija.
Mislim da svi već znaju gdje i kako nabaviti svoju kopiju sustava Windows 10 - nećemo se zadržavati na ovoj točki. Instalacija se vrši na isti način Windows instalacija 8. Ako namjeravate ažurirati sustav, toplo preporučujem izradu sigurnosne kopije datoteka sa sistemskog diska.
Alati
Koje razvojne alate mogu koristiti? Trebat će vam novi MS Visual Studio 2015. Trenutačno su dostupni Visual Studio 2015 Community Edition te plaćena Professional i Enterprise izdanja.Prije nekog vremena, gotovo svi odjeljci o razvoju za Windows 10 doveli su do odjeljaka o razvoju za Windows 8.1, ali nakon izdanja dokumentacija se postupno ažurira (uzimajući u obzir činjenicu da je UWP platforma za Windows 10 razvoj WinRT-a).
Online tečaj na Microsoft Virtual Academy
Za one koji preferiraju audio-vizualni format upoznavanja platforme, tu je uvodni tečaj: Vodič za programere za Windows 10.Tečaj pokriva glavne značajke platforme, modele i alate dostupne za izradu Windows aplikacija. Razmatra se nekoliko osnovnih scenarija koji su implementirani u aplikaciji: rad s malom količinom memorije, pozadinsko izvršavanje zadataka, komunikacija između uređaja, upravljanje datotekama i podacima te načini interakcije s korisnikom.
Licenca i otključavanje uređaja
Kao i kod razvoja za Windows 8/8.1, bit će potrebna licenca razvojnog programera. Ovo je slično licenci za razvojne programere za Windows 8/8.1 kada kreirate svoj prvi projekt izravno u Visual Studiju (ovo nije isto što i račun za objavljivanje u trgovini). Kako biste instalirali aplikacije na svoje uređaje, ne zaboravite ih otključati:Univerzalne primjene
Što je novo za programera? Najavljeno je da se univerzalna aplikacija može pokrenuti na bilo kojoj platformi Windows 10. To je implementirano kroz sustav različitih API-ja. To jest, postoji API sloj zajednički svim platformama (Universal Windows Platform, UWP). Ako aplikacija koristi samo svoje mogućnosti, radit će na svim platformama s UWP-om.Ako trebate koristiti određene mogućnosti platforme (na primjer, rad s hardverskim gumbima na pametnom telefonu), tada možete koristiti odgovarajuće API-je putem proširenja platforme. Ova će funkcionalnost raditi samo na platformama koje imaju ove API-je, tako da provjere dostupnosti odgovarajućih metoda i klasa moraju biti ugrađene u kod.
Predlošci
Izvan kutije u Visual Studiju imamo pristup samo jednom predlošku projekta, Blank App.Ovo je projekt jednostrane univerzalne Windows aplikacije koji nema unaprijed definirane kontrole ili strukturu.
Osim standardnog predloška, možete pronaći predloške iz zajednice programera.
Zbirka trenutno uključuje sljedeće predloške projekata:
- Prazna aplikacija, osnovni XAML projekt na jednoj stranici. Slično standardnoj praznoj aplikaciji uključenoj u Windows 10 SDK, ali bez telemetrije Application Insights.
- Aplikacija SplitView, projekt aplikacije s više stranica s prilagodljivom kontrolom SplitView.
- Composition App, projekt koji ne koristi standardnu biblioteku komponenti, umjesto toga koristi Windows.UI.Composition API,
- Composition XAML App, projekt koji koristi XAML i Windows.UI.Composition API.
Primjeri
Kako bi olakšao prijavu na UWP platformu, Microsoft je pripremio sve veću zbirku primjera:Postoji mišljenje da se u stvarnom životu pametni telefoni s Microsoft OS-om nalaze jednako često kao i ljudi s patronimom "Artemovich". Čudna (blago rečeno) politika “Zle korporacije” u vezi sa sedmom i osmom familijom mobilnog operativnog sustava mnoge je korisnike odvratila od eksperimentiranja s “windowima” za pametne telefone, a sada se korporacija ozbiljno prihvatila zadatka ispravljanja svoje slike u ovoj korisničkoj niši. Kao underground obožavatelj Microsofta, nadam se da će im sve uspjeti - "desetka" maršira planetom, glavni adut im je jedna jezgra za sve platforme, pa ima sve šanse osvojiti dobar dio mobilnog tržišta. A kao programer, rado ću za vas napraviti uvodni članak o razvoju za ovu mobilnu osovinu, tako da uvijek budete spremni za rast njene popularnosti :).
Pregled arhitekture
Zahvaljujući zajedničkoj jezgri i UWP vremenu izvođenja aplikacije, nakon što je napisana, aplikacija će se izvoditi na svim uređajima sa sustavom Windows 10. Ovaj raspon uključuje:
- stolna računala;
- poslužiteljski sustavi - OS Windows Server 2016;
- prijenosna računala - MS Surface Book;
- tablete - MS Surface Pro;
- pametni telefoni - Lumia;
- igraće konzole - Xbox One;
- naočale za proširenu stvarnost - MS HoloLens;
- zidni tableti - MS Surface Hub;
- pametni sat - MS Band 2.
Popis je impresivan. Osim toga, UWP nije ograničen na izvođenje aplikacijskih programa; on također podržava rad upravljačkih programa na razini jezgre. To vam omogućuje stvaranje upravljačkih programa koji funkcioniraju na različitim uređajima, sve dok je određena komponenta za koju je upravljački program namijenjen ista.
UWP podržava i upravljačke programe na razini jezgre i na razini korisnika. Podsustav uključuje sučelja upravljačkih programa uređaja (DDI), od kojih se upravljački program za UWP može koristiti.
Ali sve to ne spašava programera od prilagodbe sučelja određenim platformama i rezolucijama zaslona. U nekim posebnim slučajevima to možda neće biti potrebno.
Razvojni alati
Za pisanje, uklanjanje pogrešaka, implementaciju i testiranje aplikacija za Windows 10 Mobile trebat će vam Visual Studio 2015 (tko bi sumnjao). Ovo ljeto objavljeno je treće ažuriranje. Toplo ga preporučujem! Njegov glavni ispravak je smanjena potrošnja memorije u usporedbi s drugim ažuriranjem.
Konvertiranje Xcode projekta radi se u dva koraka. Najprije trebate dodati isticanje sintakse za jezik Objective-C u Visual Studio: instalirajte proširenje objc-syntax-highlighting.vsix iz mape winobjcbin. Zatim pomoću uslužnog programa naredbenog retka vsimporter.exe trebate pretvoriti Xcode projekt u VS projekt. Nakon toga, rezultirajuća sln datoteka može se otvoriti u studiju, gdje će Objective-C sintaksa biti istaknuta. Možete izraditi i pokrenuti aplikaciju, radit će kao i svi ostali Windows programi.
Proklet bio, kako je nevjerojatno vidjeti Objective-C kod ispravno istaknut u Visual Studiju!
Za kompajliranje Obj-C koda koristi se besplatni kompajler zveket. Budući da je izlaz standardna UWP aplikacija, može se pokrenuti na mobilnom uređaju u sustavu Windows 10 Mobile. Jedan program može sadržavati kod u C++ i Obj-C.
Ako imate projekt za prethodnu verziju Windows Phonea, to jest 8.1 (ili 8.0), tada kada ga otvorite u VS 2015, studio će automatski ažurirati projekt tako da ispunjava zahtjeve Univerzalne Windows aplikacije ( UWP). Ne samo da će se oznaka korisničkog sučelja u XAML-u pretvoriti, već i programska logika u JS/C++/C#/VB zajedno s njim. Ako je u kodu bilo poziva WinRT podsustavu, oni će se pretvoriti u UWP pozive.
Postoji još jedna uobičajena vrsta aplikacije - igre. iOS i Android renderiraju pomoću OpenGL sučelja niske razine. S druge strane, na Windows 10 Mobile, DirectX 11 se koristi za prikaz slika u igrama. To rezultira nekompatibilnošću. Ali postoji rješenje - open source projekt ANGLE. ANGLE (Almost Native Graphics Layer Engine) – gotovo izvorni motor grafičkog sloja – omogućuje korisnicima Windowsa neprimjetno pokretanje OpenGL ES aplikacija na hardveru koji pokreće DirectX 11. To se postiže pretvaranjem poziva iz OpenGL ES API-ja u DirectX 11 API. ANGLE u potpunosti podržava sljedeće tri vrste aplikacija.