Skip to main content
コントロールベンダー視点での
Command Line Interface
(CLI)
自己紹介
池原 大然 (@Neri78)
富山県出身
インフラジスティックス・ジャパン 所属
製品担当という謎役職
去年まで Microsoft MVP でした
英語 Blog 書き始めました!
http://bit.ly/DaizenEN
7 年ぶりに写真変えました!
セッションの背景
本格的に PC に触れたのは MS-DOS 3.x くらいの頃
色々なコマンドを試していた少年の日
仕事としては Windows XP/Visual Studio 2003 が最初
GUI がデフォルトな時代がスタート地点
所属会社がここ数年、MS 以外の環境に対応する製品に注力
なのでからめて話してみる
UI の変遷とアプリ開発
ユーザーインターフェイスの変遷
Command line UI Graphical UI Natural UI
CLI/CUI
GUI
NUI
「簡単」「早い」= ユーザーに求めるスキルを低減し、間口を広げてきた
アプリ開発と UI (VS ユーザーとして)
Visual Studio で「ポトペタ」
1.0 は 1991 年、.NET は 2002 年、最新 v15.x は 2017 年
「ポトペタ」普及の功罪?
間口が広がる
とっつきやすい、はじめやすい、なんとなくできる
あるのが当たり前になる
仕組みが無いことが「イケてない」「ダメ」的な考えに
なんで今更コマンド?
複雑化する
フロントエンド Web
と CLI
Browser
1990 1995 2000 2005 2010 2015 2017現在
Server
 ASP.NET MVC
 ASP.NET
Core
HTML5
 AngularJS
 Grunt ◆Gulp ◆Webpack
 React Angular
 Vue.js
Node.js
 TypeScript
 BACKBORN.JS
Client
 KnockoutJS
2009 年頃 - 現在
Node.jsの登場
HTML5の普及
JavaScript ライブラリ
戦国時代
混沌とする Web
環境構築にも問題が…
最初の一歩までが遠い
フォルダ構成
ファイル構成
依存関係
最低限必要な記述
さらに、短期間のバージョンアップ
ポトペタ的なツールを作っている余裕がない、追い付けなくなる
プラットフォーム的にそこまで求められていない?
早い、軽い、コマンドツール
数多くの cli がGitHub で公開されている
例えば: Angular CLI
 Angular を使用して開発するためのテンプレートを
準備してくれる
CLI を利用したアプリ開発
良い(と感じる) ところ
ポトペタ同様、とりあえず始められる
基本の「お作法」が用意されているものが多い
キーボードだけで完結できるので効率的
難しい(と感じる)ところ
結局、何をやっているのか知らないと恐い
CLI の種類が多い、コマンドも多い
知っているという状態が強みになるかもしれない
UI コントロール
ベンダーとして
Browser
1990 1995 2000 2005 2010 2015 2017現在
Server
 ASP.NET MVC
 ASP.NET
Core
HTML5
 AngularJS
KnockoutJS ext
 Grunt ◆Gulp ◆Webpack
 React Angular
 Vue.js
Node.js
 TypeScript
 BACKBORN.JS
Ignite UI
Client
AngularJS ext React ext
Angular ext
 KnockoutJS
特に Web のトレンドに対応し続けることが重要
 NetAdvantage for
ASP.NET
用途に合わせたプロダクト
jQuery ベース
複雑な要件を実現するのに最適
グリッド
チャート
スプレッドシート
スケジュール
一部無料で利用可能
Angular, React 用の拡張機能を提供
今後、脱 jQuery 化の予定
Angular 専用
モバイル向けアプリケーションに最適
グリッド
ナビゲーション
バッジ
非商用利用には無料で利用可能
今後、更に機能拡張予定
CLI を提供
https://github.com/IgniteUI/igniteui-cli
インストールは npm install –g igniteui-cli
数行のコマンドですぐに環境構築を完了、実行
製品の利用に必要な依存関係や参照設定を自動的に解決
別のプラットフォームでは専用ツールも
(Xamarin.Forms / WPF)
1. UI コントロール
2. プロダクティビティ
ツール
3. エンタープライズ
サポート
コントロールだけではなく、ツールとサポート
1. 高機能な UI コントロールを提供し
作りこみの工数を削減
2. ツール、を利用し即座に開発を開始、
学習コスト、作業コスト、手戻りの低減
3. グローバル、ローカルにおける
エンタープライズに対応したサポート
まとめ
まとめという名の所感
VS みたいに「ポトペタ」ツールは最高だが…
進化の速い Web フロントエンドに関しては難しいのかもしれない
それ以外も色々あるけどね
.NET エンジニアとしては大変な時代だなあと
「とりあえず始め」られないエンジニア続出の予感
進化に対応するには常にアンテナを張らねば…
だからこそ、ツールを拡充する戦略
コストと時間をかけても必要なプラットフォーム → 専用ツール
プラットフォーム的に受け入れられるもの → CLI など
よければぜひ! https://github.com/igniteui