gpt4 book ai didi

application-design - 大型应用程序设计(WPF/Silverlight)

转载 作者:行者123 更新时间:2023-12-04 15:05:35 24 4
gpt4 key购买 nike

除了 MVVM 以及 WPF 应用程序整体结构的 MVC 模式之外,您如何将应用程序的模型/ Controller 方面分解为子组件?我问的原因是我从上述模式的角度构建解决方案没有问题,但是当涉及到实际编写后端时;我觉得我捏造了很多。从用户的角度来看,我最终得到了高质量的应用程序,但我的设计美学不允许我接受这一点。

澄清;我的很多业务逻辑都无法以任何简单或有意义的方式重构为一个类(或类层次结构,以及所有关联的接口(interface)),而无需更改整个应用程序。我现在专业开发一年半了,可能是经验不足的问题;但我觉得这仍然不是借口。任何指向这个公认的开放式问题的指针?

编辑:代码请求(在 Silverlight 中)-以下是来自拖放分配应用程序中的 mousebuttonup 处理程序的-snippet-,该应用程序是更大应用程序的一部分-

我只是真的不喜欢逻辑是多么生硬,并且讨厌它完全无法分解的方式,因为一切都被塞进事件处理程序中。

       //determine if there is a previously existing allocated sale corresponding to this purchase's ID

SaleWS allocSaleExisting = colltoaddsale.FirstOrDefault(s => (s.p_TRADEID == allocPurch.TRADEID));


if (allocSaleExisting != null && allocSale.TRADEID == allocSaleExisting.TRADEID)
{
PurchaseWS allocPurchExisting = colltoadd.First(p => p.TRADEID == allocPurch.TRADEID);

//allocPurchExisting.AMOUNT += allocPurch.AMOUNT;
allocSaleExisting.AMOUNT += allocSale.AMOUNT;


allocPurchExisting.AMOUNT += allocSale.AMOUNT;
allocPurch.AMOUNT -= allocSale.AMOUNT;


colltoaddsale.Remove(allocSale);


//colltoadd.Remove(allocPurch);

}

else
{


//Create new "split" item in the data source for the source table
PurchaseWS splitAllocPurch = new PurchaseWS { COMMODITY = allocPurch.COMMODITY, CONTRACTNUMBER = allocPurch.CONTRACTNUMBER, AMOUNT = allocPurch.AMOUNT - allocSale.AMOUNT, FORM = allocPurch.FORM, GRADE = allocPurch.GRADE, LOCATION = allocPurch.LOCATION, SHIP_DATE = allocPurch.SHIP_DATE, TRADEID = allocPurch.TRADEID, UNITS = allocPurch.UNITS };

//update the source table's selecteditem datacontext with the target allocation id

allocPurch.s_TRADEID = allocSale.TRADEID;

allocSale.p_TRADEID = allocPurch.TRADEID;

allocPurch.AMOUNT = allocSale.AMOUNT;




colltoadd.Insert(colltoadd.IndexOf(allocPurch) + 1, splitAllocPurch);







}


}

最佳答案

看看Composite Application Guidance来自模式和实践组。

它专门针对这一点,包括在大型应用程序中将 MVVM 用于 WPF/Silverlight,以及如何处理业务逻辑问题等。

关于application-design - 大型应用程序设计(WPF/Silverlight),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/988744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com