当前位置: 首页 > news >正文

网站开发和大数据开发区别怎样才能做一个优质的外贸网站

网站开发和大数据开发区别,怎样才能做一个优质的外贸网站,常州网站建设书生商友,网页制作价格私活前面两边的代码就是一套初步的工具包架构#xff0c;基本底层通用#xff0c;可以移植到任意项目实现类似的需求。接下来#xff0c;再在我们特定的项目几微助手里面再实现一套基于自己项目的基类#xff0c;根据项目需求抽象一下项目内的常用方法。理论上#xff0c;这一… 前面两边的代码就是一套初步的工具包架构基本底层通用可以移植到任意项目实现类似的需求。接下来再在我们特定的项目几微助手里面再实现一套基于自己项目的基类根据项目需求抽象一下项目内的常用方法。理论上这一步的抽象如果移植到其他项目应该也是有一定的通用性。112345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455/// summary   /// 站点设置的基类基类主要提供站点扩展设置的数据库连接等操作   /// /summary   public abstract class BaseSiteExtensions:BaseExtensions   {       public Guid SiteUnid { get; set; }       private MiniSiteDataExtensionsEntities _dataContext  null;       /// summary       /// 数据操作实例       /// /summary       public virtual MiniSiteDataExtensionsEntities DataContext       {           get           {               if (this._dataContext  null)                   this._dataContext MiniSiteDataExtensionsEntities.GetContext(this.SiteUnid);               return this._dataContext;           }           set           {               this._dataContext value;           }       }       /// summary       /// 站点扩展设置初始化       /// /summary       /// param namesiteunid/param       public BaseSiteExtensions(Guid siteunid):base()       {           this.SiteUnid siteunid;       }       /// summary       /// 打开一个数据连接       /// /summary       public virtual void OpenConnection()       {           if (this.DataContext.Database.Connection.State ConnectionState.Closed)               this.DataContext.Database.Connection.Open();       }       /// summary       /// 关闭数据库联机并销毁对象       /// /summary       public virtual void CloseConnection()       {           if (this.DataContext.Database.Connection.State ! ConnectionState.Closed)               this.DataContext.Database.Connection.Close();           this.DataContext.Dispose();           this.DataContext  null;       }   }在几微助手里面有站点的概念这里是为站点的扩展配置做一套管理基类。用于管理站点的Key-Value数据库。这里用到的EF数据库实例就是上篇里面的MiniSiteDataExtensionsEntities这里也可以用其它的在表结构相同的情况下通过继承后在实现自己的数据库操作类根据自己的需求来管理EF的数据文件。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282/// summary    /// 站点的扩展设置基类    /// /summary    public class BaseSiteSettingExtensions:BaseSiteExtensions    {        public  event ItemSaved OnItemSaved;        public  event AllItemsSaved OnAllItemsSaved;        public virtual SettingEditorDictionary EditorItems { get; set; }        protected string TypeName { get; set; }        /// summary        /// 根据指定类型初始化站点扩展设置        /// /summary        /// param namesiteunid/param        /// param nametypename/param        public BaseSiteSettingExtensions(Guid siteunid,string typename):base(siteunid)        {            this.TypeName typename;        }        /// summary        /// 从数据库读取键值将指定key的设置以泛型方式获取对象的实例        /// /summary        /// typeparam nameT对象类型/typeparam        /// param namekey配置的键/param        /// returns返回配置对象的实例/returns        public virtual T GetValueT(string key)        {            T result default(T);            string resthis.GetValue(key);            if (!string.IsNullOrWhiteSpace(res))                result JsonConvert.DeserializeObjectT(res);            return result;        }        /// summary        /// 获取指定key的扩展设置值        /// /summary        /// param namekey设置的键/param        /// returns返回值的字符串形式/returns        public virtual string GetValue(string key)        {                return this.GetValue(this.TypeName, key);        }        /// summary        /// 根据key获取指定类型的扩展设置值        /// /summary        /// param nametypename设置类型的枚举/param        /// param namekey设置的键/param        /// returns返回值的字符串形式/returns        public virtual string GetValue(string typename,string key)        {            string result  null;            if (this.DataContext.SettingExtensions.Count(m m.TypeName typename.ToString() m.Key key.ToLower()) 0)            {                SettingExtension setting  this.DataContext.SettingExtensions.Single(m m.TypeName typename.ToString() m.Key key.ToLower());                result setting.Value;            }            this.CloseConnection();            return result;        }        /// summary        /// 保存指定键的项        /// /summary        /// param namekey需要保存的配置键/param        public virtual void SaveItem(string key)        {            this.SaveItem(this.TypeName, key, this.Items[key.ToLower()]);        }        /// summary        /// 更新或者添加指定键值的单个配置        /// /summary        /// param namekey需要保存的配置键/param        /// param namevalue/param        public virtual void SaveItem(string key, string value)        {            this.SaveItem(this.TypeName, key, value);        }        /// summary        /// 保存设置项        /// /summary        /// param nameitem设置项实/param        public virtual void SaveItem(SettingItem item)        {            this.SaveItem(this.TypeName, item.Key, item.Value);        }        /// summary        /// 保存指定设置类型的设置项目        /// /summary        /// param nametypename/param        /// param nameitem/param        public virtual void SaveItem(string typename, SettingItem item)        {            this.SaveItem(typename, item.Key, item.Value);        }        /// summary        /// 跟新或添加设置        /// /summary        /// param nametypename/param        /// param namekey/param        /// param namevalue/param        public virtual void SaveItem(string typename, string key, string value)        {            if (this.DataContext.SettingExtensions.Count(m m.TypeName typename.ToString() m.Key key.ToLower()) 0)            {                SettingExtension setting  this.DataContext.SettingExtensions.AsEnumerable().Single(m m.TypeName typename.ToString() m.Key key.ToLower());                setting.Value value;            }            else            {                SettingExtension setting  new SettingExtension();                setting.SettingID Guid.NewGuid();                setting.TypeName typename.ToString();                setting.Key key.ToLower();                setting.Value String.IsNullOrEmpty(value)?:value;                this.DataContext.SettingExtensions.Add(setting);            }            this.DataContext.SaveChanges();            this.CloseConnection();            this.SetItem(key, value);            OnItemSaved?.Invoke(this, key);        }        /// summary        /// 跟新或者新建扩展设置        /// /summary        public virtual void SaveAllItems()        {            this.SaveAllItems(this.Items);        }        /// summary        /// 用自定的配置字典对象批量更新站点设        /// /summary        /// param nameitems/param        public virtual void SaveAllItems(SettingDictionary items)        {            this.SaveAllItems(this.TypeName, items);        }        /// summary        /// 批量添加或更新设置        /// /summary        /// param nametypename/param        /// param nameitems/param        public virtual void SaveAllItems(string typename, SettingDictionary items)        {            foreach (SettingItem kv in items)            {                try                {                    if (this.DataContext.SettingExtensions.Count(m m.TypeName typename.ToString() m.Key kv.Key.ToLower()) 0)                    {                        SettingExtension setting  this.DataContext.SettingExtensions.Single(m m.TypeName typename.ToString() m.Key kv.Key.ToLower());                        if (setting.Value kv.Value)                        {                            continue;                        }                        else                        {                            setting.Value kv.Value;                        }                    }                    else                    {                        SettingExtension setting  new SettingExtension();                        setting.SettingID Guid.NewGuid();                        setting.TypeName typename.ToString();                        setting.Key kv.Key.ToLower();                        setting.Value String.IsNullOrEmpty(kv.Value) ?  : kv.Value;                        this.DataContext.SettingExtensions.Add(setting);                    }                }                catch(Exception e)                {                    SiteLog.Debug(kv.Key,kv.Value);                }            }            this.DataContext.SaveChanges();            this.CloseConnection();            OnAllItemsSaved?.Invoke(this);        }        /// summary        /// 读取数据并通过读取的键值对填充配置的Items属性        /// /summary        public virtual void GetItems()        {            this.GetItems(this.TypeName);        }        /// summary        /// 根据string枚举属性读取数据并通过读取的键值对填充配置的Items属性        /// /summary        /// param nametypename/param        public virtual void GetItems(string typename)        {            ListSettingExtension list  this.GetSettingExtensions(typename);            if (list ! null)            {                foreach (SettingExtension setting in list)                {                    if (this.Items.ContainsKey(setting.Key.ToLower()) !String.IsNullOrEmpty(setting.Value))                    {                        this.Items[setting.Key.ToLower()] setting.Value;                    }                }            }        }        /// summary        /// 获取配置扩展的实例对象列表        /// /summary        /// returns返回特定类型的配置对象列表/returns        public virtual ListSettingExtension GetSettingExtensions()        {            return this.GetSettingExtensions(this.TypeName);        }        /// summary        /// 获取指定类型的扩展信息列表        /// /summary        /// param nametypename配置类型枚举/param        /// returns返回指定类型的配置对象列表/returns        public virtual ListSettingExtension GetSettingExtensions(string typename)        {            ListSettingExtension result  null;            if (this.DataContext.SettingExtensions.Count(m m.TypeName typename.ToString()) 0)            {                result  this.DataContext.SettingExtensions.Where(m m.TypeName typename.ToString()).ToList();            }            this.CloseConnection();            return result;        }        /// summary        /// 解析表单提交的设置并根据表单提交数据对设置重新修改赋值        /// /summary        /// param nameform前端UI提交的表单对象/param        public virtual void ParseFormSettingValues(FormCollection form)        {            foreach (SettingItem item in this.Items)            {                if (this.EditorItems.ContainsKey(item.Key))                {                    switch (this.EditorItems[item.Key].TagName.ToLower())                    {                        case bool:                            if (form[item.Key]  null)                                this.SetItembool(item.Key, false);                            else                                this.SetItembool(item.Key, bool.Parse(form[item.Key]));                            break;                        default:                            this.SetItem(item.Key, form[item.Key]);                            break;                    }                }                else                {                    if (form[item.Key]  null)                        continue;                    else                        this.SetItem(item.Key, form[item.Key]);                }            }        }    }BaseSiteSettingExtensions这里是实现一套基于集合的扩展类。第一篇讲的数据表里面我们的Key-Value数据表是有两个的。一个是模块整体的配置一个是模块里面单个对象的设置。这个类就是管理前者。这个就是管理模块单项配置的基类。
http://www.pierceye.com/news/737460/

相关文章:

  • jsp是做网站后台的吗wordpress设置备份
  • 做网站一般使用什么算法织梦 导航网站 模板
  • 网站建设服务费合同如何解决网站只收录首页的一些办法
  • 用js做网站登录阿里巴巴运营岗位
  • 老渔哥网站建设公司重庆建设厂
  • 怎么建网站手机版松门建设规划局网站
  • wordpress网站破解整容医院网络建设公司
  • app如何推广深圳网络排名优化
  • 网站seo规范南昌it制作电商网站的公司
  • 深圳网站设计 工作室深圳品牌设计工作室
  • 手机网站静态动态wordpress注意
  • 什么网站没人做v5shop微分销系统
  • 做鞋子的网站品牌vi设计包括哪些
  • 做产品类的工作上什么网站好asp.net做的网站模板下载
  • 金融公司网站规划方案我司网站改版上线网站建设
  • 城乡与住房建设部网站首页深圳响应式设计企业网站
  • 做网站 带宽 多少钱做电影网站的服务器需要多大
  • 西安网站建设全包用手机制作游戏的软件
  • 哪个网站生鲜配送做的好drupal wordpress网站
  • 网站后台需要多少建设部举报网站
  • 重庆建筑证书查询网站wordpress博客怎么访问不了
  • 网站案例鉴赏wordpress html5视频
  • 免费申请网站 主机 空间网站不稳定
  • 建立个人网站视频教程中国空间站和国际空间站对比
  • 佛山网站seo推广推荐一个专门做海鲜的网站
  • 长春网站建设与健网站外链如何做
  • 网站开发国内现状网站建设与维护教学计划
  • 如何解决网站图片打开慢网站如何做跳转
  • 网站开发作用大学生网络营销策划书
  • 有域名了如何建网站用自己的身份做网站备案