Breaking changes
There were major refactorings made in VirtoCommerce version 3.0. The changes mapping below should help you finding the right class, API or behavior in the updated codebase.
V2 | V3 | Impact |
---|---|---|
vc-platform | ||
ISecurityService | Removed. Need to use UserManager<> from ASP.NET Core Identity instead. Link to code example | Low |
IRoleManagementService | Removed. Need to use RoleManager<> from ASP.NET Core Identity instead. Link to code example | Low |
ConfigurationHelper | Removed. Now, for all env configuration need to use ASP .NET Core Configuration Link to code example | Low |
ISettingsManager.GetValue | GetValue method moved to SettingsExtension and now load setting values only from db Link to code example, before it tried to load a setting value from env configuration first | High |
EFRepositoryBase | Renamed to DbContextRepositoryBase and now not derived from DbContext and received DbContext as an argument of ctor. Link to code example | Low |
RepositoryExtension.DisableChangesTracking | Has no effect. Need to use AsNoTracking(). Tracking vs. No-Tracking Queries and Link to code example | High |
AuditableInterceptor | Removed. All types inherited from AuditableEntity are automatically update their audit fields when save. You have to inherit your DbContext from DbContextWithTriggers . The magic happens here ApplicationBuilderExtensions.cs and Link to code example |
Medium |
EntityPrimaryKeyGeneratorInterceptor | Removed. Now is using EF Core - Value generated on add or update and Link to code example | High |
ChangeLogInterceptor | Removed. Need to use domain event handlers for explicit log changes. Link to code example | High |
ICacheManager | Removed. Need to use IPlatformMemoryCache instead. Link to code example | High |
IDynamicPropertyService | Reworked. Divided into these abstractions IDynamicPropertyService, IDynamicPropertyRegistrar, IDynamicPropertyDictionaryItemsService, IDynamicPropertyDictionaryItemsSearchService.Also, have made the significant changes with persistent infrastructure Link to docs and code sample | Medium |
Implicit dynamic properties declaration | Changed to explicit registration by IDynamicPropertyRegistrar . See code example |
High |
IChangeLogService | Divided into two IChangeLogService.cs and IChangeLogSearchService.cs | High |
IExpressionSerializer | Removed. The XML serialized expressions no longer used and are replaced with serialized as json and run as managed code predicates. Link to code sample | Low |
INotificationManager | Moved into separate module. vc-module-notification. (TODO: documentation) | Medium |
IModule | The all methods signatures were changed. IModule.cs | High |
module.manifest | The settings and permissions declarations were removed from module.manifest and are now declared in the code PlatformConstants |
High |
Implicit settings declaration | Changed to explicit registration by ISettingsRegistrar . See code example |
High |
Implicit permissions declaration | Changed to explicit registration by IPermissionsRegistrar . See code example |
High |
vc-module-core | ||
VirtoCommerce.Domain.Cart namespace | Moved to vc-module-cart module | Medium |
VirtoCommerce.Domain.Catalog namespace | Moved to vc-module-catalog | Medium |
VirtoCommerce.Domain.Customer namespace | Moved to vc-module-customer module | Medium |
VirtoCommerce.Domain.Inventory namespace | Moved to vc-module-inventory module | Medium |
VirtoCommerce.Domain.Marketing namespace | Moved to vc-module-marketing module | Medium |
VirtoCommerce.Domain.Order namespace | Moved to vc-module-order module | Medium |
VirtoCommerce.Domain.Payment namespace | Moved to vc-module-payment module | Medium |
VirtoCommerce.Domain.Pricing namespace | Moved to vc-module-pricing module | Medium |
VirtoCommerce.Domain.Search namespace | Moved to vc-module-search module | Medium |
VirtoCommerce.Domain.Shipping namespace | Moved to vc-module-shipping module | Medium |
VirtoCommerce.Domain.Store namespace | Moved to vc-module-store module | Medium |
VirtoCommerce.Domain.Tax namespace | Moved to vc-module-tax module | Medium |
VirtoCommerce.Domain.Commerce.Model.Search.GenericSearchResult | Moved to VirtoCommerce.Platform.Core GenericSearchResult.cs | High |
VirtoCommerce.Domain.Commerce.Model.Search.SearchCriteriaBase | Moved to VirtoCommerce.Platform.CoreSearchCriteriaBase.cs | High |
VirtoCommerce.Domain.Commerce.Model.Currency | Moved to VirtoCommerce.CoreModule.Core.Currency namespace | Medium |
VirtoCommerce.Domain.Commerce.Model.PackageType | Moved to VirtoCommerce.CoreModule.Core.Package namespace | Medium |
VirtoCommerce.Domain.Commerce.Model.ISeoSupport | Moved to VirtoCommerce.CoreModule.Core.Seo namespace | Medium |
VirtoCommerce.Domain.Commerce.Model.ITaxable | Moved to VirtoCommerce.CoreModule.Core.Tax namespace | Medium |
VirtoCommerce.Domain.Commerce.Services.ICommerceService | Removed. Distributed responsibility between these servicesICurrencyService.cs vc-module-core. Work with Seo data moved into each module level vc-catalog module SeoInfoEntity.cs, vc-store-module SeoInfoEntity.cs, etc Packages moved into IPackageTypesService.cs vc-module-core | Medium |
vc-module-catalog | ||
VirtoCommerce.Domain.Catalog.ICatalogSearchService | Removed. For database search need to use the following services: IListEntrySearchService for search products and categories. IProductSearchService for products search. ICategorySearchService for categories search | Medium |
VirtoCommerce.CatalogModule.Data.Search.ICategorySearchService | Removed. For categories indexed search need to use ICategoryIndexedSearchService | Medium |
VirtoCommerce.CatalogModule.Data.Search.IProductSearchService | Removed. For products indexed search need to use IProductIndexedSearchService | Medium |
vc-store-module | ||
Store.PaymentMethods | Removed. To search payment methods need to use IPaymentMethodsSearchService and IPaymentMethodsService for CRUD operations. See DefaultManualPaymentMethod as example | Medium |
Store.ShippingMethods | Removed. To search shipping methods need to use IShippingMethodsSearchService and IShippingMethodsService for CRUD operations. See FixedRateShippingMethod as example | Medium |
Store.TaxProviders | Removed. To search tax providers need to use ITaxProviderSearchService and ITaxProviderService for CRUD operations. See FixedRateTaxProvider as example | Medium |
IStoreService.SearchStores | Moved to IStoreSearchService | Low |
vc-module-cache | Module removed. Now all cache functionality is implemented in each module level. See code example | Low |
vc-module-dynamic-expressions | Module removed. | |
dynamic expressions and templates | All dynamic expression templates expressions are moved into vc-module-core/Scripts/dynamicConditions/all-templates.html and vc-module-marketing/Scripts/dynamicConditions/all-templates.html. All dynamic expressions logic are moved into VirtoCommerce.MarketingModule.Core/Model/Promotions/Conditions | Low |
IMarketingExtensionManager | Replaced with PromotionConditionAndRewardTreePrototype (TODO: Docs how to extend expression tree) | Low |
IPricingExtensionManager | Replaced with PriceConditionTreePrototype (TODO: Docs how to extend expression tree) | Low |
Last update:
June 9, 2020