SlideShare a Scribd company logo
INETA Day 2008
Visual Studio 2008による
開発環境・プログラミングの進化

2008/05/17
VSUG 開発プロセスフォーラムリーダー小
島 富治雄

INETA DAY 2008 セッション 1-1
はじめに
資料はイベント後に
ダウンロードできるように
します。
自己紹介
• 小島 富治雄 (Fujiwo)
– 福井コンピュータ株式会社

• INETA 所属コミュニティ所属
– VSUG (Visual Studio User Group)
• フォーラムリーダー

– こみゅぷらす (COMU+)
• 運営スタッフ

– 福井情報技術者協会[FITEA]
• 運営委員
• Microsoft MVP for Development Tools - Visual

C#
自己紹介
ジャグリング

自転車通勤

マイブーム

万年筆

世界のなべあつ
今日話したいこと
• Visual Studio 2008による
開発環境・プログラミングの進化
• プログラミングはどう変わるか 中級
編
• LINQ周りを中心に
Agenda
1.
2.
3.
4.

復習
.NET の進化と Visual Studio
Demo
美しいプログラムについて
(オプション)
1. 復習
まずは… .NET1.0での
プログラミングで
キモとして押さえておくべきところ
• .NET らしい Cool な書き方
–delegate と event
–データバインド
– 属性 (アノテーション)

• プログラム部品 (コンポーネントなど) 同士を、
ゆるめに結合
データバインドの例

: Application

: DrawingUI

: Data
描画する
DrawingUI

DataSource

+ OnChanged() : void

IDataSource<T>
<<realize>>

- drawingUI
Application

Data

- data

+ <<event>> Changed : Action<T>
+ 追加() : void

drawingUI.DataSource = data;

データバインド
データバインド サンプル
(C#2.0)

<<interface>>
IEnumerable<T>

<<interface>>
IDataSource<T>

DrawingUI
+ OnChanged() : void

DataSource

+ <<event>> Changed : Action<T>

<<realize>>
interface IDrawable
{
void Draw();
}
class DrawingUI<T> : UserControl where T : IDrawable
{
IDataSource<T> dataSource = null;
public IDataSource<T> DataSource
{
set
{
dataSource = value;
value.Changed += OnChanged;
}
private get { return dataSource; }
}

Data
+ <<event>> Changed : Action<T>
+ 追加() : void
interface IDataSource<T> : IEnumerable<T>
{
event Action<T> Changed;
}
class Data<T> : IDataSource<T>
{
List<T> list = new List<T>();
public event Action<T> Changed;
public void Add(T item)
{
list.Add(item);
if (Changed != null)
Changed(item);
}

public void Draw()
{
if (DataSource != null)
foreach (T item in DataSource)
item.Draw();
}

public IEnumerator<T> GetEnumerator()
{ return list.GetEnumerator(); }

void OnChanged(T item)
{ item.Draw(); }

IEnumerator IEnumerable.GetEnumerator()
{ return list.GetEnumerator(); }

}
}

public delegate void Action<T>(T item);
2. .NET の進化
と Visual
Studio
1.0

1.1

ランタイム
(CLR)

1.0.3705

1.1.4322

トピック

ADO.NET
ASP.NET
WinForm

ASP.NET1.1

VS2002

2.0

3.0

◎

2.0.50727
832

3.5
2.0.50727
1433

ADO.NET 2.0
ASP.NET 2.0
C# 2.0
VB 8.0

WPF
WF
WCF
CardSpace

VS2005

◎

△

VS2008

○

○

◎

2011/01/12

2012/04/10

----

◎

VS2003

サポート期限

ASP.NET AJAX
LINQ
C# 3.0
VB 9.0

2007/07/10

2008/10/14
.NET Framework 3.5 の構成
ASP.NET追加
(ASP.NET AJAX)

LINQ

New!

WCF追加

WF追加

WPF追加

BCL追加

WCF

WF

WPF

CardSpace

ADO.NET

Window Forms

ASP.NET

Base Class Library (BCL)

ライブラリの拡張・強化!
Visual Studio 2008 での
プログラミングで変わること
• IDE の進化
–各種図解的言語のデザイナ
• WPF
• データ モデル (LINQ to SQL など)
• ワークフロー
Visual Studio 2008 での
プログラミングで変わること
–LINQ
(Language-INtegrated Query:

言語に統合されたクエリ)
• C#3.0/Visual Basic9.0
• LINQ プロバイダ
–LINQ
–LINQ
–LINQ
–LINQ

to
to
to
to

Object
SQL
DataSet
XML
参考: LINQ の種類
C#

その他の言語

VB

.NET LINQ
LINQ to
Objects

Object

LINQ to
Datasets

LINQ to SQL

LINQ to
Entities

LINQ to XML

XML
Data Base
参考: Linq とは何か
IEnumerable<T> ベースのすべて
の情報ソースにクエリを適用する
技術
参考: Linq to Object
•IEnumerable<T> なオブジェクトをクエリ
例.
var bookList = new[] {
new { タイトル = "C#入門"
, ISBNコード = "AAAAAAA", 価格 = 2980 },
new { タイトル = "VB入門"
, ISBNコード = "BBBBBBB", 価格 = 3300 },
new { タイトル = ".NET Framework", ISBNコード = "CCCCCCC", 価格 = 7800 }
};
var books = from aBook in bookList
where aBook.ISBNコード == "BBBBBBB"
orderby aBook.タイトル
select new { タイトル = aBook.タイトル, 価格 = aBook.価格 };
books.ForEach(item => Console.WriteLine(item));
Visual Studio 2008 での
プログラミングで変わること
更なるマルチ パラダイム化
• 1.0 の頃…
– 手続き型
– オブジェクト指向
– コンポーネント指向

• 2.0 以降
– ジェネリック
– 関数型
– より動的に
– DSL (Domain Specific Language:

ドメイン特化言語)

の進化
例. C# 1.0 → 2.0、3.0
によるプログラミングの進化
• オブジェクトへの委譲 → メソッ
ドへの委譲
–class → delegate → 匿名メソッド
(クロージャ) → ラムダ式

• yield による継続
• これらと拡張メソッドによるメ
ソッド チェーン
Anders Hejlsberg
Anders Hejlsberg
Anders Hejlsberg 談:
C#の今後について
2006/02/02 at 横浜
Q. 今後C#は、関数型言語として進化してい
くのか?
A. Yes. C#3.0 や LINQ で導入された「ラム
ダ式」などの機能は、Haskell や ML など
の関数型言語に触発されたものだ。
これらの機能は開発をもっと自由な形にす
る。設計しているだけでワクワクするよう
な機能だ。C# 3.0というのは、オブジェク
ト指向言語と関数型言語の「ハッピーな結
婚」といってよいものになるだろう。
Anders Hejlsberg 談:
C#の今後について

Q. AOP (アスペクト指向プログラミング) 機
能 (=オブジェクトに対して後付けで機能
を挿入する仕組み) を提供する予定は?
A. AOP は、個人的には懐疑的。AOP が役立
つ場面もあるが副作用もある。
C# の機能 (属性や Partial Class) で代
用できるケースも多い。
3. Demo
世界のなべあつ
例. 世界のなべあつ
• 手続き型パラダイムなべあつ
• マルチパラダイムなべあつ
• LINQ なべあつ
• コンポーネント指向なべあつ
手続き型なべあつ
手続き型なべあつ
「3の倍数と3の付く数字だけ
アホになり、
5の倍数だけ
犬っぽくなります」
手続き脳で考えてみる
1. 順次実行、条件分岐、繰り返し
処理の組み合わせで考える
2. 処理の順序を考える
3. 各繰り返しの中で何をするか考
える
4. 更により小さい粒度の処理で、
同様に考える
手続き脳で考えてみる
1. 1から40まで繰り返す
2. 繰り返しの中で、各の数につい
ておもろーに言う
–

数をおもろーに言う
•
•
•
•

三が付くかまたは三の倍数で五の倍数のときは
あほっぽく犬っぽく言う
三が付くかまたは三の倍数のときは、
あほっぽく言う
五の倍数のときは、犬っぽく言う
それ以外のときは、普通に言う
手続き型なべあつ
フローチャート 1

おもろーなギャグ.やる

「今から、三が付く数字と、三の倍数の時だけ、アホに
なり、五の倍数のときは、犬っぽくなります。」と言う

数 = 1, 40, 1

数をおもろーに言う

数

「ヘーイ」と言う
数をおもろーに言う

手続き型なべあつ
フローチャート 2

数
三が付くかまたは三の倍数 &&
五の倍数
数をアホっぽく犬っぽく言う
三が付くかまたは三の倍数
数をアホっぽく言う
数が五の倍数
数を犬っぽく言う
その他
数を普通に言う
手続き型なべあつ
手続き型なべあつの分割の様子
言う
倍数かどうか
含むかどうか
倍数かどうか
読み

アホっぽく犬っぽく言う

或る桁の数の読み

アホっぽい読みへの変換
犬っぽい読みへの変換

「手続き型なべあつ」
おもろーなギャグ .やる

言う

おもろーに言う

読み

アホっぽく言う

或る桁の数の読み

アホっぽい読みへの変換
言う
読み

犬っぽく言う

或る桁の数の読み

犬っぽい読みへの変換
言う
読み

普通に言う
言う

言う

或る桁の数の読み
マルチパラダイムなべあつ
別の考え方
1. 「1~40の数の集合」を
2. 「集合に対する『おもろーな加
工』をするフィルタ」に通した
ものが
3. 「集合を出力するもの」のデー
タだ
new おもろー()
シーケンシャルな.次の範囲の数(1, 40)
列挙可能 (IEnurarable) な何か

(列挙可能な何かを加工する汎用的
な)

フィルタ!
遅延評価!

そのそれぞれに次の変換をし
(数 => おもろーに読む(数))

列挙可能 (IEnurarable) な何か

データバインド!

ギャ
グ

new なべあつ()

列挙可能な何かを
出力できる何か

読み上げてくれる何か
ニューなべあつ
なべあつプログラム
+ Main() : void

なべあつ
データバインド!
(ForEach)
ギャグ
おもろー
+ GetEnumerator() : IEnumerator

・フィルタのチェーン
・yield return (遅延評価)

言う(台詞)
読み上げてくれる何かが
string

<<interface>>
IEnumerable

<<interface>>
読み上げ可能な何か

+ GetEnumerator() : IEnumerator

+ 言う(台詞 : string) : void

コンソール読み上げ
+ 言う(台詞 : string) : void
音声読み上げ
+ 言う(台詞 : string) : void
関心の分離
• 分離される関心が違う
–手続き
–オブジェクト
–汎用アルゴリズム
–汎用データ構造

• 手続きだけ、オブジェクトだけ、
では分散する関心が多い
ニューなべあつ
音声なべあつ
LINQなべあつ
new おもろー()

Enumerable.Range(1, 40)

(列挙可能な何かを加工する汎用的
な)

IEnurarable

フィルタ!

Select(数 => おもろーに読む
(数))

遅延評価!

IEnurarable

データバインド!

ギャ
グ

new なべあつ()

列挙可能な何かを
出力できる何か

読み上げてくれる何か
LINQなべあつ
参考: Linq to Object
var books = from
aBook in bookList
where aBook.ISBNコード == "BBBBBBB"
orderby aBook.タイトル
select new { タイトル = aBook.タイトル, 価格 = aBook.価格 };
books.ToList().ForEach(item => Console.WriteLine(item));

bookList.Where (aBook => aBook.ISBNコード == "BBBBBBB")
.OrderBy(aBook => aBook.タイトル)
.Select (aBook => new { タイトル = aBook.タイトル, 価格 = aBook.価
格 })
.ToList().ForEach(item => Console.WriteLine(item));
BookList

(列挙可能な何かを加工する汎用的
な)

列挙可能 (IEnurarable) な何か

フィルタ群!
遅延評価!

Where (aBook => aBook.ISBNコード == "BBBBBBB")
列挙可能 (IEnurarable) な何か

OrderBy(aBook => aBook.タイトル)
列挙可能 (IEnurarable) な何か

Select (aBook
new { タイトル = aBook.タイトル, 価格 = aBook.価格 })
列挙可能 (IEnurarable) な何か

ForEach(item => Console.WriteLine(item))

列挙可能な何かを
何かする何か
コンポーネント指向なべあつ
なべあつ.Win
なべあつプログラム

メインフォーム

Form

+ Main() : void

UserControl
- 世界のなべあつ
データバインド!
(ForEach)

なべあつ
- 台詞の表示() : void

ギャグ
- 或るおもろー
おもろー
+ GetEnumerator() : IEnumerator
・フィルタのチェーン
・yield return (遅延評価)

・台詞の更新イベントの登録
・言う(台詞)

読み上げ
string

<<interface>>
IEnumerable

<<interface>>
読み上げ可能な何か

- 或る音声読み上げ
音声読み上げ

+ <<event>> 台詞の更新
+ GetEnumerator() : IEnumerator

+ 言う(台詞 : string)
Component
なべあつ.Win
様々な仕様変更への対応の例
「3の倍数と3の付く数字だけアホになります」

• 「3の倍数と3の付く数字だけアホになり、
5の倍数だけ犬っぽくなります」
• 「3の倍数と3の付く数字だけアホになり、
5の倍数だけナルシストになります」
• 「3の倍数と3の付く数字だけアホになり、
8の倍数だけ気持ち良くなります」
• 「3の倍数と3の付く数字だけ憤りを感じます」
• 「3の倍数と3の付く数字のときだけアホになり、
8の倍数だけすごく疲れます」
4. 美しい
プログラム
について
分割攻略 (Divide-and-Conquer)
について復習
1. プログラム開発は複雑さとの戦い
2. 問題はサイズが小さいほうが簡単に解ける
3. もし大きなサイズの問題を、いくつかのよ
り小さなサイズの問題に分割でき、それぞ
れを解けば良い状態にできれば、その方が
容易に解ける
4. 小さな問題に分けてそれぞれに解を与える
分割攻略 (Divide-and-Conquer)
について復習

• 「分かる」とは「分けらる」とい
うこと
– 「これとこれは違う問題と言えるようにな
る」こと
– 「これであるものとないもの境界を知る」
こと

• どう分けるか? が重要
– 低結合 (low coupling) & 高凝集 (high cohesion)
どう関心を分離したいか
• ひとつのパラダイムだけでは、
様々な分離のケースに対応が困難
–手続き型パラダイムは処理単位で
の分割
おもろーなギャグ.やる

「今から、三が付く数字と、三の倍数の時だけ、アホに
なり、五の倍数のときは、犬っぽくなります。」と言う

数 = 1, 40, 1

数をおもろーに言う

数

「ヘーイ」と言う
ひとつのパラダイムに捕らわれない

• 「無執無着」

『一枚の葉にとらわれては木は見えん。一本の木
にとらわれては 森は見えん。どこにも心を留め
ず 見るともなく全体を見る。それがどうやら
「見る」ということのようだ。』
– バガボンド (井上雄彦/講談社) 第4巻より
新たなパラダイムに関する態度
新たな概念の習得
→自分の既知の概念と結び付ける
これを安易にやってしまうと、思考
停止を招くので要注意
「分かったつもり」
新たなパラダイムに関する態度
• 「それって結局×××のことだよね」
• 「それって昔からやってきたことで、別に新し
くないじゃん」
• 「そんなの×××でもできるじゃん」
• 「結局現場じゃ使えないし使わない」
• 例. プログラミング言語Cの説明を受けて
– 「そんなのアセンブリ言語でも『全部』できるじゃ
ん」
– 「アセンブリ言語でできることでできないことがあ
るから、現場じゃ使えないよ」

→ 要パラダイム シフト!
新たなパラダイムに関する態度
例. LINQ
「どう使おうか? 別に要らないよね?」
ではなく

「書きたかったように
やっとできるようになった」
美しいコード
例.
–
–
–
–
–

「何でも手続きで書くのが美しいのか?」
「オブジェクト指向ですべてうまくいく?」
「何でもC#で書くのが美しい? 」
「なんでもかんでも XML で」
「モデルは全て UML で」

→ 適材適所
–
–
–
–

手続きは手続き
ワークフローはワークフローデザイナで
UIはUIデザイナで
データはデータのデザイナで
手続き的 or 宣言的

// 手続き的
for (int i = 0; i < 10; i++)
何かする();

// 宣言的
10.回(何かする);
C# の記述:
var textBlock = new TextBlock();
textBlock.FontSize = 18;
textBlock.Text = "Hello";
textBlock.SetValue(Canvas.LeftProperty ,
150);
textBlock.SetValue(Canvas.TopProperty ,
50);

手続き的
XAMLの記述:

<TextBlock FontSize="18"
Text="Hello"
宣言的
Canvas.Top=“50"
Canvas.Left=“150"/>
VS2008
デザイナ
による記述:

図解的
C# (手続き的記述)

や

XAML (宣言的記述)

比較して意図以外のノイズが尐ない

と
VS2008 と WF

図解的
VS2008 で EDM (Entity Data Model)

図解的
「選択肢が増えた」
更に多くのパラダイムからの

選択が可能に

手続き的+宣言的
+図解的
これからのプログラマ

手続き脳
+オブ脳
+関数脳
+右脳
懇親会に参加ください
• INETA 1 Dayイベントの参加いただきありがとう
ございました。
• 本日17時30分から7階のレストランbasaraにて、
懇親会を開催します。
• ぜひ、参加ください。
• アンケートの記入、よろしくお願いします。
• 今後も、アイネタでは、コミュニティと一緒に
勉強会等を開催してまいります。

More Related Content

Viewers also liked

Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Fujio Kojima
 

Viewers also liked (16)

Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
 
Microsoft .NET 入門
Microsoft .NET 入門Microsoft .NET 入門
Microsoft .NET 入門
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
 
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
 
C# 6.0 Preview
C# 6.0 PreviewC# 6.0 Preview
C# 6.0 Preview
 
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
 
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~Xamarin ~ iOS/Android/Windows アプリをC# で作ろう~
Xamarin ~ iOS/Android/Windows アプリを C# で作ろう~
 
メタプログラミング C#
メタプログラミング C#メタプログラミング C#
メタプログラミング C#
 
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
「ふくいソフトウェアコンペティション 2014 大賞受賞者プレゼンテーション」
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
 
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
Developers Summit 2014 【13-D-7】 コミュニティLT - Story 5. 「新人技術者にどうプログラミングを教えたか」
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
 

Similar to Visual Studio 2008による 開発環境・プログラミングの進化

関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
Hideki Takase
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
Yoshiki Shibukawa
 
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
No Bu
 
Code4Lib 2011 参加報告会 ONO Haruki
Code4Lib 2011 参加報告会 ONO HarukiCode4Lib 2011 参加報告会 ONO Haruki
Code4Lib 2011 参加報告会 ONO Haruki
Code4Lib JAPAN
 
2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...
n-yuki
 

Similar to Visual Studio 2008による 開発環境・プログラミングの進化 (20)

LINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XMLLINQ 概要 + 結構便利な LINQ to XML
LINQ 概要 + 結構便利な LINQ to XML
 
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureCytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介
 
LINQ概要
LINQ概要LINQ概要
LINQ概要
 
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
Literate Computing for Infrastructure - インフラ・コード化の実践におけるIPython (Jupyter) Not...
 
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
アプリケーションエンジニアのためのクラウドインフラ再入門 (2/3)
 
東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
Code4Lib 2011 参加報告会 ONO Haruki
Code4Lib 2011 参加報告会 ONO HarukiCode4Lib 2011 参加報告会 ONO Haruki
Code4Lib 2011 参加報告会 ONO Haruki
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化
 
NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月
NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月
NFV/OPNFV概要 – OpenStack最新情報セミナー 2015年4月
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
ITコンサルタントが語る!OpenStackを活用した課題解決のやり方
ITコンサルタントが語る!OpenStackを活用した課題解決のやり方ITコンサルタントが語る!OpenStackを活用した課題解決のやり方
ITコンサルタントが語る!OpenStackを活用した課題解決のやり方
 

More from Fujio Kojima

.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
Fujio Kojima
 

More from Fujio Kojima (17)

Burikaigi 2023「C# Live Coding!」 小島の分
Burikaigi  2023「C# Live Coding!」 小島の分Burikaigi  2023「C# Live Coding!」 小島の分
Burikaigi 2023「C# Live Coding!」 小島の分
 
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
 
.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発.NET 6 時代のデスクトップ アプリケーション開発
.NET 6 時代のデスクトップ アプリケーション開発
 
BuriKaigi 2022 「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分BuriKaigi 2022 「C# Live Coding!」 小島の分
BuriKaigi 2022 「C# Live Coding!」 小島の分
 
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
 
.NETラボ 勉強会 2021年1月 「C#で機械学習」
.NETラボ 勉強会 2021年1月 「C#で機械学習」.NETラボ 勉強会 2021年1月 「C#で機械学習」
.NETラボ 勉強会 2021年1月 「C#で機械学習」
 
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
『議論パターン』 (Discussion Patterns) ~不毛な議論を避け、実り有る議論とするために~
 
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
 
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
 
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
牛タン会議 2019 @ 仙台 「C# ドキドキ ライブ!!」 小島の分
 
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
『機械学習 (AI/ML) の基礎と Microsoft の AI | 2019/04/02 Global AI Nights Fukui
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編
 
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
BuriKaigi2019 「C# ドキドキ・ライブコーディング」 小島の分
 
機械学習入門
機械学習入門機械学習入門
機械学習入門
 
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 

Recently uploaded (14)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 

Visual Studio 2008による 開発環境・プログラミングの進化