标签: csla

我怎样才能快速学习CSLA.NET?

我想快速学习CSLA.NET.你有什么建议?

.net csla

6
推荐指数
3
解决办法
1万
查看次数

你如何测试你的业务对象?

我想在我的软件开发项目中使用Visual Studio中的Microsoft测试框架实现自动化测试.我已经创建了一些测试,总而言之,它非常易于使用.

有哪些更好的测试业务对象的实践,更具体地说是读取和写入数据库的实践.

是否最好从开发数据库中设置一个单独的测试数据库,从中测试用户界面,然后只测试该数据库?基本上只是填充垃圾数据.

是否更好地接受某种类型的清理后自己的心态,这意味着,如果我正在测试AddUser方法,我是否添加用户,检查我的测试,然后删除用户?

您是否在一种测试方法中测试每种CRUD方法?

最后,如验证字符串的各个业务规则具有正确的大小,开始日期小于结束日期,CustomerId是正确的客户等等.

我意识到这是一个非常广泛的问题......只是寻找一些方向......采取婴儿步骤.

更多信息...

很多很好的答案!我不确定我是否能够启动模拟数据库.我使用CSLA作为我的对象的框架.需要一些严肃的重构才能使用mock对象进行测试.我要调查一下这个.虽然,在某些时候,我确实想测试数据库交互...当使用模拟数据库时,你何时/何时实际测试数据库通信?

另一个问题......最好是保持每种测试方法不依赖于其他测试吗?

.net testing csla unit-testing

6
推荐指数
2
解决办法
4073
查看次数

使用Linq2SQL删除记录时出错

我最近收到了客户的错误报告,并且没有解决它的运气.我希望有人能给我一些有关可能出错的信息.

错误似乎很简单:

Csla.DataPortalException:DataPortal.Delete失败(System.InvalidOperationException:Sequence在System.Linq.Enumerable.SingleOrDefault [TSource]中包含多个元素(IEnumerable`1 source)

这是我的DataPortal_Delete方法,它将FileId(PK)作为参数.

private void DataPortal_Delete(SingleCriteria<File, Guid> criteria)
    {
        using (var ctx = ContextManager<Ronin.Data.RoninDataContext>
                    .GetManager(Database.ApplicationConnection, false))
        {
            var data = ctx.DataContext.Files
                    .Single(row => row.FileId == criteria.Value);

            ctx.DataContext.FileSources.DeleteAllOnSubmit(data.FileSources);

            ctx.DataContext.Files.DeleteOnSubmit(data);

            ctx.DataContext.SubmitChanges();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我检查的第一件事是看看是否有另一条记录具有相同的FileId(尽管是主键,这应该是不可能的).所有FileIds实际上都是唯一的.我启动了连接到客户端数据库的应用程序,并试图删除该记录,它没有任何问题.客户端站点的IT人员使用"问题步骤记录器"向我发送用户采取的操作的逐步屏幕截图.没有什么与众不同的,当他使用不同的机器时,他能够毫无错误地删除记录.显然,只有在Windows 7中运行应用程序时才会发生这种情况.

那说,有什么可能导致这个的想法?

csla linq-to-sql

6
推荐指数
1
解决办法
366
查看次数

使用SqlCommand返回值

我正在尝试获取结果集并在SQL 2008服务器上返回存储过程的值.当我在sql management studio中运行proc时,我得到结果集和返回值.

但是,当我尝试在C#4.0中获取值时,参数的值为null.这是我的C#代码:

using (ConnectionManager<SqlConnection> cn = ConnectionManager<SqlConnection>.GetManager(CultureInfo.CurrentCulture.Name))
{
    using (SqlCommand cm = cn.Connection.CreateCommand())
    {
        cm.CommandText = "Name of proc here";
        cm.CommandType = CommandType.StoredProcedure;

        cm.Parameters.AddWithValue("@ApplicationId", ApplicationId);                                        
        cm.Parameters.AddWithValue("@Index", Index);

        if (PageSize > 0)
            cm.Parameters.AddWithValue("@PageSize", PageSize);

        cm.Parameters.Add("@ReturnValue", SqlDbType.Int);
        cm.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue;

        using (IDataReader dr = cm.ExecuteReader())
        {
            SafeDataReader sdr = new SafeDataReader(dr);
            while (sdr.Read())
            {
                UserApplicationEntity uae = new UserApplicationEntity();
                uae.UserId = sdr.GetGuid("UserId");
                uae.ExternalId = sdr.GetString("ExternalId");
                Result.Value.Collection.Add(uae);
            }

            Result.Value.TotalResults = (int)cm.Parameters["@ReturnValue"].Value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我调用Result.Value.TotalResults =(int)cm.Parameters ["@ ReturnValue"]的最后一行.值; 是值为null的位置.我发现的每个教程或帖子,我似乎正在做正确的事情.在这一点上,我想我只是缺少一些小东西,需要另一组眼睛.我也试过在所有其他人之前设置返回参数作为我在MS网站上发现的一个帖子说我需要,但无论它在哪里,它都返回null.

.net c# csla sql-server-2008

6
推荐指数
1
解决办法
8140
查看次数

使用LINQ to SQL导致此InvalidOperationException的原因是什么?

我们在一两周前的实时应用程序中遇到了一些错误,这些错误迄今为止都没有得到解释.我们在内部看到了这些错误,客户也体验到了这些错误,因为它体现在一组Web服务中.

我在下面包含了内部异常,该项目使用CSLA框架,并在从数据库中检索对象时发生错误.

在我们开始遇到错误时,系统没有进行任何已知的更改,基础结构包含许多负载平衡Web服务器.

这些错误似乎与我们的某个服务器隔离,我们使用连接到Web服务的控制台应用程序来体验它们.有问题的服务器使用本地DMZ IP来解析其hosts文件中的Web服务,并强迫它向外部移动,似乎解决了这些问题.

应用程序和基础设施之间似乎是一个非常精细的界限来隔离它,所以我想知道是否有人有任何想法或理论可以解释这个?

<InnerException>
      <ExceptionType>System.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
      <Message>Exception of type 'System.InvalidOperationException' was thrown.</Message>
      <Source>mscorlib</Source>
      <HelpLink />
      <Property name="Data">System.Collections.ListDictionaryInternal</Property>
      <Property name="TargetSite">Void VerifyIntegrity()</Property>
      <StackTrace>   at System.Runtime.CompilerServices.ConditionalWeakTable`2.VerifyIntegrity()
   at System.Runtime.CompilerServices.ConditionalWeakTable`2.Add(TKey key, TValue value)
   at System.Linq.Expressions.Expression..ctor(ExpressionType nodeType, Type type)
   at System.Data.Linq.SqlClient.Translator.TranslateLink(SqlLink link, List`1 keyExpressions, Boolean asExpression)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.ConvertToFetchedExpression(SqlNode node)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.ConvertLinks(SqlExpression node)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.FetchExpression(SqlExpression expr)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitMember(SqlMember m)
   at System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitExpression(SqlExpression expr)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitNew(SqlNew sox)
   at System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode node)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitExpression(SqlExpression expr)
   at System.Data.Linq.SqlClient.SqlBinder.Visitor.VisitSelect(SqlSelect select)
   at System.Data.Linq.SqlClient.SqlVisitor.Visit(SqlNode …
Run Code Online (Sandbox Code Playgroud)

c# linq csla linq-to-sql

6
推荐指数
1
解决办法
6204
查看次数

是Asp.Net MVC + CSLA + DDD可能

前几天我被要求审查一个基于ASP.NET MVC + CSLA + DDD(域驱动器设计)的系统.该系统的第一个版本基于ASP.NET MVC + CSLA.第二个版本是基于加上DDD.原因是因为......好吧,我不知道是什么.当我查看两个不同架构的图表时,很明显第二个版本非常复杂.CSLA对象基本上使用了Domain对象.当你看到这样的东西时,你知道它已经闻起来但是很难证明为什么有人不应该这样做而没有A)对所有主题有极端的了解或者B)长时间使用它.我没有这个主题,但我知道如果我从头开始构建这个,我不会这样做,也不会与很多开发人员联系.

所以,亲爱的读者,在这种情况下你会做什么?我的想法是,如果你想使用CSLA和MVC和DDD,那么你做一个立场并选择一个或另一个(CSLA或DDD).如果你不这样做,厨房里的厨师太多了.

如果您对此事有意见,请提供一些见解.

csla asp.net-mvc domain-driven-design

5
推荐指数
1
解决办法
2723
查看次数

学习CSLA.NET框架

什么是学习CSLA框架的良好起点.

.net c# csla .net-3.5

5
推荐指数
1
解决办法
8928
查看次数

使用实体框架创建临时表

我想使用实体框架在sql server中创建一个临时表。有什么办法可以做到吗?如果我可以创建一个临时表,那么我的下一个问题是如何读取它?

提前致谢。

安德烈

c# sql csla entity-framework

5
推荐指数
1
解决办法
1万
查看次数

CSLA getproperty,setproperty与常规getter和setter之间的区别

我是C#,csla和NHibernate的新手。这可能是一个新手问题,但我没有在其他地方看到明确的解释。有人可以帮助我了解两者之间的区别吗

   public int Property
    {
        get { return GetProperty<int>(Property); }
        private set { SetProperty<int>(Property, value); }
    }
Run Code Online (Sandbox Code Playgroud)

和

public int Property{get;set;}
Run Code Online (Sandbox Code Playgroud)

.net c# csla nhibernate

5
推荐指数
1
解决办法
399
查看次数

是否可以使用 .NET Remoting + TLS 1.2(或 1.1)?

最近我们的 PCI DSS 扫描失败,并要求我们禁用 TLS 1.0(并启用 TLS 1.1 或 1.2)。我在 Windows Server 2008 R2 盒子上找到了如何执行此操作的说明,但我们有一个使用 .NET 远程处理的旧应用程序(它是一个 .NET 2.0 windows 窗体应用程序/IIS 托管的 CSLA 1.5 数据门户),它没有t 与新设置进行通信。

我收到以下异常:

在此输入图像描述

我尝试了客户端和服务器中 TLS 设置组合的各种配置,但均无济于事。例如:

  1. 在客户端和服务器上禁用 TLS 1.0(在注册表中)并启用 TLS 1.2。
  2. 在客户端和服务器上启用 TLS 1.1(在注册表中)。

我做了一些研究,发现.NET 4.5 框架支持 TLS 1.1 和 1.2,但尚不清楚这是否扩展到 .NET 远程处理。可以?

另外,我发现微软的建议是升级到 4.5.2。

也就是说,这个应用程序与 .NET 4.5.2 有很多依赖性和不兼容性,因此了解我是否确实通过升级朝着正确的方向前进,或者我是否应该疯狂地完全重写这个应用程序会很有帮助(我探索过的所有选项都需要对应用程序进行重大更改)。即使构建一个测试应用程序来尝试它也可能具有挑战性,因为我已经大约 10 年没有直接处理过 .NET 远程处理了。

所以,我的问题又是 - .NET 远程处理支持 TLS 1.1 还是 1.2?

还:

  1. 升级到 .NET Framework 4.5.2 足以实现这一目标吗?
  2. 是否需要进行更多配置设置才能进行通信?如果需要,它们是什么?
  3. 如果只需要升级到 .NET Framework 4.5.2,是否需要升级整个应用程序,仅升级使用 …

.net asp.net csla iis-7.5 .net-remoting

5
推荐指数
1
解决办法
2720
查看次数