smartstore / Smartstore

A modular, scalable and ultra-fast open-source all-in-one eCommerce platform built on ASP.NET Core 7
http://www.smartstore.com/
GNU Affero General Public License v3.0
1.19k stars 443 forks source link

Port to ASP.NET Core 5 #286

Closed muratcakir closed 2 years ago

muratcakir commented 4 years ago

Parts/modules that require a complete rewrite:

pineportal commented 4 years ago

suggestion: https://github.com/VahidN/EFSecondLevelCache.Core

mgesing commented 4 years ago

Web API:

muratcakir commented 4 years ago

Performance best-practices

muratcakir commented 4 years ago

Terminology changes

Old New
Plugin Module

Type/member name changes

Old New
HostingEnvironment.IsHosted CommonHelper.IsHosted
CommonHelper.GetAppSetting Removed. Use strongly typed IApplicationContext.AppConfiguration instead
CommonHelper.HasConnectionString Removed
FileSystemHelper Removed. Use IFileSystem extensions instead.
DataSettings.Current DataSettings.Instance
LocalizedString.(Js)Text LocalizedString.(Js)Value
HttpRequestBase.IsHttps() HttpRequest.IsSecureConnection()
IDbContext.DetachAll() DbContext.ChangeTracker.Clear()
IDbContext.Attach() DbContext.Set().Attach()
IDbContext.QueryForCollection() EntityEntry.Collection(...).Query()
IDbContext.QueryForReference() EntityEntry.Reference(...).Query()
IQueryable.Expand() IQueryable.Include()
IStoreMappingSupported IStoreRestricted
IStoreService Removed. Use IStoreContext instead
Querystring MutableQueryCollection
KeyedLock AsyncLock
LocalizationHelper CultureHelper
ISettingService.LoadSetting() ISettingFactory.LoadSettings() (Singleton)
ISettingService.SaveSetting() ISettingFactory.SaveSettings() (Singleton)
ISettingService.SetSetting() ISettingService.ApplySettingAsync()
ISettingService.DeleteSetting() ISettingService.RemoveSettingAsync()
ILocalizedEntityService.Save*() ILocalizedEntityService.Apply*()
ILocalizationService.Import*() IXmlResourceManager.*()
ILocalizationService.Export*() IXmlResourceManager.*()
ICustomerActivityService.InsertActivity() IActivityLogger.LogActivity()
decimal.RoundToNearest() Currency.RoundToNearest()
decimal.RoundIfEnabledFor() Currency.RoundIfEnabledFor()
string.IsCaseInsensitiveEqual() string.EqualsNoCase()
string.IsCaseSensitiveEqual() Removed
BasePlugin.AddOrUpdatePluginLocaleResource() Removed
BasePlugin.DeletePluginLocaleResource() ILocalizationService.DeleteLocaleStringResourcesAsync()
PluginDescriptor.GetLocalizedValue() LocalizedEntityHelper.GetLocalizedModuleProperty()
IUrlRecordService IUrlService
SeoExtensions.ValidateSeName() IUrlService.ValidateSlugAsync(). extraSlugLookup param removed. Now tracked internally.
SeoExtensions.GetSeName(string, [SeoSettings]) SeoHelper.GetSeName(*)
SeoExtensions.GetSeName(this...) SeoExtensions.GetActiveSlug() or SeoExtensions.BuildSlug()
LocalizedEntityHelper.GetSeName() LocalizedEntityHelper.GetActiveSlug()
IUrlRecordService.SaveSlug(...Func<T, string> nameProperty) Removed. Use ApplySlugAsync()
IGenericAttributeService.GetAttributesForEntity(int[], string) Removed. Use IGenericAttributeService.PrefetchAttributesAsync(), then MyEntity.GenericAttributes.
IGenericAttributeService.GetAttribute(), ...SaveAttribute() Removed. Use MyEntity.GenericAttributes.Get() or ...Set(), or use property getter/setter of covariant attribute collection types.
muratcakir commented 4 years ago

Architecture

pineportal commented 3 years ago

task scheduler: https://github.com/quartznet/quartznet

muratcakir commented 3 years ago

task scheduler: https://github.com/quartznet/quartznet

Absolutely no! We gonna keep our self-made web scheduler that solves all dependency scoping and mem leak issues we had before.

mehmetcantas commented 3 years ago

Any updates?

muratcakir commented 3 years ago

Any updates?

The new Smartstore Core repository is private at this moment, we will make it public next week hopefully.

lucakuehne commented 2 years ago

Is there an ETA for the migration to ASP.NET Core?

muratcakir commented 2 years ago

The Beta will be released within the next few weeks.

stefanmuellerdo commented 2 years ago

release ist done ... can this be closed now?