SlideShare a Scribd company logo
VS Code on Azure
2018/04/21 Microsoft
Global Azure Bootcamp 2018 Tokyo
Self Introduction
suzuki.sh
GitHub: @s2terminal
Twitter: @suzukiterminal (s2terminal)
https://www.s2terminal.com
Webエンジニア@名古屋→大阪
Lang: PHP/Ruby/JavaScript
Love: 世界樹の迷宮、ニンジャスレイヤー
魔法少女まどか☆マギカ and Microsoft Azure
VSCodeとは?
Visual Studio Code (以下 VSCode )
Microsoftが無償で提供している
史上最高のエディタ
色々あって現在はMITライセンスのOSS
GitHubにソースコードが公開されている
Visual Studio (IDE)と
Visual Studio Code (Editor)は別物
VSCodeとは?
VSCodeはクロスプラットフォームで動作
Chromebook?WindowsMobile?
iOS/Android?
画像:
https://code.visualstudio.com
VSCodeとは?
VSCodeは Electron 製
HTML/JS/CSSといった Webの技術 でできている
エディタエンジン部分は Monaco Editor として
独立してリリースされている (MITライセンス)
画像:
https://electronjs.org
Electronでできたアプリの例
今回やること
このMonaco EditorをAzureにDeployする
Chromebookや、iOS/Androidなど
ブラウザさえあれば、どんな環境下でも
使えるようにしたい
画像:
http://trinity.jp/blog/2018/02/nuans_neo_windows_10_mobile.html
https://www.asus.com/jp/Laptops/ASUS_Chromebook_Flip_C100PA/
npm install Monaco Editor
$ npm install monaco-editor –save して
HTMLを書くだけで、Monaco Editorは動く
Code:
https://github.com/s2terminal/monaco-on-cloud/commit/ed4d045f1129b70cf98ea821ee167783313d4c10
Deploy Azure Web Apps
https://docs.microsoft.com/ja-jp/azure/app-
service/app-service-web-get-started-html
公式のドキュメント通りコマンドを打てば
静的なWebサイトを簡単にDeployできる
Deploy User の作成 → Resource Group の作成
→ App Service Plan の作成 → Web Apps の作成
→ git push で完成
Deploy Azure Web Apps
ドキュメント内の「使ってみる」を押すと
謎のシェル(Azure Cloud Shell)が立ち上がる
これを使えば、ドキュメント内からデプロイできる
Deploy Azure Web Apps
最終的に $ git push azure すると
Azure Web AppsにDeploy完了
package.jsonを読んで $ npm install とか
自動でやってDeployしてくれる
PWAにしてオフライン動作
Progressive Web Apps (PWA)
https://developers.google.com/web/fundamentals/co
delabs/your-first-pwapp/?hl=ja より引用
PWAにしてオフライン環境でも動作させたい
>プログレッシブ ウェブアプリはウェブとアプリの
両方の利点を兼ね備えたアプリです。ブラウザのタ
ブで表示してすぐに利用することができ、インス
トールの必要はありません。
PWA: Registers a Service Worker
https://developers.google.com/web/fundamen
tals/primers/service-workers/?hl=ja より引用
Service Workerを記述していく
>Service Worker はブラウザが Web ページとは別に
バックグラウンドで実行するスクリプトで、Web
ページやユーザのインタラクションを必要としない
機能を Web にもたらします。
PWA: Registers a Service Worker
fetchイベントをServiceWorkerに登録
HTTPリクエストに割り込み、
キャッシュがあればキャッシュから返す
→オフラインでも動作できる
PWA: manifest.json
PWAにはWeb App Manifestファイルが必須
{ “name”: “Monaco on Cloud” } のような
JSONファイルを作成して配置。
※Azure Web Appsの仕様で
web.configというXMLを作成、.jsonファイルに対して
mimeType=“application/json“ を指定しないと
JSONが配信できず403 Forbiddenとなる
Code:
https://github.com/s2terminal/monaco-on-cloud/commit/b3bc1688eb0faed05c92de71948c862793aaa105
PWA: Use HTTPS
PWAはHTTPSでしか使えない
Azure Web AppsのHTTPS redirectを有効化
PWA: Lighthouse (Chrome Audits)
ChromeのDevTools内にある
Auditsパネルで、PWAの対応状況を確認できる
本番環境はもちろん、localhostでも実行できる
完成
ソースコード:
https://github.com/s2terminal/monaco-on-cloud
完成品:
https://monaco-on-cloud.azurewebsites.net
まとめ
• Azure Web Apps を使うと
静的サイトを簡単にDeployできる
• PWA も、 Azure Web Appsなら
簡単に作成できる
• Use VS Code ANYWHERE
to be happy.
補足
• Service Workerの実装方法について
• このスライドで紹介したServiceWorkerの実装はGoogle公式の
ドキュメントからの引用だが、同ドキュメント内でも推奨されていない。
今回は、最終的にはGoogleのWorkboxライブラリを使って実装した。
https://developers.google.com/web/tools/workbox/
• PWAにはHTTPSが必須かどうか
• Chromeでは、Service Workerは基本的にHTTPSでなければ動作しないが
localhostでの動作は非HTTPSでも許可されているため、開発に支障は無い。
• Azure Cloud Shellでのデプロイについて
• 厳密にはCloud Shellからデプロイはしていない。
デプロイ先のWeb Appsの作成はCloud Shellでブラウザ上から実行できるが
gitリポジトリが無いため、最後はローカルからデプロイすることになる。
参考リンク
はじめてのプログレッシブ ウェブアプリ
https://developers.google.com/web/fundamentals/codelabs/your-first-
pwapp/?hl=ja
Service Worker のデバッグ
https://developers.google.com/web/fundamentals/codelabs/debugging-service-
workers/?hl=ja
App Shell モデル
https://developers.google.com/web/fundamentals/architecture/app-shell?hl=ja
Monaco Editor API v0.12.0
https://microsoft.github.io/monaco-editor/api/modules/monaco.editor.html
画像の引用: Free stock photos · Pexels
https://www.pexels.com/
今回のソースコード
https://github.com/s2terminal/monaco-on-cloud
完成品
https://monaco-on-cloud.azurewebsites.net

More Related Content

PPTX
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
PDF
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
PPTX
知ってますか? Azure IoT Edge
PPTX
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
PPTX
Visual Studio Live Share で 猛暑を乗り切ろう!
PPTX
JavaScriptでパワポを作ろう
PDF
Visual studio 2019 updates pickup!
PPTX
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
知ってますか? Azure IoT Edge
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
Visual Studio Live Share で 猛暑を乗り切ろう!
JavaScriptでパワポを作ろう
Visual studio 2019 updates pickup!
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~

What's hot (20)

PDF
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
PPTX
これさえあれば大丈夫!Visual Studio Code 徹底解説
PDF
Introduction to application architecture on asp.net mvc
PDF
Blazor Server テンプレート解説
PPTX
使い倒そう Visual Studio Live Share!
PPSX
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
PPTX
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
PPTX
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
PDF
Cocos2d-x勉強会 2014/10/05
PDF
【PlayFab】UnityAdsのリワード広告を統合する方法
PPTX
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
PPTX
Another Visual Studio - Visual Studio for Mac
PPTX
MicrosoftのサービスでさくっとBot開発!
PDF
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
PPTX
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
PDF
スマートスピーカーのバックエンドで Azure を使う方法
PDF
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
PDF
30分でできる!Adobe XDプラグイン開発!
PPTX
WindowsMLを使ったUWPアプリの作り方
PDF
Fortranが拓く世界、VSCodeが架ける橋
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
これさえあれば大丈夫!Visual Studio Code 徹底解説
Introduction to application architecture on asp.net mvc
Blazor Server テンプレート解説
使い倒そう Visual Studio Live Share!
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Visual Studio Code で快適開発生活 -拡張を作って公開しよう-
Cocos2d-x勉強会 2014/10/05
【PlayFab】UnityAdsのリワード広告を統合する方法
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Another Visual Studio - Visual Studio for Mac
MicrosoftのサービスでさくっとBot開発!
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
スマートスピーカーのバックエンドで Azure を使う方法
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
30分でできる!Adobe XDプラグイン開発!
WindowsMLを使ったUWPアプリの作り方
Fortranが拓く世界、VSCodeが架ける橋
Ad

Similar to Monaco Editor on Cloud (20)

PPTX
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
PPTX
Visual Studio Code あれこれ
PDF
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
PDF
VS Code Live Share ~ 東京と大阪を繋いでみよう!
PDF
.NET の過去、現在、そして未来
PPTX
ScratchとAzure FunctionsのBlocklyな関係
PDF
Cocos2d-xおよび関連サービスについて
PPTX
Goで作って配布するAzureコマンドラインユーティリティ
PPTX
Visual Studio Code で C# でのアプリ開発
PDF
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
PPTX
20110924 shizuoka azure-forsharing
PDF
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
PDF
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
PPTX
開発チーム管理で役立ったVSCode拡張機能
PPTX
Remote-Containersでnext.js環境を 作った話
PPTX
Vscodemeetup6
PPTX
新しい Visual Studio & .NET と新時代のアーキテクチャ
PDF
.NET Coreから概観する.NETのOSSへの取り組み
PDF
実はかんたん!ゲームエンジンCocos2d-x入門
PDF
Azure IoT Edge - EdgeAI #5
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Code あれこれ
【de:code 2020】 あらゆるエンジニアを支援! VS Code Meetup の紹介とハンズオンで活躍するテクニック集
VS Code Live Share ~ 東京と大阪を繋いでみよう!
.NET の過去、現在、そして未来
ScratchとAzure FunctionsのBlocklyな関係
Cocos2d-xおよび関連サービスについて
Goで作って配布するAzureコマンドラインユーティリティ
Visual Studio Code で C# でのアプリ開発
【de:code 2020】 そのロジック、IoT Edge で動きます - Azure IoT Edge 開発 Deep Dive
20110924 shizuoka azure-forsharing
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
開発チーム管理で役立ったVSCode拡張機能
Remote-Containersでnext.js環境を 作った話
Vscodemeetup6
新しい Visual Studio & .NET と新時代のアーキテクチャ
.NET Coreから概観する.NETのOSSへの取り組み
実はかんたん!ゲームエンジンCocos2d-x入門
Azure IoT Edge - EdgeAI #5
Ad

More from Shuto Suzuki (7)

PDF
段階的なシステムリプレースを実現するデータ同期技術
PPTX
TypeScriptでCLIアプリケーション開発
PDF
1年でモダンなフロントエンドに追いついた話 2019-08-22 Mix Leap Joint #26
PDF
20190706 BCU30 事業を変えるシステムリプレース
PDF
Cognitive Complexity でコードの複雑さを定量的に計測しよう
PDF
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
PDF
Microsoft Azureで 女子力を生成する
段階的なシステムリプレースを実現するデータ同期技術
TypeScriptでCLIアプリケーション開発
1年でモダンなフロントエンドに追いついた話 2019-08-22 Mix Leap Joint #26
20190706 BCU30 事業を変えるシステムリプレース
Cognitive Complexity でコードの複雑さを定量的に計測しよう
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
Microsoft Azureで 女子力を生成する

Monaco Editor on Cloud

Editor's Notes

  • #3: アップロードするときは顔写真を消して、他社製品ロゴはまどマギの話に変える。
  • #4: BuildのKeynoteとかでも最近よく話題にされてる
  • #10: いい時代になりましたね。
  • #11: 完成。ここで半分。
  • #17: 普通のサイトはスコアがゼロ。 いままで説明したような事をやって70点ぐらいまで上がれば多分OK。
  • #18: Androidは、ホーム画面に追加みたいなのが出る。