目次
1章 DLRの概要
1-1 DLRとは
- 1-1-1 DLRとCLR
- 1-1-2 DLRがもたらすもの
1-2 NETと動的言語
- 1-2-1 言語と流行
- 1-2-2 NETの動的言語対応
- 1-2-3 静的言語と動的言語
1-3 静的言語vs動的言語
- 1-3-1 静的言語のメリット
- 1-3-2 動的言語のメリット
- 1-3-3 それぞれのメリット
- 1-3-4 使いどころ
1-4 各種DLR言語ファミリー
- 1-4-1 CodePlex Dynamic Language Runtime
- 1-4-2 IronPython
- 1-4-3 IronRuby
- 1-4-4 Gestalt
1-5 Hello World
- 1-5-1 Hello World With Expression
- 1-5-2 Hello World From IronPython
2章 プログラミングC#
2-1 ジェネリック
- 2-1-1 基本クラスによる汎用化の問題点056
- 2-1-2 ジェネリックに改善
- 2-1-3 タイプパラメータ
- 2-1-4 Nullable
構造体 - 2-1-5 ArrayListクラスとList
クラス
2-2 共変性と反変性
- 2-2-1 プログラミングにおける共変性と反変性
- 2-2-2 型の扱いに関する基本
- 2-2-3 デリゲートにおける共変性と反変性
- 2-2-4 ジェネリックにおける共変性と反変性
2-3 拡張メソッド
- 2-3-1 シンプルな拡張メソッドの定義
- 2-3-2 拡張メソッドの定義方法075
- 2-3-3 拡張メソッドと名
- 2-3-4 SystemLinqの拡張メソッド
- 2-3-5 まとめ
2-4 ラムダ式
- 2-4-1 SystemLinq名前空間
- 2-4-2 まずはシンプルな例を
- 2-4-4 ラムダ式の書式
- 2-4-5 引数の型
- 2-4-6 ラムダ式内での変数スコープ
3章 C#からのDLR活用
3-1 dynamicキーワード〜レイトバインディング
- 3-1-1 新しいキーワード「dynamic」
- 3-1-2 「var」キーワード
- 3-1-3 インテリセンス
- 3-1-4 dynamicの使い道は・・・
- 3-1-5 dynamic変数の型解決方法
3-2 プログラムは式ツリー〜Expression
- 3-2-1 dynamic〜理解のキー
- 3-2-2 式ツリーって何?
- 3-2-3 ソースコード=データ構造
- 3-2-4 基本クラス〜Expression
- 3-2-5 Expression基本クラス
- 3-2-6 ConstantExpression
- 3-2-7 BinaryExpression
- 3-2-8 NewArrayExpressionとIndexExpression
- 3-2-9 MemberExpression
3-3 DLRにおけるレイトバインディング
- 3-3-1 バインディング
- 3-3-2 静的型解決でのバインディング(アーリーバインディング)
- 3-3-3 動的型解決でのバインディング(レイトバインディング)
- 3-3-4 バインダー
- 3-3-5 シンプルなバインダーの実装
3-4 ダイナミックメタオブジェクト(動的オブジェクト)
- 3-4-1 動的オブジェクト
- 3-4-2 IDynamicMetaObjectProvierインターフェイス
- 3-4-3 IDynamicMetaObjectProvierインターフェイスの実装
- 3-4-4 DynamicObjectクラス
- 3-4-5 レイトバインディングの処理フロー
- 3-4-6 レイトバインディングが2つの要素で実行される理由
3-5 静的型言語で動的属性プログラミング〜ExpandoObject
- 3-5-1 動的属性プログラミング
- 3-5-2 動的プロパティの追加
- 3-5-3 動的プロパティの列挙
- 3-5-4 動的プロパティの削除
- 3-5-5 動的メソッドの追加
3-6 dynamicでラクラクEXCEL開発
- 3-6-1 Excel出力方式
- 3-6-2 Excel COM 〜dynamicキーワード以前
- 3-6-3 Excel COM&dynamicでExcel出力〜WPF/Windowsフォーム編
- 3-6-4 Excel COM&dynamicでExcel出力〜Silverlight編
3-7 他言語との相互運用
- 3-7-1 相互運用を振り返る
- 3-7-2 C#からPythonコードを呼び出す
4章 動的言語とデザインパターン
4-1 デザインパターン
- 4-1-1 デザインパターンとは
- 4-1-2 デザインパターンとオブジェクト指向
- 4-1-3 ソフトウェアにおけるパターン
- 4-1-4 GoFの23種類のパターン
- 4-1-5 デザインパターンの説明に入る前に…
- 4-1-6 パターンの解説
4-2 Singletonパターン(シングルトン)
- 4-2-1 パターン概説
- 4-2-2 パターンの構造
- 4-2-3 実装の例
- 4-2-4 まとめ
4-3 Template Methodパターン(テンプレートメソッド)
- 4-3-1 パターンの構造
- 4-3-2 実装の例
- 4-3-3 まとめ
4-4 Strategyパターン(ストラテジー)
- 4-4-1 パターン概説
- 4-4-2 パターンの構造
- 4-4-3 実装の例
- 4-4-4 CalculationStrategyクラスは必要か?
- 4-4-5 まとめ
4-5 Factory Methodパターン(ファクトリメソッド)
- 4-5-1 パターン概説
- 4-5-2 パターンの構造
- 4-5-3 実装の例
- 4-5-4 まとめ
4-6 Compositeパターン(コンポジット)
- 4-6-1 パターン概説
- 4-6-2 パターンの構造
- 4-6-3 実装の例
- 4-6-4 まとめ
4-7 Builderパターン(ビルダー)
- 4-7-1 パターン概説
- 4-7-2 パターンの構造
- 4-7-3 実装の例
- 4-7-4 まとめ
4-8 Adapterパターン(アダプター)
- 4-8-1 パターン概説
- 4-8-2 パターンの構造
- 4-8-3 実装の例(継承による実装)
- 4-8-4 実装の例(委譲による実装)
- 4-8-5 まとめ
4-9 Decoratorパターン(デコレーター)
- 4-9-1 パターン概説
- 4-9-2 パターンの構造
- 4-9-3 実装の例
- 4-9-4 もう1つの実装例(Python組み込み機能の利用)
- 4-9-5 まとめ
5章 DLRで.NET開発
5-1 まずはIronPython開発の準備〜言語仕様
- 5-1-1 Python 2.x系/3.x系とIronPython 2.7
- 5-1-2 IronPythonコンソール
- 5-1-3 変数と型
- 5-1-4 組み込み型
- 5-1-5 数値型
- 5-1-6 シーケンス型
- 5-1-7 辞書型
- 5-1-8 Python型の調査
- 5-1-9 組み込み型とCLR型
- 5-1-10 条件分岐(if/else/elif)
- 5-1-11 繰り返し(while)
- 5-1-12 繰り返し(for)
- 5-1-13 関数
- 5-1-14 クラス
- 5-1-15 インポート(import)
5-2 CPythonとIronPython
- 5-2-1 IronPythonとNETライブラリ
- 5-2-2 CPythonのC拡張モジュール
- 5-2-3 IronClad
5-3 IronPythonでASPNET開発
- 5-3-1 ASP.NET Dynamic Language Support
- 5-3-2 ASP.NET Dynamic Language Supportの構成
- 5-3-3 Webフォームの構成
- 5-3-4 カスタムモジュールの利用
5-4 ミニブログアプリケーション作成
- 5-4-1 アプリケーション仕様
- 5-4-2 データベース
- 5-4-3 プログラム構成
- 5-4-4 モデル基本クラス
- 5-4-5 BaseModelクラス実装解説
- 5-4-6 Postクラス実装解説
- 5-4-7 Accountクラス実装解説
- 5-4-8 App_Codeフォルダへのモジュール検索パスの追加
- 5-4-9 URLマップ構成
- 5-4-10 マスターページと共通コントロール
- 5-4-11 アカウント作成画面
- 5-4-12 ログイン画面
- 5-4-13 投稿一覧画面
- 5-4-14 新規投稿画面
- 5-4-15 ホーム画面
- 5-4-16 ログアウト
6章 C#アプリケーションとIronPythonアプリケーションの連携
6-1 ブログアプリの開発
- 6-1-1 プロジェクトの構成
- 6-1-2 アプリケーション仕様
- 6-1-3 画面構成
- 6-1-4 URL設計
- 6-1-5 ソリューション設計
- 6-1-6 アプリケーションとしての問題点
6-2 モデルの設計
- 6-2-1 モデルファースト設計
- 6-2-2 Entity Framework基礎知識
- 6-2-3 概念モデル/論理モデル/物理モデル
- 6-2-4 概念スキーマ定義言語/ストアスキーマ定義言語/マッピングスキーマ定義言語
- 6-2-5 CBlogでのエンティティデータモデルの設計
- 6-2-6 データベース作成SQLの作成
6-3 テーマによるスタイル設定
- 6-3-1 App_Themes特殊フォルダとskinファイル
6-4 ユーザーコントロールの開発
- 6-4-1 各種ユーザーコントロール
- 6-4-2 カテゴリーリストコントロールの実装
- 6-4-3 リンクリストコントロールのHoverMenuExtender
6-5 エントリーの表示
- 6-5-1 エントリー表示画面
- 6-5-2 URLルーティングマップとルーティングパラメータによるエントリー表示切り替え
- 6-5-3 エントリー画像のポップアップ
- 6-5-4 GoogleMapの利用とフローティングウィンドウ
- 6-5-5 コメント欄のパーシャルレンダリング
6-6 IronPythonミニブログとの連携
- 6-6-1 連携仕様
- 6-6-2 連携方式
- 6-6-3 DLR連携の下準備
- 6-6-4 CBlog投稿時にミニブログにも投稿
- 6-6-5 CBlogの一部分にミニブログの内容を表示