SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
今風なデスクトップアプリの
モダンインストーラー開発
Kaoru Nakajima
Cybozu Labs, Inc.
2015/12/19
About @kaorun
▌Kaoru Nakajima
▌Cybozu Labs, Inc.
▌Software Design Engineer
Twitter: @kaorun
Hatena: id:kaorun
MetroHatenaR
NatehaR.Express
Cybozu Live
for Windows Phone
食べログ
StreetWalker
これまでのあらすじ
Cybozu Desktop 2 for Windows #とは
Cybozu Desktop 2 for Windows #とは
▌サイボウズ Office 10・サイボウズ ガルーン4以降をご利用中の方
▌オンプレ版・Cybozu.com対応
▌.NET Framework 4.5 + WPF + ClickOnceで開発
▌主な機能
▌新着通知
▌スケジュール通知
▌マルチアカウント対応
▌ジャンプリストからの新規アイテム作成
▌Mac版もあるよ!
「サイボウズデスクトップ」で検索!
DOWNLOAD NOW !
http://cybozu.co.jp/info/desktop2/
ClickOnceの光と闇
▌ClickOnceのイイトコロ
▌インストール手続きいらずの1クリック導入
▌サーバーサイドの入れ替えだけで自動更新
▌VSのプロジェクトから発行するだけ
▌ClickOnceのアカントコロ
▌実行中のアップグレード時に古いバイナリがどんどん残ってしまう
▌アンインストール時、アカウント設定などが削除できない
▌コード署名が大変
▌諸々制約多い…
▌メンテされているようないないような
証明書更新事件勃発
▌新バージョン、お客さんのところでアップグレードに失敗します!
▌げげっ
▌そういえば、今回、コードサイン証明書更新したよね?
▌今年の証明書からSHA1→SHA256に変わってる?
▌実はちゃんと署名できてない?
▌証明書がExpireしてるので、旧バージョンを更新できない!
▌あーでもないこーでもない
▌実は、サーバーがhttpをhttpsにリダイレクトしていたのが問題でした!
▌上記証明書問題と重なってしまったため、同一ソースでは無いと見なされてしまった
▌すでに期限が切れた古い証明書で署名して発行済みだったので修正が利かず酷い目に…
▌MSテックサポート担当の方、長いことお付き合いいただき本当にありがとうございました
それからどーした?
MSI版やりますか…
▌まぁ、そういうわけです
▌ClickOnceの変わりになる自動更新システムを色々物色したが今一歩
▌元々次のメジャー更新辺りでMSI版の話はあった
▌当初、サイボウズOffice向けに開発したのだが、ガルーンのお客様に普及し始めた
▌エンタープライズなお客様の諸々の制約もあり
▌ClickOnceよりもMSIなんじゃない?
▌Project Centennial
▌Windows Storeに出したいよね、という下心
MSI: Windows Installer #とは
▌Windows Installer用パッケージ(拡張子:*.msi)
▌OS標準インストーラー
▌よくあるウィザード形式になってるやつ
▌Setup.exeとHogemoge.msiが1セットになっている
▌Setup.exeがBootstrapper
▌.NET Frameworkやデータアクセスライブラリ等をsetup.exeで先
に入れる
▌セットアップはsetup.exeというわかりやすさ
▌環境が整っていれば.msiを直接実行することもできる
▌昔はWindows Installer自体を事前にインストールする必要もあっ
た
その他のインストーラー(非MSI系)
自動更新システム等
▌InnoSetup
▌わりとよく見るやつ
▌InstallBuilder
▌MSIっぽいのを生成する、マルチプラットフォーム
▌google/Omaha
▌Chromeなどで使われている模様
▌NetSparkle
▌Linux系から来たマルチプラットフォーム
▌NSIS : Nullsoft Scriptable Install System
▌Nullsoft製
MSIインストーラー開発の定番ツール
▌Install Shield
▌大定番、インストーラーで出来ることはほぼ何でもできる
▌Install Shield Limited Edition(無償)はVSに付属
▌Install Shieldで作りました、という風なUIになる
▌有償版は高価、ライセンスが複雑
▌Visual Studio Installer Project ※現在はレガシー扱い
▌VS2010までは標準機能だった
▌現在はVisual Studio GalleryでVS Extensionとして公開中
▌シンプルなMSIインストーラーをGUIで簡単に生成
▌できることは少なめだがカスタムアクションである程度対応可能
▌WiX
▌Windows Installer XML Toolset
▌MSIスクリプトをXMLで記述するコンパイラ
▌MSIで出来ることはほぼXMLで書ける
▌既存MSIから*.wxsへ逆コンパイル可能
MSIの注意点
▌カスタムアクションで~できる?
▌.NETだから簡単ですよー!
▌そうでもなかった
▌公式に.NETのカスタムアクションは非推奨 #らしい
▌いろいろなしがらみがあり、結局Win32ネイティブで開発 #とか
▌VSIPでカスタムアクション対応すればいいや、と思ってるとハマル
▌ローカライズ問題
▌単一の*.msiパッケージで多国語対応できなくはないが、面倒
▌見た目がレガシー
モダンインストーラーへの道
▌ウィザード形式はもう古い
▌シンプルにカッコいいインストーラーがトレンド
▌基本利用許諾とプログレスバー程度
▌ちまちま設定・選択させない
▌自動更新システム
▌(Metro改め)Modern UIデザイン
▌例:
▌Visual Studio、Office 365など
Bundle: WiX Installation Bundles
Burn: WiX Bootstrapper Engine
▌Setup.exeのスーパーセット
▌Setup.exeを自動生成ではなく独自に実装可能
▌MSI本体をペイロードとしてパッケージ化
▌独自UIを実装して、背後でMSIをサイレントイ
ンストール
▌UIを自由に実装できるのでローカライズ・多言
語対応も容易
▌つまり、ペイロードされるMSIのUIはどーでも
いい
Bundle
SetupHogeMoge_v1234.exe
Burn Engine
HMBootstrapperApp.dll
•WPF Modern Install UI
•Multiple Localized Resource
HogeMoge.msi
•Application Files
•Folder, Reg, …
…
BundleとBurnの構造
▌WiX Bootstrapper Projectを作成すると、<Bundle>を定義する*.wxsが生成される
▌Bundle.wxsファイルで定義したSetup.exeをコンパイル生成するイメージ
▌Bundleパッケージの中でBootstrapper ApplicationとしてBurn Engineが実行される
▌Bootstrapper Application
▌イベントドリブンなランチャーモジュール
▌標準ではWixStandardBootstrapperApplicationのUIが利用可能
▌BootstrapperApplication継承クラスを実装したDLLでカスタムUIを実装
▌BundleのPayloadを追加することで各種ライブラリのDLLを参照可能
Custom Bootstrapper Application
▌BootstrapperApplication継承クラス
▌Run()で呼ばれて、シンプルにUIを実装したDLL
▌イベントドリブンに実行
▌C# + WPF + MVVM!
▌Yes XAML!
BootstrapperAppのライフサイクル
▌DetectBegin
▌DetectPackageBegin
// パッケージのインストール状況を確認
▌DetectPackageComplete
▌…
▌DetectComplete
▌PlanBegin
▌PlanPackageBegin
// パッケージのインストールを計画
▌PlanPackageComplete
▌…
▌PlanComplete
▌ApplyBegin
▌Elevate
▌ExecuteBegin
▌ ExecutePackageBegin
// パッケージのインストール実行
▌ ExecuteMsiMessage
▌ ExecuteProgress
▌ ExecutePackageComplete
▌ …
▌ExecuteComplete
▌ApplyComplete
▌Shutdown
アンインストール・アップグレードプロセス
▌古いMSIが自分でアンインストールして、新しいMSIをインストールするのが基本
▌Bundleでも同様
▌古いBundleを探してアップグレード処理
▌ペイロードのMSIも同様のアップグレード処理を個別に実行
▌UpgradeIDとProductID
▌プロダクトに対して一意のUpgradeIDを定義
▌バージョンごとにPruductIDを更新する
▌Bundleの各IDとペイロードMSIのIDは別物
▌アップグレードの流れ
▌UpgradeIDを検索
▌同一UpgradeIDでより古いVersionのパッケージがインストールされていたら
▌古いバージョンのインストーラーを叩いてアンインストール(アップグレードモード)
▌しかる後に新バージョンをインストールする
Project Centennial #とは
▌Windows 10 Bridge for Classic Desktop Windows Application
▌https://devpreviewsignup.windows.com/
▌This toolkit will enable desktop developers to package and publish their existing .NET and
Win32-based Windows applications to the Windows Store. Developers can also use
Centennial to call common UWP APIs and services.
▌デスクトップアプリをWindows Storeへ
▌デスクトップアプリをパッケージ化しサンドボックスに入った仮想アプリとして実
行
▌アプリは完全にサンドボックスの中で動作するため、他のプロセスには干渉できな
い
▌仕組み的にはApp-Vとほぼ同じだけど別物
▌パッケージの中身はMSIで作成する(Build2015当時)
まとめ
▌ClickOnceもうカンベンな…
▌かっこいいモダンインストーラーできたよ!
▌とにかくノウハウがなかったので手探りでたいへんだった
▌MSIパッケージもできたのでProject Centennialどんとこい

Contenu connexe

Tendances

やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
Rosbag search system
Rosbag search systemRosbag search system
Rosbag search systemyusuke shibui
 
猫でもわかるUnreal Engine4
猫でもわかるUnreal Engine4猫でもわかるUnreal Engine4
猫でもわかるUnreal Engine4pafuhana 1213
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門demuyan
 
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法Yasuhiko Yamamoto
 
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得Reimi Kuramochi Chiba
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話Kinuko Yasuda
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについてmametter
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッドKohsuke Yuasa
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門Tadahiro Ishisaka
 
Pycairo を使ってみる その1
Pycairo を使ってみる その1Pycairo を使ってみる その1
Pycairo を使ってみる その1ryos36
 
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVMYuki Tamura
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケットTakaaki Hoyo
 
スクリプトエンジン作って 無双する
スクリプトエンジン作って 無双するスクリプトエンジン作って 無双する
スクリプトエンジン作って 無双するKLab Inc. / Tech
 
UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-com044
 

Tendances (20)

やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
Rosbag search system
Rosbag search systemRosbag search system
Rosbag search system
 
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
 
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
 
猫でもわかるUnreal Engine4
猫でもわかるUnreal Engine4猫でもわかるUnreal Engine4
猫でもわかるUnreal Engine4
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
 
UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例UE4における大規模レベル実装ワークフローとブループリント活用事例
UE4における大規模レベル実装ワークフローとブループリント活用事例
 
Quine・難解プログラミングについて
Quine・難解プログラミングについてQuine・難解プログラミングについて
Quine・難解プログラミングについて
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
 
Pycairo を使ってみる その1
Pycairo を使ってみる その1Pycairo を使ってみる その1
Pycairo を使ってみる その1
 
12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
 
猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
スクリプトエンジン作って 無双する
スクリプトエンジン作って 無双するスクリプトエンジン作って 無双する
スクリプトエンジン作って 無双する
 
UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-
 

En vedette

Contana対応アプリを作る 今すぐ!
Contana対応アプリを作る 今すぐ!Contana対応アプリを作る 今すぐ!
Contana対応アプリを作る 今すぐ!Kaoru Nakajima
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm伸男 伊藤
 
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料July Tech Festa 2014発表資料
July Tech Festa 2014発表資料Kenta Hattori
 
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたNarami Kiyokura
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用ESM SEC
 
知って得するC# LINQ to Objects編
知って得するC# LINQ to Objects編知って得するC# LINQ to Objects編
知って得するC# LINQ to Objects編Shota Baba
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~Fujio Kojima
 
業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet将 高野
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときRyunosuke SATO
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShellAmazon Web Services Japan
 

En vedette (11)

Contana対応アプリを作る 今すぐ!
Contana対応アプリを作る 今すぐ!Contana対応アプリを作る 今すぐ!
Contana対応アプリを作る 今すぐ!
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
 
July Tech Festa 2014発表資料
July Tech Festa 2014発表資料July Tech Festa 2014発表資料
July Tech Festa 2014発表資料
 
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用
 
知って得するC# LINQ to Objects編
知って得するC# LINQ to Objects編知って得するC# LINQ to Objects編
知って得するC# LINQ to Objects編
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
 
業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet
 
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
[AWSマイスターシリーズ] AWS CLI / AWS Tools for Windows PowerShell
 

Similaire à 今風なデスクトップアプリのモダンインストーラー開発

わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)Yasuhiko Yamamoto
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れるKenji Wada
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~Saki Homma
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門Yasuhiko Yamamoto
 
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~Saki Homma
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れMitsuru Katoh
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダKenichi Yoshida
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppTomomitsuKusaba
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フローYuki Okada
 
サーバーレスで作る スマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンドサーバーレスで作るスマホアプリバックエンド
サーバーレスで作る スマホアプリバックエンドTsukasa Kato
 
coma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworkscoma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworksAtsushi Tadokoro
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!Hiroko Umetsu
 
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとはインフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとはShin'ya Ueoka
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~法林浩之
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...健一 茂木
 

Similaire à 今風なデスクトップアプリのモダンインストーラー開発 (20)

わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる20110212 Silverlight から Bing Maps に触れる
20110212 Silverlight から Bing Maps に触れる
 
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~使い倒そう Visual Studio Code!~クラウド連携や遠隔ペアプロ、 もちろん Git も便利に~
使い倒そう Visual Studio Code! ~クラウド連携や遠隔ペアプロ、  もちろん Git も便利に~
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
自社サービスkintoneをふんだんに活用したサイボウズの開発フロー
 
サーバーレスで作る スマホアプリバックエンド
サーバーレスで作るスマホアプリバックエンドサーバーレスで作るスマホアプリバックエンド
サーバーレスで作る スマホアプリバックエンド
 
coma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworkscoma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworks
 
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!ゲーム開発環境、もっと楽にできるよ♬  マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
ゲーム開発環境、もっと楽にできるよ♬ マインクラフトでも実践している DevOpsでゲーム開発を効率化しよう!
 
Bambooによる継続的デリバリー
Bambooによる継続的デリバリーBambooによる継続的デリバリー
Bambooによる継続的デリバリー
 
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとはインフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
インフラ刷新プロジェクト「Neco」が目指す最高のクラウドとは
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
ひとりでできるもん!サーバープログラム不要、Java Scriptだけで作るハイブリッドアプリ(iphone,android,web)...
 

今風なデスクトップアプリのモダンインストーラー開発