我公司的主要Web应用程序迫切需要一组漂亮的库,以便以某种方式使其可维护和可扩展,我的一位同事建议CSLA.所以我买了这本书,但是:
程序员不再读书了
我想评估一下SOFlow社区对它的看法.
所以这是我的问题:
我正在使用Automapper将我的NHibernate代理对象(DTO)映射到我的CSLA业务对象
我正在使用Fluent NHibernate来创建映射 - 这很好用
我Order遇到的问题是它有一个集合,OrderLines每个都有一个参考Order.
public class OrderMapping : ClassMap<OrderDTO>
{
public OrderMapping()
{
// Standard properties
Id(x => x.OrderId);
Map(x => x.OrderDate);
Map(x => x.Address);
HasMany<OrderLineDTO>(x => x.OrderLines).KeyColumn("OrderId").Inverse();
Table("`Order`");
}
}
public class OrderDTO
{
// Standard properties
public virtual int OrderId { get; set; }
public virtual DateTime OrderDate { get; set; }
public virtual string Address { get; set; }
// Child collection properties
public virtual IList<OrderLineDTO> OrderLines { get; …Run Code Online (Sandbox Code Playgroud) 在VS2010中,我的MSTest测试运行得很好.
在VS2012中运行时出现错误.该测试使用自定义业务主体设置Csla.ApplicationContext.User.当要求EntityFramework提供新的ObjectContext时,我收到一个SerializationException,指出无法找到我的自定义业务主体类型.
在运行VS2012的测试运行器或Resharper7的测试运行器时,使用EntityFramework的所有测试都会失败.我试过NCrunch的测试跑步者,他们都通过了.
我该如何解决这个问题?
我的公司有兴趣将大型业务应用程序移植到.NET.我们计划开发桌面版和Silverlight版.我主要研究了CSLA框架(得到了岩石的书,已经过了一半)并发现它有点过度设计,数据层方面似乎也没那么精致.
是否还有其他框架声称要做CSLA正在做的事情?我不是在谈论ORM工具(例如L2S,EF,NHibernate.)我对支持业务规则的框架感兴趣,简单的n层架构,对象是域驱动的而不是数据库驱动的,业务对象的安全性等...
我知道我可以找到一些小框架来完成所需的一些工作(想到企业应用程序块),但我正在寻找一个包含所有内容的框架.
根据这篇文章,你可以做到包括使用lambda表达式http://romiller.com/2010/07/14/ef-ctp4-tips-tricks-include-with-lambda/.
例如 ...
var blogsWithPosts = context.Blogs.Include(b => b.Posts);
Run Code Online (Sandbox Code Playgroud)
所以,我有......
IQueryable<Data.Patient> query = ctx.ObjectContext.Patients
.Include("Person");
Run Code Online (Sandbox Code Playgroud)
我想拥有它......
IQueryable<Data.Patient> query = ctx.ObjectContext.Patients
.Include(row => row.Person);
Run Code Online (Sandbox Code Playgroud)
我添加了System.Data.Entity的导入...但仍然无法实现.我正在使用Csla,所以我的上下文对象设置为...
using (var ctx = Csla.Data.ObjectContextManager<ApplicationEntities>.GetManager(Database.ApplicationConnection, false))
{
}
Run Code Online (Sandbox Code Playgroud)
这可能是问题...任何帮助将不胜感激!
我是CSLA和实体框架的新手.我正在创建一个新的CSLA/Silverlight应用程序,它将取代已有12年历史的Win32 C++系统.旧系统使用自定义DCOM业务对象库并使用ODBC来访问SQL Server.新系统不会立即取代旧系统 - 它们必须在未来几年内与同一数据库共存.
起初我认为EF是最先进和最好的方式.在制作一个小型EF模型并且只有2个CSLA可编辑的根对象(我最终会有数百个对象,因为我的数据库有800多个表)时,我正在质疑EF的使用.
在当前的系统中,我需要多次对查询进行精细的细节性能调优,因为我可以100%控制生成的SQL.但是在EF看来,在幕后发生的这么多事情让我失去了控制权.像http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html这样的文章并没有帮助我对EF的印象.
由于LINQ to EF,人们似乎喜欢EF,但由于我的标准在客户端和服务器之间作为标准对象传递,因此我似乎可以在没有LINQ的情况下轻松构建查询.我在WCF RIA中了解到有查询投影(或类似的东西)我可以做客户端LINQ,它在转换为实际SQL之前会移动到服务器,所以在这种情况下我可以看到EF的好处,但不是CSLA的好处.
如果我使用原始ADO.NET,我会在5年后后悔自己的决定吗?
最近有没有其他人做过这个选择,你走哪条路?
Martin Fowler建议使用服务层作为域模型和"数据加载器"之间的边界.但是,Rockford Lhotka建议在业务对象本身中构建验证,这正是CSLA.NET所做的.
将此抽象到服务层的好处显然是您的服务层可以跨多个业务对象协调活动/操作.但是,使用服务层而不是直接使用业务对象进行业务逻辑和验证有哪些其他优点和缺点?
有没有人在CSLA中有单元测试的例子.我觉得很难用这个框架实现TDD,并且想知道是否有任何简单的方法可以做到这一点.除了可以免费构建我的测试对象的TypeMock Isolator之外,还有其他的Mock Framework吗?如果您有任何建议和样品/示例,我会很高兴吗?谢谢.
我想知道人们曾经使用CSLA .NET 3.8及更高版本进行TDD的工具,模式等.
哪些部分最省力.是否存在完全未经测试的零件等.
任何和所有信息都是最受欢迎的.
谢谢