OSSはじめました!(ほぼ日記)

始めたきっかけ

いままで、Azure, Office365, Windows OS上で使用するプロダクトを作ってきましたが。

もっと、たくさんの人に使ってもらえるように出来ないかと思い始めました。

また、開発者にもブランド化してほしいと思います。

 

世の中も、AI, IoT Robotと目まぐるしく変化しています。

やばい、やばすぎる、この現実、時は残酷なり。

10年に1回モデルチェンジをしている私としては、モデルチェンジの時期がきたと思いました。

ということで、大幅に考えを変えることにしました。

 

時代はOSS、Microsoft も Love Linuxの時代です。
そこで、OSSだと思いました。

OSSとは一体何か?

今回詳しく調べてみました。

オープンソースソフトウェアとは

OSSとは、オープンソース概念に基づきソフトウェアソースコード無償公開され、改良や再配布を行うことが誰に対して許可されているソフトウェアのことである。あるいは、オープンソースに関する文化啓蒙活動を行っているThe Open Source Initiativeによって認定されたソフトウェアのことである。

Weblio

ソースコードを無償で公開して、改良・再配布を自由に行うことができるようにすること。

いままで、商売でコードを書いてきた私にとっては、とてつもなく高いハードル。。。。。

でもこのままでは、古い人間になってしまう。

ということで、オープンソースで収益を上げている人たちを調べてみました。

Profitモデル

  1. RedHat
    有名なRedHat なんと20億ドルも売り上げをあげている。Global企業すぎていける気がしない
    Red Hatはクラウドへの移行で50億ドル企業をねらうが、Linuxだけでは無理かもしれない
  2. EC-CUBE
    日本初のE-Commerce OSS 有名だが、売上わからない。帝国データバンクで調べないといけないのでパスしました。カート決済、サイトのホスティングサービス、カスタマイズでたくさん儲けてそうです。
  3. GitHub
    Gitを使いSaaSサービスを無料・有償で提供しています。
  4. Wijmo
    開発ツール、無料と商用ありで、当社も購入しています。
    ライセンス

いづれの企業もユーザの導入障壁を下げて、OSSを簡単に利用でき、ライセンス費用、ベンダーロックを回避することにより、良いサービスを多くのユーザに届けています。

金勘定は、後ですることにして、私の会社で適用できそうなビジネスモデルは以下かなと思います。

  1. SaaSでサービス提供(サーバ運用・サポート)
  2. 技術アピールによる、受託サービス

 

ツールの選定

現在ベトナムの英語ベースの技術者ロンさんと開発しているので、

日本に依存したツールは一切排除、開発も全部英語でしています。

これで、私の英語レベルも向上して将来的には世界へプロダクトをプレゼンして売るぞと!!!

Xamarin

時代はスマホということで、スマホのアプリを作るうと。

AndroidとiOS, Windows Phone で全部作りこむ体力がないので、問答無用でXamarinにしました。

現在、Azureの講師もしているので、Azure Loveな私としては、サーバはAzureでこちらも問答無料です!!

ベトナムではAWSがひろまっているようですので、Azureのよさをベトナムに広げていきます!!

ということでこちらが最終構成イメージになります。

 

Office365

もちろん、Office365も連携させますよ。使命をもって!!

 

GitHubで始めたOSSプロジェクト

https://github.com/exceedone

 

では、皆様おろしくお願いします。

 

Tokyo ComCamp 2016 powered by MVPs で登壇しました。

予約ページ  Tokyo ComCamp 2016 powered by MVPs – connpass

株式会社gloopsさんにて、Office365 の開発について登壇を行いました。

Office365の開発は、ユーザ数が増えて、開発者も増えてきました。

機能が多いので、開発手法についてデモを交えながら、説明しました。

詳しい方もいたので、Office365について知識が深まりました。

 

ComCamp2016

 

スライド


 

Windows用OneDrive API 2.0導入まで

以前紹介いたしましたOneDrive APIはMicrosoftアカウントのみの対応でしたが、
2.0になってOneDrive For Businessに対応になりました。

事前に用意するもの

・VisualStudio 2015
・Microsoftアカウント
・一般法人向けOffice365 (OneDrive For Businessで必要)
・AzureAD(AzureADは一般法人向けOffice365についてきます)

何が変わったか

2015年2月に出たライブラリとは互換性がないのが残念ですが、nugetから最新のパッケージが入手できるようになっております(Microsoft.OneDriveSDKで検索)。
もちろん、サンプルも新しくなっておりURLも変わっております。

サンプルを動かしてみよう

サンプルはWindows Form用とユニバーサルアプリの2通りが入っておりますので、
OneDriveに対応したアプリを作成される場合、サンプルに沿って作れば比較的楽に作れると思います。
2016/1/30時点では下記のような設定を入れないと動かなかったことを確認しております。

onedriveapi2_1

上記の設定のあとビルドし、OneDrivePhotoBrowserを起動すると下記のような画面が表示されます。

onedriveapi2

Log in to AADを押すと、Office365ログイン画面が表示されたのち、OneDrive For Businessのファイル情報が表示されました。
※実行時はLog in to MSA側は動作しませんでしたが、OneDriveApiBrowser側では動作しておりましたので、
MSA側が気になる方はそちらを参考にするとよいと思います。

JenkinsとMSBuildでビルド自動化

最近、定期的にTeam Fundation Serverからチェックアウトして、
プロジェクトをビルドし、指定されたところにコピーする決まった作業をどうにかしたいので、
TFSや.NetFrameworkのビルドが扱えるJenkinsの利用を始めました。

何ができるか

・分単位で指定した時間にバッチ処理を実行することができる
・ビルドテストができる(ビルド単位で結果を保存することも可能)
・デプロイができる
・コミット(チェックイン)で起こるコードの不整合をメールで通知してくれる。(多人数開発で便利)

その他いろいろ

 設定は難しい?

機能ごとにヘルプがついており、記述方法も記載されているので
比較的わかりやすくなっております。
vs_jenkins01
右の?がヘルプです。

自動ビルドだと成功したかわかりにくくない?

vs_jenkins03
実行した後、ビルドごとにログが残っているので詳細がわかりやすいし、
仮にエラービルドが発生した場合はメール通知も可能です。

チェックインログはTFSで見ないといけない?

vs_jenkins02
ビルドする際にチェックアウトしたデータが前回から変わっている場合は
差分情報が表示されます。エラーの場合はどこのバージョンでエラーが混入したか
わかりやすくなっています。

設定するのに時間かかるのでは?

セットアップから簡単なジョブの設定であれば数十分程度で終わります。

今までは「最新のビルドを作ってください」と言われておりましたが、
これからは「決められたところからダウンロードして使ってください」になり、ビルド待ちが減りましたので
開発効率があがりそうです。

Azure経由でPush通知ができます

2015年後半にWindows10 Mobileが出てから徐々に
WindowsPhoneが見直されてきそうなかんじですが
iOS、AndroidにあるPush通知はWindowsにもあります。

push_azure02
WindowsPhoneのPush通知はこんな感じです

Push通知はAzureを使えばWindowsだけではなくiOS、Androidも制御できたりします。
開発に関してはNotification Hubsの利用がわかりやすいと思います

WindowsでPush通知を使うためにはストアアプリであることが前提であるみたいですので
Windowsデベロッパーセンターの登録と、Azureの登録が必要になります。
Windowsデベロッパーセンターのダッシュボードにアプリケーションを登録して、
サービスのPush通知設定をし、AzureにWindowsデベロッパーセンターで指定された
情報を登録したのち対応しているアプリケーションを作成すると通知が使えるようになります。

push_azure01
Azureには無料枠があるみたいなので、お試ししたい方はぜひ。
※Windowsデベロッパーセンターは登録料が必要です。(2016/1現在)

※この記事は筆者のブログが基になっております。

第2回 MSストア アプリ もくもく会 for O365API, Office Add-ins, SharePoint Add-ins, Windows Store App, Dynamics

予約ページ

https://office365dev.doorkeeper.jp/events/34387

Excel女子で有名な、株式会社エーアイエル様にて勉強会を行いました。

Alt textAlt text

今回は、Office Add-ins を教えながらいっしょに作ったりしてアイデア交換できて楽しかったです。

私を含めて数人は個人的、会社的に作るものがあり、各自アプリを作っていました。(Office Add-ins, SharePoint Add-ins, Windows Phone App等)

アイデアを共有したり、技術を教えあったり、またもや、もくもく会というよりペラペラ会になりました。

第3回は1月30日に予定しています。

IMG_0610

 

IMG_0611

2015/11/09 第1回 MSストア アプリ もくもく会 for O365API, Office Add-ins, SharePoint Add-ins, Windows Store App, Dynamics

予約ページ

https://office365dev.doorkeeper.jp/events/33350

初めてプログラムを作る大学生も参加していました。
学校にはVIsual Studioがあるらしいのですが、
最近の若い人は初めてでもすぐに四則演算アプリを作っていたので、デジタルネイティブの可能性を感じました。

私を含めて数人は個人的、会社的に作るものがあり、各自アプリを作っていました。(Office Add-ins, SharePoint Add-ins, Windows Phone App等)

アイデアを共有したり、技術を教えあったり、もくもく会というよりペラペラ会になりました。

帰りには懇親会に行き中華を食べました楽しかったです。

第2回は12月19日に予定しています。

 

20151107png

Windows用OneDriveAPI導入まで

2015年2月下旬にリリースされたOneDrive API(C#)の導入方法です。

ni_odapi1_1

事前に準備するもの

VisualStudioとMicrosoftアカウント

OneDriveとは何か

15GBの容量と、Office Onlineが無料で使える環境です。
詳しくはこちら

APIやサンプルで何が出来るか

OneDrive内の大抵の動作を制御することが出来ます。
・MSアカウントのサインイン、サインアウト
・リフレッシュトークンを使用したサインイン継続
・OneDrive内のファイル情報取得
・OneDriveへファイルのアップロード(大きいファイル用にプログレスバー対応も有り)
・OneDrive内にあるファイルのダウンロード
・OneDrive内にあるファイルの削除
・指定したURLからOneDriveへファイルのコピー
・OneDrive内にあるファイル検索
などなど
※OneDrive for Businessは非対応です

開発の準備をしよう

サンプル(SDK入り)をダウンロードします
ダウンロードするにはSamplesタブを選択して
OneDrive API Explorer (Windows/C#) を選ぶとGitHubに遷移しますので、
右下にあるDownload ZIPを押してサンプルをダウンロードします。

ni_odapi1_2

 

Zipファイルのダウンロードが終わったら展開して
OneDriveApiExokirer.slnを起動します。

ni_odapi1_3

 

VisualStudioが起動したら、ビルドして動作を確認しましょう。
※OneDriveにはMicrosoftアカウントでサインインします。

ni_odapi1_4

 

一通り確認したところで、次に開発になります

VisualStudioでC#用プロジェクトを作成し、
サンプルに入っているプロジェクトの参照設定情報を見てライブラリをインストールをします。
※OneDriveSDKは、サンプルをビルドした際に出来たdllを使用します。
次にサンプルからサインイン、サインアウト用のコードを自分のプロジェクトに追加します。
・Auth/OAuthAuthenticator.cs
・Auth/OAuthTicket.cs
ここで注意!
コピーしただけでは、「OneDriveApiExplorer」として動いてしまうので、
作成するアプリ用にクライアントIDとクライアントシークレットを取得しましょう。

取得方法は、
Microsoft アカウント デベロッパー センター
にアクセスして、アプリケーション名と言語を選択して「同意」します。
次にマイアプリ→(作成するアプリ)→設定の編集→API設定に進み
いいえ」になっている選択欄を「はい」にして保存ボタンを押下します。
これでMSアカウントを使ったアプリの登録は完了になります。
登録すると、クライアントIDとクライアントシークレットが発行されますので
Auth/OAuthAuthenticator.csの
msa_client_idにクライアントID
msa_client_secretにクライアントシークレット
をそれぞれ書き換えます。
新規に作成したプロジェクトではRefreshToken周りの設定がされていないと思いますので
Settings.settingsの設定を下記のようにします。

ni_odapi1_5

 

これで自分のアプリとして開発する準備が整いました。
あとはサンプルから使いたい処理を参考にして開発する形になります。

Visual Studio 2013 GitHubの使い方

はじめに

最近よく聞く「GitHub」でVisual Studio 2013では標準で「GitHub」に接続できちゃいます。

そもそも「GitHub」は、GitというLinuxを作った人が、開発したオープンソースのバージョン管理ソフトです。

それを無料・有料でホスティングしているのがGitHubです。

そもそもGitHubとは一体何か?
http://jp.techcrunch.com/2012/07/15/20120714what-exactly-is-github-anyway/

Microsoftの少し前の技術ですと「Visual Source Safe」や、今ですと「Team Foundation Server」
などを使用していたと思いますが。

公開してオープンソースで開発するとなるとGitHubが便利です。
※公開しないプライベートでもできます。

自分のソースを公開したり、いっしょに開発したりするのによさそうです。

1. GitHubにユーザを登録しておきます。

githubvs0010

2. GitHubにからのリポジトリを作成しておきます。

Tabの[Repositories]で、[New]をおします。

githubvs0020

3. 今回は[Test3]でリポジトリを作成します。

githubvs0030

4. Visual Studio で、なんでもいいので、新規プロジェクトを作成します。

今回は[MVC5]で作成しました。

githubvs0040

5. Visual Studio の設定

[ツール][オプション]

[ソース管理][プラグイン選択][現在のソース管理プラグイン]を[Microsoft Git Provider] に設定する。

githubvs0050

6. GitHubへの接続設定

githubvs0060

ユーザ名、、電子メールアドレス等設定する。

githubvs0070

7. ソリューションを選んで右クリックしてコミットしてローカルリポジトリにソースを格納する。

githubvs0080

PCのローカルのリポジトリにコミットされます。

githubvs0090

8. リモートのGitHubと同期するために、[同期されていないコミット]ボタンを押す

最初のときだけGitHubのリポジトリのURLをきいてくるので入力します。

今回は https://github.com/snoro/Test3 と入力後発行します。

githubvs0100

そしてGitHubをみるとアップロードされています。

githubvs0110

補足1 GitHubのリモートアドレスの変更

GitHubのURLの設定のところは、ローカルリポジトリを作成後、同期のときの、1回しか、表示されないので、

もしかしたら、コマンド等でGitHub(リモートリポジトリ)のURLを変更しないといけないかもしれないのです。

わたしは、わからないので、ローカルリポジトリを新規作成して、GitHub(リモートリポジトリ)のURLを変更しています。

githubvs0120

補足2 カレントのローカルリポジトリの変更

ソリューション作成時は、カレントリポジトリにプロジェクトを作ります。

また、カレントローカルリポジトリは消せませんので、削除する場合等には切り替える必要があります。

その場合、電源プラグみたいなアイコンをクリックしてカレントにしたいローカルリポジトリをダブルクリックします。

githubvs0130

補足3 GitHubとの同期時に重複エラーが表示され、うまく同期でくなくなったら

GitHub側でReadme 等修正するとなぜか重複等で、同期が失敗する場合があります。

コマンドたたけば治せるのでしょうけど、

GitHub側を正としていいなら、簡単なのでGitHubから、もう一度複製しちゃってもいいです。

githubvs0140

参考

Create, Connect, and Publish using Visual Studio with Git