• [实例研究Duwamish]SystemFramework和Common命名空间


    研究Duwamish,运用Duwamish,按照其架构,本人尝试开发一家以农资信息为主,外加网上购物的小型商业站点(请大家按照Duwamish四层架构的思想给与建议与意见)

    设计SystemFramework以及Common命名空间的类型

    Duwamish的SystemFramework的作用是:
    记录日志以及直接读取Web.config.这里,我们只是设计Common命名空间,舍弃SystemFramwork

    (1)New3ney.Common.New3neyConfiguration


    namespace Common
    {
        
    using System;
        
    using System.Configuration;
        
    using System.Collections;
        
    using System.Xml;
        
    using System.Collections.Specialized;  

        public class New3neyConfiguration:IConfigurationSectionHandler
        
    {
            
    private static String DbPath;

                private const string DBPATH="DbPath";
            
    private const string DBPATH_DEFAULT="data/data.mdb";

            public Object Create(Object parent,Object configContext,XmlNode section)
            
    {
                NameValueCollection settings;

                
    try
                
    {
                    NameValueSectionHandler baseHandler 
    = new NameValueSectionHandler();
                    settings 
    = (NameValueCollection)baseHandler.Create(parent, configContext, section);
                }

                
    catch
                
    {
                    settings 
    = null;
                }

                
    if(settings==null)
                
    {
                    DbPath
    =DBPATH_DEFAULT;
                }

                
    else
                
    {
                    DbPath
    =ReadSetting(settings,DBPATH,DBPATH_DEFAULT);
                }

                
    return settings;
            }


            
    //获得DataPath
            public static string DataPath
            
    {
                
    get{return DbPath;}
            }

          //这个方法在Duwamish里面被放置在SystemFramwork里面
            
    public static String ReadSetting(NameValueCollection settings, String key, String defaultValue)
            
    {
                
    try
                
    {
                    Object setting 
    = settings[key];
                    
                    
    return (setting == null? defaultValue : (String)setting;
                }

                
    catch
                
    {
                    
    return defaultValue;
                }

            
            }

        }

    }

    其具体作用:
    读取Web.Config里面的设置,如果没有设置就返回默认设置,这一点正是我们创建自己的配置节类型的原因.

    (2)从Duwamish里面的Common.Data定义的类型继承于DataSet,而且加上了[SerializableAttribute] 可以看出其主要为利用Remoting技术部署提供可以序列化为Binary或者SOPA的数据类型.另外,也为程序更少的依赖数据库而更好地控制数据提供了方便.

    这里,我们由于架构没有用到DotNetRemoting技术,没有设计这个类型.

    接下来就是独立实现DataAccess层了,对数据进行一系列的操作返回类型基本上用DataSet,Bool,String.

  • 相关阅读:
    random模块的随机变换
    re模块与正则表达式进阶
    面向对象整体细化
    __new__内部工作方式
    前端之CSS
    前端之HTML
    数据库
    同步异步阻塞非阻塞
    进程间的通信
    day 36(多进程)
  • 原文地址:https://www.cnblogs.com/caca/p/59799.html
Copyright © 2020-2023  润新知