Windowsストア[DB]アプリ入門

1,039 views
1,017 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,039
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Windowsストア[DB]アプリ入門

  1. 1. Windowsストア[DB]アプリ入門COMMUNITY OPEN DAY 20132013.05.11 初音玲
  2. 2. アジェンダ▷基本▷DBアクセス▷Azure Mobile Service▷Web API▷まとめ
  3. 3. 自己紹介初音玲MicrosoftMVPOracle ACE 開発者インフラエンジニアテクニカルライター
  4. 4. Windowsストアアプリキホンのキ
  5. 5. 用語のおさらいアプリWindows 8ストアアプリデザインMicrosoftデザインスタイルUI名なにそれ?おいしいの?
  6. 6. Microsoftデザインスタイル?▷「hh464920」でbingるhttp://msdn.microsoft.com/en-us/library/windows/apps/hh464920.aspx
  7. 7. Windows 8 ストアアプリ▷開発言語:VB, C#, C++▷画面定義:XAML
  8. 8. アプリ、デザイン、フレームワークWindows 8ストアアプリデスクトップアプリMicrosoft Design Style UXガイドWindowsストアアプリで配布従来型配布WinRT(Windows Runtime).NET Framework
  9. 9. 標準テンプレートを利用
  10. 10. 分類 スタイル名見出し PageHeaderTextStyle小見出し SubHeaderTextStyle本文 BodyTextStyle補足 CaptionTextStyle文字用途とスタイル名
  11. 11. PageHeaderTextStyleSubHeaderTextStyleBodyTextStyleCaptionTextStyleBodyTextStyleGroupDetailPage.xaml
  12. 12. 分類 ガイドライン StandardStylesフォント Meiryo UI Segoe UI見出し文字サイズ 42 56小見出し文字サイズ 20 26.667本文文字サイズ 11 (省略値)14.667補足文字サイズ 9 12ガイドラインとテンプレートの相違
  13. 13. テンプレート標準ガイドライン推奨値
  14. 14. ハブスポーク詳細ハブナビゲーションモデル
  15. 15. グリッドアプリケーションの基本構造GridViewListViewCollectionViewSourceDataContextGridViewListViewCollectionViewSourceDataContextSampleDataSourceBindingBindingBindingBindingBinding BindingDesignInstance
  16. 16. グリッドアプリケーションの基本構造GridViewListViewCollectionViewSourceDataContextDefaultViewModelGridViewListViewCollectionViewSourceDataContextObservableCollection代入BindingBindingBindingBindingBindingDefaultViewModelBinding 代入
  17. 17. デザイナとのコラボするためのキモ▷Model – ViewModel – View構造▷Binding要素をまず作成▷デザイナはBlendでViewをデザイン▷TFServiceで共有&バージョン管理
  18. 18. WindowsストアアプリDBアクセス
  19. 19. WindowsストアアプリでDBを使うにはデスクトップアプリ• ADO.NET• LINQ to SQL• Entity Framework
  20. 20. WindowsストアアプリでDBを使うにはWindowsストアアプリ• ADO.NET• LINQ to SQL• Entity Framework
  21. 21. 疑問:DBアクセスがなくてどうするの?
  22. 22. リモートDBアクセスがない▷SQLiteを組み込む• DBファイルをローカルリソース管理
  23. 23. リモートDBアクセスがない▷•▷DBアクセスWeb APIを経由する• ストアアプリからはWebアクセス
  24. 24. グリッドアプリをDBアプリ化GridViewListViewCollectionViewSourceDataContextDefaultViewModelGridViewListViewCollectionViewSourceDataContextObservableCollection(ViewModel)代入BindingBindingBindingBindingBindingDefaultViewModelBinding 代入 ObservableCollection(Model)Webサービス(REST/JSON)代入BindingObservableCollection(Model)代入Binding
  25. 25. REST/JSONなデータアクセス▷facebookからのデータ取得デモ
  26. 26. 疑問:既存DBと入出力するには?
  27. 27. Windows AzureMobile Service人が作りし非常にお手軽なモノ
  28. 28. SDKのインストール▷NuGet
  29. 29. SDK 0.3.3-rc▷NuGet• Install-Package WindowsAzure.MobileServices -Pre
  30. 30. モバイルサービス(preview)
  31. 31. 接続用コードを取得
  32. 32. テーブル作成使わない
  33. 33. 好きな名前のテーブルを作成
  34. 34. テーブル作成▷IDだけのテーブルが作成される
  35. 35. コード▷テーブル構造と同じ構造のクラスを用意▷Public Class COD2013ContextPublic Property ID As IntegerPublic Property Item As StringEnd ClassPublic Shared MobileService = New MobileServiceClient("https://hatsune.azure-mobile.net/","CxxxxxxxxxxxxxxxxxxxGRhjhCBe71“)Private AnswerTable As IMobileServiceTable(Of COD2013Context) =MobileService.GetTable(Of COD2013Context)()Public Async Sub InsertAnswerItem(item As COD2013Context)Await AnswerTable.InsertAsync(item)End Sub
  36. 36. Azure Mobile Services実行結果
  37. 37. テーブルの作成▷一度でもコードを実行すれば…
  38. 38. Mobile Serviceはプラットフォーム限定
  39. 39. 料金無料 占有料金 無料 8.31円/時間preview期間中 無料 正規料金の20%CPU 共有 1CPU/インスタンス作成数制限 10サービス/サブスクリプション 100サービス/インスタンスジョブスケジュール 1件(1か月あたり700回上限) 10件受信データ転送 無制限 無制限送信データ転送 最大165MB/日 通常料金の従量制SQLデータベース(必須) 通常料金の従量制 通常料金の従量制
  40. 40. ASP.NET Web APIもっとRESTらしく
  41. 41. ASP.NET MVC 4
  42. 42. ASP.NET MVC 4 - Model▷データ構造を定義したクラスを用意▷データ取得用クラスを用意(ここでDBアクセス)Public Class COD2013ContextPublic Property ID As IntegerPublic Property Item As StringEnd ClassPublic Class TResultPublic Property Items As COD2013Context()End Class
  43. 43. ASP.NET MVC 4 - Controller▷コントローラにコード実装▷http://……/api/ValuesPublic Class ValuesControllerInherits ApiControllerPrivate Model As New COD2013Model GET api/valuesPublic Function GetValues() As TResultReturn Model.GetValues()End FunctionEnd Class
  44. 44. ローカル実行
  45. 45. Windows Azure Webサイトに発行
  46. 46. クラウド上で実行
  47. 47. Windowsストアアプリから接続Public Async Function GetAnswerItem() As TaskDim urlString As String = String.Format(SearchUrl,Date.Now.ToString("yyyyMMddHHmmss"))Dim client As New HttpClientUsing response As HttpResponseMessage = Await client.GetAsync(urlString)Dim responseDataStream As Stream = Await response.Content.ReadAsStreamAsyncUsing stream As New MemoryStream()responseDataStream.CopyTo(stream, responseDataStream.Length)stream.Position = 0Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(GetType(TResult))Dim jsonDataValue As TResult = CType(serializer.ReadObject(stream), TResult)Me.Items = New ObservableCollection(Of COD2013Context)(From venue In jsonDataValue.ItemsSelect New COD2013Context With{.ID = venue.ID,.Item = venue.Item})End UsingEnd UsingNotifyPropertyChanged("Items")End Function
  48. 48. Azure Web Sites実行結果
  49. 49. 料金Mobile Services(無料プラン) Web Sites(無料プラン)料金 無料 無料preview期間中 無料 無料CPU 共有 使用サイクル合計60分/日作成数制限 10サービス/サブスクリプション 10サイトジョブスケジュール 1件(1か月あたり700回上限) -受信データ転送 無制限 無制限送信データ転送 最大165MB/日 最大165MB/日SQLデータベース (必須)通常料金の従量制 (任意)通常料金の従量制MySQL - 20MB
  50. 50. FIN

×