2011-04-04 46 views
0

在我的asp.net項目中,目前我有兩個子文件夾(BLL,DAL)中的業務邏輯和數據訪問代碼,它們本身位於網站項目的app_code文件夾中。我需要將它們分離爲兩個單獨的項目(一個用於業務層的項目和一個用於數據訪問代碼的項目)。從現有的ASP.NET項目分離到3層

  1. 我怎樣才能保持必要對數據的訪問項目,該項目目前在web.config文件?連接字符串(例如,如果我選擇類庫模板創建DAL和BLL項目)

  2. 哪有我維護當前在BLL,DAL代碼文件中使用的各種其他web.config鍵值?

  3. 如何部署編譯項目? (即網站項目,我目前正在部署bin文件夾中分期>生產,但這種方式我應該在哪裏把DAL.dll和BLL.dll和相關配置文件)

回答

1

1和2)添加'使用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文件會在主/ UI項目的bin文件夾。如果使用web.config,你的好去。

0

從根本上說,你應該換那些配置位在沿途的物體上。但無論如何,您可以將它們移動到不同的類項目中,而無需擔心 - 它會從它承載的任何項目中選取配置設置,因此您無需以某種方式將配置提供給庫。

0

你現有的代碼應該工作,因爲設置是從正在運行的進程的配置文件讀取,在這種情況下,你Web.Config,不過我建議你使用custom configuration settings,這會從您的Web.Config文件中讀取,一個典型的實現可能看起來是這樣的:

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

沒有進入理想的設置/自定義配置等,如要求 - 在運行時,你的類庫如果將沒有變化參考這樣從這些層中獲得從web.config配置。 System.Configuration.AppSettings/ConnectionStrings仍然有效。