Two panes app, for example, an app which constructed with Menu tab area and contents area […]
Operation system provides an association of the specified file or URI which can run the default […]
A data binding architecture is important feature for client side MVC. In XAML until windows 8.1, […]
・Microsoft UWP samples helps you to create your qpp Microsoft provides UWP samples as Microsoft Windows […]
Microsoft design languageは、レガシーアプリケーションの時代からアプリケーションをとりまく環境が大きく変わったことに対応してきました。Metroでは「非同期処理によるUIのインタラクティブの変化」や「親指操作を主とするスモールスクリーンのUI操作の変化」、「ペンやタッチといった入力の変化」です。これらはバルマーが言うところの「Many screens and a cloud」に対応した大きなパラダイムシフトでした。GUIというコンテキストがUXに拡張された理由は、アプリケーションにこれらの環境の変化を取り込む必要があったからです。 そして、Build 2017でサティアが「Intelligent cloud and Intelligent edge」という大きなパラダイムシフトに対応することをデベロッパーに望んでいます。Metroが必要だったように、Modernアプリケーションのエクスペリエンスデザインには、HoloLensを含むiOSやAndroid、スクリーンレスなデバイスがAIやコグニティブをサービスとして利用できる環境に対応できるパターン&プラクティスや広汎なDesign principleが必要で、Microsoft design languageはそのひとつの解であると考えます。 […]
Metroをご存知の方は、当時のGUIというコンテキストがUXに拡張され、ユーザー体験を含むソフトウェアとの関わりという意味に変化したことを記憶していると思います。クラウドやIoTなどのファシリティが一通り揃った今、MicrosoftはいよいよHoloLensを含むiOSやAndroidなどのマルチデバイスに向けたUXのパターン&プラクティスを提唱しようとしています。これは、3Dデザインやゲームにまで及びAdobe社を巻き込んだ広汎なDesign principle (原則)になると予想できます。ここでは、このメトロデザイン第二弾について外観をご紹介します。 Metroを振り返る そもそも、なんで今デザインの話をしなきゃいけないのかというところから解説します。過去にレガシーアプリケーションが持つUIがスマートフォンや大きなスクリーンに対応するのが困難になってきた時期がありました。その際、Modern UIのパラダイムとしてMicrosoftがコードネームMetroを発表しました(これが今のProject Neonに引き継がれます)。この際にMicrosoft design languageは広く認知されるようになりました。このような理由で、Microsoft Fluent Designは「Microsoft Design Language 2」、「metro2」と呼ばれることがあります。 まずはMetroの復習です。1分強のビデオです。 https://www.youtube.com/watch?v=aebfjzdLxJA […]
ALM(Application Lifecycle Management)の目的はシステムの継続的な配布(と統合)です。継続的デリバリを考慮した場合、製品の配布パッケージ(リソースとコンパイル済みコード)、開発環境プロジェクトのリポジトリ、ステージングやリサーチ用のソースコードの3つをどのように連携するかが肝になります。Microsoft製品の場合、これらが容易に連携できるようになっています。 各種リソースの連携 Visual StudioでWeb Appを作成し、Azureのプロダクション環境へ発行、同じくVisual StudioでWeb AppをVisual Studio Team Servicesへ登録しソース管理を行う方法を紹介します。 まずテンプレートから作成したWeb Appをそのままソリューションエクスプローラーで右クリックして[公開]を選択し、Azureのプロダクション環境へ発行します ソース管理へ登録 Web […]
ALM(Application Lifecycle Management)で重要な要素にバージョン管理があります。ALM管理ツールのバージョンの管理として「イテレーションに紐づける方法」や「ユーザーストーリーに紐づける方法」、「フィーチャーに紐づける方法」などがあると思いますが、プログラマーが主体となってバージョンを管理する場合、ALMツールの「フィーチャーに紐づける方法」によって、ソース管理ツールのリポジトリの「features」と連動させます。しかし、このケースでは「masterへのマージまで複数のリビジョンやビルドが残りドキュメントとの整合に工数がかかる」、「イシューが残ったままバージョンインクリメントが発生し、イシュー管理が困難」といった問題を抱えるケースが少なくありません。 バージョン管理をALMツール側の「ユーザーストーリーに紐づける方法」によって、ユーザーストーリーに「masterへのマージ」をタスクとして入れる方法は、製品バージョンに同期した文書管理やリリース判定テストを煩雑にしないひとつの手法です。この場合、製品バージョンとプログラムソースのバージョンの動きはユーザーストーリー進行中は連動しませんが、ユーザーストーリーのClose時に製品とソースコードのマイナーバージョンレベルの一致が容易です。マネージャーレベルの担当者は、常に製品とソースコード管理を意識する必要があります。 バージョン管理ツール バージョン管理ができるツールにはいかのようなものがあります。 ビルド ビルドツールには以下のようなものがあります。 カバレッジツール カバレッジツールには以下のようなものがあります。 ユニットテストツール ユニットテストツールには以下のようなものがあります。 統合開発環境 統合開発環境は前述の各種ツールと連携をとれるものが一般的です。統合開発環境には以下のようなものがあります。
ALM(Application Lifecycle Management)は、CMMI(Capability Maturity Model Integration)やAgile、Scrumといった開発プロセスにも必要な作業であり、それら開発プロセスによって量の単位や質の単位の定義が異なるため、アジャイル開発プロセスも管理できる機能を持つALMツールが一般的です。 アジャイル統合管理 アジャイル統合管理ができるツールにはいかのようなものがあります。 Visual Studio Team Services Visual Studio Team Servicesの場合、プロジェクト作成時に開発プロセスを選択します。 […]
ソース管理ツールは、製品のロードマップがあって組織内の様々なプロセスの後に形成されるALMを基盤として、その上で利用するものですから、それらの先行作業なしにツールを利用することはできません。しかしながら、多くの組織ではバージョン管理ツールを使うことに執心し、製品戦略との兼ね合いや構築プロジェクト完了後の継続的デリバリを意識すること無く、納品後のソースコードそのものがファイルサーバーに置かれていたりします。この記事では、ソース管理ツールが製品戦略の中でどのような役割を果たし、製品の継続的デリバリがどのようになされるのかについて解説します。 ALM ALM(Application Lifecycle Management)は、継続的デリバリには欠かせない作業です。ALMはPLM(Product Lifecycle Management)の一部であり、サービスのリリース時期、機能の拡張時期といったビジネスに直結する要素と分離された状態では、機能を実現する際の技術検証や懸念事項が犠牲にされプロジェクトのリスクが高まります。 ALMツール PLMで定義された製品化カタログはALM側でユーザーストーリーに置き換え、PLMで計画されたリリース単位、リリース時期をALM側でイテレーションに置き換えて、機能以外のドキュメントっ作成なども考慮したタスク群の入れ物となるバックログを作成していきます。その作業を支えるのがALMツールであり、いくつかの製品が販売されています。 ALMでは、ソースコードやバッチなどのリソース(≒プロジェクトの成果物)の状態を定義し管理します。設計文書などの状態なども定義し管理します。 ソースコード等のリソースの状態の定義とは、イテレーション内のユースケースを構成する複数のタスクのうちプログラムやバッチとして定義したタスクをフィーチャー(機能)として複製し量と質を管理していきます。量の管理とは、機能単位でソースコードが追加された、改修された、拡張された等を指し、アジャイル開発プロセスを採用している場合はできる限り1日単位(8h程度)のタスクにすることを推奨します。 また質の管理とは、その機能はどのような作業(コードレビューが終了した、単体試験が終了した等)で構成されているのかといった質の単位を定義し管理します。