Բովանդակություն

Ի՞նչ է ընդլայնումը

8X ծրագրային միջավայրը հնարավոր է ընդլայնել՝ ավելացնելով նոր նկարագրություններ, ինչպես նաև փոփոխել գործող նկարագրությունների վարքը։

Ընդլայնման ենթակա է և՛ կիրառությունների սերվերը, և՛ 8X կլիենտը։

Ընդլայնման միջոցով հնարավոր է՝

  1. ավելացնել նոր նկարագրություններ՝
  2. փոփոխել գործող նկարագրությունների վարքը՝ սահմանելով նկարագրությունների ընդլայնումներ՝
  3. փոփոխել գործող տպելու ձևանմուշներում հասանելի պարամետրերը:

Կազմակերպության սեփական նկարագրությունների և ընդլայնումների համար անհրաժեշտ ֆայլերի ստեղծում

Կազմակերպության սեփական նկարագրություն կամ ընդլայնում համար անհրաժեշտ է ունենալ՝

  • .as ընդլայնմամբ ֆայլ սկրիպտերում, որը պարունակում է նկարագրության մետատվյալները (ներքին անուն, հայերեն անվանում․․․)
  • .cs ընդլայնմամբ ֆայլ, որը պարունակում է սերվերում աշխատող տրամաբանությունը։

Ընդլայնման ավելացման եղանակներ

Ընդլայնումը կարող է ավելացվել երկու եղանակով`

  1. Դինամիկ - նկարագրության մետատվյալները (ներքին անուն, հայերեն անվանում․․․) (.as ֆայլ) և սերվերային տրամաբանությունը (.cs ֆայլ) ներմուծվում են տվյալների պահոց, անհրաժեշտության դեպքում բեռնվում և կոմպիլացվում։
  2. Ոչ դինամիկ - նկարագրությունների մետատվյալները (ներքին անուն, հայերեն անվանում․․․) (.as ֆայլ) ներմուծվում են տվյալների պահոց, իսկ սերվերային տրամաբանությունները պարունակվող C# դասերը ավելացվում են Class Library տիպի պրոյեկտում՝ ՀԾ-Բանկի հիմնական լուծման ֆայլում (ArmSoft.AS8X.Bank.sln):

Ընդլայնումների դինամիկ ավելացում SysCon գործիքով ներմուծման միջոցով

  • Ստեղծել նկարագրության համար անհրաժեշտ ֆայլերը (.as և .cs ֆայլեր):
  • .as ընդլայնմամբ ֆայլում ավելացնել CSSOURCE դաշտ, որը ցույց է տալիս .cs ֆայլի հարաբերական ճանապարհը .as-ի նկատմամբ։
  • .as, .cs ֆայլերի ձևավորումից և լրացումից հետո անհրաժեշտ է .as ընդլայնմամբ ֆայլը ներմուծել տվյալների պահոց SysCon գործիքի միջոցով, որի արդյունքում կներմուծվի նաև .cs ֆայլը։
  • Դրանից հետ ծրագիրը (կիրառությունների սերվերը) անհրաժեշտ պահին կբեռնի այդ ֆայլերը, կկոմպիլացնի C# դասը և կաշխատացնի դասի տրամաբանությունը։

Այս եղանակի առավելություններն են՝

  • Փոփոխությունները կատարվում են արագ՝ կիրառությունների սերվերը ճանաչում է փոփոխությունները և սկսում օգտագործել ներմուծումից հետո։
  • Հնարավոր է փոփոխել միայն մեկ կամ մի քանի ֆայլերի պարունակություններ և ներմուծել՝ առանց փոփոխելու մնացած ֆայլերը։
  • Ֆայլերում փոփոխություններ կատարելուց և ներմուծելուց հետո չկա կիրառությունների սերվերի վերագործարկման անհրաժեշտություն։

Այս եղանակի թերություններն են՝

  • Յուրաքանչյուր անգամ նկարագրությանը դիմելիս կատարվում է հարցում տվյալների պահոց, որը ըստ timestamp-ի ստուգում է նկարագրության վերջին փոփոխման ժամանակը և թարմացման դեպքում բեռնում է այն, կոմպիլացնում և գործարկում, հակառակ դեպքում օգտագործում է նախկին կոմպիլացված տարբերակը։
  • Նկարագրության յուրաքանչյուր նոր բեռնված տարբերակի համար ստեղծվում է assembly, ինչը հանգեցնում է հիշողության ավելորդ ծանրաբեռնվածության։
  • Հնարավոր չէ կազմել այնպիսի C# դասեր, որոնք գտնվում են տարբեր ֆայլերում և հղվում են մեկը մյուսի վրա (Մի ֆայլում գտնվող C# դասերը կարող են հղվել մեկը մյուսի վրա)։

alt text
SysCon-ով ֆայլերի ներմուծում և դինամիկ կոմպիլյացիա

Ընդլայնումների ոչ դինամիկ ավելացում .NET գրադարանների տեղադրման միջոցով

  • Ստեղծել նկարագրության համար անհրաժեշտ ֆայլերը (.as և .cs ֆայլեր):
  • .as ընդլայնմամբ ֆայլը ներմուծել տվյալների պահոց SysCon գործիքի միջոցով:
  • ՀԾ-Բանկի հիմնական լուծման ֆայլում (ArmSoft.AS8X.Bank.sln) նախապես ստեղծված Class Library տիպի պրոյեկտում անհրաժեշտ է ավելացնել նկարագրության C# ֆայլը։

Տե՛ս նաև

Կազմակերպության սեփական նկարագրությունները և ընդլայնումները պարունակող պրոյեկտի ստեղծում:

  • Կոմպիլյացնել պրոյեկտը, որի արդյունքում ձևավորվում է .dll ընդլայնմամբ ֆայլ:

Կարևոր

Նկարագրության C# դասի համապատասխան ատրիբուտում անհրաժեշտ է նշել նկարագրության ներքին անունը, որը պետք է համընկնի .as ֆայլի NAME դաշտում նշված արժեքի հետ։

Օրինակ

[DocumentExtender("Cadres")]
public class CadresExtended : DocumentExtender
  • appsettings.json կոնֆիգուրացիոն ֆայլի Extensions բաժնում լրացնել առաջացած ընդլայնող dll-ի մասին ինֆորմացիան (անուն, գտնվելու ճանապարհ…) և dll-ը տեղադրել Extensions բաժնի Location դաշտում նշված հասցեում։

Այս եղանակի առավելություններն են՝

  • Պրոյեկում ավելացված C# դասերը կարող են հղվել մեկը մյուսի վրա։
  • Պրոյեկտին հնարավոր է միացնել աշխատանքի համար անհրաժեշտ գրադարաններ (Library-ներ)։
  • Նկարագրություններին դիմելիս չեն կատարվում լրացուցիչ հարցումներ տվյալների պահոց և չեն ստեղծվում լրացուցիչ assembly-ներ յուրաքանչյուր նկարագրության համար։

Այս եղանակի թերություններն են՝

  • Պրոյեկտի դասերում փոփոխություններ կատարելուց հետո անհրաժեշտ է կրկին կոմպիլացնել պրոյեկտը, արդյունքում ձևավորված .dll ընդլայնմամբ ֆայլը տեղադրելով appsettings.jsonExtensions բաժնի Location դաշտում նշված հասցեում։ Արդյունքում առաջանում է կիրառությունների սերվերի վերագործարկման անհրաժեշտություն։

alt text dll-ը տեղադրված ծրագրի կողքին

Տարբերակի փոփոխումից հետո անհրաժեշտ քայլեր

ՀԾ-Բանկ համակարգի նոր տարբերակի կամ ենթատարբերակի տեղադրումից առաջ անհրաժեշտ է՝

  • get անել տարբերակի համապատասխան ՀԾ-Բանկի հիմնական լուծման կոդը։
  • Ավելացնել կազմակերպության սեփական նկարագրությունները և ընդլայնումները պարունակող պրոյեկտը։
  • Build անել պրոյեկտը, սխալների առկայության դեպքում ուղղել դրանք և կրկին build անել։
  • appsettings.json կոնֆիգուրացիոն ֆայլի Extensions բաժնում լրացնել առաջացած ընդլայնող dll-ի մասին ինֆորմացիան (անուն, գտնվելու ճանապարհ…) և dll-ը տեղադրել Extensions բաժնի Location դաշտում նշված հասցեում։