摘要: 通常我们通过代码混淆、加密的形式达到软件保护的目的。在Web开发里我们接触过的可能就是JS代码加密了,可以通过对JS代码进行混淆、加密从而实现对核心JS代码的保护。如果没有接触过的可以在这里简单了解一下,这次我们就不去细说了。在以前Win32的软件中,加壳脱壳的技术已经发展的非常成熟,国内有大名鼎鼎的看雪、吾爱破解等论坛,三四年前还在上学时,论坛里的大牛一直都是自己的偶像。而.NET程序因为编译结果不是机器代码语言,而是IL语言,所以加壳脱壳相关的软件还不是很多,我搜索到了一些,如VS自带的DotFuscator、.NET Reactor、xeoncode等,这次我们就简单介绍下手边有的.NE 阅读全文
posted @ 2012-11-14 17:18 Parry 阅读(22328) 评论(24) 推荐(22) 编辑
摘要: 在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API。我们在接触了Web API的后就立马发现了有安全验证的需求,所以这篇文章我们先来讨论下安全验证一个最简单的方法:使用HTTP基本认证。HTTP基本认证原理在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份认证的方法,当一个客户端向HTTP服务器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。其基本的实现方式是:客户端在用户输入 阅读全文
posted @ 2012-11-09 17:10 Parry 阅读(21674) 评论(29) 推荐(63) 编辑
摘要: 前两篇文章在编译配置和ClickOnce发布Winform的时候都遇到了软件版本号的设置,这篇文章就来说说软件版本号的设置原则。1. 软件版本号的定义软件版本号主要标识了软件的版本,通过其可以了解软件、类库文件的当前版本,使得软件版本控制有所依据。我们就Windows系统和.NET Framework的编号规则来看,软件版本号的定义结构一般是这样:主版本号.子版本号.编译版本号.修正版本号我们也可以在项目属性上可以看到相关设置的界面,对应的英文名称分别为:major.minor.build.revisionMajor:具有相同名称但不同主版本号的程序集不可互换。例如,这适用于对产品的大量重写, 阅读全文
posted @ 2012-10-31 17:26 Parry 阅读(4891) 评论(4) 推荐(6) 编辑
摘要: 使用ClickOnce发布Winform程序将使得程序的部署变得非常的方便,这篇文章就来介绍下ClickOnce的使用和部署过程中可能遇到的问题,权当梳理知识、日后备用。内容概览ClickOnce简介发布站点建立配置ClickOnce程序发布ClickOnce包问题补遗ClickOnce的一个缺点1. ClickOnce简介微软官方对ClickOnce的解释是:ClickOnce 是一项部署技术,您可以利用这项技术来创建基于 Windows 的自行更新的应用程序,并且安装和运行这类应用程序所需的用户交互最少。使用用ClickOnce主要解决了程序部署中的几个问题:更新应用程序困难。使用 Mic 阅读全文
posted @ 2012-10-30 19:10 Parry 阅读(29974) 评论(27) 推荐(12) 编辑
摘要: 这次我们来聊聊Winform编译中的那些属性设置,也算对这部分知识的一个梳理。内容概览Debug/Release、Platform不同设置的内部差别常规设置错误和警告将警告视为错误输出高级设置1.Debug/Release、Platform不同设置的内部差别在使用Visual Studio的过程中,工具栏上面的Build栏是我们常常开启显示而不怎么去关注的一个地方。左边的Debug/Release模式主要决定了项目编译的时候/optimize和/debug对应的值。当我们使用Debug进行编译的时候,设置分别为/optimize-和/debug:full。而当使用Release模式进行编译的时 阅读全文
posted @ 2012-10-25 18:30 Parry 阅读(8366) 评论(9) 推荐(12) 编辑
摘要: 概述REST(Representational State Transfer表述性状态转移)而产生的REST API的讨论越来越多,微软在ASP.NET中也添加了Web API的功能。我们看dudu的文章HttpClient + ASP.NET Web API, WCF之外的另一个选择知道了博客园也开始使用了Web API,且在使用Web API Beta版本的时候遇到了这个问题:痴情意外:ASP.NET WebAPI RC 竟然不支持最常用的json传参。我们刚好看看Web API的使用,且看目前的版本有没有解决掉这个问题。而关于ASP.NET Web Forms 4.5的新特性可以参见我之 阅读全文
posted @ 2012-09-27 11:59 Parry 阅读(71799) 评论(35) 推荐(94) 编辑
摘要: 在前两篇文章中,我们了解到了ASP.NET Web Forms 4.5四个新特性:强类型数据控件和Bundling、针对HTML5的更新和Unobtrusive Validation。在介绍强类型控件的时候只是简单介绍了下它具有ItemType的属性,可以设置强类型值进行绑定,如果只是引入了这个属性,那么有点像语法糖,没什么实际意义。其实许多园友也发现了在ASP.NET Web Forms 4.5中引入了许多MVC的特性,而Model Binding则是更加像MVC的一个特性了。Model Binding如果用过ObjectDataSource控件,肯定对其SelectMethod有印象,在A 阅读全文
posted @ 2012-09-21 09:40 Parry 阅读(4124) 评论(5) 推荐(3) 编辑
摘要: 在前一篇文章中我们介绍了两个新特性:强类型数据控件和Bundling。这次我们再介绍两个新特性:ASP.NET Web Forms 4.5中针对HTML5的更新和Unobtrusive Validation。针对HTML5的更新在ASP.NET Web Forms 4.5中,控件TextBox的TextBoxMode从之前的三个(SingleLine/MultiLine/Password)增加到了16个,详细见MSDN。这样使得做表单类页面的时候,降会大大地降低验证的代码量,提高开发效率,将更多的人力资源放在业务逻辑上。FileUpload控件终于开始支持多文件上传,可以通过AllowMult 阅读全文
posted @ 2012-09-19 12:17 Parry 阅读(3801) 评论(5) 推荐(2) 编辑
摘要: 在微软线上发布了Visual Studio 2012后,我们也能清晰地看到ASP.NET Web Forms 4.5中的一些新特性了。今天先看两个新特性:强类型数据控件和Bundling。强类型数据控件在出现强类型数据控件前,我们绑定数据控件时,前台一般使用Eval或者DataBinder.Eval(Container.DataItem,"FieldName")的形式。1<%#DataBinder.Eval(Container.DataItem,"FieldName")%>2<%#Eval("FieldName")% 阅读全文
posted @ 2012-09-18 15:09 Parry 阅读(4057) 评论(4) 推荐(0) 编辑
摘要: 在上一篇文章不同版本的SQL Server之间数据导出导入的方法及性能比较中比较了5种方法进行数据迁移的效率,最后发现使用SqlBulkCopy具有极高的性能。在文章的回复中,园友温景良(Jason)提到:sqlbulkcopy如果加上事务呢,速度应该快些吧!当时我一想,SqlBulkCopy可以包含在事务里面执行吗?因为我记得SqlBulkCopy是基于BCP且不写log的。所以也没敢仓促回复。然后我去查了下,的确是可以包含在事务中执行的,且提供了两种方法。使用UseInternalTransaction在构造函数SqlBulkCopy(String, SqlBulkCopyOptions) 阅读全文
posted @ 2012-09-11 15:45 Parry 阅读(3650) 评论(8) 推荐(2) 编辑