摘要: WCF 的 Service Instance(实例)有三种模式PerCall:每一次调用都创建一个实例,每一次调用结束后回收实例。此模式完全无状态。PerSession:调用者打开Channel时创建实例,当调用者关闭Channel时关闭实例,在关闭前,所有的调用都是同一个实例。此模式有Session,生命周期由调用者(通常是客户端)决定。Singleton:单例模式,在Service挂到Host上时,实例就已经创建了,此后所有的调用都使用此实例,且客户端关闭Channel时,并不回收实例。WCF默认使用PerSession。并发处理PerCall:不区分调用者,N次请求则创建N个实例处理。P 阅读全文
posted @ 2013-11-20 22:42 深圳大漠 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 深层次的需求不是调研出来的,是系统上线之后磨合出来的。需求最大的问题在于:用户无法理解抽象的软件模型(概念),只有软件呈现在眼前、可进行交互时才会意识到问题所在。软件描述的不是现实世界,而是用户的需求世界——这也是软件复杂的原因:现实世界只有一个上帝(只有一种世界观),而软件的每个用户都是上帝(无数种的世界观)。软件低成本的重构也是需求不断推翻重来的重要原因。 阅读全文
posted @ 2013-11-20 22:11 深圳大漠 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 需求开发过程1. 定义项目边界项目背景、大目标、系统范围、概述。2. 确定用户类组织架构图。部门、岗位、职位、角色描述。3. 在每个用户类中确定适当的代表每个用户类选择一至两名业务代表。组建项目小组,所以业务代表都参加项目小组,并选择一名客户代表。4. 需求调研会议、问卷、资料收集、一线岗位观察、目前的系统、相关行业专业书籍、公司的工作手册指南行政规定等。5. 需求分析业务用例、业务模型、业务流程。6. 构造业务测试用例以测试用例来发现需求是否完善。测试用例多从异常流程、异常情况来评估业务模型、业务流程是否完善。7. 制定需求优先级请项目小组决定需求的优先级。8. 开发系统原型针对复杂的、核心 阅读全文
posted @ 2013-11-20 22:09 深圳大漠 阅读(2809) 评论(0) 推荐(0) 编辑
摘要: Inter Core CPU 型号的尾字母含义:M:表示移动处理器(Mobile Processor);QM:四核移动处理器(Quad Mobile Processor);U:超低电压处理器(Ultra Low Voltage),常用于超级本;XM:至尊移动处理器;其中U系列为了实现低功耗,性能较差。有些I7的U系列,与I3的M系列性能差不多。 阅读全文
posted @ 2013-10-27 22:10 深圳大漠 阅读(4451) 评论(0) 推荐(0) 编辑
摘要: 假设有两张表:A表和B表。A表与B表在数据库中的关系是一对多,但我们需要在EF中映射为一对一。首先在A实体类和B实体类中互相为对方增加一个实体类的属性:public A{ public B B {get;set;}}public B{ public A A {get;set;}}然后在A的Config文件里用Fluent API配置:public class AConfig :EntityTypeConfiguration{ public AConfig(){ HasOptional(a => a.B).WithRequired(b => b.A); }}B的Config可以不用. 阅读全文
posted @ 2013-10-12 15:09 深圳大漠 阅读(1036) 评论(0) 推荐(0) 编辑
摘要: 如果Oracle CodeFirst模式下要用EFProviderWrapperToolkit,那么会报告以下错误:提供程序不支持 DatabaseExists。这个错误是因为Oracle CodeFirst是一个Fake CodeFirst,它其实不支持根据实体类生成数据表的。换言之,我们的CodeFirst只是把Table与Entity做了一次手工映射。因为Oracle的数据库是已经存在了的,因此没有必要做数据库存在与否的检测。况且ODP.NET也不支持,因此当调用EFProviderWrapperToolkit的DbProviderServicesBase.DbDatabaseExist 阅读全文
posted @ 2013-09-25 13:14 深圳大漠 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 用EF搞Oracle的fakeCodeFirst 时,一直报错以下错误:对类型“System.Data.OracleClient.OracleConnection”的存储区提供程序实例调用“get_ProviderFactory”方法后,返回 null。存储区提供程序可能未正常运行。同时还报告OracleConnection过时了:'System.Data.OracleClient.OracleConnection' is obsolete: 'OracleConnection has been deprecated. http://go.microsoft.com/f 阅读全文
posted @ 2013-09-24 16:31 深圳大漠 阅读(1775) 评论(0) 推荐(0) 编辑
摘要: 导入数据时报错以下错误,这是因为原来的数据库是GBK的,每个汉字两个字节,但新数据库是UTF-8的,每个汉字是三个字节,导致超过长度了。ORA-12899: value too large for column (actual: 27, maximum: 20)解决:开始-->运行-->cmd,之后输入:"sqlplus /nolog",进入"SQL>"的提示,按照下面给出的命令依次执行就可以了:SQL>connect username/password as SYSDBA;SQL>SHUTDOWN IMMEDIATE;SQ 阅读全文
posted @ 2013-09-17 11:13 深圳大漠 阅读(11162) 评论(0) 推荐(0) 编辑
摘要: 某系统有600张表,要求删除业务数据,但保留基础数据(部门和人员等)和字典数据。如果一张表一张表删除工作量就大了,因为外键关联决定了删除必须有先后顺序。我们可以在删除前禁用外键,待删除完毕之后再启用外键。当然,最后启用的时候发现删除了不应该删除的数据,因此删除前最好做完整备份。生成禁用外键的脚本:select 'alter table '|| t.table_name||' disable constraint '||t.constraint_name||';' from user_constraints t where t.constraint 阅读全文
posted @ 2013-09-16 20:38 深圳大漠 阅读(3090) 评论(0) 推荐(0) 编辑
摘要: 错误:Could not load type 'System.Reflection.AssemblySignatureKeyAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c调试或者在安装了VS2012的电脑上运行没事,但在干净的环境下,就报这个错误。解决:查了一下AssemblySignatureKeyAttribute,是.net framework4.5才有。仔细检查了一次每个assembly的目标框架,全部是.net framewo 阅读全文
posted @ 2013-09-14 13:49 深圳大漠 阅读(4499) 评论(2) 推荐(0) 编辑
摘要: RegSvr32注册OCX时报错。错误1:模块“dsoframer2007.ocx”已加载,但对 DllRegisterServer 的调用失败,错误代码为 0x80070005。有关此问题的详细信息,请将该错误代码用作搜索字词进行联机搜索。解决:以系统管理员身份执行。错误2:模块“dsoframer2007.ocx”加载失败。请确保该二进制存储在指定的路径中,或者调试它以检查该二进制或相关的 .DLL 文件是否有问题。找不到指定的模块。解决:注册时指定ocx的绝对路径。 阅读全文
posted @ 2013-09-14 09:38 深圳大漠 阅读(8538) 评论(1) 推荐(0) 编辑
摘要: 报告错误:Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified解决办法:1.先配置好tnsnames;2.到Oracle安装目录下面(如:C:\oracle\product\10.2.0\client_1\network\ADMIN),找到tnsnames.ora文件;3.复制tnsnames.ora文件到Oracle Client的admin目录下面(如:C:\app\Administrator\product\11.2.0\cli 阅读全文
posted @ 2013-09-13 16:34 深圳大漠 阅读(4239) 评论(0) 推荐(0) 编辑
摘要: 报告错误1:指定的存储区提供程序在配置中找不到,或者无效。报告错误2:System.Data.ProviderIncompatibleException: The provider did not return a ProviderManifest instance. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.解决办法:安装ODTwithODAC1120320_32bit ,到oracle主页可以下载:h 阅读全文
posted @ 2013-09-13 13:17 深圳大漠 阅读(2365) 评论(0) 推荐(0) 编辑
摘要: 我们可以把一个EDMX文件划分为多个类图:1.在VS中打开EDMX设计器;2.切换到“模型浏览器”属性设置窗口;3.在diagrams上右键菜单中选择“添加新的关系图”;4.在原来的关系图上可以自由地“剪切”类对象,然后“粘贴”到新的关系图上;5.如果一个类对象需要在多个关系图上显示,那么可以用“复制-粘贴”的方式实现。详细内容见:http://msdn.microsoft.com/en-us/data/jj519700.aspx 阅读全文
posted @ 2013-08-29 22:00 深圳大漠 阅读(275) 评论(0) 推荐(0) 编辑
摘要: WCF传输EntityFramework 实体类的POCO 代理Windows Communication Foundation (WCF) 不能对代理进行直接序列化或反序列化,因为DataContractSerializer只能序列化和反序列化已知类型,而代理类型是未知类型。如果需要序列化 POCO 实体,请禁用代理创建或使用ProxyDataContractResolver类将代理对象作为原始 POCO 实体进行序列化。若要禁用代理创建,请将ProxyCreationEnabled属性设置为false。 阅读全文
posted @ 2013-08-20 22:59 深圳大漠 阅读(774) 评论(0) 推荐(0) 编辑
摘要: oracle在DB First模式下,int类型的字段会自动映射为decmial类型的属性。我们可以通过自定义类型映射进行“纠整”。在app.config 自定义映射规则: 在VS2012中,以上配置有时会失效。有时候随便编辑一下app.config再编译又没问题了。实在不行重启动VS再编译又可以通过了。 阅读全文
posted @ 2013-08-15 23:13 深圳大漠 阅读(2618) 评论(1) 推荐(0) 编辑
摘要: 这两天也没改过eclipse和java的配置,但eclipse启动时报告错误:Java was started but returned exit code=-805306369后来在eclipse.ini的最后加了以下一行就搞定了。-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith 阅读全文
posted @ 2013-08-10 12:01 深圳大漠 阅读(11004) 评论(0) 推荐(3) 编辑
摘要: Java 2 CSharp Translator for Eclipse项目是开源的,以eclipse的插件形式提供,下载地址:http://sourceforge.net/projects/j2cstranslator/不过折腾了两天之后,我还是放弃了。j2cstranslator不支持复杂的语法,例如内部私有类的定义、接口定义字段等。最可气的是,只要有一个类的语法不支持,那么整个项目全部异常中止,但却没有任何提示,也没有任何日志供你分析问题出在哪里。如果项目使用的java语法简单,那么用j2cstranslator还是挺爽的。Java to CSharp Converter工具是非开源的, 阅读全文
posted @ 2013-02-20 10:15 深圳大漠 阅读(3181) 评论(1) 推荐(1) 编辑
摘要: 公司的系统是自主开发的,历史比较悠久,有不少是传统C/S架构,采用存储过程来处理业务逻辑。近来做新系统的时候,我采用了三层架构,抛弃存储过程改用ORM。有同事问及不用存储过程的理由,我想了一下,对存储过程做了如下总结。本人经验和水平有限,总结有所偏颇,还请大家纠察。优点1.在生产环境下,可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器。但这一点便利被许多人滥用了。有人直接就在正式服务器上修改存储过程,而没有经过完整的测试,后果非常严重。2.执行速度快。存储过程经过编译之后会比单独一条一条执行要快。但这个效率真是没太大影响。如果是要做大数据量的导入、同步,我们可以用其它手 阅读全文
posted @ 2012-12-06 11:00 深圳大漠 阅读(35943) 评论(32) 推荐(7) 编辑
摘要: public void Attach(string entityName, object entity, params string[] navigationProperties) { ObjectContext objectContext = ((IObjectContextAdapter)_Context).ObjectContext; objectContext.AttachTo(entityName, entity); //把detach的entity attach到ObjectContext objectContext.ObjectStateManager... 阅读全文
posted @ 2012-10-30 17:14 深圳大漠 阅读(592) 评论(0) 推荐(0) 编辑
摘要: Repository有两种实现思想1.自由式。领域层(DomainModel和DomainService)需要什么样的数据,都问Repository拿,Repository根据领域层的需要,增加许多方法。2.固定式。Repository只提供有限的几个接口,其中查询数据只提供FindById、GetAll几种方法。注意,固定式、特别是泛型的固定式(泛型的Repository)容易流于DA模式。DA模式与Repository模式有显著差别,要注意区分。我越来越倾向于用固定式。但固定式有个前提:DomainModel必须设计为聚合模型,访问任何数据,都必须从聚合根入手,不能跳过聚合根。例如我们要获 阅读全文
posted @ 2012-08-22 13:31 深圳大漠 阅读(810) 评论(0) 推荐(2) 编辑
摘要: 工作单元(UnitOfWork)模式的价值解决了当业务跨越了多个DomainService时,事务无法统一处理的问题。UnitOfWork模式的注意事项1.不应当在DomainService中调用UnitOfWork.Save(),因为DomainService永远不知道该何时提交、永远无法知道今后本身的方法会不会被跨DomainService调用。因此DomainService不调用UnitOfWork.Save方法是最安全可靠的。2.类似的,DomainService中的UnitOfWork对象必须依赖调用者传入,永远不要自己创建UnitOfWork实例,否则事务无法统一,数据也无法保持( 阅读全文
posted @ 2012-08-22 13:30 深圳大漠 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 在{BitNami Redmine Stack}\apps\redmine\htdocs\app\views\attachments\_links.html.erb 的最后面增加以下内容即可:<% images = attachments.select { |a| a.image? } %><% unless images.empty? %><div class='images'><% images.each do |attachment| %><%= link_to image_tag(url_for({:controll 阅读全文
posted @ 2012-08-10 14:15 深圳大漠 阅读(3993) 评论(0) 推荐(0) 编辑
摘要: 1.下载EasyPHP和Mantis;2.安装EasyPHP(自动集成了Apache和MySql);3.解压Mantis到EasyPHP的www目录下;4.打开EasyPHP的Local Web,进入Mantis;5.如果MySql修改了端口,那么把localhost改为localhost:port,点击install,如果出现全绿,则安装成功。6.修改Apache能够局域网访问:在Listen 127.0.0.1:8888 下面增加Listen 192.168.1.235:8888 阅读全文
posted @ 2012-07-04 10:14 深圳大漠 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 在Project的右键菜单中选择“卸载项目”,然后Project的右键菜单中选择“编辑xxx.csproj”。在最后加上<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />即可。 阅读全文
posted @ 2012-07-03 15:39 深圳大漠 阅读(4861) 评论(0) 推荐(0) 编辑
摘要: 默认的MySql没有设置密码,导致登录不了。可以在cmd中执行以下命令,更改root用户的密码为123。mysqladmin -u root password '123'Redmine的数据库配置(登录账号和密码)在 {Redmine安装文件夹}\apps\redmine\htdocs\config\database.yml中。 阅读全文
posted @ 2012-06-21 17:15 深圳大漠 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 配置放在database.yml中:BitNami Redmine Stack\ruby\lib\ruby\gems\1.8\gems\ruby-openid-2.1.8\examples\rails_openid\config\database.yml 阅读全文
posted @ 2012-06-21 16:04 深圳大漠 阅读(4221) 评论(0) 推荐(0) 编辑
摘要: 下载CKEditor插件:https://github.com/ebrahim/redmine_ckeditor;解压到{Redmine安装目录}\apps\redmine\htdocs\vendor\plugins下,目录改名为redmine_ckeditor;安装插件时保证Redmine在运行状态,有些插件安装时要访问MySql(例如CodeReview);在DOS下执行以下命令(注意路径!!!必须在plugins目录下执行才有效!!!):{Redmine安装目录}\apps\redmine\htdocs\vendor\plugins>rake db:migrate_plugins 阅读全文
posted @ 2012-06-20 19:09 深圳大漠 阅读(4790) 评论(1) 推荐(0) 编辑
摘要: 在BitNami Redmine Stack\apps\redmine\htdocs\config下打开configuration.yml,修改email_delivery的内容即可。 阅读全文
posted @ 2012-06-13 15:03 深圳大漠 阅读(3211) 评论(0) 推荐(0) 编辑
摘要: 问题在调用Attach(user)时报告以下错误:An entity object cannot be referenced by multiple instances of IEntityChangeTracker原因实体对象user的DbContext还没关闭,此时不允许再Attach到另一个DbContext上。Attach的实体对象,必须是脱离DbContext的管制。解决先关闭做查询的DbContext,再Attach到做更新的DbContext中。 阅读全文
posted @ 2012-05-17 13:30 深圳大漠 阅读(2559) 评论(0) 推荐(1) 编辑
摘要: 错误Maximum number of items that can be serialized or deserialized in an object graph is '65536'. Change the object graph or increase the MaxItemsInObjectGraph quota.解决服务器端:ServiceHost host = new ServiceHost(serviceType, uri);foreach (IServiceBehavior behavior in host.Description.Behaviors){ i 阅读全文
posted @ 2012-04-26 13:07 深圳大漠 阅读(1612) 评论(0) 推荐(0) 编辑
摘要: EF在N-Tier架构下的保存注意事项 szjay前提一个实体对象必须先进入ObjectContext中才能进行增、删、改的操作。新增新增的过程很简单,调用AddObject方法即可。修改如果要修改的实体对象是Detached状态,那么必须先调用AttachTo方法。AttachTo方法告诉ObjectContext,虽然当前实体对象没有在ObjectContext中存在,但它并不是一个新的(Added状态)实体对象,而是在数据库中存在,但ObjectContext中未装载而已。如果不采用AttachTo方法,那么就需要从数据库中查询一次到Ob... 阅读全文
posted @ 2012-04-13 11:14 深圳大漠 阅读(1773) 评论(0) 推荐(1) 编辑
摘要: 错误内容:The server has rejected the client credentials.问题:WCF客户端存在域时,客户端通过TCP调用服务器端会报告此问题。解决:设置前台和后台的NetTcpBinding:NetTcpBinding binding = new NetTcpBinding();binding.Security.Mode = SecurityMode.None;binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None; 阅读全文
posted @ 2012-04-07 17:19 深圳大漠 阅读(1015) 评论(1) 推荐(0) 编辑
摘要: 错误信息The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.原因传输的消息超过了WCF默认的尺寸。解决给binding设置消息尺寸。注意,必须前后台都要设置。binding.MaxReceivedMessageSize = int.MaxValue; 阅读全文
posted @ 2012-04-01 10:20 深圳大漠 阅读(2359) 评论(0) 推荐(0) 编辑
摘要: 今天调用查询方法的时候,出了一个本地socket超时的错误,而这个查询方法昨天还是正常调用的。调试了一会,发现只要有返回值,就会报错,如果无返回值就是正常的。估计是序列化的时候有问题,以为是没给类加上[Serializable],后来加了也不行。经过逐步排查,发现是返回的类加了一个枚举类型的属性,但没有给这个枚举属性赋值导致的。错误内容The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by 阅读全文
posted @ 2012-03-19 10:31 深圳大漠 阅读(3455) 评论(0) 推荐(1) 编辑
摘要: 原文见:http://www.infoq.com/cn/articles/ddd-in-practice 阅读全文
posted @ 2012-03-03 10:44 深圳大漠 阅读(396) 评论(0) 推荐(0) 编辑
摘要: http://social.msdn.microsoft.com/Forums/en/vssetup/thread/1172440a-a354-4f5c-8431-b2a854e1d7611.start - run - key in "cmd" and enter - key in "net stop WuAuServ" and enter2.start - run - key in "%windir%" and enter - find the folder named "SoftwareDistribution" 阅读全文
posted @ 2012-03-02 09:39 深圳大漠 阅读(11699) 评论(0) 推荐(0) 编辑
摘要: ibator是一个ibatis的代码生成工具,它能根据数据表自动生成javabean、sqlmap。ibator的官方地址是 http://ibatis.apache.org/ibator.html,目前ibator只支持ibatis2.x,而ibatis3.0还不支持。在eclipse中安装ibator插件步骤:1.在eclipse菜单中打开插件安装界面:Help -> Install N... 阅读全文
posted @ 2010-10-02 00:16 深圳大漠 阅读(12698) 评论(1) 推荐(1) 编辑
摘要: 快速迭代与原型开发l有了快速迭代之后,是否还需要原型开发?原型开发的意义在于,我们能够以一种快速简便的方式,在最短的时间内让客户看到系统的雏形。从这一点看来,原型开发其实也是快速开发的一种实践,它与快速迭代的目的是一致的。l那么如果有了短时间的快速迭代(通常是半个月,甚至一周),我们还需要做系统原型吗?如果某一个模块的业务极其复杂,不能在短时间(超过一次正常迭代的时间)内完成粗胚,那么我还是建议先做原型。现在我们得到了做原型的条件:是否做原型的关键是模块的业务是否复杂。l那么如何判断这一个模块的业务是复杂的?通常一个业务复杂的模块,要么它的界面极复杂,要么是流程非常长,甚至两者兼而有之。对于有 阅读全文
posted @ 2010-04-07 13:39 深圳大漠 阅读(5983) 评论(0) 推荐(0) 编辑
摘要: 小型团队快速开发方法 Jay这篇文章写的时候,正处于我探索小型团队快速开发方法的初期,虽然看了不少资料,但终究没有真正把文章中的开发方法真正实现过。因此,本文是我对小型团队快速开发方法的计划,并没有经过实践检验。现在看来,存在不少理想化的东西,在实际工作中并不实用,后来慢慢忘了这篇文章,转而探索其他的开发方法。今天在查找资料的时候,居然从某网站找到了这篇文章(我从未公开发表),刚开始看的时候觉得作者的知识范围和思想非常符合我的许多想法(汗~~),直到看到原始研究文档时,才醒悟过来,这篇文章就是自己写的 :-)我原来以为博客园的文章,只要不发布出去,就没人能够看见,呵呵,既然现在已经“泄露”了, 阅读全文
posted @ 2010-04-07 13:36 深圳大漠 阅读(2386) 评论(4) 推荐(2) 编辑