销售管理应用程序的可能模式和良好实践?

时间:2011-04-02 16:47:14

标签: c# asp.net-mvc-2 design-patterns

在我的asp.net mvc 2应用程序中,我有以下规范: 我必须制作一个广泛使用JQuery的POS系统(因此我对这部分中的模式不感兴趣)并生成按时间划分的销售和销售报告,以便在我的模型中使用。 此外,我需要为产品提供商生成订单。 我有销售,产品,销售报告,采购订单和产品供应商等实体。

我将使用Entity Framework,linq2Sql,automapper和viewmodels将信息传递给aspx页面。

我的模式问题是我理解互联网上的例子,但我几乎无法想象应用于我的模型。 您是否认为可以应用于此场景的任何常见模式?也许使用任何模式的一些“相似”的例子?

另一方面,在模型类中编写linq2sql语句是一个好习惯吗? 例如,在Models / Sales.cs中获取销售清单是否正确?

public List<Sales> GetSales(DateTime Date1, DateTime Date2){

     var sales = from item in data.Sales
                 where ((item.Date> Date1) && (item.Date< Date2)) &
                 select item;

  //Rest of code
  ....... 

}

提前致谢!

1 个答案:

答案 0 :(得分:0)

  

模式的问题在于我理解互联网上的例子,但我几乎无法想象应用于我的模型

尝试将低级设计模式与您所描述的高级概念相匹配将无法正常工作。为了开始编写低级软件,你必须解决这些高级别问题:

  • 您的整个域模型(不是代码)
  • 您所需的业务方案
  • 您的IT拓扑以支持您的应用
  • 您需要编写哪些软件
  • 每个软件如何与其他部分交互

一旦确定,您就可以开始处理各个应用程序的高级体系结构,实现业务需求和交互所需的相应类,以及这些类与每个类的协作。其他

低级设计模式确实适用于最后一部分 - 各个班级或班级家庭之间的合作。

当然,在设计固化之前,您始终可以尝试自下而上的方法并开始编写代码。但是,只有在您已经知道要使用哪些课程以及他们需要如何互动之后,您才能够应用模式。

换句话说,我必须查看您的代码,告诉您应该使用哪种低级设计模式。

您的说明详情显示您已使用更高级别的模式

  • Asp.net mvc 2
  • 实体框架
  • LINQ2SQL
  • automapper
  • 的ViewModels

这些组件中的每一个都有自然内置的大量图案。例如,ORM,迭代器和MVC都是设计模式。

  

在模型类

中编写linq2sql语句是一个好习惯

如果您只从常规做法中获取示例,那么您可能会避免使用它。出于某种原因,人们似乎喜欢多层应用程序中的普通对象。

但是,一些专家认为将无代码域(模型)对象作为反模式这种非常常见的做法:请参阅http://en.wikipedia.org/wiki/Anemic_Domain_Modelhttp://www.martinfowler.com/bliki/AnemicDomainModel.html