2013/06/22 つくばC#勉強会 幻想ツバメ(@f_swallow) Officeで始めるC# 2013/06/22 つくばC#勉強会 幻想ツバメ(@f_swallow)

Slides:



Advertisements
Similar presentations
Microsoft Office Microsoft Office の変遷と内容. Microsoft Office の変遷( 1 ) 名称内容発売時期 Microsoft Multiplan 表計算ソフト。 Multi-Chart( グラフ)。 MS- DOS 等 1982 年 Multi-Tool.
Advertisements

UGUI を 使ってみよう ( 導入・紹介?編 ) 1. uGUI とは O Unity 4.6 から使えるようになった UI (ユー ザーインターフェース)システム O 8 月: Unity4.6 β uGUI 試用版公開 O 11 月: Unity4.6 uGUI 正式版公開 正式版公開で、 機能紹介ブロ.
わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
Ver Manual 2010 Tanaka. 目次 1. 概要 2. インストール 3. 使用方法 4. トラブルシューティング 5. その他 6. 更新履歴.
MOSA プログラミングセミナー Mac OS X プログラミング 事始め 新居雅行( MOSA 理事) 2002/4/28.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
Windows Workflow Foundation of .NET Framework 3.0
Visual Studio 2010 の新機能 Coded UI Test
IIS 4.0で開発をするコツ Webアプリケーション構築.
Windows HPC Server を使ってみる
D&UNITE 株式会社 代表取締役 株式会社 T-Planning 取締役 Microsoft MVP for ASP.NET/IIS
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
クラウド上での リアルタイム・非同期・双方向通信アプリケーション開発基礎
プレゼンツールとしての Impressと、PowerPoint比較
表計算ソフトを使って 万年カレンダーを作ろう!
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Ver Manual 2010 Tanaka.
Microsoft Office Web Apps の基礎と活用
VBA H106077 寺沢友宏.
報告 (2006/9/6) 高橋 慧.
マルチエージェント・シミュレーション(2)
Microsoft Office 2010 クイックガイド ~ファイルの互換性編~
Solid Edge Customization with VB   (Fundamentals)
稚内北星学園大学 情報メディア学部 助教授 安藤 友晴
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
RAD Studio 14/09/27 TEffectを使った綺麗なForm
Visual Studio LightSwitchの概要
さとりすと Satori Ghost Editor 里々ゴーストの統合開発環境を作ったよ page: 1/25
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
発表者 2011/01/08 楽しい256バイトイントロの 世界 発表者 2011/01/08.
Windows Phone 7.5 の データ アクセスとクラウド連携
初めてのTSF 囚人.
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
XNAアプリ→WindowsPhone \(\◇ ̄ )ヘン~(  ̄▽/)ゝシン!!! \(○ `O´ ○)/トゥーー!!
プロジェクト演習Ⅱ インタラクティブゲーム制作 イントロダクション2
Visual Studio 2005による スマート クライアント入門
MDC Special Session Report tk-engineering.com
Windows Azure (CTP) 触ってみた
Microsoft MVP for Development Tools – Visual C++
WPF、MVVMパターン構成.
Windows PowerShell Cmdlet
R流・C#マルチスレッドの復讐 2009年05月16日 R・田中一郎
「OSで儲けない」 Microsoftの新戦略
Microsoft Visual Studio 2005 Tools for
.NET Framework 3.0 概要 (旧称 : WinFX)
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
Microsoft MVP for Development Tools – Visual C++
平成19年10月19日 図書系のための アプリケーション開発講習会
Web - 01 IIS を インストールしよう.
COM コンポーネント・オブジェクト・モデル.
初めてのTSF 囚人.
Windows Azure (CTP) 触ってみた
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
Microsoft MVP for Development Tools – Visual C++
表計算ソフトを使って 万年カレンダーを作ろう!
第1章 いよいよプログラミング!! ~文章の表示 printf~
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
プログラム分散化のための アスペクト指向言語
Microsoft Office 2010 クイックガイド ~ファイルの互換性編~
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
情報ネットワークと コミュニケーション 数学領域3回 山本・野地.
回転する歯車 プレゼンテーション プレゼンテーションのスライドショーを開始 (F5 キー) すると、アニメーションが再生されます。
プロジェクト演習Ⅱ インタラクティブゲーム制作
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
How To WPF アプリケーション Part3 By 中博俊.
Presentation transcript:

2013/06/22 つくばC#勉強会 幻想ツバメ(@f_swallow) Officeで始めるC# 2013/06/22 つくばC#勉強会 幻想ツバメ(@f_swallow)

Agenda C#でのOffice開発について VSTOって何 VSTO+ASP.NET(SignalR)の実現 PowerPoint+WinForms+WPF まとめ Agenda

!注意! 決して斧などは投げないでください 斧じゃなくても投げないでください なんか作ってたらタイトルとずれてるのですがそこは大目に見てあげてください あと私はVB.NETを基本使ってます

そもそもお前は誰 幻想ツバメとか名乗ってる人です Twitterでは@f_swallowでした 今年から新宿のどこかに通ってる学生をしてます →Facebookの某所にいるかもしれません 今年から新宿のどこかに通ってる学生をしてます 元Twitterクライアント開発側→Tumblrに逃げた えっちくない画像を保存するアプリケーション作ってます OfficeとかWeb APIとかに興味あります

違います

C#におけるOffice開発

Office開発といえば? Visual Basic for Applicationsが最初に上がる Excel DNAなんていうのもある でも今回はVisual Studio Tools for Officeについて Office開発といえば何があるか? VBA? Excel DNAというC#使えるのもあるよ! でも私はVSTOを話すよ!

Visual Studio Tools for Officeとは Visual Studio Tools for Office(以下VSTO)ではVisual Studioを用いてOfficeの拡張機能、自動化などを開発できる 開発できる製品はデフォルトでサポートしているのはOneNote,Access,Publisherを除くすべて 言語はVB.NETかC#のどちらかを選択可能 (昔はVB.NETのほうが優位だったが今はほぼ同等)

Visual Basic for Applications(VBA)とは Officeに標準でついているマクロや自動化した機能を開発するためのもの ドキュメントレベルの開発が可能で、特定のドキュメントにおける反復処理や特殊な対話を行うのに利用される 言語はVisual Basic 6のみ。難しくはないが古いため気が利かないこともある

VBA vs VSTO VSTO→アプリケーションレベルの開発 VBA→ドキュメントレベルの開発 VBA↔VSTOという相互運用も可能 VBAはファイルに固定されるためアプリケーションレベルの開発は不可能、VSTOはドキュメントレベルの開発もできるがいかんせんCOMなので細かい処理が厳しい

VSTOとは何か

もうちょっとわかりやすく Visual StudioでOffice開発ができる技術 VSTOではアプリケーションレベルの開発ができる .NETとOfficeの架け橋的な役割を担える技術がVSTO

Officeの開発モデルについて VSTO Apps for Office Open XML BCS Fluent UI VBA あああああああああ ああああああああ Office Services Add-ins

VSTO一つ覚えればいいの? つまりVSTOを使えばほぼすべてのOffice開発が実現できる? そうはいってもアプリケーションレベルのアドイン+.NETなのでそもそもあまり関係がなくてもできるという面がある OpenXMLとか実際別のSDK必要です

結局VSTOって何 アドイン作るのがメイン リボンとか扱えます BCSも大丈夫 OpenXMLも扱えるけど別段VSTO向けってわけでもない 今どきなApps for Officeも作れるかも?

実際はどんな感じなの WinFormsで開発していく感じ 対象がOfficeアプリケーションなだけで基本的には他のものと一緒 使える範囲も基本的には制限がなく.NET 4.5でasync/awaitとかだって普通にできます

Sample:iTunesをExcelから操作する COMを使ってiTunesは操作できる もちろんVBAでも可能だが記法が古い+リボンを使いづらい VSTOを使えばリボンのカスタマイズなども手軽 そもそもVBAを扱わなくても手慣れたC#で気軽に書ける

Demo

PowerPoint & SignalR

ASP.NETとは MicrosoftによるWebアプリケーションフレームワーク Windows Server上で動作し、デスクトップアプリケーションと同じようにWebアプリケーションを開発できる つまるところPHPのVB.NETやC#版みたいなもの

SignalRとは ASP.NETのサービスの一つで、双方向性のあるリアルタイム通信を提供する いわゆるプッシュ通知を実装するためのサービス 少ないコードで簡単にリアルタイムな通信ができる

SignalRのイメージ

もっと深く見てみよう SignalRではサーバー上にHubと呼ばれるオブジェクトを設置する

Hubのイメージだった、ような…

これはとっても難しいなって

なんか複雑で私にはちょっと… 確かにネットワークも絡むし複雑だがこう考えると実装する側の理解としては十分な理解となる Hub→クラス Send→そのままメソッド Receive→イベント Hubへの通知→Send(); クライアントへの通知→イベントをハンドルする

なんか複雑で私にはちょっと… つまりHubとか言ってるけどイベントを実行するとかメソッドを実行するとかそのレベルの話でしかないとも考えられる eventくらいならWinFormsとかWPFとかをやっていれば一度くらい触ったこともあるし理解だって難しいことでもない!

もう何も怖くない

PowerPointでどのように利用するか PowerPointのスライドショーをSignalRを使って行えればよいのでは? 手元のスマートフォンをコントローラとして作用させる 特別にポインターのようなものを買わなくても手軽にコントローラ作れれば便利?

こんなのを作ろう

実装をどうするか Windows Phone向けでもよいが通信が(お察しください)なのでHTMLページ+JavaScriptで操作する IIS Express 8上にホストしたSignalRのHubですべてを実現する Azure Web Sites? クレジットカードないって言われて… PowerPoint部分はVSTOでアドイン作ってつなげる

Demo2

Windows Forms + WPF (時間があったら)

Windows Forms(WinForms)とは グラフィックスを多用したアプリケーション(スマートクライアント)を作成するためのテクノロジ 古くから使われており、手軽に高機能なUIを持ったアプリケーションが作れる しかしリッチなUIかというとそうでもないし今どきな技術があんまり使えない

Windows Presentation Foundation(WPF)とは “魅力的な外観のユーザー エクスペリエンスを持つアプリケーションを作成するための次世代プレゼンテーション システム” UI部分とコードの部分を完全に分離でき、UI部分だけである程度の対話型アプリケーションを作ることも可能 WinFormsと比べて強力なデータバインディングやグラフィックス、アニメーションをサポートしている

しかしVSTOは 先ほどのとおりWinFormsで開発するスタイルでありWPFがメインではない しかしWindowsFormsIntegration.dllを使うことでWinFormsとWPFを相互運用することができる つまりWPF内でWinFormsを使ったりWinForms上でWPFを使うことができる(ただしUserControlのみ)

System.Windows.Forms.Integration WPFとWinFormsを相互運用することができるがユーザー定義のコントロールのみ WinFormsでWPFを使うときにはElementHost、WPFでWinFormsを使うときにはWindowsFormsHostを用いる

WinFormsでWPFを使うとき WinForms ElementHost WPF UserControl WinFormsによるフォーム フォーム内にコントロールを配置してもよい ElementHost WinForms内のコントロールの一つとして扱われる 子にWPF UserControlを持てる WPF UserControl WPFのユーザー定義のコントロール

使い方 普通にVisual StudioでWinFormsなフォームにWPF UserControlを置くと自動でElementHostが生成されてその上に設置される ElementHostを意識して利用することはほぼない

まとめ

まとめ VSTOはVisual StudioでOffice開発する技術 Office + .NETな開発でOfficeの新しい使い方を実現できるかも? SignalRのリアルタイム性を用いたアプリケーションなんかも今熱いですね!