SlideShare a Scribd company logo
1 of 84
ちゃんとした C# プログラムを
書けるようになる実践的な方法
~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
1
Microsoft MVP - ソフトバンク・テクノロジー株式会社(エキスパートエンジニア)古賀 慎一
2015年4月28日(火)
Copyright© 2015 Shin-ichi Koga All Rights Reserved.
このセッションのゴール
※本セッションの対象者は C# 初心者、あるいはチームの開発品質をあげたい リーダー・マネージャ
“ちゃんとしたC#プログラムを書く”こと のイメージを持つ
Visual Studioで何が出来るか? を理解する
 勉強方法を理解し、明日の開発から 実践 出来るようになる
高品質・低コスト・保守性の高い開発を行えるようになろう!
2
自己紹介
3
古賀 慎一
Microsoft MVP for Visual Studio ALM
ソフトバンク・テクノロジー株式会社 Project Management Office (PMO) エキスパートエンジニア
 クラウドサービス Online Service Gate® で TFS 導入事例
 前職では 某大手 情報サイトのデータ入稿システム のフレームワークを開発
 「仕組み」作りで 如何に高品質・低コストで早い開発を実現できるか?
 エンタープライズ向けの実践的な C# サンプルを公開
アジェンダ
 “ちゃんとしたプログラムを書ける” とは?
 絶対に身につけるべき事
 C#言語の特徴
 領域別 解説
 勉強の仕方
4
“ちゃんとしたプログラムを書ける” とは?
具体的なゴールはなんだろう?
5
経験年数に応じて今後10年~20年で経験すること
 言語を理解し、プログラムを書く ( if, for, List<T>, ()=>)
 ライブラリ・サービスを組み合わせてアプリを組む ( NuGet, Azure, SQL )
 自分で設計を工夫し、オブジェクト指向で実装 ( class, interface )
 デザインパターンを理解し、適切な設計を判断 ( LINQ, MVVM, UML, UX )
 プロジェクト全体を俯瞰して課題を解決 ( PMBOK, Facilitation )
 ビジネス・会社・社会・世界を俯瞰して問題を解決 ( Advocacy, Influencer )
6
役割で異なるゴール
 エンジニア
 リーダー
 マネージャ / アーキテクト
 部長・役員・ステークホルダー(株主・取引先・顧客・NPO )
全体のベスト ≠ それぞれのベスト
次の役割に移る時に必ず障壁がある(評価は必ず後からついてくる) 7
変化する世界で求められるゴール
 Windows の進化
 言語の進化 ( C++, Visual Basic, Java, .net Framework, C#, Ruby, F# ...)
 サーバークライアント, Web, スマートフォン、クラウド、機械学習、IoT
20年前は一つのコンピュータの中で動作するプログラムが書ければ仕事になった
現代では パブリック/プライベート クラウド とのハイブリッドが必須
※C#の最先端はインターネットに繋がるセンサーの制御と得られたビックデータを活用すること ー Azureを使えば誰でも 8
グローバルスタンダードはゴール?
 Microsoft 資格 ( MCSD ) ※最新の資格は基礎向けではないので注意
 国家資格 ( ITパスポート、基本情報処理、応用情報処理・・・)
 PMBOK ( PMP )
資格試験で問われる内容は理想論で、現場では役に立たない?
9
PMBOKについて説明したものはどれか?
A) システム開発を行う組織がプロセス改善を行うためのガイドライン
となるものである。
B) 組織全体のプロジェクトマネジメントの能力と品質を向上し,
個々のプロジェクトを支援することを目的に設置される専門部署である。
C) ソフトウェアエンジニアリングに関する理論や方法論,ノウハウ,
そのほかの各種知識を体系化したものである。
D) プロジェクトマネジメントの知識を体系化したものである。
10
PMBOKについて説明したものはどれか?(答え)
A) システム開発を行う組織がプロセス改善を行うためのガイドライン
となるものである。
B) 組織全体のプロジェクトマネジメントの能力と品質を向上し,
個々のプロジェクトを支援することを目的に設置される専門部署である。
C) ソフトウェアエンジニアリングに関する理論や方法論,ノウハウ,
そのほかの各種知識を体系化したものである。
D)プロジェクトマネジメントの知識を体系化したものである。
※ ITパスポート 平成27年春期 問41 - ITパスポート試験ドットコム ( http://www.itpassportsiken.com/ ) より引用 11
グローバルスタンダードはゴールではなく武器
 Microsoft 資格 ( MCSD ) ※最新の資格は基礎向けではないので注意
 国家資格 ( ITパスポート、基本情報処理、応用情報処理・・・)
 PMBOK ( PMP ) ⇒ Visual Studio もこれがわかっている前提で構成
誤:資格試験で問われる内容は理想論で、現場では役に立たない
正:資格試験で問われる共通言語で話せない人は、現場では役に立たない
資格試験は時代に合わせて進化していて、最新のものは実践的で現実的な問題が多い 12
あなたに求められるゴールは
時代の変化に応じて最適な手法で
品質・生産性・保守性
を担保できること
13
Visual Studio を使って
C#でどうやって
実現するか?
14
絶対に身につけるべき事
Visual Studio で C# を使って開発する基本的・具体的な方法
15
絶対に身につけるべき事
1. 常に綺麗なコードを書く方法
2. 格安で必要な範囲を的確にテスト出来る方法
3. 格安で何度でも容易に安全にデプロイ(配置)出来る方法
4. 複数人のチームで開発する方法
将来 Visual Studio のバージョンが変わっても、これを忘れないこと
※ Visual Studio では設計も扱えますが、このセッションでは解説しません 16
絶対に身につけるべき事
1. 常に綺麗なコードを書く方法
2. 格安で必要な範囲を的確にテスト出来る方法
3. 格安で何度でも容易に安全にデプロイ(配置)出来る方法
4. 複数人のチームで開発する方法
17
1. 常に綺麗なコードを書く方法
 静的コード分析を有効にする
 MVVM を理解する(データバインドを使える)
未経験者にとって覚えることは沢山ありますが、まずこの2つを目標に
※当然 C# の文法などは教科書で勉強する必要がありますが(後で教科書を紹介します)
始める前に知っておいて欲しい!
18
静的コード分析を有効にする
常に綺麗なコードを書く方法①
19
静的コード分析はペアプログラミングの代わり
 Visual Studio プロジェクトに設定(プロジェクト単位でコード分析を有効にする)
 ビルドするたびに、問題を探して警告に表示
 標準の警告より、バグや問題になりやすい問題を詳細に指摘してくれる
優秀なエンジニアとペアプロしている気分
=(ちょっとウザい時もあるけれど)的確に指摘してくれる
20
コードを書く・ビルドする・エラーの説明を読む
 エラーは修正しないとプログラムがうごかないので誰でも直す
 多くの人は警告を無視・放置する
 じゃぁ、警告は何のために出ているのか?=もしかしてバグなんじゃね?
 10年前に「静的コード分析」が誕生=もっとバグっぽいのあるんじゃね?
確かに警告のヘルプは何言ってるか?わかんないこと多いけど
10歳以上年の離れた先輩の言っていることも、わからないことが多いから同じような(以下略) 21
この癖を
どんなことを教えてくれるのか?(1)
 IDisposable の Dispose 忘れ(using, try-finally で必ず解放)
メモリーリークしていませんか?
GCが動いて突然遅くなることないですか?
 使われていない変数の宣言
宣言しただけで使われていない変数がある
別の変数や仮の定数をいれておいて、変更するのを忘れてないですか?
動かすまでもなくバグっぽいよね 22
最重要!
どんなことを教えてくれるのか?(2)
 英語のスペルミス
恥ずかしい(一生残ります)
同じ単語の正しいスペルとスペルミスの2つが存在する場合、バグになる可能性が
 省略形の禁止
昔は長い変数名が使えなかったので省略が普通でした、が、バグも多かった
ml は メーリングリスト の略?機械学習の略?(時代と人によってイメージが違う)
ちょっと口うるさいケド、人間同士で宗教的な論争になるよりマシ 23
どんなことを教えてくれるのか?(3)
 この例がダメな理由がわかりますか?
public string CreateTransactionId ( FileInfo userFile ){
return “TR” + userFile.FullName.GetHashCode() ;
}
実際に同様の問題でバグになるケースが沢山あります
静的コード分析を有効にしていれば、「警告」で気付くことが出来ます
 宿題:この静的コード分析の説明とスローされる例外を確認 24
静的コード分析 導入を阻む者達
 新規作成した空のプロジェクトが警告になる ので嫌になる
CLSCompliant (true or false) を追加する
Key.snk ファイルで署名する ー 昔は署名の意味が .net 2.0 の MCP 試験に出題されました
定番の警告は「お決まりのやるべき事」と覚える(そんなに数はありません)
 Visual Studio 2013, 2015 日本語版はバグで、正常に動作しない分析がある
Microsoft にフィードバックしました
今は 英語版を使う or 完全ではなくても日本語版で使える範囲で 25
リーダー・マネージャーが肝に銘じること
 開発メンバーが「静的コード分析は難しくて納期に間に合いません」と
言ってきたら
 「納期までに完成させられますが、瑕疵として修正する必要があるバグが
どれだけあるか?私にはわかりません」と言っている と思うべき
 上級者向けではなく、新人教育・コードレビューで指摘する内容
 歴史的経緯・お金の都合でデフォルト有効じゃないだけ
(※ 以前は上位エディションでしか使えなかった。Microsoft の上位機能は手軽さをお金で買うイメージが近い)
26
実際の案件で使えなくても
 C#を勉強するときには必ず「静的コード分析」有効にする
 どんな教科書・サンプルを使った勉強でもこれを実践するだけで、
どんどんちゃんとしたプログラムが書けるようになる!
 自分が担当するときだけ有効にするという手も
 既存資産(会社のプログラムコード、特に2005年より前のもの)には適用出来ない場合もあるが、
適用して何が問題か?確認するのも勉強になります
27
MVVM を理解する(データバインドを使える)
常に綺麗なコードを書く方法②
28
MVVMはどんなアプリを作るときも標準の考え方
 M : Model
 DBやクラウドサービスから入手したデータを入れる箱
 V: View
 画面に表示して、人間がデータの内容を確認出来るようにする
 VM : View Model
 画面(V) に表示するために、モデル(M) を複製して、その画面用のモデル(VM) とする
※ 2005年頃 Microsoft で提案され、.net Framework 3.0 から採用。JavaScript や Android にも普及
29
MVVM : Model – View – View Model の動き
 DBやクラウドから取得した Model を、画面用の View Model に格納
 画面にデータバインドで表示
 双方向バインドなら V でユーザーが値を変える VM も変わる
 プログラムで今度は逆に VM から M に格納、それぞれDBやクラウドに保存する
30
“A” Model
“C” View Model View “C”
Database “A”
Cloud Service “B” “B” Model
データバインド
Data Binding
Web API, WCF
Entity Framework, LINQ to SQL
MVVMは変更に強い(保守性が高い)
 新サービスが増えても、DBを変えても低コストで対応可能
31
“A2” Model
“C” View Model
View “C”
part 1
part 2
Database “A2”
Cloud Service “B” “B” Model
データバインド
Data Binding
Web API, WCF
Entity Framework, LINQ to SQL
“D” Model “C2” View ModelNew Service “D”
イベントでプロパティを代入するのは古典的
 Console アプリでは前から順に値を出力すればいい
 昔の Windows / Web はその考え方の延長「イベントでプロパティ代入」で実装されていた
 Windows / Web / App 画面を伴うアプリは全てユーザーの入力がある
 現代のアプリは DB や複数のクラウドサービスから値を取得・保存する
 非同期で(リアルタイムに)画面が更新される
 イベントとプロパティ代入では対応出来ない = データバインドが必要
32
昔よく見られた失敗 = 偽3層アーキテクチャ
 画面・ロジック・データアクセスを分離する考えは以前からあった
 分離する強力な「仕組み」が無かったため、意図を守れない実装も多数
 DLL(Visual Studio プロジェクト)は分かれているのに、実際には
プレゼンテーション層に全てのロジックが実装されている場合も・・・
33
Data Tier?
Method “A”
Method “B”
Method “C”
Business
Logic Tier?
Method “A”
Method “B”
Method “C”
Presentation Tier?
事実上、全ロジックが
実装されている
Call Method “A”
Call Method “B”
Call Method “C”
Database
SQL Query Call A, B, C Call A, B, C
MVVMで解決
境界を越えるときは必ずテスト済みであること
 責任の所在が明確
 DB から M を正しく取得することがテスト済み
 M から VM を正しく作れることがテスト済み バグがなく正常に動くはず
 VM を V にバインド出来ることがテスト済み
34
“A” Model
“C” View Model View “C”
Database “A”
Cloud Service “B” “B” Model
データバインド
Data Binding
Web API, WCF
Entity Framework, LINQ to SQL
簡単に
品質を保てる
無理に MVVM にこだわる必要は無いが
 MVVM の考え方が出来ることは必須
 後で説明する「単体テスト」もこの考え方を理解していると簡単に使いこなせる
 HTML5 + JavaScript など他の言語・文化圏でも MVVM が浸透
 今後、Azure のサービスが増えるにつれてますます重要度が上がる
MVVM を意識して C# を勉強してください
35
絶対に身につけるべき事
1. 常に綺麗なコードを書く方法
2. 格安で必要な範囲を的確にテスト出来る方法
3. 格安で何度でも容易に安全にデプロイ(配置)出来る方法
4. 複数人のチームで開発する方法
36
2. 格安で必要な範囲を的確にテスト出来る方法
 F5 デバッグ(ローカルデバッグ・リモートデバッグ・エミュレータ)
 単体テスト
 コード化されたUIテスト
 ロードテスト
自分で書いたコードは必ず自分でテストする 最初の責任をどう果たすか?
※設計や上流工程での問題はここで紹介するテストではなく、「テストスイート」「テストケース」を使って確認します。
ここでは取り扱いません。必要に応じて ウォーターフォールV字モデル や、Test Manager を勉強してください。
37
F5 デバッグ(ローカルデバッグ・リモートデバッグ・エミュレータ)
格安で必要な範囲を的確にテスト出来る方法①
38
Visual Studio = F5 デバッグ
 プロジェクトを作成して、[ F5 キー ] を押すとアプリが起動する
 多くのアプリがそのままデバッグできる
Windows 上で直接起動
Windows Desktop、Windows Store Apps、ASP.net (Web site)
アプリが起動(アプリ・拡張機能がインストールされた状態で起動)
Visual Studio Extensions、 Office Apps、Office Extensions (Outlook, Word, Excel, PowerPoint )
エミュレータが起動
Windows Store Apps 、Windows Phone Apps、Xamarin.iOS、Xamarin.Android 39
F5デバッグ出来る = 最高速で何度も試せる
 何度も試せると、手動での動作確認が数多く出来る
 F5デバッグ出来ないと、その分テストが億劫になる
• 「ちゃんと書けたはずだから確認しなくても、大丈夫だろう」
• 「コードは変えたけど、さっき動いたから全部は確認しなくても、大丈夫だろう」
• 「自分は確認しなくても、誰か他のところで確認されるだろうから、大丈夫だろう」
 自動車の「だろう運転」と同じ ⇒「(バグがある)かもしれない」
40
簡単に
品質を保てる
F5デバッグ出来ない=十分にテストされない
 「Windows Server にインストールしないと動作確認出来ない」は
 リリースされるまで一度もテストされない=まともに動かない と等しい
 インストールしないと動作確認出来ないアプリの品質を保つのが難しい
Windows Service、Azure Worker Role、SharePoint Page/Workflow、Exchange Transport Agent ...
どんなに責任感が強い人でも こなせる回数が少ない と品質が低くなる
※エミュレータも起動するまで時間がかかると、デスクトップアプリより品質が低くなりやすい
41
何としても F5 デバッグ出来るようにしたい!
 前職で 某大手 情報サイトのデータ入稿システム のフレームワークを開発
 最もこだわったのは F5デバッグ出来ること
1. ローカルで開発しそのまま F5 デバッグ出来る(開発)
2. サーバーにインストールして動作させる別のモードがある(本番)
 「Windows アプリ」として起動する開発モードを用意した
 2ヶ月かかる開発が、2週間でバグ無しで開発出来るようになった
ローカルで十分にテストしてリリースすれば、本番で問題にならない 42
クラスライブラリを参照すれば F5 デバッグ出来る
 インストールしないと動作しないものを開発する場合
 (MVVMの考え方と同様)インストールするそのものと、ロジックを分離
 ロジックだけを入れたクラスライブラリを作成
 そのクラスライブラリを参照した Windows アプリを作る 43
クラスライブラリ
(DLL)
インストールが必要なもの
(例:Windows Service)
開発用 Windows アプリ
(WPF)
参照参照
起動するまで 約10秒起動するまで 約10分
画面の部品のみの F5 デバッグ も出来る
 Visual Studio 拡張機能を作る時、ツールウィンドウだけでデバッグ(起動速度が全然違う)
Editor Plus
https://visualstudiogallery.msdn.microsoft.com/af8f350c-b992-464f-b9f3-580b51545f67
44
起動するまで 約3秒起動するまで 約1分
UI部品・ロジックを分離してもテストできるか?1
 MVVM を理解していれば可能 ⇒ テスト用に部分的に差し替えても正常に動作する
※ Expression Blend を使うと、WPF アプリの「デザイン用サンプルデータ」を作成可能。起動しなくてもUIを確認出来る。
45
“A” Model
“C” View Model View “C”
Database “A”
Cloud Service “B” “B” Model
データバインド
Data Binding
Web API, WCF
Entity Framework, LINQ to SQL
View “C”“C” View Model
Data Binding
テスト用 View Model
を作るプログラム
UI部品・ロジックを分離してもテストできるか?2
 MVVMの 色んな部分を差し替えることが可能 DBにもインターネットに繋がずにテスト出来る
※他社との連携システムを作成するときは、両者で共通して使える スタブ・ドライバの作成が必須
46
“A” Model
“C” View Model
テスト用
View
Database “A”
Cloud Service “B” “B” Model
データバインド
Data Binding
Web API, WCF
Entity Framework, LINQ to SQL
View “C”“C” View Model
Data Binding
テスト用 Model
を作るプログラム
“A” Model
“B” Model
インストールしなくてもテスト出来るように!
 低コストで品質を保つためには、如何にF5デバッグ出来るようにするか?
 テストを前提にクラスライブラリ(ロジック・UI部品)を分離する
 MVVM を理解して部品を差し替え可能に
 差し替え用の部品も(ソースバージョン管理に含めて)納品物と同じように扱う
ここで作ったものを「個人のツールとし、人に引き継がない」は絶対にダメ!
47
ここまで工夫すれば
F5デバッグだけで
十分に戦える!
48
いや、毎回テスト用 View 作るのしんどいし・・・
ロジックを直接
テストしてくれる
画面無いの? 49
単体テスト
格安で必要な範囲を的確にテスト出来る方法②
50
Visual Studio でメソッドを直接テスト
 Visual Studio 単体テスト は C# コードで、C# コードをテストする
メソッド public string CreateTransactionId ( FileInfo userFile ) をテストする時
userFile を様々に変えてテストする、テスト用のメソッドを作成
 Visual Studio がテスト用のメソッドを実行
 一度作ったテストは何度でも使える
※ Java の JUnit と同様。以前は NUnit 。Visual Studio 2005 から標準機能になった。 51
テストの実行と結果画面が標準で提供される
 F5デバッグ感覚でテストを実行、成功・失敗がひと目でわかる
 テストケースの分だけテストメソッドを追加
52
すぐに試せるサンプルを用意しました
 TFS・VSO・ローカルで動作するデータ
ベースを使った単体テストの作り方・
量産方法
 https://code.msdn.microsoft.com/TFSV
SO-dc7b8c9d
 C# サンプルをダウンロードできます
53
F5デバッグより回数をこなせる単体テスト
 プログラムを改修したら、単体テストを開始して休憩に
 休憩から変えるとテスト結果が出ている
 その間に 100~ 200~ 何万テストケースでも自動で実行してくれる
 (他の関係ないと思っていたところを)壊すとすぐに気付く
 完成すると嬉しい
 MVVM でロジックだけを直接テストできるのは、単体テストのみ
54
単体テストで自動でメソッドをテストできるなら
画面操作を
自動でテストする
機能は無いの? 55
コード化されたUIテスト
格安で必要な範囲を的確にテスト出来る方法③
56
Visual Studio が人の代わりに画面を操作してテスト
 コード化されたUIテスト は C#コードで、画面をテストする
 Web アプリ / Windows デスクトップアプリをテストする時
 画面を開く、ボタンを押す、テキストを入力する・・・ を C# で記述
 手で操作して「録画」する機能が使える
 Visual Studio がテストを実行(人の操作を代行)
 一度作ったテストは何度でも使える
※MS-Windows 3.1 には、レコーダという人の操作を記録・再生する機能が標準であった 57
すぐに試せるサンプルを用意しました
 WPF アプリケーションの「コード化さ
れたUIテスト (Coded UI Test) 」の作り
方 ~ UIのテスト駆動開発とUIMapの保
守
 https://code.msdn.microsoft.com/WPF-
UI-Coded-UI-Test-9ab5581d
 C# サンプルをダウンロードできます
58
テストの回数を増やすことが品質に繋がる・・なら
1機能を開発する時に、テスト出来る回数とかかる時間の比率:
※経験に基づくイメージです。テストする範囲が異なるので単純に比較できませんが、これぐらい差が出ると思います。
59
 インストールしないとテスト出来ない 1(手動) 1,000
 F5デバッグが出来る 10~100(手動) 100
 コード化されたUIテストが出来る 10~1,000(自動) 10
 単体テストが出来る 100~10,000(自動) 1
ロードテスト
格安で必要な範囲を的確にテスト出来る方法④
60
すぐに試せるサンプルは用意できていません
 簡単に言うと Visual Studio で Web サイトに負荷をかける機能です
 F5デバッグで起動した ASP.net Webサイトに自分で負荷をかけます
ローカルWebにも、サーバーにも負荷を変えることが出来ます
 ローカルで早く動かない Web サイトが、サーバーで(以下略
※現在は Visual Studio Ultimate が必要ですが、近い将来 Premium と Ultimate は Enterprise に統合されます
http://blogs.msdn.com/b/visualstudio_jpn/archive/2015/03/31/announcing-the-visual-studio-2015-product-line.aspx
61
絶対に身につけるべき事
1. 常に綺麗なコードを書く方法
2. 格安で必要な範囲を的確にテスト出来る方法
3. 格安で何度でも容易に安全にデプロイ(配置)出来る方法
4. 複数人のチームで開発する方法
62
格安で何度でも容易に安全にデプロイ出来る方法
 発行
 セットアップの作成
Visual Studio Installer Extension を使用
 リリース管理
ただし、今のバージョンは難易度が高い
将来使うことを意識(考え方を身に着けておく)
63
絶対に身につけるべき事
1. 常に綺麗なコードを書く方法
2. 格安で必要な範囲を的確にテスト出来る方法
3. 格安で何度でも容易に安全にデプロイ(配置)出来る方法
4. 複数人のチームで開発する方法
64
複数人のチームで開発する方法
 ソースバージョン管理
 タスク管理
 自動ビルド・自動テスト
全て Visual Studio + Team Foundation Server / Visual Studio Online を使う
65
TFS の使い方は他のスライドを参考に
 スクラム開発を始めよう!
TFS を使った日常コミュケーションとチームワーク
http://www.slideshare.net/shinichikoga355/102-ver4
 開発キックオフ時にマネージャが行うべき11のこと
~Visual Studio Online & TFS 使い始めと HOME 画面の構成
http://www.slideshare.net/shinichikoga355/starting-tfs
 TFS スクラム開発とリリース管理を使えば Rapid Release を行える!
~ Online Service Gate® クラウド サービスの開発事例
http://channel9.msdn.com/Events/Architect-Jump-Start-
Seminar/20141117/Session2 66
自動ビルド・自動テストはサンプルを用意しました
 TFS・VSO・ローカルで動作するデータ
ベースを使った単体テストの作り方・
量産方法
 https://code.msdn.microsoft.com/TFSV
SO-dc7b8c9d
 C# サンプルをダウンロードできます
(※前述のサンプルです。解説を読んでください)
67
C#言語の特徴
他の言語との違いを「ふんわり」理解しておく
68
C# は JavaScript, VBよりも堅く Java よりも柔らかに
 Visual Basic (VB) と C# はほぼ同じ物
 違いはコンパイラの「思想」だけで、どちらも .net Framework で動作
 VB は厳密にも曖昧にも使える柔軟な言語(1位※)
 Java は厳密に定義する言語(2位※ )
 JavaScript は非常に曖昧なことを許容する言語(3位※ )
 C# は VB より厳密に、Java よりは曖昧に調整された言語(4位※ )
※利用者数:@IT 「Windows 10/Visual Studio 2015への期待と課題」より
http://www.atmarkit.co.jp/ait/articles/1504/24/news018.html
69
C# は他の言語の機能と融合してきた
 たぶん C++ + VB + Java + Delphi = C# として誕生
 C# 3.0 から 型推論・ラムダ式・匿名クラス( 関数型プログラム )
 ASP.net MVC は Ruby on Rails, Cake PHP に近い( ”設定より規約” )
 多くのプラットフォームで動作
 最新版 ASP.net は Linux で動作する
 Xamarin, Unity では iPhone, Android アプリが開発できる
70
領域別 解説
全体像を把握して(古い技術ではなく)新しい技術を身につけよう
71
共通言語仕様
 if, for, while ... 基本的な C# の構文 ( .net 1.0 以降)
 ジェネリック IDictionary<string, int> ( .net 2.0 以降)
 型推論 var, 匿名型, LINQ, ラムダ式 ()=>{}; (.net 3, 3.5 以降)
 dynamic, 非同期 async/await(.net 4, 4.5 以降)
 nameof, null条件演算子 ?. (次バージョン以降)
新しいほど低コストで使いやすく推奨される機能
※ .net のバージョンが同じでも Visual Studio のバージョンで機能が追加される場合が多くあります
※ 新しさと習得の難易度は関係がありません
72
データアクセス(データベースの利用)
 SqlCommand で SQL を直接実行
旧式、最高速だが高リスク高コスト
 DataSet, 型付きDataSet
旧式、中~高コスト(進化の途中で扱いにくい)
 LINQ to SQL + Entity Framework
最新、若干低速だが低リスク低コスト
73
作成するもの別
 デスクトップ( WPF, Windows Forms, Windows Service , Console )
 Web ( ASP.net SPA, Web API, ASP.net MVC, ASP.net )
 スマートデバイス アプリ( Windows Store, Windows Phone, Xamarin.iOS )
 Office ( Office ストアアプリ, デスクトップ Office 拡張機能, Exchange, SharePoint )
 通信のみ( WCF, .net Remoting )
 Visual Studio( 拡張機能, 言語, プロジェクト )
※ SDK の追加インストールや製品の購入が必要なものも含みます。ゲームは Unity や Direct X の知識が必要。
※ 他に IoT (Internet of Things)、機械学習などが今後のトレンドです。
74
チーム開発
 ソースバージョン管理
 タスク管理
 テストケース・バグトラッキングシステム
 スクラム開発 / ウォーターフォール開発
75
テスト
 F5デバッグ(ローカル, リモート, エミュレータ)
 単体テスト(ローカル, 自動ビルド・自動テスト)
 コード化されたUIテスト
 ロードテスト(Visual Studio Ultimate, Visual Studio Online シンプル)
 テストケース・バグトラッキングシステム
 ラボ管理
76
配置(デプロイ)
 Windows Installer セットアップの作成(Visual Studio Installer)
 発行(Web, ClickOnce, FTP, ファイルコピー)
 Azure 発行
 ストアに登録(Windows Store, Windows Phone, Office Apps )
 Release Management
 Windows Azure への継続的な配信(Visual Studio Online)
77
勉強の仕方
良いサンプルを参考にしてください
78
バージョンに注意
 新機能によって、過去の書き方は推奨されなくなる場合が多々ある
 最新のバージョンの教科書で勉強すること
 同じ処理を違う書き方が出来るときは、必ず、最新の書き方を使う事
誤:古い物が初心者向け、新しい物は上級者向け
正:新しい物を使うのが推奨、優しいか難しいか?は場合による
79
ネットの「サンプルのための記述」に注意
 サンプルは「説明したい目的の機能」の使い方が
わかりやすくなるように構成
 その他のエンタープライズ開発の要素は考慮されていない場合が多い
プロジェクトの構成、名前の付け方、デバッグしやすい設計、エラー処理・・・
 これをそのまま標準だと誤解して実装したコードが、
社内にも増えている可能性がある(参考にしてよいか?注意が必要)
80
実務の実践だけではスキルアップできない?
 マネージャは(個人のスキルアップではなく)結果を期待
 役員は、個人のスキルアップは現場の上長の責任と認識
 ステークホルダーはスキルを持っているエンジニアが担当することを期待
「これを試しにやってみたい」は、成果が上げられるときに認められる
⇒ 既にレベルアップしていることが条件
81
お奨めの教科書
 独習 C# ( http://goo.gl/92a4Pq )
 ASP.NET MVC5実践プログラミング ( http://goo.gl/ii0D15 )
 プログラミングMicrosoft ASP.NET MVC 第3版ASP.NET MVC 5 対応版
(マイクロソフト公式解説書) ( http://goo.gl/HBKvHQ )
まず、C# の言語仕様を理解。ラムダ式とLINQは必ず使いこなせるようになってください。
次に MVVM の経験として ASP.net MVC が教科書が多くてお奨めです。
82
推薦図書
 IT Architects’ Archive―ソフトウェア開発の課題
パターンによるソフトウェア構成管理 ( http://goo.gl/2yF1N1 )
 独習 UML ( http://goo.gl/VYg1ZC )
 PMBOKガイド・マニュアル―第5版対応 ( http://goo.gl/G4oDks )
ソースバージョン管理で「何となく分岐・マージする」のではく、理解して使いこなせる様に。
自分で設計をしたり、チームで会話をするには UML 図を読めるようになりましょう。
プロジェクト全体の流れを理解するために PMBOK を勉強しておくこともお奨めです。
83
84Copyright© 2015 Shin-ichi Koga All Rights Reserved.

More Related Content

What's hot

それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計Yoshinori Matsunobu
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方増田 亨
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編infinite_loop
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと増田 亨
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 

What's hot (20)

それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
ドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったことドメイン駆動設計に15年取り組んでわかったこと
ドメイン駆動設計に15年取り組んでわかったこと
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 

Viewers also liked

本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!慎一 古賀
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術Noriaki Kadota
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発Kazunori Hamamoto
 
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンいまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンYuta Matsumura
 
知って得するC#
知って得するC#知って得するC#
知って得するC#Shota Baba
 
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたNarami Kiyokura
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)NTT DATA OSS Professional Services
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちはYoshio Hanawa
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏Yusuke Hirao
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 Ken'ichi Matsui
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門yoku0825
 
プログラマのための線形代数再入門
プログラマのための線形代数再入門プログラマのための線形代数再入門
プログラマのための線形代数再入門Taketo Sano
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからHiroshi Kawada
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門樽八 仲川
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側Takeshi HASEGAWA
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Yoshito Tabuchi
 

Viewers also liked (20)

本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンいまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
 
知って得するC#
知って得するC#知って得するC#
知って得するC#
 
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門
 
プログラマのための線形代数再入門
プログラマのための線形代数再入門プログラマのための線形代数再入門
プログラマのための線形代数再入門
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
 

Similar to ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発

大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】Mitsuhito Ishino
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践慎一 古賀
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューMoriharu Ohzu
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps 智治 長沢
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
 
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則株式会社スカイアーチネットワークス
 
5分で理解するクラウドビジネスアプリ
5分で理解するクラウドビジネスアプリ5分で理解するクラウドビジネスアプリ
5分で理解するクラウドビジネスアプリYoshitaka Seo
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)Akira Inoue
 
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方Kazuki Shibata
 
Kobe sec#7 summary
Kobe sec#7 summaryKobe sec#7 summary
Kobe sec#7 summaryYukio NAGAO
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ慎一 古賀
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介Yuta Matsumura
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルAkira Tanaka
 
DevOps and Compliance and Security
DevOps and Compliance and SecurityDevOps and Compliance and Security
DevOps and Compliance and SecurityKazushi Kamegawa
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?Yuta Matsumura
 
Mizukiryu refactering-20110821
Mizukiryu refactering-20110821Mizukiryu refactering-20110821
Mizukiryu refactering-20110821Mizuki Yamanaka
 
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)Madoka Chiyoda
 

Similar to ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発 (20)

20050809
2005080920050809
20050809
 
大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps
 
AIビジネスクリエーションワークショップ@東京
AIビジネスクリエーションワークショップ@東京AIビジネスクリエーションワークショップ@東京
AIビジネスクリエーションワークショップ@東京
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
 
5分で理解するクラウドビジネスアプリ
5分で理解するクラウドビジネスアプリ5分で理解するクラウドビジネスアプリ
5分で理解するクラウドビジネスアプリ
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)
 
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
 
Kobe sec#7 summary
Kobe sec#7 summaryKobe sec#7 summary
Kobe sec#7 summary
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
オープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアルオープンソースを利用したモデル駆動トライアル
オープンソースを利用したモデル駆動トライアル
 
DevOps and Compliance and Security
DevOps and Compliance and SecurityDevOps and Compliance and Security
DevOps and Compliance and Security
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
 
Mizukiryu refactering-20110821
Mizukiryu refactering-20110821Mizukiryu refactering-20110821
Mizukiryu refactering-20110821
 
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
 

More from 慎一 古賀

開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理慎一 古賀
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ慎一 古賀
 
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法慎一 古賀
 
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4慎一 古賀
 
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み慎一 古賀
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ慎一 古賀
 
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成慎一 古賀
 
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化慎一 古賀
 
バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携
バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携
バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携慎一 古賀
 
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワークスクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク慎一 古賀
 

More from 慎一 古賀 (10)

開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
ウォーターフォール・アジャイル・DevOps どんなチームでも開発・テスト・リリースでVSTS/TFSをフル活用する方法
 
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4
 
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
開発キックオフ時にマネージャが行うべき11のこと ~Visual Studio Online & TFS 使い始めと HOME 画面の構成
 
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
TFS リリース管理 による継続的デリバリー TFS Release Management を使ったリリースの効率化
 
バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携
バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携
バックログとタスクをインポート・エクスポート Team Foundation Server と Excel・Project との連携
 
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワークスクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
スクラム開発を始めよう!TFS を使った日常コミュケーションとチームワーク
 

Recently uploaded

Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayersToru Tamaki
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 

Recently uploaded (11)

Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発

Editor's Notes

  1. 言語を理解し、フラットなプログラムが書けるようになる 自分で設計を工夫し、オブジェクト指向でプログラムが書けるようになる。重量すぎるオブジェクト指向になりがち。 ライブラリ・フレームワークの役割、コードでの実装・規約ベース・データバインド・MVVM などの考え方を理解し、適切な設計を判断出来るようになる。 プロジェクト全体を俯瞰できるようになる。マネージメントかアーキテクトか専門領域が分かれ始める。 役員、ステークホルダーから課題を投げかけられるようになる。課題を解決するための道筋は自分で作り上げる必要がある。全体を俯瞰し、部分最適ではなく全体最適を目指し、チームビルディングやリスクを意識して計画を立てられるようになる。 タレントとして社内外で『象徴』的な役割を期待されるようになる。ファシリテーションを意識し、他の課題を解決出来る人と協力して、会社を越えて最適な答えを探せるようになる。
  2. エンジニア リーダー マネージャ / アーキテクト 部長・役員・株主 自分が次の役割になるときに、かならず障壁がある それぞれの役割でベストなゴールは違う、両方の役割でのベストは、それぞれのベストとは異なる可能性が高い ⇒ 「評価は必ず後からついてくる」
  3. Windows の変化(進化) VB, .net, Java, Ruby, F# ... 相互に影響し合う サーバークライアント、Web、HTML、スマートフォンApps、IoT、機械学習、パブリッククラウドとプライベートクラウドとオンプレミスのハイブリッド 新しい技術は、前の時代の常識ができることを前提にしている
  4. MCSD Microsoft ー C#技術 ※ただし最新の資格は基礎向けではない 国家資格 基本情報、応用情報、プロジェクトマネージャ、システムアーキテクト ー 一般的な知識 http://www.jitec.ipa.go.jp/1_11seido/seido_gaiyo.html PMBOK、PMP ー マネージメント その前に ITパスポートとれますか?  ITパスポート過去問から PMBOK とはなにか?を問う問題を。
  5. MCSD Microsoft ー C#技術 ※ただし最新の資格は基礎向けではない 国家資格 基本情報、応用情報、プロジェクトマネージャ、システムアーキテクト ー 一般的な知識 http://www.jitec.ipa.go.jp/1_11seido/seido_gaiyo.html PMBOK、PMP ー マネージメント その前に ITパスポートとれますか?  ITパスポート過去問から PMBOK とはなにか?を問う問題を。
  6. コード分析 MVVM、データバインド
  7. 単体テスト・コード化されたUIテスト
  8. 今のバージョンのリリース管理は難 ー 将来使われることを意識 発行手順を手動ではなく、自動化することを意識
  9. TFS (ソースバージョン管理・タスク管理) 自動ビルド・自動テスト
  10. 厳密な型 / 型推論