不確定是否有一個「正確的」答案,所以我已經標記爲社區維基。爲長時間的前導而道歉。表模塊/表網關 - 從網關加載代碼的位置?
我在.Net中構建了一個規模適中的Web應用程序,並且已經建立在基於表的架構上。我的DAL層由一組處理加載/保存數據到數據庫的TableGateway類組成 - 它們返回強類型的數據集。應用程序邏輯被組織成一組TableModule類。最後,我的ASPX頁面處理顯示內容並將表單值傳遞給要處理的TableModule。
讓我困惑的是誰應該負責調用TableGateway來獲取DataSet,ASPX代碼隱藏或TableModule?
實施例1 - ASPX做的:
SomePage.aspx.cs:
protected void AddLink_Click(object sender, EventArgs args)
{
long id = long.Parse(PopulationDropDown.SelectedValue);
string someProperty = SomePropertyTextBox.Text;
IPopulationGateway populationGateway = DALServicesLocator.GetPopulationGateway();
PopulationDataSet populationData = populationGateway.LoadPopulationDetails(id);
PopulationModule.SomeLogicToAddStuff(populationData, id, someProperty);
populationGateway.Save(populationData);
}
實施例2 - TableModule做的:
SomePage.aspx.cs:
protected void AddLink_Click(object sender, EventArgs args)
{
long id = long.Parse(PopulationDropDown.SelectedValue);
string someProperty = SomePropertyTextBox.Text;
// Just pass values to the TableModule and let it talk to the Gateway.
PopulationModule.SomeLogicToAddStuff(id, someProperty);
}
我很欣賞這是一個在宏偉計劃中的爭議問題,但它真的讓我煩惱! – rob 2009-12-22 16:30:03