Skip to content

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
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
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
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
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