テクニカルエバンジェリストhttp://blogs.msdn.com/b/shosuzMTC アーキテクトhttp://www.microsoft.com/ja-jp/business/mtc/ads.aspx呟きネタは主に、Windows A...
Windows ストア LOB アプリ開発
ストアアプリの企業導入に伴う課題既存アプリケーションとの住み分けアプリケーション化のターゲット開発リソース確保、技術研修配布の方法
百貨店の店舗用商品カタログのフロー例SharePoint Sitehttp://sharepoint/urlsearchBrowse PageSite Actions usernameParent > Parent > Current Page...
Microsoft Architect Forum 2013データソースとしての選択肢の選定データベースとの接続(特に SQLServer)社内のコンテンツサーバークラウド上のコンテンツサーバークラウドや公開されたサービスとの連携WCF Dat...
Microsoft Architect Forum 2013ストアアプリ Grid テンプレートやMVVM (Model-View-ViewModel) の利用 階層型ページ遷移で画面を活用 ユーザーに適切な情報を提供 画面に必要なコンテ...
MVVM フレームワークのご紹介
••• MVC• PresentationModel pattern• XAMLデザイナー担当 開発者が担当ViewViewModelModelUI、XAMLロジック、状態データソース
Data ModelViewXAML分離コードView ModelState +OperationsChangeNotificationData-bindingand commands
独自の“MVVM” モデルBindableBaseData ModelViewXAML分離コードView ModelState +OperationsChangeNotificationData-bindingand commands
実装済みサンプルご紹介- Adventure WorksReference Implementation
http://prismwindowsruntime.codeplex.com/
DemoWindows Store Business AppsGuidance using Prism forWindows Runtimehttp://prismwindowsruntime.codeplex.com
ビジネスアプリケーションとPrism- patterns & practices guidance for buildingWindows Store business apps -
// View フォルダを作りStartPage.xaml を追加// その中に追加する<TextBlockText="Hello World!!!"Style="{StaticResource HeaderTextStyle}" />
// App.xaml.cs の using の部分より下を全部消した後、追加// Microsoft.Practices.Prism.StoreApps ライブラリ参照設定using Microsoft.Practices.Prism.Sto...
// App.xaml を下記のように囲む<Infrastructure:MvvmAppBasexmlns:Infrastructure="using:Microsoft.Practices.Prism.StoreApps">...</Infr...
protected override void OnLaunchApplication(LaunchActivatedEventArgs args){NavigationService.Navigate("Start", null);}
MVVM (Model-View-ViewModel)の基本的な実装- patterns & practices guidance for buildingWindows Store business apps -
// StartPageViewModel クラスに FirstName プロパティと背後のフィールドを追加private string _firstName;public string FirstName{get { return _firs...
// Microsoft.Practices.Prism.StoreApps ライブラリのタイプをStartPageViewModel クラスにインポート// ViewModel Base クラスから StartPageViewModel クラ...
// Microsoft.Practices.Prism.StoreApps ライブラリを利用し、FirstName プロパティを SetProperty メソッドを使うように変更public string FirstName{get { re...
// ViewModelLocator.AutoWireViewModel attached property をStartPage のための Page コントロールに追加する<Page xmlns:Infrastructure="using:...
// StartPageViewModel クラスを更新し、FirstName プロパティに[RestorableState] アトリビュートを適用[RestorableState]public string FirstName{get { r...
Flyout Services クラスを使ったFlyout の作成・表示- patterns & practices guidance for buildingWindows Store business apps -
// SignInFlyout ページを作成// その中の Grid 内に TextBlock 追加<Grid Background="White"><TextBlock Text="Sign In!"Foreground="Black" />...
// Microsoft.Practices.Prism.StoreApps ライブラリ内で StandardFlyoutSize クラスを定義// FlyoutView base クラスから SignInFlyout クラスを継承するよう変更...
// SignInFlyout.xaml ファイルを更新し、SignInFlyout View がMicrosoft.Practices.Prism.StoreApps ライブラリにあるFlyoutView base class を拡張するよう...
// StartPage が SignInFlyout を表示するように変更するMicrosoft.Practices.Prism.StoreApps 名前空間からのインターフェースを StartPageViewModel クラスにインポートす...
// ViewModelLocator をファクトリーに提供し StartPage のためのViewModel インスタンスを作成// App class 内にある OnInitialize メソッドをオーバーライドしViewModelLoca...
// StartPage 内の StackPanel に SignInFlyout を表示するボタンを追加当該ボタンの Command property は StartPageViewModel クラス内のSignInCommand にバインド...
// StartPageViewModel class に System.Windows.Input 名前空間をインポートusing System.Windows.Input;// SignInCommand プロパティを StartPageV...
// 設定ペインに SignInFlyout を表示するアイテムを追加する// アプリを停止し、App class の中の GetSettingsCharmActionItems メソッドをオーバーライド// このメソッドは SettingsP...
Dependency Injection コンテナの統合- patterns & practices guidance for buildingWindows Store business apps -
// Dependency Injection Container ライブラリへの参照を追加※ Unity v3 container via NuGet(http://www.nuget.org/packages/Unity/).// App ...
// App class 内の Resolve メソッドをオーバーライドして当該コンテナが一つのタイプからオブジェクトインスタンスを生成できるようにするprotected override object Resolve(Type type){r...
// MvvmAppBase により提供される3つのサービスを登録するコードprotected override void OnInitialize(IActivatedEventArgs args){_container.RegisterIn...
ユーザー入力のバリデーション- patterns & practices guidance for buildingWindows Store business apps -
HighlightFormFieldOnErrors.PropertyErrors
private string _username;private string _password;public string Username{get { return _username; }set { SetProperty(ref _u...
// 各プロパティに “Required”・“StringLength” DataAnnotationsattributes を追加[Required][StringLength(10)]public string Username{get {...
// Model クラスができたのでそれを SignInFlyoutViewModel 上で公開// ViewModels フォルダに SignInFlyoutViewModel 追加// SignInFlyoutViewModel に当該 C...
// SignInFlyout ページ とこのページ (view) とをSignInFlyoutViewModel にバインドViewModelLocator.AutoWireViewModel=”True”
// いくつか Controls を View に追加して、当該 ViewModel のCredential Username プロパティと Password プロパティ値を格納//何らかの Validation error messagesと...
// FirstErrorConverter のソースpublic sealed class FirstErrorConverter : IValueConverter{public object Convert(object value, T...
// この値コンバータを Static resource として使うには、App.xaml の中で参照設定する<ResourceDictionary>...<converters:FirstErrorConverterx:Key="FirstE...
// Model プロジェクトの全てのプロパティをバリデートするUserCredential.ValidateProperties()public SignInFlyoutViewModel(){UserCredential = new Cre...
// View にボタンを追加して ValidateAll command にバインド<Button Command="{Binding ValidateAll}"Content="Validate All"Foreground="Black"/>
public class MyViewModel : ViewModel, INavigationAware{private string _name;[RestorableState]public string Name{get { retu...
Model の追加(1)Entity Framework + Code First によるデータモデル構築
Entity Data Model概念モデル (CSDL)問題領域の概念的なエンティティやリレーションの定義マッピング (MSL)両モデル間の対応付けストレージモデル (SSDL)特定のデータソースに基づく論理スキーマのモデルプログラム上のオブ...
プレゼンテーション層ドメイン層データ層public partial class Entry{public virtual int ID{get;set;}RDB
Model の追加(2)ASP.NET MVC4 Web API によるサービスの公開と利用
•クライアントアプリWeb サーバーASP.NETWebAPIGet/Post/Put/DeleteJSON/XMLデータソースブラウザーEntityFrameworkサービス
• awaitXAML / C# ASP.NETWeb APIJSONGet/Post/Put/Deletevar client = new HttpClient();HttpResponseMessage response =await cl...
Windows Azure 連携シナリオ• オンライン楽器ストアアプリ各商品を表示 タイトルを編集 詳細情報編集、削除可能スタートスクリーン 全商品表示(Hub) 一覧・登録(Sections)個別商品表示・編集(Details)
アーキテクチャー概要Windows ストアアプリ・店舗管理者用 - 編集・登録・一般ユーザー用 - 閲覧・購入・プッシュ通知(Mobile Services)・メール(SendGrid)69EntityFrameworkSQL Database...
DemoMusical Instruments Storeutilizing Adventure Works RIworking with Windows Azureas Model
http://aka.ms/VS2012-Casehttp://aka.ms/VS2012-Solhttp://aka.ms/VS2012-Prodhttp://aka.ms/VS2012-Tryhttp://aka.ms/VS2012-Lic
http://prismwindowsruntime.codeplex.com.exe.zip
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Upcoming SlideShare
Loading in …5
×

Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev

3,440 views

Published on

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
3,440
On SlideShare
0
From Embeds
0
Number of Embeds
441
Actions
Shares
0
Downloads
15
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev

  1. 1. テクニカルエバンジェリストhttp://blogs.msdn.com/b/shosuzMTC アーキテクトhttp://www.microsoft.com/ja-jp/business/mtc/ads.aspx呟きネタは主に、Windows Azure, Windows, RIA,HTML5, MVVM, iOS/Android x Windows Azure連携, Guitar … 等ASPIC 執行役員 (‘05 ~),Wipse モバイル x クラウド部会長(’11 ~)東京工業大学大学院(’13~),早稲田大学大学院(’05-12),中央大学総合政策学部(’08-10)で非常勤講師Microsoft 軽音楽部 広報担当 (Gt./Key./DAW)(‘12 ~)https://www.facebook.com/shosuz
  2. 2. Windows ストア LOB アプリ開発
  3. 3. ストアアプリの企業導入に伴う課題既存アプリケーションとの住み分けアプリケーション化のターゲット開発リソース確保、技術研修配布の方法
  4. 4. 百貨店の店舗用商品カタログのフロー例SharePoint Sitehttp://sharepoint/urlsearchBrowse PageSite Actions usernameParent > Parent > Current PagePage TitleThis Site: site searchLibrariesSite PagesSharedDocumentsDrop OffLibraryCustomlibraryCurrent PagePage One Page Two7:37 AMマスター情報を取得商品情報を検索マスター情報を検索画像 URLを検索画像 URLを取得画像 URLを含む商品情報を取得画像情報をリクエスト画像情報を返すXML-RPCRESTREST
  5. 5. Microsoft Architect Forum 2013データソースとしての選択肢の選定データベースとの接続(特に SQLServer)社内のコンテンツサーバークラウド上のコンテンツサーバークラウドや公開されたサービスとの連携WCF DataServicesSharePointServer2010/2013Office 365ASP.NETWeb API、MobileServices
  6. 6. Microsoft Architect Forum 2013ストアアプリ Grid テンプレートやMVVM (Model-View-ViewModel) の利用 階層型ページ遷移で画面を活用 ユーザーに適切な情報を提供 画面に必要なコンテンツのみ表示 MVVM の積極的採用MVVM (Model-View-ViewModel)サンプル実装Contoso TravelFeatured destinations Last minute deals7 night Alaska CruiseLast Minute DealsFeatured destinationsBarcelona,SpainLast Minute Deals7 Night Alaska CruiseOcean View CabinsUpgrade from an inside cabin andsave $43/night/person!Picture windows with ocean and portviewsFrom $2,099 — only$150/night/person based on doubleoccupancySuitesUpgrade from an inside cabinand save $43/night/person!Picture windows with oceanand port viewFrom $2,099 — only$150/night/person doMy Trips Weather7 daysChicago (3/11 – 3/19)Today54/43Mostly SunnyToday54/43Mostly SunnyToday54/43Mostly SunnyToday54/43Mostly SunnyToday54/43Mostly SunnyAttractionsMy TripsFeatured DestinationsTop Destinations for 2012Barcelona, SpainMy Trips City GuideCity GuideWindows ストアアプリGrid テンプレート
  7. 7. MVVM フレームワークのご紹介
  8. 8. ••• MVC• PresentationModel pattern• XAMLデザイナー担当 開発者が担当ViewViewModelModelUI、XAMLロジック、状態データソース
  9. 9. Data ModelViewXAML分離コードView ModelState +OperationsChangeNotificationData-bindingand commands
  10. 10. 独自の“MVVM” モデルBindableBaseData ModelViewXAML分離コードView ModelState +OperationsChangeNotificationData-bindingand commands
  11. 11. 実装済みサンプルご紹介- Adventure WorksReference Implementation
  12. 12. http://prismwindowsruntime.codeplex.com/
  13. 13. DemoWindows Store Business AppsGuidance using Prism forWindows Runtimehttp://prismwindowsruntime.codeplex.com
  14. 14. ビジネスアプリケーションとPrism- patterns & practices guidance for buildingWindows Store business apps -
  15. 15. // View フォルダを作りStartPage.xaml を追加// その中に追加する<TextBlockText="Hello World!!!"Style="{StaticResource HeaderTextStyle}" />
  16. 16. // App.xaml.cs の using の部分より下を全部消した後、追加// Microsoft.Practices.Prism.StoreApps ライブラリ参照設定using Microsoft.Practices.Prism.StoreApps;sealed partial class App : MvvmAppBase{public App(){this.InitializeComponent();}}
  17. 17. // App.xaml を下記のように囲む<Infrastructure:MvvmAppBasexmlns:Infrastructure="using:Microsoft.Practices.Prism.StoreApps">...</Infrastructure:MvvmAppBase>
  18. 18. protected override void OnLaunchApplication(LaunchActivatedEventArgs args){NavigationService.Navigate("Start", null);}
  19. 19. MVVM (Model-View-ViewModel)の基本的な実装- patterns & practices guidance for buildingWindows Store business apps -
  20. 20. // StartPageViewModel クラスに FirstName プロパティと背後のフィールドを追加private string _firstName;public string FirstName{get { return _firstName; }set { _firstName = value; }}
  21. 21. // Microsoft.Practices.Prism.StoreApps ライブラリのタイプをStartPageViewModel クラスにインポート// ViewModel Base クラスから StartPageViewModel クラスを作成することにより、ViewModel Base クラスのINotifyPropertyChanged の実装を利用することが可能using Microsoft.Practices.Prism.StoreApps;
  22. 22. // Microsoft.Practices.Prism.StoreApps ライブラリを利用し、FirstName プロパティを SetProperty メソッドを使うように変更public string FirstName{get { return _firstName; }set { SetProperty(ref _firstName, value); }}
  23. 23. // ViewModelLocator.AutoWireViewModel attached property をStartPage のための Page コントロールに追加する<Page xmlns:Infrastructure="using:Microsoft.Practices.Prism.StoreApps"Infrastructure:ViewModelLocator.AutoWireViewModel="True"... >...</Page>
  24. 24. // StartPageViewModel クラスを更新し、FirstName プロパティに[RestorableState] アトリビュートを適用[RestorableState]public string FirstName{get { return _firstName; }set { SetProperty(ref _firstName, value); }}
  25. 25. Flyout Services クラスを使ったFlyout の作成・表示- patterns & practices guidance for buildingWindows Store business apps -
  26. 26. // SignInFlyout ページを作成// その中の Grid 内に TextBlock 追加<Grid Background="White"><TextBlock Text="Sign In!"Foreground="Black" /></Grid>
  27. 27. // Microsoft.Practices.Prism.StoreApps ライブラリ内で StandardFlyoutSize クラスを定義// FlyoutView base クラスから SignInFlyout クラスを継承するよう変更。また、コンストラクターの中で Width も決定public sealed partial class SignInFlyout : FlyoutView{public SignInFlyout() : base(StandardFlyoutSize.Narrow){this.InitializeComponent();}}
  28. 28. // SignInFlyout.xaml ファイルを更新し、SignInFlyout View がMicrosoft.Practices.Prism.StoreApps ライブラリにあるFlyoutView base class を拡張するように変更する<Infrastructure:FlyoutViewxmlns:Infrastructure="using:Microsoft.Practices.Prism.StoreApps"...</Infrastructure:FlyoutView>
  29. 29. // StartPage が SignInFlyout を表示するように変更するMicrosoft.Practices.Prism.StoreApps 名前空間からのインターフェースを StartPageViewModel クラスにインポートするusing Microsoft.Practices.Prism.StoreApps.Interfaces// StartPageViewModel クラスにコンストラクタを追加し、IFlyoutService タイプのパラメータを取るようにするStartPageViewModel クラスにはデフォルトコンストラクタは存在しないpublic StartPageViewModel(IFlyoutService flyoutService){}
  30. 30. // ViewModelLocator をファクトリーに提供し StartPage のためのViewModel インスタンスを作成// App class 内にある OnInitialize メソッドをオーバーライドしViewModelLocator に StartPageViewModel インスタンス構成を教えるprotected override voidOnInitialize(IActivatedEventArgs args){ViewModelLocator.Register(typeof(StartPage).ToString(),() => new StartPageViewModel(FlyoutService));}
  31. 31. // StartPage 内の StackPanel に SignInFlyout を表示するボタンを追加当該ボタンの Command property は StartPageViewModel クラス内のSignInCommand にバインドされる<StackPanel><TextBlock Text="Hello World!!!" /><TextBox Text="{Binding FirstName, Mode=TwoWay}" /><Button Content="ShowFlyout"Command="{Binding SignInCommand}" /></StackPanel>
  32. 32. // StartPageViewModel class に System.Windows.Input 名前空間をインポートusing System.Windows.Input;// SignInCommand プロパティを StartPageViewModel クラスに追加Public Icommand SignInCommand { get; private set; }// 当該プロパティは private setter を持つ(内部的にのみセット可能故)// SignInCommand プロパティを DelegateCommand インスタンスに設定しFlyoutServiceを呼び出すpublic StartPageViewModel(IFlyoutService flyoutService){SignInCommand = new DelegateCommand(() =>flyoutService.ShowFlyout("SignIn"));}
  33. 33. // 設定ペインに SignInFlyout を表示するアイテムを追加する// アプリを停止し、App class の中の GetSettingsCharmActionItems メソッドをオーバーライド// このメソッドは SettingsPane class の CommandsRequested イベント が発生したとき呼ばれる// SignInFlyout を開くための設定ペインに SettingsCharmActionItem を追加するProtected override Ilist<SettingsCharmActionItem>GetSettingsCharmActionItems(){return new List<SettingsCharmActionItem>{ newSettingsCharmActionItem("Sign In",() => FlyoutService.ShowFlyout("SignIn"))};}
  34. 34. Dependency Injection コンテナの統合- patterns & practices guidance for buildingWindows Store business apps -
  35. 35. // Dependency Injection Container ライブラリへの参照を追加※ Unity v3 container via NuGet(http://www.nuget.org/packages/Unity/).// App class に当該コンテナを保持するプライベートメンバー変数追加private UnityContainer _container =new UnityContainer();
  36. 36. // App class 内の Resolve メソッドをオーバーライドして当該コンテナが一つのタイプからオブジェクトインスタンスを生成できるようにするprotected override object Resolve(Type type){return _container.Resolve(type);}
  37. 37. // MvvmAppBase により提供される3つのサービスを登録するコードprotected override void OnInitialize(IActivatedEventArgs args){_container.RegisterInstance(NavigationService);_container.RegisterInstance(FlyoutService);_container.RegisterInstance(SessionStateService);}
  38. 38. ユーザー入力のバリデーション- patterns & practices guidance for buildingWindows Store business apps -
  39. 39. HighlightFormFieldOnErrors.PropertyErrors
  40. 40. private string _username;private string _password;public string Username{get { return _username; }set { SetProperty(ref _username, value); }}public string Password{get { return _password; }set { SetProperty(ref _password, value); }}
  41. 41. // 各プロパティに “Required”・“StringLength” DataAnnotationsattributes を追加[Required][StringLength(10)]public string Username{get { return _username; }set { SetProperty(ref _username, value); }}[Required][StringLength(20)]public string Password ・・・
  42. 42. // Model クラスができたのでそれを SignInFlyoutViewModel 上で公開// ViewModels フォルダに SignInFlyoutViewModel 追加// SignInFlyoutViewModel に当該 Credential Model を公開するプロパティを追加public class SignInFlyoutViewModel{public SignInFlyoutViewModel(){UserCredential = new Credential();}public Credential UserCredential { get; set; }}
  43. 43. // SignInFlyout ページ とこのページ (view) とをSignInFlyoutViewModel にバインドViewModelLocator.AutoWireViewModel=”True”
  44. 44. // いくつか Controls を View に追加して、当該 ViewModel のCredential Username プロパティと Password プロパティ値を格納//何らかの Validation error messagesとバインドされた TextBlock群<TextBox Text="{Binding UserCredential.Username, Mode=TwoWay}"BorderBrush="Black" /><TextBlock Text="{Binding UserCredential.Errors[Username],Converter={StaticResourceFirstErrorConverter}}" Foreground="Red" /><TextBox Text="{Binding UserCredential.Password,Mode=TwoWay}" BorderBrush="Black" /><TextBlock Text="{Binding UserCredential.Errors[Password],Converter={StaticResourceFirstErrorConverter}}" Foreground="Red"/>
  45. 45. // FirstErrorConverter のソースpublic sealed class FirstErrorConverter : IValueConverter{public object Convert(object value, Type targetType,object parameter, string language){ICollection<string> errors = value as ICollection<string>;return errors != null && errors.Count > 0 ?errors.ElementAt(0):null;}public object ConvertBack(object value, Type targetType,object parameter, string language){throw new NotImplementedException();}}
  46. 46. // この値コンバータを Static resource として使うには、App.xaml の中で参照設定する<ResourceDictionary>...<converters:FirstErrorConverterx:Key="FirstErrorConverter" /></ResourceDictionary>
  47. 47. // Model プロジェクトの全てのプロパティをバリデートするUserCredential.ValidateProperties()public SignInFlyoutViewModel(){UserCredential = new Credential();ValidateAll =new DelegateCommand(() =>UserCredential.ValidateProperties());}public Credential UserCredential { get; set; }public ICommand ValidateAll { get; set; }
  48. 48. // View にボタンを追加して ValidateAll command にバインド<Button Command="{Binding ValidateAll}"Content="Validate All"Foreground="Black"/>
  49. 49. public class MyViewModel : ViewModel, INavigationAware{private string _name;[RestorableState]public string Name{get { return _name; }set { SetProperty(ref _name, value); }}}
  50. 50. Model の追加(1)Entity Framework + Code First によるデータモデル構築
  51. 51. Entity Data Model概念モデル (CSDL)問題領域の概念的なエンティティやリレーションの定義マッピング (MSL)両モデル間の対応付けストレージモデル (SSDL)特定のデータソースに基づく論理スキーマのモデルプログラム上のオブジェクトEntity SQL概念モデルのエンティティとオブジェクトとの間でマッピング
  52. 52. プレゼンテーション層ドメイン層データ層public partial class Entry{public virtual int ID{get;set;}RDB
  53. 53. Model の追加(2)ASP.NET MVC4 Web API によるサービスの公開と利用
  54. 54. •クライアントアプリWeb サーバーASP.NETWebAPIGet/Post/Put/DeleteJSON/XMLデータソースブラウザーEntityFrameworkサービス
  55. 55. • awaitXAML / C# ASP.NETWeb APIJSONGet/Post/Put/Deletevar client = new HttpClient();HttpResponseMessage response =await client.GetAsync(“サービスのURI");var result =awaitresponse.Content.ReadAsStringAsync();var pictures = JsonArray.Parse(result);// JSONの結果をオブジェクトにバインド …
  56. 56. Windows Azure 連携シナリオ• オンライン楽器ストアアプリ各商品を表示 タイトルを編集 詳細情報編集、削除可能スタートスクリーン 全商品表示(Hub) 一覧・登録(Sections)個別商品表示・編集(Details)
  57. 57. アーキテクチャー概要Windows ストアアプリ・店舗管理者用 - 編集・登録・一般ユーザー用 - 閲覧・購入・プッシュ通知(Mobile Services)・メール(SendGrid)69EntityFrameworkSQL DatabaseWindows AzureWeb サイトWindows AzureWindows AzureWebsitesWindows AzureSQL DatabaseWindows AzureStorage (BLOB)画像文字数値ASP.NET Web APIEntityFrameworkドメインモデル店舗管理者一般ユーザーGridテンプレートGet/Post/Put/DeleteJSONRESTCodeFirstサイドローディングWindowsストア
  58. 58. DemoMusical Instruments Storeutilizing Adventure Works RIworking with Windows Azureas Model
  59. 59. http://aka.ms/VS2012-Casehttp://aka.ms/VS2012-Solhttp://aka.ms/VS2012-Prodhttp://aka.ms/VS2012-Tryhttp://aka.ms/VS2012-Lic
  60. 60. http://prismwindowsruntime.codeplex.com.exe.zip

×