読者です 読者をやめる 読者になる 読者になる

つばろぐ

福岡のエンジニアによる技術的な備忘録です。

JXUG福岡支部発足記念勉強会でXamarinで.NET Coreを活用する話をしてきました

勉強会 Xamarin C#

JXUG(Japan Xamarin User Group、"じぇいざぐ"と読む)の福岡支部が発足することを記念した勉強会が行われました。参加報告です。

jxug.connpass.com

Xamarinとは、C#を用いてマルチプラットフォームなモバイルアプリケーションを作ることのできるフレームワークです。
JXUGはXamarinのユーザグループの略称です。
これまで福岡には支部がありませんでしたが、この度福岡支部が発足されることとなりました。

私が運営に携わっているFukuoka.NET(ふくてん)も、今回の勉強会に共催という形で参加させて頂きました。
参加者、スタッフを合わせて約50名となり、多くの方に参加してもらえて主催者の一人として嬉しく思います。

当日の様子はTwitterを見るのが一番分かりやすいかな。

勉強会のメインはXamarinハンズオンでしたが、ふくてんも登壇枠をもらいましたので発表してきました。

Xamarinでも有能な .NET Core

.NET CoreでXamarin向けのライブラリを作るときは、project.jsonに記載するTarget Framework Moniker(TFM)netstandard を指定するといいよ、という内容で発表しました。
デモも行いましたが、プロジェクターの映像が複製になってなかったり、映像の端が切れてたりで見苦しかったと思います。反省。

デモで使ったコードは公開しています。

github.com

Target Framework Moniker(TFM)について参考にしたリンクはこちらです。

ハンズオン

ハンズオンはこちらの資料が元となっています。私は参加者のサポートしながらだったので、日を改めて再挑戦したいと思います。

github.com

github.com

感想

これまで交流の無かった方々とも知り合うことができて、とても有意義なイベントでした。
登壇者やスタッフの皆様、本当にお疲れ様でした。

オマケ

ちょまどさんが会場のホワイトボードに書いてましたね。さすがお上手です。
いいねがハイペースでついて驚きました。

DocumentDB SDK for .NET Core(Preview)を試しつつ、ローカルなDocumentDB環境を作ってみた

Azure C#

この記事は .NET Core Advent Calendar 2016 5日目の記事です。

11月中旬にAzure DocumentDB .NET Core向けのSDKのプレビュー版の提供が始まりました。

Azure DocumentDBとは

Microsoft Azureが提供する フルマネージドなNoSQLデータベースサービス です。
これまでDocumentDBのSDKは下記の言語が提供されていました。

docs.microsoft.com

冒頭でも述べたようにこれらのSDKのラインナップに「.NET Core」が加わりました。

DocumentDB .NET Core Preview SDK available

私自身、待ち望んでいたところがあるので試してみました。

SDKのインストール

まずはVisual Studioで.NET Coreのプロジェクトを作成します。
作成したプロジェクトを右クリックして「NuGetパッケージの管理」をクリックします。
パッケージマネージャにて Microsoft.Azure.DocumentDB.Core を検索し、インストールを行います。

f:id:tech-tsubaki:20161203224842j:plain

もしくはパッケージマネージャーコンソールにてインストールコマンドを発行します。

PM> Install-Package Microsoft.Azure.DocumentDB.Core -Pre
'nuget.org' からパッケージ 'Microsoft.Azure.DocumentDB.Core 0.1.0-preview' を取得しています。
NuGet パッケージ Microsoft.Azure.DocumentDB.Core.0.1.0-preview をインストールしています。
'Microsoft.Azure.DocumentDB.Core 0.1.0-preview' が MyDocumentDB に正常にインストールされました
NuGet の操作の実行に 42.79 ms かかりました
経過した時間: 00:00:01.3186288

機能

プレビュー公開についての記事によれば、.NET向けのSDKと同一の機能を有しているそうです。
なのでアプリケーションでDocumentDBを使う上での必要な機能は既に揃っていることになります。

DocumentDB .NET Core Preview SDK available

The DocumentDB .NET Core Preview SDK has feature parity with the latest version of the DocumentDB .NET SDK

データベースの作成、コレクションの作成、JSONドキュメントの作成など、基本的な機能の使い方はドキュメントを読んだほうが分かると思います。

docs.microsoft.com


とまぁこれだけだと大したブログにならないですね。

(オマケ)DocumentDBの環境をローカルに作る方法を試してみる

エミュレータを使ってローカルにDocumentDBの環境が作れるというもの。いつ頃でてたんだろう?
どうしてもDocumentDBを使ったアプリだと、ローカルでデバッグする際もデータベースだけはAzureにアクセスしないといけなかったので、オフラインだと開発しづらかった面がありました。これは早くに知っておきたかったですね。
元ネタはこちらです。

docs.microsoft.com

使用するのは DocumentDB Emulator というものです。Microsoftが提供しています。
必要なスペック要件としては、OSはWindows Server 2012 R2以上、またはWindows10のようです。
また、メモリは2GB、ディスク空き容量は10GBとのこと。

f:id:tech-tsubaki:20161204133629j:plain

SDKを使用してDocumentDBにアクセスするには、エンドポイントとアクセスキーを用いた認証が必要となります。
エミュレータの場合、エンドポイントは https://localhost:8081/ 、アクセスキーはドキュメントに記載されています。

接続先をエミュレータに変えてしまえば、他のコードを変更する必要はありません。
エミュレータのDocumentDBに格納されているデータを確認する場合は、タスクトレイのアイコンをクリックし[Open Data Explorer...]をクリックすればよいです。

f:id:tech-tsubaki:20161204140016j:plain

f:id:tech-tsubaki:20161204140156j:plain

DocumentDB Emulatorの標準ポートは8081ですが、このポート番号だと都合が悪い場合、Emulatorのコマンドラインでの起動引数にて別ポートを指定できるようです。

インターネット接続が必要なクラウドサービスを使ったアプリケーションの開発が、ローカルかつオフラインでできるのは素晴らしいですね。

最後にこの記事を書くために使用したコード(リポジトリ)を置いときます。
デバッグ実行時はDocumentDB Emulatorに接続するようなコードにしています。

github.com


※追記

この記事を書いてたらScott HanselmanさんのブログにDocumentDB Emulatorの記事が公開されていた。なんとタイムリーなw

www.hanselman.com

先日出したAzure FunctionsのIssueが解決したようです

Azure Functions

先日、Azure FunctionsについてのIssueを出したという記事を書きました。

tsubalog.hatenablog.com

要約すると、コピーボタンを使ってコピーしたテキストに余計な改行が含まれていました。
そこで勇気を振り絞ってIssueを出してみました。

github.com

Issueを出して数日後、bugというラベルが付けられました。やはりバグだったんですね。
更に数日後、修正が行われ、Issueはクローズとなりました。

修正箇所を見てみると、Azure FunctionsのポータルはTypeScriptが使われていることがわかります。
やはりMicrosoftのテクノロジーが使われているんですね。

github.com

なおこのIssueはまだリリースされていません。
rc というマイルストーンに分類されたため、次期リリース版に含まれる、といった感じでしょうか。

github.com

まだリリースされていないとはいえ、Azureの機能に少しでも貢献できたことは嬉しく思います。