随笔分类 -  4 .Net

摘要:最近一个项目是将web版的程序,改为单机版。话说这个web版号称当年十几个人用了至少3个月的时间开发,后来三年还不断有修改,而现在要在1个月内由一个人完成,这简直是不可能完成的任务!直觉告诉我,重写肯定不是办法,还好有朋友用过Cassini http://cassinidev.codeplex.com (可替代IIS的单机Web Form解决方案)立即投入测试,可用;有源码,不担心出太大问题。现在项目结束了,看了一遍CassiniDev,它的基本思路是:1.新建socket,绑定并监听本机上一个可用的端口。2.对新建连接(新的请求)创建新的socket。 public void Sta... 阅读全文
posted @ 2014-01-22 16:05 大姚^o^ 阅读(2793) 评论(2) 推荐(0)
摘要:问题一:XML序列化与RESTful WCF Data Contract不能匹配,无法传递类的值。现象:给类加上[Serializable]Attribute,可以成功序列化,但是WCF Service不能识别。发现XML序列化与WCF Data Contract中成员的顺序必须相同。解决方案:1.类的头部清空WCF Data Contract的默认命名空间(见代码)。2.所有元素加上XML序列化和WCF DataMember的Order(见代码),包括被调用的类。using System;using System.Collections.Generic;using System.Runtim 阅读全文
posted @ 2013-12-26 12:10 大姚^o^ 阅读(628) 评论(0) 推荐(0)
摘要:第1章 成功应用程序的模式 简约原则(KISS)的目标就是让代码保持简洁,避免引入任何不必要的复杂度。 讲述而不要询问(Tell, Don't Ask)原则 第2章 剖析模式的模式 GoF设计模式属于以下分组之一:创建型、结构型及行为型。创建型设计模式处理构造对象的责任,结构型设计模式关注让对象工作 阅读全文
posted @ 2013-01-29 09:20 大姚^o^ 阅读(819) 评论(0) 推荐(0)
摘要:第2章 服务契约与数据契约在SOA架构中,契约提供了服务通信所必需的元数据。契约用来定义数据类型、操作、消息交换模式和消息交换使用的传输协议。契约通常是XML格式发布的。在WCF中,服务元数据通常是用WSDL(Web Service Description Language, Web服务描述语言)文档格式来描述的。有关这方面的详细内容,可以访问 http://www.w3.org/TR/wsdl 。如果不同模式之间必须严格保持一致,则每个修改实现后,必须赋给契约一个新的版本。如果不同模式之间没有必要严格保持一致,则只需注意以下几点:服务契约版本控制可以在任何时候添加新方法。可以不删除任何已存在 阅读全文
posted @ 2012-10-16 13:03 大姚^o^ 阅读(1824) 评论(2) 推荐(0)
摘要:第1章 入门约定优于配置:每一个Controller类的名字以Controller结束——如HomeController,这些类在Controllers目录中。控制器使用的视图是在Views主目录的一个子目录中,这个子目录是根据控制器名称(后面减去Controller的后缀)来命名的。在每一个控制器的View文件夹中,每一个操作方法都有一个名称相同的视图文件与之对应。第2章 控制器URL不是与存储在Web服务器的硬盘上的文件有直接对应关系,而是与控制器类的一个方法有关。理解MVC模式在Web场景中工作原理的一个好方法就是记住:MVC提供的是方法调用的结果,而不是动态生成的(又名脚本)页面。利用 阅读全文
posted @ 2012-08-27 12:26 大姚^o^ 阅读(2712) 评论(0) 推荐(0)
摘要:最近公司的项目中发现一个编译优化导致的bug。同事叙述为“在CPU开启out-of-order execution优化时,是有bug的”。针对这个问题,比较好的优化方法如下: private static JobManager self; private static object asyncObj = new object(); public static JobManager Instance { get { if (self == null) ... 阅读全文
posted @ 2012-07-10 13:28 大姚^o^ 阅读(6153) 评论(37) 推荐(7)
摘要:第1章 CLR的执行模型托管模块的各个组成部分:PE32或PE32+头,CLR头,元数据,IL(中间语言)代码。高级语言通常只公开了CLR的所有功能的一个子集。然而,IL汇编语言允许开发人员访问CLR的所有功能。JITCompiler函数负责将一个方法的IL代码编译成本地CPU指令。由于IL是“即时”(just in time)编译的,所以通常将CLR的这个组件称为JITter或者JIT编译器。Microsoft定义了一个“公共语言规范”(Common Language Specification, CLS),它定义了所有语言都必须支持的一个最小功能集。第2章 生成、打包、部署和管理应用程序及 阅读全文
posted @ 2012-03-11 19:56 大姚^o^ 阅读(986) 评论(0) 推荐(2)
摘要:- ASP.NET Web Form适用场景:典型的 Intranet 数据库报表应用程序,使用Web Form所花的时间比使用 MVC 编写短得多。此外,Web 窗体支持大量的控件,许多控件均具备非常先进的功能,可以大大提高效率。- ASP.NET MVC适用场景:当程序员需要严格控制HTML,很关注带宽的限制、搜索引擎及友好的URL格式、需要支持单元测试,那么MVC框架更加适合。公司文档相对比较简单,就跟“hello world”一样,是一次体验。暂时不再更新本篇随笔。 阅读全文
posted @ 2012-01-31 12:52 大姚^o^ 阅读(905) 评论(0) 推荐(0)
摘要:LINQ to SQL 不仅可以查询数据,还可以执行需要的Insert/Update/Delete语句。也可以与整个过程交互操作,并定制所执行的操作,给CRUD操作添加自己的业务逻辑。这本书后面有几章是电子版的,源码和电子书下载地址为:源码http://www.wrox.com/WileyCDA/WroxTitle/Professional-C-4-0-and-NET-4.productCd-0470502258,descCd-DOWNLOAD.html 电子书(C#高级编程(第7版,中文) 第48~57章) http://ishare.iask.sina.com.cn/f/18154624. 阅读全文
posted @ 2011-12-31 11:06 大姚^o^ 阅读(505) 评论(0) 推荐(1)
摘要:delicious(美味书签)9月底改版以来,备受新页面的困扰,没有以前好用了,书签也不正常了,迫使我必须进行改变。寻找解决方案不久后,我发现Firefox的书签是可以在不同的机器上同步的,只要登录相同的账号就可以,于是我将delicious上的书签备份成html格式的文件,准备导入Firefox,问题就来了:Firefox不兼容delicious的备份文件。于是我写了一套程序,将这个文件改成Firefox认识的格式,代码贴出来,与遇到相同问题的朋友一起共享,开发环境是vs2010。源码下载: /Files/BenjaminYao/delicious2firefox.7zView Code p 阅读全文
posted @ 2011-10-09 13:31 大姚^o^ 阅读(455) 评论(0) 推荐(1)
摘要:最近在公司做新系统,建好模型,发现有一堆枚举要编写。为了避免自己造轮子,网上去搜枚举生成器,居然没有......反而找到一堆实体生成器,于是只能自己写了。写了一个耦合较高的程序...1. 服务器名硬编码2. 默认表第一个字段为枚举值3. 默认表字段“Name”为枚举名4. 增加Description属性,可通过反射绑定到下拉框如果大家要适合自己的数据库使用,请打开源码修改。扩展考虑:按照我目前的程序,如果“Name”是中文,枚举名就是中文,其实我们可以在表中再建一个英文名字段,这样英文做枚举名,中文做摘要。附上源码:/Files/BenjaminYao/GenerateEnum.rar目录De 阅读全文
posted @ 2010-07-23 22:13 大姚^o^ 阅读(798) 评论(15) 推荐(2)
摘要:昨天公司进行代码安全规范培训,有些东西早已知道,而有些东西第一次听说,于是都记下来和大家一起分享。1. 防止SQL注入a. 除了过滤单引号“' ”,还要过滤数据库中的注释符号“-- ”。b. SQL语句中的字符串拼接,是很不靠谱的;实在要拼接,一定要从代码安全的角度多想想。2. 文件上传漏洞这是我头一次听说有这么一个漏洞。现象:假设我们使用的是IIS6.0及之前版本,当我们上传一个文件名为【熊猫烧香.aspx .jpg】,那么存到服务器上的文件将会是【熊猫烧香.aspx】。原因:文件名【熊猫烧香.aspx .jpg】在“.aspx”和“.jpg”之间有一个蛮像空格的符号,其实是通过16 阅读全文
posted @ 2010-07-09 07:47 大姚^o^ 阅读(23534) 评论(37) 推荐(12)
摘要:1.ASP.NET MVC使用URL进行驱动,URL中比较关键的规则名有Controller和Action。2.在Application_Start时添加URL规则,规则的顺序非常重要。3.物理文件与URL规则冲突时,调整RouteExistingFiles属性可以避免。4.使用URL Routing Debugger可以快速检验一个URL是否被规则采纳。5.配置规则时,关键的元素有 URL(例如:{controller}/{action}/{id}) Defaults 默认值 Constraints 约束6.URL Rewrite和URL Route是有区别的。URL Route更像是一种基 阅读全文
posted @ 2009-12-10 18:41 大姚^o^ 阅读(540) 评论(0) 推荐(0)
摘要:MVC是一种表现模式它的三种角色如下:#Model:用于存储数据的组件#View:根据Model数据进行内容展示的组件#Controller:接受并处理用户指令(操作Model),选择一个View并输出内容MVC与三层架构根本没有可比性,MVC是表现模式,而三层架构是架构模式,你可以在三层架构中使用MVC。看着这幅图顺便说一句,一个好的架构,层与层之间是单向调用的,不过一个完全是单向调用的系统几乎是不可能出现的。 阅读全文
posted @ 2009-12-08 11:50 大姚^o^ 阅读(605) 评论(4) 推荐(0)
摘要:TestDriven.NET是可以在Microsoft Visual Studio中添加的单元测试插件目前支持以下几种测试: *NUnit * MbUnit * ZaneBug * MSTest * NCover * NCoverExplorer * Reflector * TypeMock * dotTrace * MSBee官网地址是 http://www.testdriven.net/很好的... 阅读全文
posted @ 2009-11-08 23:00 大姚^o^ 阅读(319) 评论(0) 推荐(1)
摘要:WCF有两种调用方式:1.通过VS添加服务引用,就跟引用Web Service一样样的。2.通过SvcUtil.exe生成代理类和一个配置文件(output.config),然后把配置文件加到Web.config中,代理类放到你程序中合适的地方,接着就跟调用普通类一样调用它就可以了。生成代理类方式:控制台方式下,使用命令 SvcUtil <你的WCF服务地址> 阅读全文
posted @ 2009-11-04 12:26 大姚^o^ 阅读(394) 评论(3) 推荐(1)