Raiffeisenbank .NET āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧ ViennaNET-āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻāĻ˛ā§āĻā§āĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻā§āĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻāĻ¸ā§āĻāĻŋ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§,
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨, āĻ¸āĻžāĻ°āĻŋ āĻāĻŦāĻ āĻĄā§āĻāĻžāĻŦā§āĻ¸āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨āĻ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦ, āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° GitHub āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (
āĻāĻŋāĻ¯āĻŧā§āĻ¨āĻžāĻ¨ā§āĻ.āĻ¸āĻžāĻāĻžāĻ¸
āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻĄāĻŋāĻĄāĻŋāĻĄāĻŋ āĻāĻŦāĻ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§, āĻ¤āĻāĻ¨ āĻ¯āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻā§āĻĄāĻŧā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻ
āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻāĻžāĻ§āĻŋāĻ āĻĄā§āĻŽā§āĻ¨āĻā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻāĻŋ: āĻāĻāĻāĻŋ āĻāĻžāĻĨāĻž, āĻŦāĻž āĻŦāĻ°āĻ āĻāĻāĻāĻŋ āĻ āĻ°ā§āĻā§āĻ¸ā§āĻā§āĻ°ā§āĻļāĻ¨-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻāĻ˛ā§āĻĒāĨ¤ āĻāĻ° āĻ¸āĻžāĻ°āĻŽāĻ°ā§āĻŽāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ: āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻā§āĻ¨āĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§ āĻā§āĻ¨āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ āĻ¤āĻŦā§ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°ā§āĻ˛āĻŦā§āĻ¯āĻžāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻāĻāĻžāĻŦā§, āĻāĻ˛ā§āĻĒā§āĻ° āĻļā§āĻˇā§, āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻŽā§āĻ¨ā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻĄā§āĻāĻž āĻĒāĻžāĻāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻāĻ¨āĻ āĻ¤āĻžāĻ° āĻŽā§āĻ˛āĻŋāĻ āĻāĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻā§āĻ¨āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻĻā§āĻ§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ: āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ¸ āĻ ā§āĻ¯āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻžāĻā§āĻ āĻā§āĻ˛āĻžāĻ¸ SagaBase-āĻāĻ° āĻāĻāĻāĻŋ āĻŦāĻāĻļāĻ§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ 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
.
āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨āĻ āĻāĻ°āĻ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻĨā§āĻā§ āĻ§āĻžāĻĒā§ āĻ§āĻžāĻĒā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻĨā§āĻā§ āĻāĻ°ā§āĻāĻāĻŋāĨ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻāĻ¯ā§āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻ¤āĻžāĻ, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻ¤ā§āĻ¤āĻž āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§ (āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻā§āĻŦāĻŋāĻ˛ā§ āĻŽā§āĻ¯āĻžāĻĒāĻŋāĻ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ) āĻŦāĻžāĻāĻ¨ā§āĻĄā§āĻĄ āĻāĻ¨āĻā§āĻā§āĻ¸āĻ āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻĄā§āĻŽā§āĻ¨ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§) āĻŦāĻž āĻāĻ° āĻāĻ¤ā§āĻ¤āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ°ā§ 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.āĻŽā§āĻ¸ā§āĻāĻŋāĻāĨ¤*
āĻ¸āĻžāĻ°āĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻāĨ¤
āĻ¸āĻžāĻ°āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ DBMS-āĻāĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¯āĻĨāĻž, āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻāĻāĻ¨āĻŋāĻĢāĻžāĻāĻĄ āĻĒāĻ¨ā§āĻĨāĻž, āĻāĻŋāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§āĻˇā§āĨ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ 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
āĻāĻŽāĻ°āĻž āĻ¸āĻžāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻ¯āĻŧ, āĻāĻāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯āĻ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻ§ā§āĻ¯ā§āĨ¤ āĻāĻ° āĻĢāĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ˛āĻāĻāĻ¨, āĻāĻ¨ā§āĻĄ-āĻā§-āĻāĻ¨ā§āĻĄ āĻ˛āĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ°āĻŋāĻā§āĻ¯āĻŧā§āĻ¸ā§āĻ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ°, āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻāĻĒāĻŋ āĻ
ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĄā§āĻāĻžāĻ° āĻŽāĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻĄā§āĻāĻž āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°ā§āĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻ āĻĄā§āĻāĻž āĻĢāĻ°āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ ViennaNET.CallContext
, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻĒā§āĻ°āĻŦā§āĻļā§āĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧā§ˇ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻāĻžāĻŦā§ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦāĻž Http āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻā§āĻ¨ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ¨āĻžāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻŦāĻšāĻŋāĻ°ā§āĻāĻžāĻŽā§ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻŦāĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻāĻā§, āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻŽā§āĻ!
āĻāĻ¤ā§āĻ¸: www.habr.com