App Studio je nova verzija mrežnog dizajnera aplikacija tvrtke Microsoft. Izrada Windows aplikacija

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

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.xmlDatoteka manifesta potrebna za generiranje XAP datoteke u koju je upakirana aplikacija za implementaciju na telefonu.
AssemblyInfo.csJoš jedna konfiguracijska datoteka koja definira neke metapodatke glavnog sklopa aplikacije.
WMAppManifest.xmlDatoteka metapodataka koja sadrži različite postavke aplikacije: naslov, postavljanje prve stranice, putanje do ikona, definiranje potrebnih mogućnosti sustava itd.
App.xamlOvo 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.csDatoteka 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.pngSlika 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.pngOva 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.xamlOvo 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.csMainPage.xaml kodna datoteka stranice.
SplashScreenImage.jpgOva 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:

reci prijateljima
Pročitajte također