编译调试CSLA .NET Framework v1.5
Posted by: Rickie Lee (www.cnblogs.com/rickie )
Date: Apr. 2005
CSLA是Component-based, Scalable, Logical Architecture的简写,CSLA .Net是Rockford Lhotka基于.Net设计的一套N-tier分布式框架。
如果对该框架感兴趣,可以从下面的链接下载CSLA .NET源程序,先设置CLSA.NETv1.5/cslacs10/www/DataPortalcs目录的Web application(DataPortalcs)属性,下一步在本地编译调试:
1.创建你自己的key文件:
sn -k mykey.snk
2.在VS.NET中打开CSLA .NET项目,并编辑CSLA.Server.DataPortal,CSLA.Server.ServicedDataPortal,CSLA.Resources等项目中的AssemblyInfo.cs文件,使keyfile属性指向你所创建的key文件:
[assembly: AssemblyDelaySign(false)]
// TODO: update this to point to your key
[assembly: AssemblyKeyFile(@"c:/download/mykey.snk")]
[assembly: AssemblyKeyName("")]
3.修改DataPortal Web项目中web.config配置文件,设置相应的数据库连接:
<appSettings>
<add key="Authentication" value="CSLA" />
<!-- TODO: update connection strings as appropriate -->
<add key="DB:PTracker" value="data source=ineroth;initial catalog=PTracker;user id=ptracker;password=ptracker" />
<add key="DB:Security" value="data source=ineroth;initial catalog=Security;user id=ptracker;password=ptracker" />
<!--
<add key="DB:PTracker" value="data source=ineroth;initial catalog=PTracker;integrated security=SSPI" />
<add key="DB:Security" value="data source=ineroth;initial catalog=Security;integrated security=SSPI" />
-->
</appSettings>
在正式的Production环境中,一般需要为每一个application创建一个单独的DataPortal Web项目。DB:PTracker 为application的数据库连接信息,DB:Security 则为用来进行安全验证的数据库连接信息。
4.编译CSLA .NET项目。
现在,应该编译通过了。
References:
1. Rickie, CSLA .Net学习资料, http://www.cnblogs.com/rickie/archive/2005/03/23/123862.html
2. Rockford Lhotka’s homepage, http://www.lhotka.net/Default.aspx
href="http://www.cnblogs.com/rickie/Services/Pingback.aspx" rel="pingback"/>
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-11 23:41
To Teddy,
Rockford has written an article about what you concerned, where he thinks it's not a performance issue.
Justifying reflection in the DataPortal
http://www.lhotka.net/Articles.aspx?id=4320e7f2-dd14-4928-b552-4eb0cb82cd68
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 11:56
"perhaps your performance requirements can't be met by the current implementation" ---- 这是作者文章中最后的话,我还是感觉他过于乐观了,像这类对象构建和方法调用,对一个对性能略有要求的应用来讲都是完全可以避免的性能损失,for each使用的类型转换,实际没有用反射,而一般来讲dataaccess中用反射来动态加载数据访问模块则可以在加载后作为全局共享变量,不用每次都创建的。但,他的这个方式可是业务逻辑层啊,逻辑简单相对于其它代码比例小的话还好,否则对大多数逻辑复杂度是应用的主要复杂度的应用,性能影响肯定会很大了呢~~
当然对性能要求不高的应用又比如单机客户机应用来讲还是很合适的,可以极大简化代码~~
另一方面,我总是觉得凡是反射,必然可以构造一个与其完全等价的代码生成方案以在必要时与反射放按切换,或者,开发原型时用反射,后期发布前再改成代码生成,可能比较好~~
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 14:33
"他的这个方式可是业务逻辑层啊,逻辑简单相对于其它代码比例小的话还好,否则对大多数逻辑复杂度是应用的主要复杂度的应用,性能影响肯定会很大了呢~~ "
===
Sorry, 我没有明白你的意思。Server端的DataPortal采用Reflection机制获取BusinessClass类型,并创建相应的对象实例,然后通过Reflection调用业务方法,这与"逻辑复杂度"有什么关系?
另外,作者Rockford是以实际的数据测试来验证Refection对CLSA.NET性能影响的,实际测试比较应该是一种值得推荐的方式。
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 17:09
作者的实测数据没有给出真正的测试项目,我觉得很难说明问题。
逻辑层复杂度的问题是指,罗基层对象构造的频率远高于数据访问,之前一段时间在博客园也有不少朋友测试反射的性能损失,如果访问达到一定的频繁度的话对性能影响挺严重的,所以至少我不喜欢这样用反射。
当然也要具体情况具体分析,最好对特定的项目做性能实测分析。
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 23:36
To Teddy,
不错,如果有时间,我会自己测试一下CSLA .NET中Reflection对性能的影响如何。
#
re: 编译调试CSLA .NET Framework v1.5
2005-05-20 17:12
我也正在研究CSLA.NET,有时间联系:MSN:neu_dancer@hotmail.com
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-11 16:51
csla好像是完全通过reflection构造business对象和调用对象的方法呢~~
有点怕怕~~ 真怀疑它的性能呢!
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-11 23:41
To Teddy,
Rockford has written an article about what you concerned, where he thinks it's not a performance issue.
Justifying reflection in the DataPortal
http://www.lhotka.net/Articles.aspx?id=4320e7f2-dd14-4928-b552-4eb0cb82cd68
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 11:56
"perhaps your performance requirements can't be met by the current implementation" ---- 这是作者文章中最后的话,我还是感觉他过于乐观了,像这类对象构建和方法调用,对一个对性能略有要求的应用来讲都是完全可以避免的性能损失,for each使用的类型转换,实际没有用反射,而一般来讲dataaccess中用反射来动态加载数据访问模块则可以在加载后作为全局共享变量,不用每次都创建的。但,他的这个方式可是业务逻辑层啊,逻辑简单相对于其它代码比例小的话还好,否则对大多数逻辑复杂度是应用的主要复杂度的应用,性能影响肯定会很大了呢~~
当然对性能要求不高的应用又比如单机客户机应用来讲还是很合适的,可以极大简化代码~~
另一方面,我总是觉得凡是反射,必然可以构造一个与其完全等价的代码生成方案以在必要时与反射放按切换,或者,开发原型时用反射,后期发布前再改成代码生成,可能比较好~~
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 14:33
"他的这个方式可是业务逻辑层啊,逻辑简单相对于其它代码比例小的话还好,否则对大多数逻辑复杂度是应用的主要复杂度的应用,性能影响肯定会很大了呢~~ "
===
Sorry, 我没有明白你的意思。Server端的DataPortal采用Reflection机制获取BusinessClass类型,并创建相应的对象实例,然后通过Reflection调用业务方法,这与"逻辑复杂度"有什么关系?
另外,作者Rockford是以实际的数据测试来验证Refection对CLSA.NET性能影响的,实际测试比较应该是一种值得推荐的方式。
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 17:09
作者的实测数据没有给出真正的测试项目,我觉得很难说明问题。
逻辑层复杂度的问题是指,罗基层对象构造的频率远高于数据访问,之前一段时间在博客园也有不少朋友测试反射的性能损失,如果访问达到一定的频繁度的话对性能影响挺严重的,所以至少我不喜欢这样用反射。
当然也要具体情况具体分析,最好对特定的项目做性能实测分析。
#
re: 编译调试CSLA .NET Framework v1.5
2005-04-12 23:36
To Teddy,
不错,如果有时间,我会自己测试一下CSLA .NET中Reflection对性能的影响如何。
#
re: 编译调试CSLA .NET Framework v1.5
2005-05-20 17:12
我也正在研究CSLA.NET,有时间联系:MSN:neu_dancer@hotmail.com
评论
有点怕怕~~ 真怀疑它的性能呢!