从现有的ASP.NET项目中分离出3层

时间:2011-04-04 13:46:49

标签: asp.net

在我的asp.net项目中,目前我有两个子文件夹(BLL,DAL)中的业务逻辑和数据访问代码,这两个子文件夹本身位于网站项目的app_code文件夹中。我需要将它们分成两个独立的项目(一个用于业务层的项目和一个用于数据访问代码的项目)。

  1. 如何维护当前位于web.config文件中的数据访问项目所需的连接字符串?(即如果我选择类库模板来创建DAL和BLL项目)

  2. 如何维护当前在BLL,DAL代码文件中使用的各种其他web.config键值?

  3. 如何部署已编译的项目? (即网站项目我目前正在将bin文件夹部署到Staging>生产但这种方式我应该把DAL.dll和BLL.dll和相关的配置文件放在哪里)

4 个答案:

答案 0 :(得分:1)

1和2)添加'using System.Configuration'并引用它们。自从他们在项目中引用,asp.net就会把它拿起来。

例如:

using System.Configuration;
    namespace DataLayer
    {
        public class BaseDataAccess
        {        
            public static string ConnectionString_Logging
            {
                get
                {
                    return ConfigurationManager.ConnectionStrings["ConnectionString_Logging_Legacy"].ToString();
                }
            }

        }
    }

3)如果正确引用,在编译时,您的BLL和DAL dll将位于main / ui项目的bin文件夹中。如果使用web.config,你很高兴。

答案 1 :(得分:0)

从根本上说,您应该在整个过程中将这些配置位包装在对象中。但无论如何,你可以毫不担心地将它们移动到另一个类项目 - 它将从它所托管的任何项目中获取配置设置,因此你不需要以某种方式为你的库提供配置。 / p>

答案 2 :(得分:0)

现有代码应该有效,因为设置是从正在运行的进程的Config文件中读取的,在这种情况下是Web.Config,但我建议您使用custom configuration settings,这些将从您的Web.Config文件,典型的实现可能类似于:

<YourCompany>
    <YourCompany.ProjectName>
          <Data ConnectionName="NameOfConnectionToUse" SomethingElse="XZY" />
          <Business SomeValue="12345" />
    </YourCompany.ProjectName>
</YourCompany>

答案 3 :(得分:0)

如果没有进入理想的设置/自定义配置等,在运行时,您的类库将从web.config中获取配置,如果从这些层中引用而没有任何更改。 System.Configuration.AppSettings / ConnectionStrings仍然有效。