c# web. Занятие 15

24
Темы лекции: Приложения Windows Store. Работа с Google API Тренер: Игорь Шкулипа, к.т.н. Разработка Веб-приложений на платформе Microsoft .NET Framework. Занятие 15

Upload: igor-shkulipa

Post on 09-Jan-2017

75 views

Category:

Education


3 download

TRANSCRIPT

Page 1: C# Web. Занятие 15

Темы лекции: Приложения Windows Store. Работа с Google API

Тренер: Игорь Шкулипа, к.т.н.

Разработка Веб-приложений на платформе Microsoft .NET Framework.

Занятие 15

Page 2: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 2

Приложения Магазина Windows

• Приложение Магазина Windows выполняются наустройствах Windows (компьютерах, планшетах, ноутбуках) имогут продаваться в Магазине Windows.

• Приложения Магазина Windows Phone выполняются наустройствах Windows Phone и могут продаваться в МагазинеWindows Phone.

• Универсальные приложения доступны и в МагазинеWindows, и в Магазине Windows Phone. С помощью MicrosoftVisual Studio можно легко создавать приложения для устройствпод управлением Windows и Windows Phone из одного проекта.

Page 3: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 3

Приложения Магазина реализуются на платформе Windows

Windows предоставляет вам множество ресурсов, которые помогутзаинтересовать пользователей:

• Живые плитки и экран блокировки предоставляют краткий обзорактуальной и значимой в определенном контексте информации.

• Push-уведомления предлагают вниманию пользователей важныеоповещения от приложений в нужный момент.

• В новом Центре поддержки Windows Phone вы можете упорядочивать иотображать уведомления и содержимое, ожидающие от пользователякаких-либо действий.

• Благодаря фоновой работе и триггерам работа приложениявозобновляется именно тогда, когда это нужно пользователю.

• Вы можете использовать голосовые функции и устройства Bluetooth снизким энергопотреблением, чтобы помочь пользователямвзаимодействовать с окружающим миром.

Page 4: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 4

Несколько ссылок

О некоторых особенностях Windows 8 и WinRT(метро)-приложений

Разработка приложений под Windows 8: почему и как

Windows 8.1: новые API и возможности для разработчиков

Page 5: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 5

Создание приложения

Page 6: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 6

GridApp

Page 7: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 7

XAML передача параметров между страницами

Page 8: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 8

MainPage.xaml

<Page

x:Class="PassObjectThroughPages.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:local="using:PassObjectThroughPages"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

mc:Ignorable="d">

<Grid Background="Chartreuse">

<TextBox Name="EmailTB" HorizontalAlignment="Left“

Margin="521,201,0,0" TextWrapping="Wrap" Text="Email“

VerticalAlignment="Top" Width="322" />

<PasswordBox Name="PasswordTB" HorizontalAlignment="Left“

Margin="521,276,0,0" Password="password“

VerticalAlignment="Top" Width="322" />

<Button Name="LoginButton" Content="Login“

HorizontalAlignment="Left"

Margin="518,349,0,0“

VerticalAlignment="Top"

Width="328“

Click="LoginButton_Click"/>

</Grid>

</Page>

Page 9: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 9

AnotherPage.xaml

<Page

x:Class="PassObjectThroughPages.AnotherPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:local="using:PassObjectThroughPages"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

mc:Ignorable="d">

<Grid Background="Chartreuse">

<TextBlock Name="WelcomeTB" HorizontalAlignment="Center“

Margin="641,378,652,0" TextWrapping="Wrap“

Text="TextBlock" VerticalAlignment="Top" FontSize="22“

Height="30"/>

</Grid>

</Page>

Page 10: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 10

MainPage.xaml.cs

namespace PassObjectThroughPages

{

public class EmailPass

{

public string Email { get; set; }

public string Password { get; set; }

}

public sealed partial class MainPage : Page

{

public MainPage()

{

this.InitializeComponent();

}

private void LoginButton_Click(object sender, RoutedEventArgs e)

{

var arg = new EmailPass

{ Email = EmailTB.Text, Password = PasswordTB.Password };

this.Frame.Navigate(typeof(AnotherPage), (object)arg);

}

}

}

Page 11: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 11

AnotherPage.xaml.cs

namespace PassObjectThroughPages

{

public sealed partial class AnotherPage : Page

{

EmailPass EP;

public AnotherPage()

{

this.InitializeComponent();

}

protected override void OnNavigatedTo(NavigationEventArgs e)

{

if (e.Parameter is EmailPass) EP = e.Parameter as EmailPass;

WelcomeTB.Text = "Welcome, " + EP.Email;

}

}

}

Page 12: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 12

Результат

Page 13: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 13

Google API

http://www.daimto.com/

Page 14: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 14

Настройка Google API

Page 15: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 15

Настройка Google API

Page 16: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 16

Настройка Google API

Page 17: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 17

Добавление нового приложения в консоли Google

https://console.developers.google.com/

Page 18: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 18

Добавление нового приложения в консоли Google

Page 19: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 19

Добавление нового приложения в консоли Google

Page 20: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 20

Включить необзодимые API

Page 21: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 21

Пример. Консольное приложение

using System.Threading;

using System.Threading.Tasks;

using Google;

using Google.Apis.Auth.OAuth2;

using Google.Apis.Drive.v2;

using Google.Apis.Drive.v2.Data;

using Google.Apis.Services;

using Google.Apis.Util.Store;

namespace ConsoleApplication1 {

class Program {

static void Main(string[] args) {

UserCredential credential =

GoogleWebAuthorizationBroker.AuthorizeAsync(

new ClientSecrets

{

ClientId = “YOUR_CLIENT_ID",

ClientSecret = “YOUR_CLIENT_SECRET",

},

new[] {

DriveService.Scope.Drive,

DriveService.Scope.DriveFile},

Environment.UserName,

CancellationToken.None,

new FileDataStore("GoogleDrive.Auth.Store")).Result;

Page 22: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 22

Пример. Консольное приложение

// Cсоздание сервиса

var service =

new DriveService(new BaseClientService.Initializer()

{

HttpClientInitializer = credential,

ApplicationName = “Google Drive Example"

});

// Получение списка файлов

FilesResource.ListRequest request = service.Files.List();

FileList files = request.Execute();

foreach (var f in files.Items)

{

Console.WriteLine("{0} - {1}", f.Title, f.MimeType);

}

var req =

service.HttpClient.GetByteArrayAsync

(files.Items[0].DownloadUrl);

byte[] byteArray = req.Result;

System.IO.File.WriteAllBytes

("d:\\Temp\\" + files.Items[0].Title, byteArray);

Console.ReadLine();

}

}

}

Page 23: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 23

Разрешить доступ

Page 24: C# Web. Занятие 15

http://www.slideshare.net/IgorShkulipa 24

Результат