Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
C#でドメイン駆動開発 パート2
Rating: 4.4 out of 5(481 ratings)
3,788 students

C#でドメイン駆動開発 パート2

フォルダー構成編 どこクラスをどこに置くべきか?について徹底的に解説しています
Last updated 5/2025
Japanese

What you'll learn

  • C#でのドメイン駆動開発の続編。フォルダー構成をメインに解説します。
  • 設定ファイルでデータベースとFakeデータを切り替える方法
  • 例外処理と画面のメッセージを紐づける方法
  • マスターデータなどStaticな値を保持する方法
  • バックグラウンド処理の配置
  • アプリケーション全体にどのようなクラスをどこに置けばいいかがわかる

Course content

1 section89 lectures5h 45m total length
  • #00_はじめに3:02
  • #01_プロジェクトの作成1:27
  • #02_プロジェクトの追加2:51
  • #03_依存関係6:22
  • #04_ドメイン駆動開発でApplication層は必要?1:45
  • #05_Domainのフォルダー構成5:35
  • #06_Infrastructureのフォルダー構成4:16
  • #07_WinFormのフォルダー構成4:38
  • #08_Testsのフォルダー構成2:08
  • #09_テスト駆動で実装するための事前準備2:22
  • #09-2 ViewModelBase1:09
  • #10_テストコードとViewModelの追加2:50
  • #11_テストコードを追加する3:19
  • #12_Repositoriesフォルダーの作成1:52
  • #13_Entitiesフォルダーの作成2:31
  • #14_Mockの作成7:02
  • #15_フォーム画面の作成4:22
  • #16_画面のコントロールデータバインドする2:39
  • #17_Fakeを使ってタミーデータを画面に表示させる2:52
  • #18_Fakeデータを画面に通知する4:28
  • #19_PropertyChangedの方法を変更する3:32
  • #20_Fakeとデータベースの値を切り替える方法1:57
  • #21_Sharedクラスを作成する1:48
  • #22_クラスを生成するファクトリークラスを作る3:13
  • #23_#if DEBUGでFakeデータがリリースされないようにする2:32
  • #24_DEBUGモードであることをわかりやすくしておく2:20
  • #25_Factories以外から生成できないようにしておく2:19
  • #26_Factoriesの呼び出しはViewModelで行う1:20
  • #27_外部の設定ファイルの値で判断する6:06
  • #28_Fakeデータを切り替える方法5:25
  • #29_FakePathを設定ファイルとSharedに移す2:11
  • #30_Fakeデータのバリエーション1:10
  • #31_Shareクラスの活用方法2:21
  • #32_ベースフォームを作る1:49
  • #33_SharedにログインIDを記憶する1:16
  • #34_BaseFormでログインユーザーを表示する2:04
  • #35_ValueObject2:19
  • #36_ValueObjectを作成する1:51
  • #37_抽象クラスValueObjectを使用してイコールの問題の解消2:28
  • #37-2 ValueObject抽象クラスのサンプル0:54
  • #38_AreaIdにビジネスロジックを入れる1:21
  • #39_AreaIdクラスをEntityに乗せる1:11
  • #40_MeasureDateの作成1:58
  • #41_MeasureValueの作成1:36
  • #42_オブジェクト指向の自動化2:32
  • #43_Repositoryの具象クラス6:52
  • #44_例外処理2:32
  • #45_例外の作成4:09
  • #46_インナーエクセプション4:33
  • #47_例外の欠点1:37
  • #48_メッセージの区分7:48
  • #49_エラー処理の共通化1:34
  • #50_ログの出力7:12
  • #50-2_アセンブリインフォとApp.configの中身 Proguram.cs1:56
  • #51_タイマー処理はどこに置く?3:01
  • #52_タイマークラスの作成4:36
  • #53_StaticValues13:07
  • #54_Logics2:29
  • #55_Helpers4:53
  • #56_Module2:21
  • #57_トランザクションはどこでかける?3:13
  • #58_全体の振り返りDomain層12:43
  • #59_全体の振り返りInfrastructure層2:40
  • #60_全体の振り返りWinForm層8:23
  • #61_全体の振り返りTests層2:18
  • #62_特徴を見極める2:57
  • #63_さいごに2:24
  • ソースコード0:02

    レクチャーで使用したソースコード一式です。

  • 補講00_非同期処理のViewModelでUIスレッドに戻す方法13:47
  • 補講00B_非同期処理のViewModelでUIスレッドに戻す方法_NET6対応9:25
  • 補講01_StaticValuesとタイマーのテストコード0:44
  • 補講01_StaticValuesとタイマーのテストコードの書き方112:06
  • 補講01_StaticValuesとタイマーのテストコードの書き方29:04
  • 補講01_StaticValuesのテストコードの注意点5:36
  • 補講01_SetInterfaceの呼び出し1:20
  • 補講02_DomainServiceとDomainModelを分けるべきか3:45
  • 補講03_トランザクションに関して7:05
  • 補講04_データを保存しないものもリポジトリーなのか5:45
  • 補講05_VisualStudio2010でデータバインドする場合3:45
  • 補講06A_Services3:16
  • 補講06B_拡張ポイントの置き場所2:48
  • 補講07_タイマーのビジネスロジックの置き場について1:54
  • ■補講08A_UserControlのデータバインド5:23
  • ■補講08B_UserControlのデータバインド5:14
  • ■補講08C_UserControlのデータバインド7:11
  • ■補講08D_UserControlのRepositoryはどこで持つ?8:40
  • ■補講08E_UserControlのRepositoryはどこで持つ?2:24
  • 補講09_質問の回答_Infrastructure層とApplication層の責務の違い7:57
  • ボーナスレクチャー0:14

Requirements

  • C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法受講者を対象

Description

どうもこんにちは。


今回のコースはC#でドメイン駆動開発の第2弾,パート2という位置付けのコースです。

なので,前作,「C#でドメイン駆動開発とテスト駆動開発を使って保守性の高いプログラミングをする方法」受講者が対象です。そちらを見ていない方は,まずはそちらを受講してから,本コースを受講してください。


前作との違いは,

今回は,どのクラスをどこに置くか?について徹底的に解説しています。

ValueObject,Entity,Repository以外にも

アプリケーションを作成すると,色々なクラスが必要になります。

それらの生まれるクラスをどのように配置するべきかを

このコースでは解説しています。


ぜひ楽しみに見てください。

#00_はじめに

#01_プロジェクトの作成

#02_プロジェクトの追加

#03_依存関係

#04_ドメイン駆動開発でApplication層は必要?

#05_Domainのフォルダー構成

#06_Infrastructureのフォルダー構成

#07_WinFormのフォルダー構成

#07_2_タイマーイベントはどこに入れる?

#08_Testsのフォルダー構成

#09_テスト駆動で実装するための事前準備

#10_テストコードとViewModelの追加

#11_テストコードを追加する

#12_Repositoriesフォルダーの作成

#13_Entitiesフォルダーの作成

#14_Mockの作成

#15_フォーム画面の作成

#16_画面のコントロールデータバインドする

#17_Fakeを使ってタミーデータを画面に表示させる

#18_Fakeデータを画面に通知する

#19_PropertyChangedの方法を変更する

#20_Fakeとデータベースの値を切り替える方法

#21_Sharedクラスを作成する

#22_クラスを生成するファクトリークラスを作る

#23_#if DEBUGでFakeデータがリリースされないようにする

#24_DEBUGモードであることをわかりやすくしておく

#25_Factories以外から生成できないようにしておく

#26_Factoriesの呼び出しはViewModelで行う

#27_外部の設定ファイルの値で判断する

#28_Fakeデータを切り替える方法

#29_FakePathを設定ファイルとSharedに移す

#30_Fakeデータのバリエーション

#31_Shareクラスの活用方法

#32_ベースフォームを作る

#33_SharedにログインIDを記憶する

#34_BaseFormでログインユーザーを表示する

#35_ValueObject

#36_ValueObjectを作成する

#37_抽象クラスValueObjectを使用してイコールの問題の解消

#38_AreaIdにビジネスロジックを入れる

#39_AreaIdクラスをEntityに乗せる

#40_MeasureDateの作成

#41_MeasureValueの作成

#42_オブジェクト指向の自動化

#43_Repositoryの具象クラス

#44_例外処理

#45_例外の作成

#46_インナーエクセプション

#47_例外の欠点

#48_メッセージの区分

#49_エラー処理の共通化

#50_ログの出力

#51_タイマー処理はどこに置く?

#52_タイマークラスの作成

#53_StaticValues

#54_Logics

#55_Helpers

#56_Module

#57_トランザクションはどこでかける?


Who this course is for:

  • C#でドメイン駆動開発でのフォルダー構成をさらに学びたい方
  • アプリケーションのクラスの配置を学びたい方
  • C#でドメイン駆動開発を取り入れたい方
  • ダミーデータとデータベースのデータを切り替えてテストする方法を学びたい方
  • エラー処理をうまくコーディングしたい方