• 検索結果がありません。

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

N/A
N/A
Protected

Academic year: 2021

シェア "目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

ポリテクセンター埼玉 セミナー資料

組込み技術者のためのC#

Monoを用いたマルチプラットフォーム

アプリケーション開発技術

第1.2版

2018年8月

Microbrains Inc. 渋谷

(2)

目次

はじめに

4

概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6

1

C#

言語

7

C#言語の歴史 7 基本構文 8 C言語との違い 9 Java言語との違い 10 .Netフレームワーク 10 開発資料 10

2

Mono

11

Monoの歴史 11 互換性 12

3

Mono

開発環境をインストールする

13

Ubuntu-Linuxの場合 13 CentOSの場合 13 Mac OSXの場合 14 ソースコードからのビルド 14 インストールの確認 15

4

Mono

による

C#

言語プログラミング

17

サンプルソースコード 17 Hello Worldプログラム 17 ライブラリの利用 20 ライブラリの作成 22 マルチプラットフォーム 23

(3)

5

C#

言語の基本文法

24

クラス定義・関数定義・変数定義 24 スコープ 24 基本型 24 制御構文 25 配列 25 文字列 25 例外 25

6

章 オブジェクト指向プログラミング

27

オブジェクト指向プログラミングとは 27 クラス定義 33 コンストラクタとデストラクタ 33 継承 34 インタフェース 35 デストラクタとディスポーザ 35

7

C#

の特徴的な構文

37

名前空間 37 関数オーバーローディング 38 引数の省略値と可変長引数 39 プロパティ 40 using構文 41 変数の参照渡し 46 ジェネリックプログラミング 47 拡張メソッド 47

8

章 プログラミング

実習 48

9

Raspberry Pi

に実行環境をインストールする

49

Raspberry Piについて 49 Raspberry Piのセットアップ 49 Pioneer600のセットアップ 51 Monoのインストール 52

(4)

自作アプリの起動 53

10

章 組み込みに役立つプログラミングテクニック

55

デバッグ 55 例外の捕捉とスタックトレース 57 リフレクション 59 マルチスレッドプログラミング 60 起動シェルスクリプト 65

11

章 組込み機器制御技法

69

sysfsとprocfs 69 外部コマンドの実行 69 Cライブラリの利用 73

12

C#

による

WEB

サーバ開発

78

WEBサーバの必要性 78 最も簡単なWEBサーバ 78 HTTPについて 81 スタティックページを返す 84 マルチワーカー化 86 HTMLテンプレート 91 WEBクライアントからのデータを受け取る 95 ログイン管理 101 セッション管理 108

13

章 最終実習

112

課題1 112 課題2 114 課題3 115

14

Mono

で使える便利なライブラリ

116

おわりに

117

(5)

はじめに

本書は、2018年11月にポリテクセンター埼玉で実施される能力開発セミナー「組込み技術者 のためのオブジェクト指向言語(C#編)」および、同2018年12月実施の「オブジェクト指向 言語を用いた組込みアプリケーション開発(C#編)」のためのテキストです。 本セミナーは、2017年11月に実施された「オブジェクト指向言語を用いた組込みアプリケーシ ョンソフトウェア開発(C#編)」とほぼ同じ内容のものとなりますが、C#言語の解説の部分を 大きく強化した上で2つのセミナーに分けました。 このため、C#言語の習得だけを目的とする方は前半の「組込み技術者のためのオブジェクト指 向言語(C#編)」だけの受講でも役に立ち、それを組込み機器に生かす実戦的な技法を学びた い方は後半の「オブジェクト指向言語を用いた組込みアプリケーション開発(C#編)」の受講 をお勧めするという構成になっています。

概要

ブジェクト指向言語を組込みシステムの開発に生かす技法を学ぶため、C#言語のアプリケ ーション開発/実行環境であるMonoを用いたアプリケーション開発の事例を紹介します。 セミナー前半(「組込み技術者のためのオブジェクト指向言語(C#編)」)では、Monoに よるC#アプリケーション開発環境をLinuxマシン上に構築し、それを用いてC#言語の基礎を学び ます。オブジェクト指向プログラミングの経験がない方のために、その考え方のエッセンスを解 説し、C#での具体的なコードを見ながら学びます。 セミナー後半(「オブジェクト指向言語を用いた組込みアプリケーション開発(C#編)」) では、組み込み向け小型Linuxボードでの動作環境を構築し、実際に簡単なWEB UIアプリを作成 します。簡単なプログラムとはいえ、セッション管理などのWEBアプリケーションに求められ る基本的な機能を備えたものを作成するため、今後の開発にすぐに応用できるものとなっていま す。

背景

C#言語はMicrosoft社が開発し、Windowsにおけるアプリケーション開発の主力言語として用い られています。従来、C#言語による開発作業には Microsoft社のVisual Studioを購入しなければ ならず、また作成されたアプリケーションはWindowsでしか動作しませんでした。 メキシコの技術者が開発したMonoというシステムは、C#言語のコンパイルと実行ができる環境 を、WindowsのみならずLinuxやMacOSXにも提供し、しかも無料で使用することができます。 近年の組込み機器に用いられるコンピュータは Linuxがフルセットで問題なく動作する程度の 能力を持つものも増え、上記のMonoも稼働できる場合が多くなってきました。 C#言語はガベージコレクト機能を持つ本格的なオブジェクト指向言語で、マルチスレッドプロ

(6)

グラミングやネットワークプログラミングなどの近代的なアプリケーション開発に必要な言語 機能・ライブラリを完備しています。 なお、Monoを商用ベースで発展させたXamarinと呼ばれるシステムは、現在iOS (iPhone/iPad) やAndroidでのアプリケーション開発の主力になりつつあります。

対象

●組込み技術者のためのオブジェクト指向言語(C#編)

- C、C++、Javaなどの言語によるプログラミング経験者。(C#言語の経験は不要) - Linux上のテキストエディタ (vi, emacs, nano または gedit)が使用できること。 - Linuxの操作経験があることが望まれるが必須ではない。

●オブジェクト指向言語を用いた組込みアプリケーション開発(C#編)

- C#言語によるプログラミング経験者。

- Linux上のテキストエディタ (vi, emacs, nano または gedit)が使用できること。 - Linuxの操作経験があることが望まれるが必須ではない。 - HTTPプロトコルやHTMLの知識、およびWEBアプリの開発経験があることが望まれるが必須 ではない。

スケジュール

●組込み技術者のためのオブジェクト指向言語(C#編)

2日(12時間程度)を予定しています。内容はおよそ次の通りです。

1. C#言語とMonoの紹介 2時間 2. Monoによるアプリ開発環境構築 2時間 3. C#プログラミング基本文法解説 2時間 4. 組込み開発に役立つC#プログラミング技法 2時間 5. プログラミング実習 4時間

●オブジェクト指向言語を用いた組込みアプリケーション開発(C#編)

3日(18時間程度)を予定しています。内容はおよそ次の通りです。

1. C#言語基礎復習 3時間 2. 小型LinuxボードへのMono実行環境構築 1時間 3. Cライブラリとの結合 2時間

(7)

4. 組込み機器制御のための技法 3時間 5. WEB UI開発のための基礎技術 3時間 6. WEB UI開発実習 4時間 7. まとめ・活用事例紹介 2時間

目標点

本セミナーが目標とする到達点は、以下の点を想定しています。

• C#言語で基本的なプログラミングができるようになる。 • オブジェクト指向プログラミングの考え方を理解する。 • WindowsとVisual Studioを用いなくてもC#言語でアプリケーション開発、実行ができること を知る。 • 組み込み用小型LinuxボードでC#アプリケーションを動作させる方法を知る。 • C#言語でWEB UIシステムを構築する技法を知る。 • C#言語によるアプリケーション開発の利点と問題点を理解する。 一方、本セミナーは以下の事柄を目標としません。 • .Netライブラリ(フレームワーク)の詳細な解説。 • MonoとIDEについての詳細な操作説明。 • Monoと関連技術に関する業界の最新動向の説明。 • iOSやAndroidをターゲットとするC#言語によるアプリ開発(UnityやXamarinなど)。 • 個別のアプリケーション開発技術の解説。 • Monoやそのランタイムライブラリのライセンスに関する詳細な解説。

使用機材

プログラム開発実習は、Ubuntu-Linuxを用いて行ないます。プログラムコードを書くためにテキ ストエディタ(vi, emacs, nano, geditのいずれか)を用います。

作成したアプリケーションを動かすターゲット機として、組み込み用小型Linuxボード (Raspberry Pi)を用い、Ethernet経由で開発実習機と接続します。_

参照

関連したドキュメント

この見方とは異なり,飯田隆は,「絵とその絵

しかし,物質報酬群と言語報酬群に分けてみると,言語報酬群については,言語報酬を与

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から

1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月.

4月 5月 6月 7月 8月 9月 10月 11月 12月 1月 2月 3月.

1月 2月 3月 4月 5月 6月 7月 8月 9月10月 11月 12月1月 2月 3月 4月 5月 6月 7月 8月 9月10月 11月 12月1月 2月 3月.

本研究科は、本学の基本理念のもとに高度な言語コミュニケーション能力を備え、建学

  The aim of this paper is to interpret and put into theory the finding of Liang ( 2014 ), who points out that Chinese students who have studied Japanese speak more politely even