Raiffeisenbank .NET เชกเซเชตเชฒเชชเชฐ เชธเชฎเซเชฆเชพเชฏ เชตเชฟเชฏเซเชจเชพเชจเซเชเชจเซ เชธเชพเชฎเชเซเชฐเซเชจเซ เชธเชเชเซเชทเชฟเชชเซเชคเชฎเชพเช เชธเชฎเซเชเซเชทเชพ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซ เชเซ. เช
เชฎเซ เช เชเซเชตเซ เชฐเซเชคเซ เช
เชจเซ เชถเชพ เชฎเชพเชเซ เชเชตเซเชฏเชพ เชคเซ เชตเชฟเชถเซ,
เช เชฒเซเชเชฎเชพเช, เช
เชฎเซ เชตเชฟเชคเชฐเชฟเชค เชตเซเชฏเชตเชนเชพเชฐเซ, เชเชคเชพเชฐ เช
เชจเซ เชกเซเชเชพเชฌเซเชธเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชนเชเซ เชธเซเชงเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชคเซ เชฒเชพเชเชฌเซเชฐเซเชฐเซเชเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชเชถเซเช, เชเซ เช
เชฎเชพเชฐเชพ GitHub เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช เชฎเชณเซ เชถเชเซ เชเซ (
เชตเชฟเชฏเซเชจเชพเชจเซเช.เชธเชพเชเชพเชธ
เชเซเชฏเชพเชฐเซ เชเซเช เชชเซเชฐเซเชเซเชเซเช DDD เช
เชจเซ เชฎเชพเชเชเซเชฐเซเชธเชฐเซเชตเชฟเชธ เชเชฐเซเชเชฟเชเซเชเซเชเชฐ เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชเซเชฏเชพเชฐเซ เชฌเชฟเชเชจเซเชธ เชฒเซเชเชฟเชเชจเซ เชตเชฟเชตเชฟเชง เชธเซเชตเชพเชเชฎเชพเช เชตเชฟเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชตเชฟเชคเชฐเชฟเชค เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชฎเชฟเชเซเชจเชฟเชเชฎเชจเซ เช
เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชค เชธเชพเชฅเซ เชธเชเชฌเชเชงเชฟเชค เชธเชฎเชธเซเชฏเชพ เชเชญเซ เชฅเชพเชฏ เชเซ, เชเชพเชฐเชฃ เชเซ เชเชฃเซ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช เชเชฃเซ เชตเชเชค เชเช เชธเชพเชฅเซ เช
เชจเซเช เชกเซเชฎเซเชจเซเชธเชจเซ เช
เชธเชฐ เชเชฐเซ เชเซ. เชคเชฎเซ เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชเชตเชพ เชฎเชฟเชเซเชจเชฟเชเชฎเซเชธเชฅเซ เชชเชฐเชฟเชเชฟเชค เชฅเช เชถเชเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ,
เช เชฎเชพเชฐเชพ เชชเซเชฐเซเชเซเชเซเชเซเชธเชฎเชพเช, เช เชฎเซ เชเช เชธเชฐเชณ เชชเชฃ เชเชชเชฏเซเชเซ เชฎเชฟเชเซเชจเชฟเชเชฎ เช เชฎเชฒเชฎเชพเช เชฎเซเชเซเชฏเซเช เชเซ: เชเช เชเชพเชฅเชพ, เช เชฅเชตเชพ เชคเซเชจเชพ เชฌเชฆเชฒเซ เชเชฐเซเชเซเชธเซเชเซเชฐเซเชถเชจ-เชเชงเชพเชฐเชฟเชค เชเชพเชฅเชพ. เชคเซเชจเซ เชธเชพเชฐ เชจเซเชเซ เชฎเซเชเชฌ เชเซ: เชคเซเชฏเชพเช เชเช เชเซเชเซเชเชธ เชตเซเชฏเชตเชธเชพเชฏ เชฆเซเชถเซเชฏ เชเซ เชเซเชฎเชพเช เชตเชฟเชตเชฟเชง เชธเซเชตเชพเชเชฎเชพเช เชเซเชฐเชฎเชฟเช เชฐเซเชคเซ เชเชพเชฎเชเซเชฐเซ เชเชฐเชตเซ เชเชฐเซเชฐเซ เชเซ, เช เชจเซ เชเซ เชเซเชเชชเชฃ เชชเชเชฒเชพ เชชเชฐ เชเซเช เชธเชฎเชธเซเชฏเชพ เชเชญเซ เชฅเชพเชฏ, เชคเซ เช เชเชพเชเชจเชพ เชคเชฎเชพเชฎ เชชเชเชฒเชพเช เชฎเชพเชเซ เชฐเซเชฒเชฌเซเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเซเชฒ เชเชฐเชตเซ เชเชฐเซเชฐเซ เชเซ, เชเซเชฏเชพเช เชคเซ เชเซ. เชชเซเชฐเซ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเซ. เชเชฎ, เชเชพเชฅเชพเชจเชพ เช เชเชคเซ, เชธเชซเชณเชคเชพเชจเซ เช เชจเซเชฒเชเซเชทเซเชจเซ, เช เชฎเซ เชคเชฎเชพเชฎ เชกเซเชฎเซเชจเซเชธเชฎเชพเช เชธเซเชธเชเชเชค เชกเซเชเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเซเช เชเซเช.
เช เชฎเชพเชฐเซเช เช เชฎเชฒเซเชเชฐเชฃ เชนเชเซ เชชเชฃ เชคเซเชจเชพ เชฎเซเชณเชญเซเชค เชธเซเชตเชฐเซเชชเชฎเชพเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ เช เชจเซ เช เชจเซเชฏ เชธเซเชตเชพเช เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพเชจเซ เชเซเชเชชเชฃ เชชเชฆเซเชงเชคเชฟเชเชจเชพ เชเชชเชฏเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเซเช เชจเชฅเซ. เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชฎเซเชถเซเชเซเชฒ เชจเชฅเซ: เชซเชเซเชค เชฌเซเช เชเชฌเซเชธเซเชเซเชฐเซเชเซเช เชเซเชฒเชพเชธ 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 เชฆเซเชตเชพเชฐเชพ เชตเชฟเชตเชฟเชง เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชธเซเชคเชเชพเชฒเชฏเซเชจเซ เชธเชฎเซเชน. เช เชฎเซ เชฒเชฟเชเซเชตเชฟเชฌเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ 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 เชฅเซ เชฌเซเชเชพ. เชเชฐเซเชฐเซ เชเชจเซเชเซเชถเชจ เชชเชธเชเชฆ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชชเชฆเซเชงเชคเชฟ เช เชจเซ เชคเซเชฅเซ, เชเซเชเซเชเชธ เชเชจเซเชเชฟเชเซ เชเซเชฒเชพเชธ เชฎเชพเชเซ เชชเซเชฐเชฆเชพเชคเชพ (เชเซเชจเชพ เชฎเชพเชเซ เชกเซเชเชพเชฌเซเช เชเซเชทเซเชเชเซ เชชเชฐ เชฎเซเชชเชฟเชเช เชฒเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ) เชฌเชพเชเชจเซเชกเซเชก เชเซเชจเซเชเซเชเซเชธเซเช เชเซเชฒเชพเชธเชฎเชพเช เชเชจเซเชเชฟเชเซเชจเซ เชจเซเชเชงเชฃเซ เชฆเซเชตเชพเชฐเชพ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ (เชกเซเชฎเซเชจ เชเชจเซเชเชฟเชเซเชจเซ เชจเซเชเชงเชฃเซ เชฎเชพเชเซเชจเซ เชชเชฆเซเชงเชคเชฟ เชงเชฐเชพเชตเซ เชเซ) เช เชฅเชตเชพ เชคเซเชจเชพ เช เชจเซเชเชพเชฎเซ 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");
}
}
เชเซ เชเชจเซเชเซเชถเชจ ID เชธเซเชชเชทเซเช เชเชฐเซเชฒ เชจเชฅเซ, เชคเซ เชชเชเซ "เชกเชฟเชซเซเชฒเซเช" เชจเชพเชฎเชจเชพ เชเซเชกเชพเชฃเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชกเซเชเชพเชฌเซเช เชเซเชทเซเชเชเซ เชชเชฐ เชเชจเซเชเชฟเชเซเชจเซเช เชกเชพเชฏเชฐเซเชเซเช เชฎเซเชชเชฟเชเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค NHibernate เชเซเชฒเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฒเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเชฎเซ xml เชซเชพเชเชฒเซ เช
เชจเซ เชตเชฐเซเชเซ เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชฃเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ. เชเชเชฎ เชเชธเซเชเซเชเชฎเชพเช เชธเซเชเชฌ เชฐเซเชชเซเชเซเชเชฐเซเชเชจเชพ เช
เชจเซเชเซเชณ เชฒเซเชเชจ เชฎเชพเชเซ, เชเช เชชเซเชธเซเชคเชเชพเชฒเชฏ เชเซ ViennaNET.TestUtils.Orm
.
ViennaNET.Orm.* เชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเชพ เชธเชเชชเซเชฐเซเชฃ เชเชฆเชพเชนเชฐเชฃเซ เชฎเชณเซ เชถเชเซ เชเซ
ViennaNET.Messaging.*
เชเชคเชพเชฐ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชธเซเชคเชเชพเชฒเชฏเซเชจเซ เชธเชฎเซเชน.
เชเชคเชพเชฐ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเชฟเชตเชฟเชง 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