AS-8X անցման համար փոփոխություններ
Այստեղ նկարագրված են հիմնական փոփոխությունները նախատեսված AS-8X պրոյեկտի անցման համար։
Նախապատրաստական քայլեր
- Տեղադրել VS 2019-ը իր բոլոր թարմացումներով։
- Տեղադրել AS8X-ի VS 2019-ի ընդլայնումները՝
    - Կոդ գեներատորը` ArmSoft.AS8X.CodeGen.dll,
 Run as admin “$/AS-8X/bin/ArmSoft.AS8X.CodeGen.bat”
- ArmSoft.AS8X.VSIX
 
- Կոդ գեներատորը` ArmSoft.AS8X.CodeGen.dll,
- Կարգավորման ֆայլում ավելացնել
- Փոխել տվյալների աղբյուրի կատարման ռեժիմը նշված երկու տարբերակներից մեկով՝
    - Համակարգային նկարագրություններ -> Փոխել կատարման ռեժիմը -> Կատարել կիրառությունների սերվերի վրա
- ProcessingMode = 1;(մանրամասն)
 
Տվյալների աղբյուրի տեղափոխում
Բոլոր տեղերում DsName-ը տվյալների աղբյուրի ներքին անվանումն է։
- DsName.CodeGen.tt- Եթե կարիք կա, ապա թարմացնել Constants.cs-ը ևResources.cs-ը (Run custom tool)։
- AS-8X պրոյեկտում ստեղծել DsName.CodeGen.tt ֆայլը։ Համոզվել, որ լրացված է TextTemplatingFileGeneratorարժեքը ֆայլի հատկություններիCustom Toolդաշտում։
- DsName.CodeGen.ttֆայլում տեղադրել հետյալ կոդը համապատասխան Path-ով, DS Name-ով և NameSpace-ով.- <#@ template debug="false" hostspecific="true" language="C#" #> <#@ assembly name="ArmSoft.AS8X.CodeGen" #> <#@ import namespace="ArmSoft.AS8X.CodeGen" #> <#@ output extension=".cs" #> <# // DSParser's parameters: CodeGen.xml's path, FileName with Path, DS Name, NameSpace string code = DSParser.Parse(this.Host.ResolvePath("..\\..\\CodeGen.xml"), "\\DsFolderRelativePath\\DsName.as", "DsName", "NameSpace"); #> <#= code #>- Եթե ճանապարհները ճիշտ են, ապա - Run custom toolկանչելուց հետո կստեղծվի DsName.CodeGen.cs ֆայլը՝ գեներացված կոդով։
 
- Եթե կարիք կա, ապա թարմացնել 
- DsName.cs- Նախորդ ֆայլի կողքին ստեղծել DsName.csդասը՝ public կոնստրուկտորով: Կոնստրուկտորը կարող է մուտքային տարբեր սերվիսային օբյեկտներ սպասել, որոնք կփոխանցվեն միջուկի կողմից։public partial class DsName { private readonly IDBService DBService; public DsName(Resources resources, IDBService dbService) : this(resources) { this.DBService = dbService; } }
- Եթե տվյալների աղբյուրը պետք է հաշվարկվի մեկ ISN-ով, թղթապանակների տողի թարմացման համար, ապա պետք է IsUpdatableմեթոդը գերբեռնել և վերադարձնելtrue։public override bool IsUpdatable => true;Լռությամբ տվյալների աղբյուրը մեկ ISN-ով հաշվարկվող չէ։ 
- Ձևավորել Sql հարցումը՝ գերբեռնելով MakeSQLCommandAsyncմեթոդը.protected override Task<SqlCommand> MakeSQLCommandAsync(DataSourceArgs<Param> args, CancellationToken stoppingToken) { var cmd = this.DBService.Connection.CreateCommand(); cmd.CommandText = "..."; cmd.Parameters.Add(...); return Task.FromResult(cmd); }MakeSQLCommandAsyncմեթոդը կարելի է դարձնելasync, երբ կարիք կա լրացուցիչ ասինխրոն կանչեր կատարելու։ Այսպես՝protected override async Task<SqlCommand> MakeSQLCommandAsync(DataSourceArgs<Param> args, CancellationToken stoppingToken) { var cmd = this.DBService.Connection.CreateCommand(); if (await parametersService.GetBoolParamAsync()) { ... } // cmd.CommandText = "..."; return cmd; }
 
- Նախորդ ֆայլի կողքին ստեղծել 
Գեներատորի աշխատանք
Գեներատորի կողմից ավտոմատ ձևավորվող կոդը կարելի է փոփոխել սկրիպտում տվյալների աղբյուրի նկարագրությունում հետևյալ հատկությունները միացնելով։
- Սյունակների հատկություններ
- Պարամետրերի հատկություններ