AdvantShop.NET – это скрипт интернет магазина, который содержит более 50 000 строк кода на C# / VB.NET и все они служат для функционирования магазина

Для запуска интернет-магазина на локальном компьютере Вам понадобиться IIS 7 и выше (Integrated mode), .NET framework 4.0 для запуска исходных кодов, а также MS SQL 2008 Express для базы данных.

Файловая организация кода

  • Physically the code is located in function-arranged directories.
  • Repository - главное хранилище исходного кода
  • Controls - содержит код не визуальных компонентов магазина
  • Core - базовые функции системы
  • SEO - вспомогательные модули для поисковой оптимизации
  • Helpers - вспомогательные функции
  • Payment - модули оплаты
  • Shipping - модули доставки

Внутренняя организация кода

  • Во внутреннем пространстве имен, код расположен по схожему принципу
  • AdvantShop.Core - главное хранилище исходного кода
  • AdvantShop.Data - главное хранилище исходного кода
  • AdvantShop.Helpers - хранилище вспомогательныx функций
  • AdvantShop.Controls - код не визуальных компонентов магазина

Примеры кода

  • Пример модели класса MetaInfo (SEO)
    
    namespace AdvantShop.Data
    {
     public class MetaInfo
     {
      public string Id { get; set; }
      public string Title { get; set; }
      public string MetaKeywords{ get; set; }
      public string MetaDescription{ get; set; }
     }
    }
    
  • Код работы с базой данных на примере функции пересчета количества товаров в категориях
    
    
    Imports AdvantShop.Data
    {
        public class CategoryService
        {
    …
        public static void RecalculateProductsCount()
            {
                try
                {
                    using (var db = new SQLDataAccess())
                    {
                        db.cmd.CommandText = "[Catalog].[sp_RecalculateProductsCount]";
                        db.cmd.CommandType = CommandType.StoredProcedure;
                        db.cnOpen();
                        db.cmd.ExecuteNonQuery();
                        ClearCategoryCache();
                        db.cnClose();
                    }
                }
                catch (Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
    …
        }
    }
    
        
  • Провайдер для доступа к настройкам файла web.config
        
    namespace AdvantShop.Core
    {
        
        public class SettingProvider
        {
    …
        public static string GetConfigSettingValue(string strKey)
            {
                try
                {
                    var config = new AppSettingsReader();
                    return config.GetValue(strKey, typeof(String)).ToString();
                }
                catch (Exception ex)
                {
                    Debug.LogError(ex, strKey);
                    return "";
                }
            }
    …
        }
    }