<commit_before># Bot作成(C#編)チュートリアル
## 注意事項
このチュートリアルを行うには以下の環境がひつようになります。
- Windows10 PC
- Visual Studio Community 2015
- Microsoft Imagine (旧Dream Sparkのライセンス)
- Microsoft Azureの環境

まだ準備ができていない人はスタッフまで声をかけてください。

このチュートリアルには

- **```学習価値のある一般技術知識```**
- **```ハッカソンでしか使えない技術知識```**

の2つの情報が含まれています。

**```学習価値のある一般技術知識```**  は一般的に通用しているMicrosoftの技術知識です。ほかに応用が利くのでハッカソンを通して学習してもらえればと思います。

**```ハッカソンでしか使えない技術知識```**  今回、ハッカソンでアイデアを実現するために様々なライブラリや環境を用意しています。なのでこの知識は覚える必要はありません。ハッカソンで使ってあとは忘れてください。

## セットアップ
### プロジェクトを開く
**```ハッカソンでしか使えない技術知識```**

ダウンロードした201612hackathonyokohamaフォルダを開き、csharp/SampleBotフォルダの中にある```SampleBot.sln```をダブルクリックして開きます。
![1](./img/1.png)

VisualStudioが立ち上がると、右上の```ソリューションエクスプローラー```という部分に3つのプロジェクトがあることがわかります。
3つのプロジェクトの説明は以下のとおりです。

- ```ApiSamples``` - Botの機能として使う各種APIのサンプルコード
- ```BotLibrary``` - Botの機能として使う各種APIを使うためのライブラリ
- ```SampleBot``` - Bot本体 (Asp.netのプロジェクト)

![2](./img/2.png)

したがって、皆さんがBotを作るためにいじるプロジェクトは```SampleBot```プロジェクトとなります。

### Botのサーバーを作る
**```学習価値のある一般技術知識```**

Botはサーバー上で動くため、ホスティングするサーバーを立てなければなりません。
今回はMicrosoft Azureというクラウド上に、学生ライセンスを使って無料でホスティングを行います。

[http://portal.azure.com](http://portal.azure.com)にアクセスし、**MicrosoftImagineで学生認証を行ったMicrosoftアカウントでサインイン**します。

以下のような画面が表示されればOKです。
![3](./img/3.png)

Webサーバーを作ります。Microsoft AzureではWebサーバーなどの資源は**リソース**として管理されます。
そしてMicrosoft AzureのWebサーバーは**Web App**というリソースになります。
Web Appを新規作成しましょう。

左上の```+新規```>```Web+モバイル```>```Web App```を選択します。

![4](./img/4.png)

下図のような画面が出るので

- アプリ名 - お好きなIDを入力
- サブスクリプション - Microsoft Imagineを選択
- リソースグループ - 新規作成、```MyBotGroup```と入力
- App Serviceプラン/場所 - 後述

を入力します。

アプリ名は他人と被らないものを入力してください。右側に緑色のチェックマークが表示されればOKです。

アプリ名.azurewebsites.netがBotのURLとなります。

サブスクリプションの選択で```Microsoft Imagine```が表示されない方は学生認証の準備をしていない可能性があります。速やかに手を挙げてスタッフを呼んでください。

![5](./img/5.png)

```App Serviceプラン/場所```をクリックすると下図のようになります。

```新規作成```を押し

- App Service プラン - お好きなIDを入力
- 場所 - Japan Eastを選択
- 価格レベル - F1 Freeを選択

を入力し、OKを押します。
<commit_msg>update tutorial<commit_after># Bot作成(C#編)チュートリアル
## 注意事項
このチュートリアルを行うには以下の環境がひつようになります。
- Windows10 PC
- Visual Studio Community 2015
- Microsoft Imagine (旧Dream Sparkのライセンス)
- Microsoft Azureの環境

まだ準備ができていない人はスタッフまで声をかけてください。

このチュートリアルには

- **```学習価値のある一般技術知識```**
- **```ハッカソンでしか使えない技術知識```**

の2つの情報が含まれています。

**```学習価値のある一般技術知識```**  は一般的に通用しているMicrosoftの技術知識です。ほかに応用が利くのでハッカソンを通して学習してもらえればと思います。

**```ハッカソンでしか使えない技術知識```**  今回、ハッカソンでアイデアを実現するために様々なライブラリや環境を用意しています。なのでこの知識は覚える必要はありません。ハッカソンで使ってあとは忘れてください。

## セットアップ
### プロジェクトを開く
**```ハッカソンでしか使えない技術知識```**

ダウンロードした201612hackathonyokohamaフォルダを開き、csharp/SampleBotフォルダの中にある```SampleBot.sln```をダブルクリックして開きます。
![1](./img/1.png)

VisualStudioが立ち上がると、右上の```ソリューションエクスプローラー```という部分に3つのプロジェクトがあることがわかります。
3つのプロジェクトの説明は以下のとおりです。

- ```ApiSamples``` - Botの機能として使う各種APIのサンプルコード
- ```BotLibrary``` - Botの機能として使う各種APIを使うためのライブラリ
- ```SampleBot``` - Bot本体 (Asp.netのプロジェクト)

![2](./img/2.png)

したがって、皆さんがBotを作るためにいじるプロジェクトは```SampleBot```プロジェクトとなります。

### Botのサーバーを作る
**```学習価値のある一般技術知識```**

Botはサーバー上で動くため、ホスティングするサーバーを立てなければなりません。
今回はMicrosoft Azureというクラウド上に、学生ライセンスを使って無料でホスティングを行います。

[http://portal.azure.com](http://portal.azure.com)にアクセスし、**MicrosoftImagineで学生認証を行ったMicrosoftアカウントでサインイン**します。

以下のような画面が表示されればOKです。
![3](./img/3.png)

Webサーバーを作ります。Microsoft AzureではWebサーバーなどの資源は**リソース**として管理されます。
そしてMicrosoft AzureのWebサーバーは**Web App**というリソースになります。
Web Appを新規作成しましょう。

左上の```+新規```>```Web+モバイル```>```Web App```を選択します。

![4](./img/4.png)

下図のような画面が出るので

- アプリ名 - お好きなIDを入力
- サブスクリプション - Microsoft Imagineを選択
- リソースグループ - 新規作成、```MyBotGroup```と入力
- App Serviceプラン/場所 - 後述

を入力します。

アプリ名は他人と被らないものを入力してください。右側に緑色のチェックマークが表示されればOKです。

アプリ名.azurewebsites.netがBotのURLとなります。

サブスクリプションの選択で```Microsoft Imagine```が表示されない方は学生認証の準備をしていない可能性があります。速やかに手を挙げてスタッフを呼んでください。

![5](./img/5.png)

```App Serviceプラン/場所```をクリックすると下図のようになります。```新規作成```を押し

- App Service プラン - お好きなIDを入力
- 場所 - Japan Eastを選択
- 価格レベル - F1 Freeを選択

を入力し、OKを押します。

{'fraction_non_alphanumeric': 0.15450861195542046, 'fraction_numerical': 0.013171225937183385, 'mean_word_length': 8.269953051643192, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1598454', 'n_tokens_mistral': 3022, 'n_tokens_neox': 2821, 'n_words': 180}