日本マイクロソフトの技術イベント「de:code 2016」に参加できましたので、遅ればせながら。
Xamarin関連セッション
DEV-022 これから始めるXamarin~環境構築からiOS/Android/UWPアプリのビルドまで~
SNR-015 VS/Xamarin/UIコンポーネントで効率的な全方位対応のアプリ開発を実現
クライアント系で一番アツかったのでは?と思われるXamarinさん。立ち見も出たりして。自分では開発もやったことないので、初心者モードで参加。
1.Xamarinとは(overview)
・クロスプラットフォーム開発向けの開発技術。
・iOS/Android/Windows向けネイティブアプリ(not Webアプリ)を、C#で開発できる。
・各OSのネイティブAPIが100%使用可能、パフォーマンスもネイティブ同等という特長を持っている。
・2015年にマイクロソフトに買収され、Visual Studio 2015に搭載。
・全世界15000以上のユーザで使用されている。国内でもNHK紅白歌合戦、三井住友銀行など事例が増えている。
2.ロジック共通化
・中心となるのがMono Frameworkと呼ばれるライブラリ。
・各OSのAPIに対し、システム系APIは共通化、機種依存API(iOS/Android)は各API体系のままC#ラッパとして実装。
・業務ロジックは共通化できるが、画面表示や操作への反応、機種固有機能に対するコードは機種ごとに記述する形。
3.UI共通化
・従来は機種ごとに実装していた(Xamarin.Native)。それに対し、UI部分をXAMLで共通化するライブラリとして整備されつつあるのが、Xamarin.Forms。
・ボタンなど基本的な部品を共通のXAMLで記述できる。
・各OSのネイティブコントロールにマッピングすることで、各OSでの標準的なルック&フィールを提供している。
・今まさに進化中のため、基本的な部品の提供となっている。
4.開発環境
・Windows端末とMacOS端末の2つの選択肢がある。
・Windows端末を使う場合は、Windows/iOS/Android開発が可能。iOSアプリのビルドには別途リモート接続可能なMacOS端末が必要。IDEとしてはVisual Studioを使用する。
・MacOS端末を使う場合、iOS/Android開発が可能。IDEとしてはXamarin Studio for MacOSを使用する。
5.UIコンポーネントの活用
・(富士通が包括契約を行っている)インフラジスティックス社の開発ツールキット(ULTIMATE)には、Xamarin.Forms向けのコントロール部品が含まれている。これを組み合わせることにより、よりリッチなUIでのクロスプラットフォーム開発が可能。
6.総括
・性能(ネイティブ)、生産性と保守性(コード共通化)といった観点から、また自社が得意とするC#での開発ができる点から、Xamarinを採用するメリットは大きいと考える。
PowerBI関連セッション
DBP-017 Power BI Service のアーキテクチャとエンタープライズ利用におけるデザインパターン
社内向けソフトウェアを開発せずに済ませたいなあと思ってて、興味があった。
1.Power BIとは
・データ収集から加工、閲覧までをセルフサービスで実現できる、対話型のデータ可視化ツール。
・Excelプラグイン、デスクトップアプリ、クラウドサービスの3形態があり、データ量や閲覧方法により選択する。
・無償から利用可能。(一部機能はPro=有償版のみ)
2.データセット
・Power BIで取り扱うことができる加工元データを「データセット」と呼ぶ。
・データセットに取り込むデータソースにはCSV,Excel,JSON、各種RDBなど使用可能で、非常に多様。
・データ取り込みは、インポート(取り込み時点データを保持)とDirectQuery(ソースへ都度クエリ発行し取得)/Live接続が選べる。
3.データの整形と結合
・SQL文のクエリを作成するのではなく、画面からメニュー選択やコマンド入力形式でのデータ整形や結合などが可能。
・SaaSコンテンツパックと呼ばれる、レポートとダッシュボードのテンプレートが用意されており、そのまま利用することも可能。
・PowerBI Gatewayという仕組みを使い、クラウドのPowerBI ServiceからオンプレミスのDBにセキュアに接続、データ転送できる。
4.可視化と共有
・Excelプラグイン、デスクトップアプリでもそれぞれ単体でグラフ化表示やレポート生成の機能がある。
・Power BI Serviceでは、SQL Server Repoting Serverと連携し、Webブラウザでの表示が可能。またPower BI Mobile App(iOS/Android/Windows用アプリ)での表示も可能。
・組織内での共有手段:ダッシュボード共有、コンテンツパック発行、Office365グループワークスペース
・組織外への共有手段:ダッシュボード共有(PowerBI差カウント必須)、Web公開
5.セキュリティ(Power BI Service)
・認証にAzure Active Directoryを使用。
・共有されたダッシュボードやレポートの表示時、ユーザーごとにフィルタされた表示を実現する、行レベルアクセス制御が可能。
6.総括
・データ加工から可視化まで、画面からの操作だけで作ることができ、原則無償で使えるのは単純にすごい。
・下手にアプリケーションをつくるより低コストで、保守性も高いものができるのではと考える。
UWP(Universal Windows Platform)関連セッション
CLT-001 今だからもう一度確認したい、クライアントテクノロジの概要と選択
CLT-002 Windows 10 デバイスとUWP完全解説
1.UWP(Universal Windows Platform)とは
・Windows10より導入された、IoT/モバイル/PC/ゲーム機など様々なフォームファクタで同一バイナリが実行可能なアプリプラットフォームのこと。
・デバイスに依存しない共通のクラスセットと、各フォームファクタごとに用意された拡張クラスセットから構成され、複数のフォームファクタに向け、一つのアプリとして開発・提供できる。
・従来のデスクトップアプリは、Windows 10では「クラッシックアプリ」と呼ばれるようになり、区別されている。
2.経緯
・Windows 7まで、アプリ開発技術は変わってきたが、アプリモデルとしては「デスクトップアプリ」で変更がなかった。
・Windows 8で初めて新しいモデル「Windows ストアアプリ」が提案された。
・背景としては、Windows7までのアプリモデルはセキュリティ面で脆弱、カーネルレベルでのセキュアな環境が求められたから。
・ただし「Windowsストアアプリ」はタブレット向けに最適化されており、旧来のデスクトップ利用者の支持を得られなかった。
・そこでWindows 10ではWindows 7までのマルチウインドウモデルに復帰し、かつアプリモデルは「ストアアプリ」を発展させた。
3.特徴
・IoT、モバイル、タブレット、PC、組み込み、ゲーム機、HoloLensなど新デバイスといった異なるフォームファクタで動作。
・Windowsストアからのアプリケーション配布/更新、課金対応(コンテンツ内課金など)
4.開発ターゲットと技術選択
・現状、Windows 7が最大、次いで10、8.1の順。
・UWPはWindows10でしか動作しないことを考えると、当面はデスクトップアプリも考慮する必要がある。
・デスクトップアプリはWinForms、WPFなど開発技術があるが、UWPへの移行を踏まえると共通点のあるWPFの選択が望ましい(WPFではUIコーディングをXAMLで行うが、これはUWPと共通。そのまま動作するという意味ではないが、技術者の移行が容易)。
・Windows 10への移行が進むにつれ、モバイルとの共通化、セキュアなアプリモデル、非同期処理(async/await)などUWPのメリットを活かせるようになる。
5.Universalなアプリ実装における注意点
・コアライブラリ(.NET Core)に含まれないフォームファクタごとのSDKは、参照マネージャから適宜手動で追加する。
・UIコーディング(XAML)は共通化し内部でフォームファクタに応じた定義をする、フォームファクタごとにXAMLファイルを分ける、の両方が可能。
・その他、下記の仕組みが用意されている。
・DeviceFamily:フォームファクタをプログラムで判定、フォームファクタ別に処理を記述可能
・IsTypePresent:デバイスに実装されていないクラスをプログラムで判定、例外発生を回避可能
・AppManifest-TargetDeviceFamily:アプリが動作するフォームファクタを決め、ストアから入手制限ができる
6.その他
・Windows App Studio:情報提供型アプリをノンコーディングで開発できるウェブサービス。開発したアプリはストア公開も可能
・Bridge:他プラットフォーム用アプリのUWP化を支援する技術。
・ウェブアプリ向けは提供中。
・クラッシックアプリ(デスクトップ)向けはコンバータが提供。ラッパとして動作、アプリの中身はそのまま。
・iOSアプリ向けはオープンソースとして公開済。
・Android向けは開発中止。
・Xamarin/Cordova/Unity/Cocos-2D:Visual Studioで開発可能なクロスプラットフォーム開発環境。
7.総括
・UWPはWindows 10でしか動作しないため、現状のOSシェアで普及するのは見込めないが、今後OSシェアの上昇やモバイルとの統一やセキュリティ向上などを考えるのであれば非常によいプラットフォームとなっていると考える。
・自社でもいつでも開発できるよう、準備は進めておくべきと感じた。
まとめ
今回はクライアント開発とPower BIにテーマを絞ってセッションを聴講した。マイクロソフトはWindows/.NETに縛られず、多様なハード向けの開発ができる環境を用意したり、多様なサービスに接続できるようにしたりと、オープンさを追求することで、システム開発や実行環境といったプラットフォーム面での覇権を目指している。また今回は聴講できなかったが、Azure上にIoTやAIの基盤サービスを着々と整備している。この動きはGoogleやIBMも同じで、かつ取り組みが進んでおり、自社がどう関わっていくかを考える必要がありそう。
以上!