随笔分类 -  DotNet

摘要:考虑到部署方便,我们一般都会将C#写的Windows服务制作成安装包。在服务安装完成以后,第一次还需要手动启动服务,这样非常不方便。查阅了网上的一些资料,发现有一种方法是在安装完成事件里面调用命令行的方式启动服务,这种方式虽可行,但觉得不够完美。好了,下面来看看如何更好地做到服务自动启动。 1、重写ProjectInstaller的Commit方法using System;using Syste... 阅读全文
posted @ 2011-12-04 12:11 陈 锋 阅读(4738) 评论(5) 推荐(3)
摘要:AJAX由于受到浏览器的限制,不允许跨域通信。如果尝试从不同的域请求数据,会出现安全错误。有时我们为了实现跨域通信,不得不做一个中转页面,这样比较繁琐。是不是就没有办法了呢?有的,我们使用JSONP技术就可以解决这个问题。JSONP 具体实现原理这里就不介绍了。下面介绍下在asp.net 中使用JQuery 实现 跨域通信。 阅读全文
posted @ 2011-10-27 23:26 陈 锋 阅读(2328) 评论(1) 推荐(2)
摘要:Adhesive框架的数据访问层是基于ADO.NET Entity Framework,所以用法和实体框架基本相同。为了满足实际项目的需要,我们在实体框架的基础上做了一些扩展,主要有以下几点: 1、对数据库连接字符串中比较敏感的密码字段进行加密; 2、数据库连接字符串配置脱离本地配置文件(web.config或app.config),集中在配置服务后台进行配置和管理; 3、数据自动审核,只要实体对象实现了IAuditable接口,当添加或修改实体对象时,CreatedOn和ModifiedOn字段会被自动设置为当前日期; 4、逻辑删除,像一些比较重要的业务数据,一般是不允许物理删除的,只要实体 阅读全文
posted @ 2011-10-27 10:57 陈 锋 阅读(2075) 评论(6) 推荐(1)
摘要:在上一篇文章中提到配置服务模块分为服务端和客户端,作为使用者只需要关心客户端的一些接口就行了。我们来看一下这些接口的定义。public interface IConfigService { T GetConfigItemValue<T>(string cateName, T defVal); T GetConfigItemValue<T>(string cateName, T defVal, ConfigItemValueUpdateCallback callback); T GetConfigItemValue<T>(string cateNa... 阅读全文
posted @ 2011-10-12 15:42 陈 锋 阅读(1569) 评论(1) 推荐(2)
摘要:首先谈一下配置服务的相关背景。在一个复杂的系统中,有些部分可能会存在经常性的变动,这些部分可能是系统本身也可能是业务需求,考虑到系统的灵活性和可扩展性,我们将经常需要改动的部分作为参数配置,以达到在不修改代码的前提下,调整系统功能及业务逻辑。像一些大型系统,比如SAP就是就是一个很好的例子。系统可以通过6000 个"开关"设置,调整软件的业务流程。通常我们会使用本地配置文件(XML)保存配置信息,使用配置文件缺点也很明显,当我们的系统越来越庞大,配置文件会越来越多,甚至需要大量的服务器来支撑时,配置文件的更新相当麻烦,而且各个服务器上配置文件版本的一致性也很难保证。我们的思 阅读全文
posted @ 2011-10-11 12:46 陈 锋 阅读(1797) 评论(2) 推荐(2)