From d54e27faa5da3a4faefed75be167bb9e5e8d0473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Tue, 18 Aug 2020 16:01:07 +0300 Subject: [PATCH] post improved --- ...ate-DevExtreme-To-ABP-Based-Application.md | 237 ------------------ ...ing-DevExtreme-In-ABP-Based-Application.md | 211 +++++++++++++++- .../devextreme-js.png | Bin 5898 -> 8101 bytes .../devextreme-notes.txt | 56 ----- .../jquery-head.png | Bin 8168 -> 0 bytes .../2020-08-18-DevExtreme-With-ABP/yarn.png | Bin 45922 -> 0 bytes 6 files changed, 204 insertions(+), 300 deletions(-) delete mode 100644 docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Intergrate-DevExtreme-To-ABP-Based-Application.md delete mode 100644 docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-notes.txt delete mode 100644 docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/jquery-head.png delete mode 100644 docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/yarn.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Intergrate-DevExtreme-To-ABP-Based-Application.md b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Intergrate-DevExtreme-To-ABP-Based-Application.md deleted file mode 100644 index eb4d2d1034..0000000000 --- a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Intergrate-DevExtreme-To-ABP-Based-Application.md +++ /dev/null @@ -1,237 +0,0 @@ -## Integrate DevExtreme Packages to ABP Framework Based Applications - -Hi, in this step-by-step article, I will show you how to integrate DevExtreme components into ABP Framework based applications. - -## Install DevExtreme - -You can follow [this documentation](https://js.devexpress.com/Documentation/17_1/Guide/ASP.NET_MVC_Controls/Prerequisites_and_Installation/) to install devexpress packages. - -## Preparing the Project - -### Startup template and the initial run - -Abp Framework offers startup templates to get into the business faster. We can download a new startup template using Abp CLI: - -`abp new DevExtremeSample -m none` - -After the download is finished, we run `DevExtremeSample.DbMigrator` project to create the database and seed initial data (admin user, role, etc). Then we run `DevExtremeSample.Web` to see our application working. - -> _Default admin username is **admin** and password is **1q2w3E\***_ - -![initial-project](initial-project.png) - -### Adding DevExtreme Nuget Packages - -Add following `PackageReference` to your `DevExtremeSample.Application.Contracts` project. - -`` - -Add following `PackageReference` to your `DevExtremeSample.Application.Web` project. - -`` - -> Please remember that, you must add _"DevExpress NuGet Feed"_ to your **Nuget Package Sources**. Check [this documentation](https://js.devexpress.com/Documentation/17_1/Guide/ASP.NET_MVC_Controls/Prerequisites_and_Installation/) to more information. - -After adding new packages, do `dotnet restore` for your projects. - -### Adding DevExtreme NPM Packages - -Open `package.json` file in your `DevExtremeSample.Application.Web` project and add following package depency to `depencies` section. - -`"devextreme": "^20.1.5"` - -Then just open `DevExtremeSample.Application.Web` project folder via CLI and run `yarn` command. - -This will add the DevExtreme npm packages to our node_modules folder as seen below. - -![yarn](yarn.png) - -We should add some mappings to move required files to under `wwwroot/libs` folder. - -Open `abp.resourcemapping.js` file in your `DevExtremeSample.Application.Web` project and replace the content of file with following. - -```javascript -module.exports = { - aliases: {}, - mappings: { - "@node_modules/devextreme/dist/**/*": "@libs/devextreme/", - }, -}; -``` - -Open `DevExtremeSample.Application.Web` project folder via CLI and run `gulp` command. This action will do mappings as we described before. - -![gulp](gulp.png) - -You can see `devextreme` folder in your `wwwroot/libs` folder. - -![wwwroot-lib](wwwroot-lib.png) - -### Adding DevExtreme Css Files To Global Bundles - -Open your `DevExtremeSampleWebModule.cs` file in your `DevExtremeSample.Application.Web` project and add following code to `ConfigureServices` method. - -```csharp -Configure(options => -{ - options - .StyleBundles - .Get(StandardBundles.Styles.Global) - .AddFiles("/libs/devextreme/css/dx.common.css") - .AddFiles("/libs/devextreme/css/dx.light.css"); -}); -``` - -### Adding DevExtreme Js Files - -We cannot add DevExtreme js packages to `Global Script Bundles`, because DevExtreme js packages requires to located in the `` section. - -But we can create `ViewComponent` and render it at `` section with `AbpLayoutHookOptions`. - -Create `Components` folder in your `DevExtremeSample.Application.Web` project. Then create `DevExtremeJs` folder under `Components` folder. - -Create `Default.cshtml` file in your `DevExtremeJs` folder and paste following codes to your file. - -```csharp -@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling - - - - - -``` - -Create `DevExtremeJsViewComponent.cs` file in your `DevExtremeJs` folder and paste following codes to your file. - -```csharp -namespace DevExtremeSample.Web.Components.DevExtremeJs -{ - public class DevExtremeJsViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View("/Components/DevExtremeJs/Default.cshtml"); - } - } -} -``` - -After that, your `*.Web` project should be like as following. - -![devextreme-js](devextreme-js.png) - -Then we can add this view component to `` section by using **hooks**. - -Open your `DevExtremeSampleWebModule.cs` file in your `DevExtremeSample.Application.Web` project and add following code to `ConfigureServices` method. - -```csharp -Configure(options => -{ - options.Add( - LayoutHooks.Head.Last, //The hook name - typeof(DevExtremeJsViewComponent) //The component to add - ); -}); -``` - -### Manipulate `JQueryScriptContributor` - -In ABP Framework, all javascript files are located at the end of file by default. But DevExtreme is using `inline` javascript codes and those are requires the `jQuery` package located at `` section. - -ABP Framework has a one contributor that named `JQueryScriptContributor` for `jQuery` packages. It has `jQuery` and some abp packages. We need to manipulate that. - -So create `jQuery` folder in `Components` folder at your `*.Web` project. - -Create `Default.cshtml` file in your `jQuery` folder and paste following codes to your file. - -```csharp -@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling - - -``` - -Create `JqueryHeadViewComponent.cs` file in your `jQuery` folder and paste following codes to your file. - -```csharp -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace DevExtremeSample.Web.Components.jQuery -{ - public class JqueryHeadViewComponent : AbpViewComponent - { - public IViewComponentResult Invoke() - { - return View("/Components/jQuery/Default.cshtml"); - } - } -} -``` - -After that, your `*.Web` project should be like as following. - -![jquery-head](jquery-head.png) - -Then replace your `AbpLayoutHookOptions` with following code block to add `JqueryHeadViewComponent` to `` section. - -```csharp -Configure(options => -{ - options.Add( - LayoutHooks.Head.Last, //The hook name - typeof(JqueryHeadViewComponent) //The component to add - ).Add( - LayoutHooks.Head.Last, //The hook name - typeof(DevExtremeJsViewComponent) //The component to add - ); -}); -``` - -Now create `MyScriptContributor.cs` file at your `*.Web` project and paste following codes to your file. - -```csharp -using System.Collections.Generic; -using Volo.Abp.AspNetCore.Mvc.UI.Bundling; -using Volo.Abp.AspNetCore.Mvc.UI.Packages.Core; -using Volo.Abp.Modularity; - -namespace DevExtremeSample.Web -{ - [DependsOn(typeof(CoreScriptContributor))] - public class MyScriptContributor : BundleContributor - { - public override void ConfigureBundle(BundleConfigurationContext context) - { - context.Files.AddIfNotContains("/libs/abp/jquery/abp.jquery.js"); - } - } -} -``` - -Finally, we replace the `JQueryScriptContributor` with `MyScriptContributor`. - -Replace the `AbpBundlingOptions` at the `DevExtremeSampleWebModule.cs` file with the following code block. - -```csharp -Configure(options => -{ - options - .StyleBundles - .Get(StandardBundles.Styles.Global) - .AddFiles("/libs/devextreme/css/dx.common.css") - .AddFiles("/libs/devextreme/css/dx.light.css"); - - options.ScriptBundles - .Get(StandardBundles.Scripts.Global) - .Contributors - .Replace(); -}); -``` - -### Result - -After following this step-by-step article you can use all DevExtreme features in your project. - -![devexp-result](devexp-result.gif) - -> The result example is created by following [this documentation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/ProgressBar/Overview/NetCore/Light/). diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md index c2c2ddeed7..38f947d19b 100644 --- a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md +++ b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md @@ -1,14 +1,211 @@ ## Using DevExtreme in ABP Based Application -Hi, in this article, I will explain some cases of DevExtreme usages in ABP based application. +Hi, in this step-by-step article, I will show you how to integrate DevExtreme components into ABP Framework based applications. -This article will reference [this](https://github.com/abpframework/abp-samples/tree/master/DevExtreme-Mvc) sample. +## Install DevExtreme -## Integrate DevExtreme Packages to ABP Framework Based Applications +You can follow [this documentation](https://js.devexpress.com/Documentation/17_1/Guide/ASP.NET_MVC_Controls/Prerequisites_and_Installation/) to install devexpress packages. -Please follow [Intergrate DevExtreme documentation](Intergrate-DevExtreme-To-ABP-Based-Application.md) to see each step. This article will not include setup informations. +## Preparing the Project -## Data Storage +### Startup template and the initial run + +Abp Framework offers startup templates to get into the business faster. We can download a new startup template using Abp CLI: + +`abp new DevExtremeSample -m none` + +After the download is finished, we run `DevExtremeSample.DbMigrator` project to create the database and seed initial data (admin user, role, etc). Then we run `DevExtremeSample.Web` to see our application working. + +> _Default admin username is **admin** and password is **1q2w3E\***_ + +![initial-project](initial-project.png) + +### Adding DevExtreme Nuget Packages + +Add the `DevExtreme.AspNet.Core` package to your `DevExtremeSample.Application.Contracts` project. + +``` +dotnet add package DevExtreme.AspNet.Core +``` + +Add the `DevExtreme.AspNet.Data` package to your `DevExtremeSample.Web` project. + +``` +dotnet add package DevExtreme.AspNet.Data +``` + +> Please remember that, you must add _"DevExpress NuGet Feed"_ to your **Nuget Package Sources**. Check [this documentation](https://js.devexpress.com/Documentation/17_1/Guide/ASP.NET_MVC_Controls/Prerequisites_and_Installation/) to more information. + +### Adding DevExtreme NPM Depencies + +Open your `DevExtremeSample.Web` project folder with console and add `devextreme` package depency via `npm` or `yarn`. + +`npm install devextreme` or `yarn add devextreme` + +This will add the DevExtreme npm packages to our node_modules folder and `package.json` file as seen below. + +### Adding Resource Mappings + +The `devextreme` npm package is saved under `node_modules` folder. We need to move them in our `wwwroot/libs` folder to use them in our web project. To add packages in our application, we need to create some mappings by using **Abp Resource Mapping**. + +Open `abp.resourcemapping.js` file in your `DevExtremeSample.Web` project and add following definition to inside `mappings` object. + +`"@node_modules/devextreme/dist/**/*": "@libs/devextreme/"` + +After that, the `abp.resourcemapping.js` file should looks like as following. + +``` +module.exports = { + aliases: {}, + mappings: { + "@node_modules/devextreme/dist/**/*": "@libs/devextreme/", + }, +}; +``` + +Open your `DevExtremeSample.Web` project folder with console and run `gulp` command. This action will do mappings as we described before. + +![gulp](gulp.png) + +You can see `devextreme` folder in your `wwwroot/libs` folder. + +![wwwroot-lib](wwwroot-lib.png) + +### Adding DevExtremeStyleContributor + +We will add DevExtreme css files as a `BundleContributor`. To get more information, please see this [documentation](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Bundling-Minification). + +Create `Bundling` folder in your `DevExtremeSample.Web` project. Then create `DevExtremeStyleContributor.cs` file and copy following code block to inside it. + +```csharp +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace DevExtremeSample.Web.Bundling +{ + public class DevExtremeStyleContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devextreme/css/dx.common.css"); + context.Files.AddIfNotContains("/libs/devextreme/css/dx.light.css"); + } + } +} +``` + +Open your `DevExtremeSampleWebModule.cs` file in your `DevExtremeSample.Web` project and add following code to `ConfigureServices` method. + +```csharp +Configure(options => +{ + options + .StyleBundles + .Get(StandardBundles.Styles.Global) + .AddContributors(typeof(DevExtremeStyleContributor)); +}); +``` + +### Adding DevExtremeScriptContributor + +We cannot add DevExtreme js packages to `Global Script Bundles`, because DevExtreme is using some inline javascript codes and js packages requires to located in the `` section. + +But we can create `ViewComponent` and render it at `` section with `AbpLayoutHookOptions`. + +First, create `DevExtremeScriptContributor.cs` file at your `Bundling` folder and copy following code block to inside it. + +```csharp +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQuery; +using Volo.Abp.Modularity; + +namespace DevExtremeSample.Web.Bundling +{ + [DependsOn( + typeof(JQueryScriptContributor) + )] + public class DevExtremeScriptContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devextreme/js/dx.all.js"); + context.Files.AddIfNotContains("/libs/devextreme/js/dx.aspnet.mvc.js"); + context.Files.AddIfNotContains("/libs/devextreme/js/dx.aspnet.data.js"); + } + } +} +``` + +As you see, the `DevExtremeScriptContributor` is depends on `JQueryScriptContributor`. All packages are `JQueryScriptContributor` will added before the `DevExtremeScriptContributor` packages. + +#### Create DevExtremeJsViewComponent + +Create `Components` folder in your `DevExtremeSample.Web` project. Then create `DevExtremeJs` folder under `Components` folder. + +Create `Default.cshtml` file in your `DevExtremeJs` folder and paste following codes to your file. + +```csharp +@using DevExtremeSample.Web.Bundling +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling + + + + +``` + +Create `DevExtremeJsViewComponent.cs` file in your `DevExtremeJs` folder and paste following codes to your file. + +```csharp +namespace DevExtremeSample.Web.Components.DevExtremeJs +{ + public class DevExtremeJsViewComponent : AbpViewComponent + { + public IViewComponentResult Invoke() + { + return View("/Components/DevExtremeJs/Default.cshtml"); + } + } +} +``` + +After that, your `*.Web` project should be like as following. + +![devextreme-js](devextreme-js.png) + +Then we can add this view component to `` section by using **hooks**. + +Open your `DevExtremeSampleWebModule.cs` file in your `DevExtremeSample.Application.Web` project and add following code to `ConfigureServices` method. + +```csharp +Configure(options => +{ + options.Add( + LayoutHooks.Head.Last, //The hook name + typeof(DevExtremeJsViewComponent) //The component to add + ); +}); +``` + +### Result + +After following this step-by-step article you can use all DevExtreme features in your project. + +![devexp-result](devexp-result.gif) + +> The result example is created by following [this documentation](https://js.devexpress.com/Demos/WidgetsGallery/Demo/ProgressBar/Overview/NetCore/Light/). + +--- + +### Sample Application + +We have created a sample application with [Tree List](https://demos.devexpress.com/ASPNetCore/Demo/TreeList/Overview/) and [Data Grid](https://demos.devexpress.com/ASPNetCore/Demo/DataGrid/Overview/) examples. + +You can download the source code from [here](https://github.com/abpframework/abp-samples/tree/master/DevExtreme-Mvc). + +We have some notes about this sample and general usages of DevExtreme at ABP based application. + +### Data Storage We will use an in-memory list for using data storage for this sample. @@ -16,13 +213,13 @@ There is a `SampleDataService.cs` file in `Data` folder at `*.Application.Contra We did not create `Entities` etc. Because we want to show "How to use DevExtreme?", because of that, in this sample we focused to application and UI layer. -## JSON Serialization +### JSON Serialization You can see some `[JsonProperty(Name = "OrderId")]` attributes at DTO's. In this sample, we use that attribute on DTO's properties because DevExtreme official resource is suggesting to _disable the conversion in the JSON serializer_ [(ref)](https://js.devexpress.com/Documentation/19_1/Guide/Angular_Components/Visual_Studio_Integration/Add_DevExtreme_to_an_ASP.NET_Core_Angular_Application/#Troubleshooting). **DO NOT DO THAT!** If you change **the conversion in the JSON serializer**, some pre-build abp modules may occur a problem. -## MVC +### MVC You can use some DevExtreme functions to create UI. The following code blocks show you how you can use it with ABP Applicaion Services. diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-js.png b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-js.png index 4fdf614efc9fd62145e3c0600ecb1de379b74e10..9252e74dbc610eae8a6d3829659ce707c9390d84 100644 GIT binary patch literal 8101 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 I<7vcy0XjYS8UO$Q literal 5898 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 diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-notes.txt b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-notes.txt deleted file mode 100644 index 14f5493cda..0000000000 --- a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-notes.txt +++ /dev/null @@ -1,56 +0,0 @@ - -libs/devextreme/js > dx.aspnet.data.js -is added by hand. solve it. - - -adding nuget. - -install devexpress to local. -nuget sources Add -Name "DevExtreme ASP.NET MVC Controls" -Source "%ProgramFiles(x86)%\DevExpress 20.1\DevExtreme\System\DevExtreme\Bin\AspNetCore" - -cd -> *.Web - -dotnet add package DevExtreme.AspNet.Data -dotnet add package DevExtreme.AspNet.Core - -package.json -add -> "devextreme": "^20.1.5" - -*.Web -> comm -> yarn - -abp.resourcemapping.js -add -> "@node_modules/devextreme/dist/**/*": "@libs/devextreme/" - -*.Web -> comm -> gulp - -*.Web -> *WebModule -> add - - - - -```csharp -Configure(options => -{ - options - .StyleBundles - .Get(StandardBundles.Styles.Global) - .AddFiles("/libs/devextreme/css/dx.common.css") - .AddFiles("/libs/devextreme/css/dx.light.css"); - - options.ScriptBundles - .Get(StandardBundles.Scripts.Global) - .Contributors - .Replace(); -}); - -Configure(options => -{ - options.Add( - LayoutHooks.Head.Last, //The hook name - typeof(JqueryHeadViewComponent) //The component to add - ).Add( - LayoutHooks.Head.Last, //The hook name - typeof(DevExtremeHeadViewComponent) //The component to add - ); -}); -``` \ No newline at end of file diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/jquery-head.png b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/jquery-head.png deleted file mode 100644 index a89c465bdc3ce2850bcb11a05512ea014f2545d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8168 zcmeI1cUM!}-tU8gG%2BqGznD@P&!Br2}GoWbODv#OXyO>paG;eDWOYIKx*i)K_v7d zCG=i}fK=(+xSw;MbM77c8RNcy`$w`eGv-)p&R_k^?+Vw}RHY!hO9lV{D4xI|x&QzH z5dXWMV=0DIsQh?2gqIS%FQ$ugFNIe02A<;?A*lDoc^(f~h zQ7?lILeSxxO)n`wT?BVA5q8Q1lON%Ad$s(|2Y33|9_6rFzt-Z21NxnT`q{$sL!4)0 zKtX^?-sW|rMgL5pr|aO%L6+yP`uu6nbDvr3{X2K>ifm!OO5VJAbIsA>Jk7YuM&r<| z(q&erMsDLlRA;_%(_VBct83BfY(bx|Kh8u^J`6$#0K8U&005stkN|)h0gwQYnClF* z7rX1tnIvIM>aXc%@*JReog0BXFO9qv-dU_y*ykF2Zb~l4&ccF-1!#*lfjqXx1%-(z zSssdtirQ>4eobGrH7_6X?D>Xm0*pqYAy!sa9cIn`V-c8z;OnfgOg%P1XR&lZ$W{I_ z=!YGPNPu~xOH0*ZBeIa!hx=!BsEzC3&R7M)VOyR(%5T5sz@~)!Y3ssKgJmZ>|2THy z@Tg;}xTbLHV}?B4r{^X(+7cHLC?c8XE*Bj%MRW)864;f7Fs_zS3a|!CvZX!JB45lt z^kwY$x{B=uA}wdIwC%0V``|TVrLRqE*^jHaL5|q6ni!~rK@I7ujJ`mL36Nvm?Bk>9 zhNiul{VnKj)E!>Z&dhEbb3VKkg+yCoovA>&!erqj;kSa5o?0Vb3r$wr>$NBIgSzJWTM+K){FOeOE63p<;)u*=Q%buvt3Z+5r*RxitWL9Qu)Ar55 zI#?NWbwbd9M72AQ`PR^yksiF1;wP3~24g<%Yo+k_Vj4_+28-nkWO?R4ic#$Z49R*d z0S|t)y?1U-*v%BndzClLx%$L(2SUEzQHVO>dbNa9k|NcDeK)s~go|xvyIktaR9%1Y z2H~odj>PKZV-hgV(-r*&XFfg1{Ec@V6t0KMK0) zoU?59wKo2NylJP$kQH+hx%hJJ!`w*%lrk*=paEKj92!QpxZ1ANiX0Y^b`1;z55Awg zJqB(Lr&HuClp_WlI)#7F2rOi zh_eU6AHVeT2A582$Q%)mM(s&geNaH(`VyiJd?94sWY=;&yPGyVtW)En(-R5X)_=e+ z$-t}U)ku2vooy5a2DLYxuBERP7iQ{iG3NAnsCbSqjQDr6n73WhAxVlJ3x<=3%E^_Y zyWhI59*FkNuT8Q z+T@ykFgU>7IhNe~OQ!Ba8K&8M)}?`UnlRfGE=Mz2?^#&yjY|tm9Gs4TAdvYPJHO(+ zM(?%OZyRTdF0c5GGrje%cW(bgv&u`v!BDn0>62z{y-kF@2mL+{L^pYN50DA312#@F zNiL%ZaXzn)zF264zZ2lsfB#dL85_L?Q(}|0+^}0pNaG+LnPN4+9adn z^xh5&ZC@5}lI-&#A_;MczYnr*Mdd8tWD7jhIoN63HOZ+9y7cG&X~~fz@>$udn4%^L zZKhi7*G>>A^(vNO`01iVw6bjkjQN->9M(XoJWNeWo-As~{VM`S-%6WP6bgAW;K)4} zuq(&xTzAA5(^JP*WrL|m?$xs(!5Ffu^2>61)@3bp$&6V+YKECUg z%i#C>%(kRqIIM&B9$}K>F#ymUW(fIQ7nySJ(GUbgWeAx$e_9=2YY?%}!f=sIF`A$b zEMAh0bAWPr>j(TUspD=&5ri)^i@N-9DItDUtz-Melv78vp}Q)+h*! zq|+shL~ynYZwqy89!fT{kvKP`9J!F=df!-nppI64vxFNP|AwAS1Fvo~5=o-S(w^X9 zCUCo3*+19w8LA;%1gHeLq?6a@g9SJvPDOqaWV3hC#Z}G^=nI3Mtp84`0fDRs&AdkB znQsp$6J5T;?_B1UcuX`BsnOV*`d3B$1CunX#77N*F-Tu0*q>+dHi2}BxCmWV77HG8 zfFuSZZo0Y@u(tH2ej$WPw0Ml&!rv#bCnA!B^xZoF(6cyh6+p;? zY2C_>*e7_u=|5G45(0*<|1Spm+j-w3B1i^|h%Aq)UV=hJ4G1=!~!XX|VT0?9n* zI5?+Ak{AiDxRhvWXmCRiKTPDDE8%GO<%bAnTEQUaOPr z^?`kzwHN18^|rMQ&Y>4|F$;AB8N+1$31&bhCZ-D8FYzHmoS$m^<@xF3K3r0HH+2=4 zj@-&xF=Ie|xtoatk`kkWf3m2rD7+Ofj4AlGCGpnZjOTl<9djA6qHvr5sN>B|;u7Rg zoBg-ox8ock$s+I*iX@XM6zIQQ$|}bkz7f zzK;)$5Z!+V#V{i%w916QNZOzoxlm#NFi4J$BpGlZ%5L4PLmo~Um$t=pF9jGOMI@{2 zkNr<6O)oxD>T4J#i#EdzzHC7r+`zG&jC|HBtEN?kD2~CQ5dW=`@oL&`(=+Q?kRn8J zc5|xJVK8Itb2!p-L1*9ln)_gT$oHorSAf~#e#WFYyu(pgCV@-GP=PWenhhDP0zcEr zFw|YhFq$rW$$7{0^`%rTy}l9_l5acU&<_OGW)OyCjF7!C+UL>|qiv6M^YV@L0LM`gqd`<>^<<6xKocS=u^7>*z%1>(@fl$1!6X z=S~y;)d--fnh1VF)lW5`kewGD(RaowvQ~06tLaFNHCNcbq0U=`exe-#ZhiD3Ct&3>HkE(eY$79^It!AbyDF;C| zkpnlV8eT7PR6!rj$P;AcB7d!Vke-KiKARfV5S5j6a+z%)`qw-zhH69(hD!4_!>6o? zD}62@E)W!vKP+W++~hs`+IG_isHL@|yVW4(omG3p%V^VwmO$`toQE<67sgXeK_pz~oOULw$C?5+BBB(zl8~@hDNGi~ybp@{q1=O3dS+}a{sogf z<~R2CZJlHWmSLSW!Xp>2u|_{K8Hn~i)=@@j43gt^qcQ5sU7#KTo->Wd*y7)M=(kYfp_2Q!5g zUhPF{>`yCQz)~Vpp;vhZAaHs<7j>C$T_SDVP(75colE|^b>k4JGpbzOX9k{XBV4&< zY`!;#1n&Eo3&yVBN&!)jB4H!oF7A&3@K>ZR}a2ON83M=0XkCsrWokCzHu>V?TPE|1AB z{fsS9nJ8iNyU-&#%qS+VdNEoF3{yw1Dbr;0c$UN7;%9IgqB>zksL5ooP^Jh&&2-?$V zWP*xa6cgmt=hWnwcS-N~%8`>B)F#KVCwCt*9_8X^cYLzeXwJ2pd8Yx(<8{C>3xWNf zLo!oX`!#l*#~{52%ZP9~kAXSL;X7BIvumFQEkxF@+y-P1s%-m~3)v-kg)$%F51kS} zefMV))`kYDQsanK@V$y6fLX!`HsOv!LPIhj;{s}#dJWYktq%KVwr#O~To0a+bIz~u z;dJMGsmR?LOAZ5e^1MOdryn_=s+LG?qh`}h&@Nk^TFM&++9eApJ3=2u318UW|`&;l@v4>II0P;qgv^U5;cIlW51&r-u1?lczb_s z^t`a|aLiuxda_CSY)xlc^UrNYneHtX=2KLpQy$_Kgwg!ktcm_#=jH)dpIu^7h`Jj< zuNiCCcT-!a=jV10v+7n`|2i!~YkgOFh(0-+T_v1++ROkFakqF}O2t%Dbd+bUgMRpA zT2>-`zI`iu?5J7AiFepVMBblcx8|sZbbndC8Y#II80+WKSczXHjBnuTs)RnSEvGFJ zNj+%cH@7X*(EI18a;%n*+UP$qo+jsn<*s#dWRHSI0%^Ir z{-rXg!L^H?#~x3XAMvR(wEs0^m2~8{-_w*EXk@Cvu_&Upn;M;>kKixw$ELKPUQ7=M zfLJu5+mfyGXCD>ds^{K2CUmo;0$7>O{cRF!pW+}0w_x7=C0^mQw+eE0wTAy>#oE$A>E_TN1GfHK&!rwf8fO z;u)=r02EL0M>_bgDrLdsw~|2s2=V^+Su9r=V&%JDV%+#hiX5WscoR_c?wK&?!98L2 z`oRm_Qsy7#lX;4Pt|Vo(TH}R-rLdkFZy^^r#~vw((rTI4AT^UY{Ez#C6YS=k<#M-j_P5R|}K~!jMor5$?>Ne_dPp)JsZ`Bev>zByI%RP^r&d z35QW9aS?T_X*Jm-x2UTK005{m=MpxB%SZ%L+vLl79zT#Nv(BpQU2p1QO6xBb7P_d5 z(^4$W(S3y^G#JinbSo^h!>cUlm*K(h*6ZPm!4#jqv6NRzm6t(&v)f)B~GUfL^ z(*ylSd#X0PxpZL=2pve$`bYw#rbKt+3|SV@wNX2e%4qKYP2OSE7!HAuZHI4!#$x3s z-&yJ`sT#9~jH&+(h15W`Y1fw!D{2zh1@3mC-|34yMh2jxfI0eM8q%okbU)IDF20Z0 zvPLfe$iXKAd+@}Jz>Z9{$;_VY4WCbn*p$b+HbYD{yRjGO2Y&-HKjj_`!!1Mgo=}Qs zLot67pFKuM)xh$VsL_C>GW{X@7Zpg)kKzqbj9tv9-pd<9f)1Q`*dGA=EkhBD-~8V) zxHn#$7Tb1(ZG08oOlQ6#@6XBMsF4TUOE(E8A?;ddP!bj0dv!3km%esPb@g&iA*eSa z$ZD>H*~k@Yjhm`LXO6Q0Vhiw~0VF2vMCahb=i{{fk4)7pFgn%5DU{P6IkEqpNdkajvNq9Y8F zkBk+&n_#ooS-6%L%+n7(L3UJq3H6L^o%2CD;O zxY_lbvj782I6kMZy5?|NX>Z=VfkE7X2gNPy6ss`aIK2vo2I; ze-=e`DD($^5eHgLnNzecPIfFp!w~!8rfHsHo$G!3QQV$VoDD_o#raX6GsJo|Q{_M3 zW#4#?$J}&DSBc+FQx0?T@b4=3;?*Gek6zfMEc0q{Pb*;VFtu7t&34 z*4??5r&8>Lf@}=`4-91gPYgWSe*FJ2@PEL-Rqm=gDj>AFkS9aBH5+Cn%6K-&BSYdR z>_L_k*^jB3AMZ20dlj$Wz_>ohb3yS%lR88$P8+t87imKdpw<=uF1p(CfrdLmho^1; z;CTN5LVo_cj{aNI`VSy<5CAbtx~N~+ASfT?%C=w5lDuh61Sl3JgDUazUzHceK=iaT zKebWLc1<27Iw+`MtHOS_MwLtc_#39L!h%(ld3VY#`1{nvlr}VeITeAXr@tk#$) zY3i=ftSH=cyk#4|CD)@J?t{kb zmqpb=MXpo1aSLp3hjtI!W%-ryz4KUcU`FZ{)avBTVj_}7%I7a3SIy?&9(4G#R`tQwGrl-Nfa;L@qUVES`aAL9+_)nW5+M}f3Eecv&Z)L!C-nX`p2n($SqiSSir1cbzHg8uamsj4qr(I)U>x?Rx4Ya z_X%=}-sVz8fcfs`6d`hHao4sh>ARX2kkrQ&Gv58(Np4qbD?`)BCm7oKVhr8pw{b_! zPCl*i-)4~-s;gpcvyW_k-*;wrQ8AVvb8{kce(T8HD1>J^{eNV-rAnIrndz_w4*R|= z!k#xydBR01P7+L1ZkWhPDg=OTowo627G-gR%p_?-;Bwbq?h5@4alT?(;qs>=DR}_K zes6jZ=-j!M>e`EuT{RblVN>>egXsBf;`R3bf$BPItd)E0mPQ~*Uis$wJrB?(of4k_ zZ!Aq2KW(oj-)|D=AYtO^ocziO&Prn(TNXCGzmg;odHBQ#=wyB~MaSR$QGLe}$rBmk zsJIrCJBF9_pRjH%`dCKf_^6L>SFDB>*nWxXip*-Vqr5uIW}1<;3#J8wz^%ZX`G_G` zm6@+Tez|qg+$py_M1Ke-tbdvkd91WdZA2c-bSAd)3F*95oRap@fxV5eX7j_r^I6Am zoU|X&+31u5dh}T2C(wF75EjM3**|E1kaq3{{ZcAF$BM84ssGM-4gad6M5P-q_?a85H0jOw#%O@PB)*oQ3TSCZgWAKjUTISzVd9Dq v8AuXsVhZcdK561jkS@hP$#ZTgr@@shZS9zCZw36@dB78>CZr5(8T!8fS>J_W diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/yarn.png b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/yarn.png deleted file mode 100644 index a572068787ab22ac1d810b4d7526546ef5e591cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45922 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⪚q*bvZvo^%$@e0LIbFXoJRV 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 K^8WPI@P7l*PsULI