2015世代のC# 参加メモ


# Visual Studio + Xamarinで始めるモバイルアプリ開発

speaker 池原 大然( @neri78 )
Microsoft MVP for Windows Platform Development

スライドは[こちら](http://www.slideshare.net/IGJP/visual-studio-xamarin)

Visual Studio 2015はクロスプラットフォームに力を入れている。
インストール時に選択できる。

## Xamarin

Xamarinを利用することにより C# + VisualStudio or XamarinStudioでAndroid,iOS,Windows向けの開発をすることができる。

iOS開発用にXamarin.iOS,Android開発用にXamarin.Androidがある。

Visual Studio Emulator for Androidという機能が2015から追加されており、VisualStudio上でデバッグできる。

Xamarin Android Player(Xamarinのライセンスが必要)

WindowsPhoneは元々VisualStudioが対応しているので、Xamarinは特に関係なし。
ただしPortable Class Library(PCL)を利用することでXamarin.iOSやXamarin.Androidとコードを共有できる。

## まとめ

Xamarinを使用することで開発環境と開発言語が統一化できる。
PCLを利用することでビジネスロジックを共有できる。
UIはそれぞれ別に作る必要がある。

## Xamarin.Forms

XAML

XAMLについては[こちら](http://blogs.msdn.com/b/shozoa/archive/2014/07/23/what-s-xaml.aspx)
ナレッジを流用できている。
データバインディングとテンプレートエンジンを利用することでコントロールとしての機能と外観を分離できる。

Xamarin.Forms(共有UI:C# or XAML)でUI部分を共有できる。
WPF/SLアプリを構築している感じで実装できる。
提供されているコントロールは基本的なものが多い。
→ 業務系アプリに向いている。

InfragisticsではよりリッチなUIを構築する為の製品を取り扱っている。
[Infragistics Ultimate](http://jp.infragistics.com/products/ultimate.aspx)

# 新しい Visual Studio & .NET と新時代のアーキテクチャ

speaker 古賀 慎一( @surviveplus )
Microsoft MVP for Visual Studio ALM

スライドは[こちら](http://www.slideshare.net/shinichikoga355/2015-newvisualstudio)

## 新しいVisualStudio

VisualStudio2015 Windows用統合開発環境

VisualStudioCode 
Windows,mac,Linuxで使用可能
軽量な高機能エディタ
Mac OS XやLinuxでASP.NET5の開発ができる
クロスプラットフォームOSSツールを使えばビルドも可能
ASP.NET5はWindows/Mac OS X/Linuxで動く

VisualStudioOnline ALM&DevOps用

実はVisualStudio2015もASP.NET5の開発はcodeと同様
内部的にはクロスプラットフォームOSSツールを呼び出している。

VisualStudio2015とVisualStudioCodeの違い
VisualStudio
　統合開発環境の完成形
　OSSの機能も自動で扱ってくれる
VisualStudioCode
　未完成でOSSとともに成長中
　OSSを理解している人向けの高機能テキストエディタ

ASP.NETはコンテナ型のアプリ

## マイクロサービスとデコード

マイクロサービス
動いているサービスを止めずにアップデートは大変
全体で巨大1システムだと変更・リリースが難しい
　細かいサービスに分かれていれば部分的にリリースして差し替えしていくことができる
細かいサービスは仮想化ではなくDockerコンテナを使っていくとよいのでは。

データレイク
　これまで
　　業務システムが目的のデータを収集、それを整形加工、分析へ
　これから
　　IoTで大量に収集される生のデータ(ビッグデータ)
　　リアルタイムでストリーム処理する流れ
　　未整形データを一旦溜めて、整形加工して使用する流れ
　→Microsoftでサービスを提供している
　　AzureML,AzureDataFactory,AzureDataLake...

VisualStudioとAzureの機能追加
　VisualStudioで開発するアプリ配置先
　VisualStudioで接続するアプリ先

## VisualStudio2015 + VSO + Azure新機能

### オープン化
### クロスプラットフォーム
### DevOps

### コードレンズの強化
ソースコードをいつ？誰が？どう？変更したかをコードの近くに表示
(ここから担当者に連絡もできる(IM,メール,電話))
単体テスト結果確認、テスト実行もコードからできる

2015ではグラフィカルに「見える化」
開発者が情報収集するからツールが情報収集へ　→　開発者が開発に集中できる

### Light Bulb
コードをリアルタイムに分析、提案を表示
リファクタリング・コード分析がLight Bulbに統合
NuGetからコード分析ルールを取得できる
→　Azureのルールを取り込んだり、自分の独自ルールを追加できる

### IntelliTest
Create Unit Test
　単体テストの自動作成(メソッドから作成機能が復活)
Run IntelliTest
　コードカバレッジ100%テストパターンを作成

### 接続済みサービス＆Azuer AD認証の構成
VisualStudioからギャラリーを検索

### Azure Active Directory認証の構成
標準でAzure ADの構成機能

### タイムラインツール・診断ツールとIntelliTrace
IntelliTrace
　問題が起こるまでを録画して再生するサービス 変数の変化やイベントを確認できる

### Visual Studio Onlineの新しいBuild
自動ビルド・自動テスト・自動リリースができるようになるかも。

### Application Insights

モバイルアプリ＆Webアプリの問題の検出やクラッシュの解析

# Compiler Platform: コード解析とC#の未来
speaker 岩永 信之( @ufcpp )
Microsoft MVP for .NET

スライドは[こちら](http://www.slideshare.net/ufcpp/net-compiler-platform)

## C# 6.0
過去のスライド参照
正直なところ華はない

### nameof演算子
IDE前提の機能
識別子を文字列として取得できる機能
IDEの中で真価を発揮する
もともとC#はIDE前提で効率を高めている言語
→　nameof演算子はまさにこの傾向を強めている

## .NET Compiler Platform

C#コンパイラーの作りなおし
単なるコンパイラではなくプラットフォーム化
→　中間データをホワイトボックス化し、拡張性の提供

標準で搭載されているコード解析に加え、コード解析の追加を誰でも作れるようになった
アナライザー(analyzer),コード修正(code fix)を作れる

### 自作と配布

自作にはVisual Studio SDK,.NET Compiler Platform SDKが必要

配布にはVSIX(Visual Studio Extension)形式かNuGet形式の2種類がある

### 拡張である意味

特定分野での使用やプロジェクトでカスタマイズが必要な場合、経験則的なチェックが必要な場合、ライブラリ固有事情を汲む場合(Code-awareライブラリ)には有用

### いくつか紹介

## 将来の話 〜C#7.0
IDE連携≠VisualStudio連携
解析用の新構文が欲しい
null非許容参照型やメソッドコントラクトもアナライザーベースになるかも