Raiffeisenbank .NET เจกเจฟเจตเฉเจฒเจชเจฐ เจเจฎเจฟเจเจจเจฟเจเฉ ViennaNET เจฆเฉเจเจ เจธเจฎเฉฑเจเจฐเฉเจเจ เจฆเฉ เจธเฉฐเจเฉเจช เจธเจฎเฉเจเจฟเจ เจเจฐเจจเจพ เจเจพเจฐเฉ เจฐเฉฑเจเจฆเฉ เจนเฉเฅค เจเจธ เจฌเจพเจฐเฉ เจ
เจธเฉเจ เจเจฟเจตเฉเจ เจ
เจคเฉ เจเจฟเจเจ เจเจ เจนเจพเจ,
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจตเจฟเจคเจฐเจฟเจค เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจเจพเจ, เจเจคเจพเจฐเจพเจ เจ
เจคเฉ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจ
เจเฉ เจคเฉฑเจ เจตเจฟเจเจพเจฐเฉเจเจ เจเจพเจฃ เจตเจพเจฒเฉเจเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจตเจฟเฉฑเจเฉเจ เจฒเฉฐเจเจพเจเจเฉ, เจเฉ เจเจฟ เจธเจพเจกเฉ GitHub เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจฒเฉฑเจญเฉเจเจ เจเจพ เจธเจเจฆเฉเจเจ เจนเจจ (
ViennaNET.Sagas
เจเจฆเฉเจ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ เจกเฉเจกเฉเจกเฉ เจ
เจคเฉ เจฎเจพเจเจเฉเจฐเฉเจธเจฐเจตเจฟเจธ เจเจฐเจเฉเจเฉเจเจเจฐ เจตเจฟเฉฑเจ เจธเจตเจฟเจ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจเจฆเฉเจ เจตเจชเจพเจฐเจ เจคเจฐเจ เจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉเจตเจพเจตเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจคเจพเจ เจเฉฑเจ เจตเจฟเจคเจฐเจฟเจค เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจ เจตเจฟเจงเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจเฉฑเจ เจธเจฎเฉฑเจธเจฟเจ เจชเฉเจฆเจพ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจฆเฉเจฐเจฟเจธเจผ เจ
เจเจธเจฐ เจเฉฑเจ เจตเจพเจฐ เจตเจฟเฉฑเจ เจเจ เจกเฉเจฎเฉเจจเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเฉ เจนเจจเฅค เจคเฉเจธเฉเจ เจ
เจเจฟเจนเฉเจเจ เจตเจฟเจงเฉเจเจ เจจเจพเจฒ เจตเจงเฉเจฐเฉ เจตเจฟเจธเจฅเจพเจฐ เจจเจพเจฒ เจเจพเจฃเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจฃ เจฒเจ,
เจธเจพเจกเฉ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจชเจฐ เจเจชเจฏเฉเจเฉ เจตเจฟเจงเฉ เจฒเจพเจเฉ เจเฉเจคเฉ เจนเฉ: เจเฉฑเจ เจเจพเจฅเจพ, เจเจพเจ เจเฉฑเจ เจเจฐเจเฉเจธเจเฉเจฐเฉเจธเจผเจจ-เจเจงเจพเจฐเจฟเจค เจเจพเจฅเจพเฅค เจเจธเจฆเจพ เจจเจฟเจเฉเฉ เจเจธ เจชเฉเจฐเจเจพเจฐ เจนเฉ: เจเฉฑเจฅเฉ เจเฉฑเจ เจเจพเจธ เจเจพเจฐเฉเจฌเจพเจฐเฉ เจฆเฉเจฐเจฟเจธเจผ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจตเฉฑเจ-เจตเฉฑเจ เจธเฉเจตเจพเจตเจพเจ เจตเจฟเฉฑเจ เจเฉเจฐเจฎเจตเจพเจฐ เจเจพเจฐเจตเจพเจเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจ เจคเฉ เจเฉเจเจฐ เจเจฟเจธเฉ เจตเฉ เจชเฉเจพเจ 'เจคเฉ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจชเฉเจฆเจพ เจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจชเจฟเจเจฒเฉ เจธเจพเจฐเฉ เจชเฉเจพเจตเจพเจ เจฒเจ เจฐเฉเจฒเจฌเฉเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจเจพ เจเจผเจฐเฉเจฐเฉ เจนเฉ, เจเจฟเฉฑเจฅเฉ เจเจน เจนเฉ. เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพเฅค เจเจธ เจคเจฐเฉเจนเจพเจ, เจเจพเจฅเจพ เจฆเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ, เจธเจซเจฒเจคเจพ เจฆเฉ เจชเจฐเจตเจพเจน เจเฉเจคเฉ เจฌเจฟเจจเจพเจ, เจ เจธเฉเจ เจธเจพเจฐเฉ เจกเฉเจฎเฉเจจเจพเจ เจตเจฟเฉฑเจ เจเจเจธเจพเจฐ เจกเฉเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเจพเจเฅค
เจธเจพเจกเจพ เจฒเจพเจเฉเจเจฐเจจ เจ เจเฉ เจตเฉ เจเจธเจฆเฉ เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ เจ เจคเฉ เจนเฉเจฐ เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจจเจพเจฒ เจชเจฐเจธเจชเจฐ เจชเฉเจฐเจญเจพเจต เจฆเฉ เจเจฟเจธเฉ เจตเฉ เจคเจฐเฉเจเจฟเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจจเจพเจฒ เจเฉเฉเจฟเจ เจจเจนเฉเจ เจนเฉเฅค เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจฎเฉเจธเจผเจเจฒ เจจเจนเฉเจ เจนเฉ: เจฌเจธ เจฌเฉเจธ เจเจฌเจธเจเจฐเฉเจเจ เจเจฒเจพเจธ SagaBase<T> เจฆเจพ เจเฉฑเจ เจเฉฑเจคเจฐเจพเจงเจฟเจเจพเจฐเฉ เจฌเจฃเจพเจ, เจเจฟเฉฑเจฅเฉ T เจคเฉเจนเจพเจกเฉ เจธเฉฐเจฆเจฐเจญ เจธเจผเฉเจฐเฉเจฃเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจธเจพเจเจพ เจฆเฉ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจกเฉเจเจพ, เจ เจคเฉ เจจเจพเจฒ เจนเฉ เจเฉเจ เจตเจฟเจเจเจพเจฐเจฒเฉ เจจเจคเฉเจเฉ เจตเฉ เจธเจเฉเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจธเฉฐเจฆเจฐเจญ เจเจฆเจพเจนเจฐเจจ เจจเฉเฉฐ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉเจฐเจพเจจ เจธเจพเจฐเฉ เจชเฉเจพเจตเจพเจ 'เจคเฉ เจชเจพเจธ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจธเจพเจเจพ เจเจชเจฃเฉ เจเจช เจตเจฟเฉฑเจ เจเฉฑเจ เจฐเจพเจ เจฐเจนเจฟเจค เจธเจผเฉเจฐเฉเจฃเฉ เจนเฉ, เจเจธเจฒเจ เจฒเฉเฉเฉเจเจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจเจฆเจพเจนเจฐเจจ เจจเฉเฉฐ เจธเจฟเฉฐเจเจฒเจเจจ เจตเจเฉเจ DI เจตเจฟเฉฑเจ เจฐเฉฑเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจฆเจพเจนเจฐเจจ เจตเจฟเจเจฟเจเจชเจจ:
public class ExampleSaga : SagaBase<ExampleContext>
{
public ExampleSaga()
{
Step("Step 1")
.WithAction(c => ...)
.WithCompensation(c => ...);
AsyncStep("Step 2")
.WithAction(async c => ...);
}
}
เจเจฆเจพเจนเจฐเจจ เจเจพเจฒ:
var saga = new ExampleSaga();
var context = new ExampleContext();
await saga.Execute(context);
เจตเฉฑเจ-เจตเฉฑเจ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉเจเจ เจชเฉเจฐเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฆเฉเจเฉเจเจ เจเจพ เจธเจเจฆเฉเจเจ เจนเจจ
ViennaNET.Ormเฅค*
Nhibernate เจฆเฉเจเจฐเจพ เจตเฉฑเจ-เจตเฉฑเจ เจกเจพเจเจพเจฌเฉเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจเฅค เจ เจธเฉเจ Liquibase เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ DB-เจชเจนเจฟเจฒเฉ เจชเจนเฉเฉฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจเจธเจฒเจ เจเฉฑเจ เจฐเฉเจกเฉเจฎเฉเจก เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจธเจฟเจฐเจซ เจเจพเจฐเจเจธเจผเฉเจฒเจคเจพ เจนเฉเฅค
ViennaNET.Orm.Seedwork ะธ ViennaNET.Orm
- เจเฉเจฐเจฎเจตเจพเจฐ เจฌเฉเจจเจฟเจเจฆเฉ เจเฉฐเจเจฐเจซเฉเจธ เจ
เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจตเจพเจฒเฉเจเจ เจฎเฉเฉฑเจ เจ
เจธเฉเจเจฌเจฒเฉเจเจเฅค เจเจ เจเจนเจจเจพเจ เจฆเฉ เจธเจฎเฉฑเจเจฐเฉ เจจเฉเฉฐ เจนเฉเจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจตเฉเจเฉเจ.
เจเฉฐเจเจฐเจซเฉเจธ IEntityFactoryService
เจ
เจคเฉ เจเจธ เจฆเฉ เจฒเจพเจเฉ เจเจฐเจจ EntityFactoryService
เจกเฉเจเจพเจฌเฉเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฎเฉเฉฑเจ เจธเจผเฉเจฐเฉเจเจคเฉ เจฌเจฟเฉฐเจฆเฉ เจนเจจ, เจเจฟเจเจเจเจฟ เจเฉฐเจฎ เจฆเฉ เจเจเจพเจ, เจเจพเจธ เจเจเจพเจเจเจ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ, เจจเจพเจฒ เจนเฉ เจเจฎเจพเจเจกเจพเจ เจฆเฉ เจเจเจเจผเฉเจเจฟเจเจเจฐ เจ
เจคเฉ เจธเจฟเฉฑเจงเฉ SQL เจธเจตเจพเจฒ เจเฉฑเจฅเฉ เจฌเจฃเจพเจ เจเจ เจนเจจเฅค เจเจ เจตเจพเจฐ เจกเฉเจเจพเจฌเฉเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเจฒเจพเจธ เจฆเฉเจเจ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจจเฉเฉฐ เจธเฉเจฎเจฟเจค เจเจฐเจจเจพ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจฃ เจฒเจ, เจธเจฟเจฐเจซ เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจเจพเฅค เจ
เจเจฟเจนเฉ เจฎเจพเจฎเจฒเจฟเจเจ เจฒเจ IEntityFactoryService
เจเฉฑเจ เจชเฉเจฐเจตเจ - เจเฉฐเจเจฐเจซเฉเจธ เจนเฉ IEntityRepositoryFactory
, เจเฉ เจเจฟ เจธเจฟเจฐเจซ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจฌเจฃเจพเจเจฃ เจฒเจ เจเฉฑเจ เจขเฉฐเจ เจฆเจพ เจเจฒเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจกเฉเจเจพเจฌเฉเจธ เจคเฉฑเจ เจธเจฟเฉฑเจงเฉ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฒเจ, เจชเฉเจฐเจฆเจพเจคเจพ เจตเจฟเจงเฉ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจนเจฐเฉเจ DBMS เจเฉ เจ
เจธเฉเจ เจเจชเจฃเฉเจเจ เจเฉเจฎเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฆเฉ เจนเจพเจ เจเจธเจฆเจพ เจเจชเจฃเจพ เจฒเจพเจเฉเจเจฐเจจ เจนเฉ: ViennaNET.Orm.MSSQL, ViennaNET.Orm.Oracle, ViennaNET.Orm.SQLite, ViennaNET.Orm.PostgreSql
.
เจเจธเฉ เจธเจฎเฉเจ, เจเจ เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเฉฑเจเฉ เจธเจฎเฉเจ เจเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเฉ เจเจฟ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจธเฉเจตเจพ เจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจ เฉฐเจฆเจฐ, เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจจเฉเฉฐ เจธเฉเจงเจฃ เจฒเจ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจเจฐเจเฉ เจฆเฉ, เจเฉฑเจ เจเจฆเจฎ-เจฆเจฐ-เจเจฆเจฎ เจฎเจพเจเจเฉเจฐเฉเจธเจผเจจ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจเฉฑเจ DBMS เจฆเฉเจเฉ เจจเฉเฉฐ. เจฒเฉเฉเฉเจเจฆเฉ เจเจจเฉเจเจธเจผเจจ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจฒเจ เจตเจฟเจงเฉ เจ เจคเฉ, เจเจธเจฒเจ, เจเฉฑเจ เจเจพเจธ เจเจเจพเจ เจเจฒเจพเจธ เจฒเจ เจชเฉเจฐเจฆเจพเจคเจพ (เจเจฟเจธ เจฒเจ เจกเฉเจเจพเจฌเฉเจธ เจเฉเจฌเจฒ เจตเจฟเฉฑเจ เจฎเฉเจชเจฟเฉฐเจ เจฒเจฟเจเฉ เจเจพเจเจฆเฉ เจนเฉ) เจจเฉเฉฐ BoundedContext เจเจฒเจพเจธ (เจกเฉเจฎเฉเจจ เจเจเจพเจเจเจ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเจฟเจงเฉ เจธเจผเจพเจฎเจฒ เจเจฐเจฆเจพ เจนเฉ) เจเจพเจ เจเจธเจฆเฉ เจเฉฑเจคเจฐเจพเจงเจฟเจเจพเจฐเฉ เจตเจฟเฉฑเจ เจเจเจพเจ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฆเฉเจเจฐเจพ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค ApplicationContext (เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจเจพเจเจเจ, เจธเจฟเฉฑเจงเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจ เจคเฉ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฆเฉ เจคเจฐเฉเจเฉ เจธเจผเจพเจฎเจฒ เจนเจจ), เจเจฟเฉฑเจฅเฉ เจธเฉฐเจฐเจเจจเจพ เจคเฉเจ เจเจจเฉเจเจธเจผเจจ เจชเจเจพเจฃเจเจฐเจคเจพ เจจเฉเฉฐ เจเฉฑเจ เจฆเจฒเฉเจฒ เจตเจเฉเจ เจธเจตเฉเจเจพเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ:
"db": [
{
"nick": "mssql_connection",
"dbServerType": "MSSQL",
"ConnectionString": "...",
"useCallContext": true
},
{
"nick": "oracle_connection",
"dbServerType": "Oracle",
"ConnectionString": "..."
}
],
เจเจฆเจพเจนเจฐเจจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจชเฉเจฐเจธเฉฐเจ:
internal sealed class DbContext : ApplicationContext
{
public DbContext()
{
AddEntity<SomeEntity>("mssql_connection");
AddEntity<MigratedSomeEntity>("oracle_connection");
AddEntity<AnotherEntity>("oracle_connection");
}
}
เจเฉเจเจฐ เจเจจเฉเจเจธเจผเจจ เจเจเจกเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเฉเจคเฉ เจเจ เจนเฉ, เจคเจพเจ "เจกเจฟเจซเจพเจฒเจ" เจจเจพเจฎเจ เจเฉเจจเฉเจเจธเจผเจจ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพเฅค
เจกเจพเจเจพเจฌเฉเจธ เจเฉเจฌเจฒ 'เจคเฉ เจเจเจพเจเจเจ เจฆเฉ เจธเจฟเฉฑเจงเฉ เจฎเฉเจชเจฟเฉฐเจ เจฎเจฟเจเจฐเฉ NHibernate เจเฉเจฒเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจพเจเฉ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจคเฉเจธเฉเจ xml เจซเจพเจเจฒเจพเจ เจ
เจคเฉ เจเจฒเจพเจธเจพเจ เจฐเจพเจนเฉเจ เจตเจฐเจฃเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจฏเฉเจจเจฟเจ เจเฉเจธเจเจพเจ เจตเจฟเฉฑเจ เจธเจเฉฑเจฌ เจฐเจฟเจชเฉเจเจผเจเจฐเฉเจเจ เจฆเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจฒเจฟเจเจค เจฒเจ, เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจนเฉ ViennaNET.TestUtils.Orm
.
ViennaNET.Orm.* เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉเจเจ เจชเฉเจฐเฉ เจเจฆเจพเจนเจฐเจจเจพเจ เจฎเจฟเจฒ เจธเจเจฆเฉเจเจ เจนเจจ
ViennaNET.เจฎเฉเจธเฉเจเจฟเฉฐเจเฅค*
เจเจคเจพเจฐเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจเฅค
เจเจคเจพเจฐเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ, เจตเฉฑเจ-เจตเฉฑเจ DBMSs เจฆเฉ เจจเจพเจฒ เจเจนเฉ เจชเจนเฉเฉฐเจ เจเฉเจฃเฉ เจเจ เจธเฉ, เจ
เจฐเจฅเจพเจค, เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจธเฉฐเจญเจพเจตเจฟเจค เจเจเฉเจเฉเจฐเจฟเจค เจชเจนเฉเฉฐเจ, เจญเจพเจตเฉเจ เจเจคเจพเจฐ เจชเฉเจฐเจฌเฉฐเจงเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจ เจนเฉเจตเฉเฅค เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ ViennaNET.Messaging
เจเจธ เจเจเฉเจเจฐเจจ เจฒเจ เจฌเจฟเจฒเจเฉเจฒ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉ, เจ
เจคเฉ ViennaNET.Messaging.MQSeriesQueue, ViennaNET.Messaging.RabbitMQQueue ะธ ViennaNET.Messaging.KafkaQueue
เจเฉเจฐเจฎเจตเจพเจฐ IBM MQ, RabbitMQ เจ
เจคเฉ Kafka เจฒเจ เจ
เจกเจพเจชเจเจฐ เจฒเจพเจเฉเจเจฐเจจ เจธเจผเจพเจฎเจฒ เจนเจจเฅค
เจเจคเจพเจฐเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ: เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจญเฉเจเจฃเจพเฅค
เจชเฉเจฐเจพเจชเจค เจเจฐเจจ 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉเฅค เจเฉฑเจฅเฉ 2 เจตเจฟเจเจฒเจช เจนเจจ: เจฒเจเจพเจคเจพเจฐ เจธเฉเจฃเจจ เจฒเจ เจ
เจคเฉ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจเฅค เจเจคเจพเจฐ เจจเฉเฉฐ เจฒเจเจพเจคเจพเจฐ เจธเฉเจฃเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจเจฒเจพเจธ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ IMessageProcessor
, เจเฉ เจเจเจฃ เจตเจพเจฒเฉ เจธเฉเจจเฉเจนเฉ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉเจตเฉเจเจพเฅค เจ
เฉฑเจเฉ, เจเจน เจเฉฑเจ เจเจพเจธ เจเจคเจพเจฐ เจจเจพเจฒ "เจฒเจฟเฉฐเจ" เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ; เจเจน เจฐเจเจฟเจธเจเจฐเฉเจธเจผเจจ เจฆเฉเจเจฐเจพ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ IQueueReactorFactory
เจธเฉฐเจฐเจเจจเจพ เจคเฉเจ เจเจคเจพเจฐ เจชเจเจพเจฃเจเจฐเจคเจพ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉ:
"messaging": {
"ApplicationName": "MyApplication"
},
"rabbitmq": {
"queues": [
{
"id": "myQueue",
"queuename": "lalala",
...
}
]
},
เจธเฉเจฃเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเฉ เจเจฆเจพเจนเจฐเจจ:
_queueReactorFactory.Register<MyMessageProcessor>("myQueue");
var queueReactor = queueReactorFactory.CreateQueueReactor("myQueue");
queueReactor.StartProcessing();
เจซเจฟเจฐ, เจเจฆเฉเจ เจธเฉเจตเจพ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจ เจคเฉ เจตเจฟเจงเฉ เจจเฉเฉฐ เจธเฉเจฃเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจฌเฉเจฒเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ, เจคเจพเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจคเจพเจฐ เจคเฉเจ เจธเจพเจฐเฉ เจธเฉเจจเฉเจนเฉ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจชเฉเจฐเฉเจธเฉเจธเจฐ 'เจคเฉ เจเจพเจฃเจเฉเฅค
เจเฉฑเจ เจซเฉเจเจเจฐเฉ เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจธเฉเจจเฉเจนเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ IMessagingComponentFactory
เจเฉฑเจ เจขเฉฐเจ เจนเฉ CreateMessageReceiver
เจเฉ เจเจฟ เจเฉฑเจ เจชเฉเจฐเจพเจชเจคเจเจฐเจคเจพ เจจเฉเฉฐ เจเจธ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจคเจพเจฐ เจคเฉเจ เจเฉฑเจ เจธเฉฐเจฆเฉเจธเจผ เจฆเฉ เจเจกเฉเจ เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจเจพ:
using (var receiver = _messagingComponentFactory.CreateMessageReceiver<TestMessage>("myQueue"))
{
var message = receiver.Receive();
}
เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเจฃ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเฉ เจตเจฐเจคเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ IMessagingComponentFactory
เจ
เจคเฉ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเจฃ เจตเจพเจฒเจพ เจฌเจฃเจพเจ:
using (var sender = _messagingComponentFactory.CreateMessageSender<MyMessage>("myQueue"))
{
sender.SendMessage(new MyMessage { Value = ...});
}
เจเฉฑเจ เจธเฉฐเจฆเฉเจธเจผ เจจเฉเฉฐ เจธเฉเจฐเฉเจ
เจฒเจพเจเจเจผ เจเจฐเจจ เจ
เจคเฉ เจกเฉเจธเฉเจฐเฉเจ
เจฒเจพเจเจเจผ เจเจฐเจจ เจฒเจ เจคเจฟเฉฐเจจ เจคเจฟเจเจฐ เจตเจฟเจเจฒเจช เจนเจจ: เจธเจฟเจฐเจซเจผ เจเฉเจเจธเจ, XML เจ
เจคเฉ JSON, เจชเจฐ เจเฉ เจฒเฉเฉ เจนเฉเจตเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจเฉฐเจเจฐเจซเฉเจธ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค IMessageSerializer ะธ IMessageDeserializer
.
เจ
เจธเฉเจ เจนเจฐเฉเจ เจเจคเจพเจฐ เจชเฉเจฐเจฌเฉฐเจงเจ เจฆเฉเจเจ เจตเจฟเจฒเฉฑเจเจฃ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจฐเฉฑเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเฉเจคเฉ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ ViennaNET.Messaging.MQSeriesQueue
เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเฉเจเจธเจ เจนเฉ เจจเจนเฉเจ, เจธเจเฉเจ เจฌเจพเจเจ เจธเฉเจจเฉเจนเฉ เจตเฉ เจญเฉเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ, เจ
เจคเฉ ViennaNET.Messaging.RabbitMQQueue
เจฐเฉเจเจฟเฉฐเจ เจ
เจคเฉ เจเจจ-เจฆเฉ-เจซเจฒเจพเจ เจเจคเจพเจฐ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉเฅค RabbitMQ เจฒเจ เจธเจพเจกเจพ เจ
เจกเจพเจชเจเจฐ เจฐเฉเจชเจฐ เจตเฉ RPC เจฆเฉ เจเฉเจ เจธเจฎเจพเจจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉ: เจ
เจธเฉเจ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจญเฉเจเจฆเฉ เจนเจพเจ เจ
เจคเฉ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจ
เจธเจฅเจพเจ เจเจคเจพเจฐ เจคเฉเจ เจเจตเจพเจฌ เจฆเฉ เจเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจเฉ เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจเจตเจพเจฌ เจธเฉฐเจฆเฉเจธเจผ เจฒเจ เจฌเจฃเจพเจ เจเจ เจนเฉเฅค
ViennaNET.CallContext
เจ
เจธเฉเจ เจเจคเจพเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจจเจพ เจธเจฟเจฐเจซเจผ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจตเจฟเจเจเจพเจฐ เจเจเฉเจเจฐเจฃ เจฒเจ เจเจฐเจฆเฉ เจนเจพเจ, เจธเจเฉเจ เจเฉฑเจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฟเจธเจฟเจเจผ เจตเจฟเจเจเจพเจฐ เจธเฉฐเจเจพเจฐ เจฒเจ เจตเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจเจพเจฅเจพ เจฆเฉ เจ
เฉฐเจฆเจฐเฅค เจเจธ เจจเจพเจฒ เจธเฉเจจเฉเจนเฉ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจชเฉเจฆเจพ เจนเฉเจ เจเจฟเจตเฉเจ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจฒเฉเจเจเจจ, เจ
เฉฐเจค-เจคเฉเจ-เจ
เฉฐเจค เจฒเฉเจเจฟเฉฐเจ เจฒเจ เจฌเฉเจจเจคเฉ เจชเจเจพเจฃเจเจฐเจคเจพ, เจธเจฐเฉเจค IP เจชเจคเจพ เจ
เจคเฉ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจกเฉเจเจพเฅค เจเจธ เจกเฉเจเจพ เจฆเฉ เจซเจพเจฐเจตเจฐเจกเจฟเฉฐเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจตเจฟเจเจธเจฟเจค เจเฉเจคเฉ เจนเฉ ViennaNET.CallContext
, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจธเฉเจตเจพ เจตเจฟเฉฑเจ เจฆเจพเจเจฒ เจนเฉเจฃ เจตเจพเจฒเฉ เจฌเฉเจจเจคเฉ เจคเฉเจ เจกเจพเจเจพ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ, เจฌเฉเจจเจคเฉ เจเจฟเจตเฉเจ เจเฉเจคเฉ เจเจ เจธเฉ, เจเฉฑเจ เจเจคเจพเจฐ เจฐเจพเจนเฉเจ เจเจพเจ Http เจฆเฉเจเจฐเจพ, เจเฉเจ เจซเจผเจฐเจ เจจเจนเฉเจ เจชเฉเจเจฆเจพเฅค เจซเจฟเจฐ, เจเจเจเจเฉเจเฉฐเจ เจฌเฉเจจเจคเฉ เจเจพเจ เจธเฉฐเจฆเฉเจธเจผ เจญเฉเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจกเฉเจเจพ เจจเฉเฉฐ เจธเฉฐเจฆเจฐเจญ เจคเฉเจ เจฒเจฟเจ เจเจพเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจธเจฟเจฐเจฒเฉเจเจพเจ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจธ เจคเจฐเฉเจนเจพเจ, เจ
เจเจฒเฉ เจธเฉเจตเจพ เจธเจนเจพเจเจ เจกเฉเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเฉ เจ
เจคเฉ เจเจธ เจจเฉเฉฐ เจเจธเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเจฐเจฆเฉ เจนเฉเฅค
เจคเฉเจนเจพเจกเฉ เจงเจฟเจเจจ เจฒเจ เจงเฉฐเจจเจตเจพเจฆ, เจ
เจธเฉเจ เจคเฉเจนเจพเจกเฉเจเจ เจเจฟเฉฑเจชเจฃเฉเจเจ เจ
เจคเฉ เจชเฉเฉฑเจฒ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจเจกเฉเจ เจเจฐเจฆเฉ เจนเจพเจ!
เจธเจฐเฉเจค: www.habr.com