- 博客(56)
- 资源 (1)
- 收藏
- 关注

原创 企业应用框架基础模块
企业应用系统开发的越多,就会发现里面存在很多通用任务。如果把这些通用任务作为基础模块,整合到一个框架里面,以后开发项目就可以在这个基础上进行,可以加速项目进行。我从后端到前端总结了一些基础模块,主要是基于Asp.Net 的Web解决方案。供大家在实现此类框架时做参考。一. 后端1. 基础组件1) 持久层 SqlHelper , Enterprise Library, O/R
2014-03-01 20:11:47
4680
转载 AM PM
1. 24-hour clock system00:00:00 - 23:59:592. 12-hour clock system12:00:00 am - 11:59:59 am12:00:00 pm - 11:59:59 pm无00:00 am 或者00:00 pm 的It is incorrect to write 0:00p.m. The use o
2016-11-09 13:47:14
1462
原创 匿名对象的Distinct
在使用linq distinct集合的时候,发现匿名对象和非匿名对象的区别。 匿名对象自动实现了GetHashCode和Equals方法,Distinct可以自动去重。如果使用非匿名对象,则需要该对象override GetHashCode()和Equals(object obj)方法, 或者添加一个实现IEqualityComparer的辅助类,作为Distinct参数。参考下面
2016-10-25 15:35:55
537
原创 Windows Service 创建与安装
使用Vs的 Windows Service模板可以很方便地开发Windows服务。在Service文件 的设计界面,右键点击Add Installer,可以添加一个ProjectInstaller类,然后设定服务的运行账号,名称等。 #region Component Designer generated code /// //
2016-09-12 17:57:01
3322
原创 SQL Server Primary Key和Clustered Index
在创建Table设定主键的时候,SQL Server会自动创建一个对应的Clustered Index。如果使用Microsoft SQL Server Management Studio工具,发现这个Clustered Index只能删除,不能通过界面进行修改。这让人误以为在主键上只能建立Clustered Index, 实际上却不是这样的。 如果通过Script 创建,我们可以指定在主
2016-07-27 10:58:30
9258
原创 Cassandra 入门
一. 基本概念1. Primary Key, Partition Key, Clustering Key以下面的Table为例子:create table sample( k_part_one text, k_part_two int, k_clust_one text, k_clust_two int, k_c
2016-06-13 20:05:40
3355
原创 Struct vs Class 作为HashTable或者Dictionary的Key
1. 使用Struct. 1) 使用Struct,如果成员都是简单类型,默认情况下,第一个成员相同的时候,GetHashCode 值相同。如果成员值全部相同,则两个Struct相等。 2) Struct的GetHashCode 和Equals效率低2. 使用Class 1) 必须实现GetHashCode,重载Equals方法(不然每次new 一个C
2016-05-23 15:35:03
1462
原创 应用系统Url交互之数据加密
应用系统在通过url交互的时候,通常对传递的数据有一定的安全性要求,采用加密算法是比较常见的实现途径。下面从通用角度,介绍我们的设计方法。一. 建立注册中心 1) 注册中心为各个系统建立登记信息,定义系统名称,并且分配APIKey。系统使用这个APIKey来调用注册中心的服务,获取AccessToken. 2) 建立两两系统间的访问控制关系,数
2015-09-24 16:00:07
1847
原创 微信企业号开发
基于微信企业号的H5应用,相对于单独客户端的应用,具有开发周期短、开发相对简单的特点。微信凭借于庞大的用户群,构建了一个内置于移动应用用中的"类应用商店"。用户只需关注,即可马上使用,完全免去下载的麻烦。基于这种优势,微信公众号开发可谓如火如荼。 微信公众平台的账号目前分为3类,分别为服务号,订阅号,企业号,基于是否认证,又区分为普通号和认证号...
2015-09-22 08:47:12
4063
转载 SQL Server 与 Oracle数据类型映射
Microsoft SQL ServerOracleCommentBIGINTNUMBER(19) BINARYRAW-BITNUMBER(3)-CHARCHAR-DATE
2015-08-18 08:52:04
1044
原创 ASP.NET Web API的版本化与安全性
使用Web API来构建Web 服务,是一件非常容易的事情。Web API使用Http协议, 具备良好的可访问性,尤其适于部署到internet. 作为服务,就有一个版本化和安全性的问题。
2015-08-05 10:36:20
4011
原创 WebRequest.GetSystemWebProxy()的效能问题
使用WebRequest 在Web后台发送请求,给request设定proxy,发现在特定账号下运行,调用WebRequest.GetSystemWebProxy(),会出现严重的效能问题。 var request = (HttpWebRequest)WebRequest.Create(new Uri(url)); request.Method
2015-05-29 13:03:37
2265
原创 关于Asp.Net VNext的一些资源
1. 使用Redis作为ASP.NET Session State Providerhttp://blogs.msdn.com/b/webdev/archive/2014/05/12/announcing-asp-net-session-state-provider-for-redis-preview-release.aspx2.在asp.net运行后台任务https://
2015-02-19 20:37:07
554
转载 HTTP状态码
HTTP状态码HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的 3 位数字代码。0(无法访问)代码 说明 0 (无法访问)无法连接服务器或者域名不存在。 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一
2015-02-19 19:46:21
1479
原创 系统时区处理
随着云计算时代的到来,应用的用户可能来自世界各地,如果依然固执的认为时间都是北京时间,就有些固步自封了。时区的问题非常复杂,不时会让人陷入迷惘之中。下面我为介绍一下我项目中的经验,希望抛砖引玉,让我们且行且思考。 很久很久以前,一般企业应用都是这样假定的:客户端(使用者),应用服务器,DB服务器都位于同一个时区,它们的时间被精准同步。客户端时区 /
2014-04-10 11:00:16
4070
原创 树形数据在关系数据库的存储
树形数据在关系数据库中的存储同对象一样,都会遇到一个"阻抗不匹配"的问题。如何设计一个表结构,才能较好的满足需求呢?事实上,有很多解决方案,但是没有哪一种是放之四海而皆准的。我个人认为解决方案的选择,必须依赖于需求背景。抛弃需求背景而就技术泛泛而谈,就如同孔乙己对回字不同写法的孜孜追求,满身酸腐之气。凡事有得就有失,十全十美的方案是不存的,合适的就是最好的。下面就集中常见的方案做一下比对,然后
2014-03-25 15:34:34
6046
原创 系统多语言实践(二)
上一篇 我们介绍了静态多语言的设计,这篇我们介绍动态多语言的设计。1. 多语言存储假设下面一个场景:系统有一个产品目录需要维护,目录名称和描述需要支持多语言存储。表结构设计如下:PRODUCT_CATEGORY PK栏位类型允许NULL描
2014-03-17 14:50:53
1384
原创 系统多语言实践(一)
应用系统支持多语言,在有跨国业务的公司中,是个很常见的需求。一般涉及到的语言有中简、中繁、英文、日语等。本文就.Net Web平台下实现该需求做一些初步探讨。在Asp.Net Web Form时代,微软就给出了一个解决方案。简单来讲,就是将多语言资料维护到*.{Culture Code}.resx文件中,绑定的工具根据该文件自动生成静态的多语言访问类。这个方案,简单实用。对于一般的小项目也
2014-03-14 14:38:46
3706
原创 MVC Anti-XSS方案
XSS攻击是用户提交到服务器的数据包含恶意JavaScript脚本,如果这种数据在存储或显示的时候不加处理,那么其它用户访问页面的时候,这些脚本可能被执行,轻则导致页面无法正常使用,重则导致重要信息泄露。 开发Web应用程序,需要从全局考虑这个问题,采取一致的处理方式,在整个开发过程中严格执行,避免产生XSS漏洞。下面分别就Form和Json两种数据提交模式,所采取的方案做一下介绍。
2014-03-12 17:24:42
5337
原创 开源组件的管理与应用杂谈
在企业应用中合理使用开源组件是个不错的方向。如果管理和应用呢,我谈一下个人的几个观点。首先,在管理方面,使用Nuget。Nuget能够管理外部组件的版本,依赖,引用等,而且被良好的集成到VS中。其次,应用方面,要使用接入的概念,在自己的产品主框架里面定义好接口,通过Adapter(Wrapper)模式,匹配外部开源组件接口。这么做可能基于以下原因:1. 所引入的开源
2014-02-12 10:06:36
1347
原创 动态组装Form提交数据并跳转
MVC中无法Post json数据到另外一个页面,可以动态组装一个Form提交到新页面。见如下代码:var data = ["34", "34343", "43t43t"];function postForm(data) { //var newForm = $('', { // 'action': '/scm/Config/Modify', // 'target': '_top', // 'm
2014-02-11 15:23:58
3733
原创 Oracle和SQLServer 数据类型映射
要同时支持Oracle 和SQLServer数据库,表设计的时候,栏位的数据类型是其中一个考虑因素。我采取的原则很简单:尽可能少的引入数据类型。然后根据下面的表格进行对应。OracleSQL ServerNUMBER(p[,s])decimal(p[,s])NUMBER(3,0)int
2014-01-20 10:27:51
1766
原创 动态项目引用与发布
很多项目都需要具备支持多种数据库的能力。在实现的时候,我采用的方式是使用同名数据库实现层覆盖的方式。具体如下: 数据接口层: Stock.IRepository 数据实现层: Stock.Repository : Stock.IRepository. 目前数据接口层有两个版本的实现,一个是SQL Server , 一个是Oracle, 编译后生成的dll
2014-01-17 10:58:13
1635
1
原创 MS 发布Web站点的执行流程
最近考虑做产品自动生成安装程序,看能否在这个流程中集成MS Build和Web 发布工具。先看了一下MS发布Web的执行流程。以发布到文件系统为例,主要步骤如下:1. 验证基础配置信息 $(PackageAsSingleFile)为 True ...2. 收集所有需要发布的文件 从项目项 @(IntermediateAssembly)中收集所有文件。正在添加:
2014-01-10 12:48:58
5481
原创 Razor与SPA,关于MVC-View实现的思考
微软在MVC4中,推出了一个SPA的实现框架,看上去非常酷。视频地址:http://channel9.msdn.com/Events/TechDays/TechDays-2012-Belgium/199。正好我最近也在考虑MVC中view的问题:按照传统的做法,View中会有Model, ViewBag, HtmlHelper , 直接创建对象等服务器端代码,但是这些是不是都可以用纯粹的html结
2012-10-05 15:30:55
2715
原创 Web前端开发技术
抛弃WebForm转向MVC开发将近一年,学习那些前端开发的技术,不免有种面朝大海,春暖花开的感觉。各种各样的理念,框架竞相登场,百花齐放,真是热闹非常。我将最近接触到的一些理念,技术,工具等,整合成一张思维导图,供大家参考。标注红旗的,为实践中所选用。
2012-10-05 14:50:49
3518
原创 MVC 技术点滴
1. 前端技术组件 JQuery -- JS 框架,http://jquery.com/ jQuery.Validation --前端验证,http://bassistance.de/jquery-plugins/jquery-plugin-validation/ jQuery.UI --UI
2012-03-27 09:27:29
1407
原创 自定义回发事件
在某些情况下,需要引发一个回发事件。一种方案是使用隐藏的按钮控件,使用js激发按钮的onclick事件。比较优雅的方案则是实现IPostBackEventHandler接口。public partial class DataForm : : System.Web.UI.Page, IPostBackEventHandler{ private string m_OnSo
2011-11-28 16:11:17
875
原创 SQL/Oracle 两表关联更新
有TA, TB两表,假设均有三个栏位id, name, remark. 现在需要把TB表的name, remark两个栏位通过id关联,更新到TA表的对应栏位。建表脚本:drop table TA;create table TA(id number not null,name varchar(10) not null,remark varchar(10) not null)
2011-11-18 10:09:21
22502
原创 寻找黑洞
做一回标题党!这不是一个探索宇宙的问题,实际问题如下: 某表base_table,千万数据级别,其中ID列为数字,从1开始。请找出该列中的不连续数字。 我给出的大体思路是先构建一个初始为1~10000的序列表,然后循环步进关联基础表进行筛选。代码如下:declare @begin_on datetime--记录开始时间select
2011-11-08 10:41:39
849
原创 产品客制化思路
一个通用产品,如HR, OA等,要满足形形色色的客户需求,系统弹性一定要足够好。即便如此,也不可避免客户的定制化要求。如何在客制化后进行产品升级,是个容易引起蛋疼的问题。本人从技术层面进行了一些思考。 1. 系统接口 设计人员,需要提炼提炼接口,对于容易变化的部分,提供默认实现。不同用户可以选择不同的配置件,默认提供不满足要求的,就可以客制化开发。 2.
2011-11-07 17:23:17
1243
原创 JavaScript 定义Class的方式
JavaScript 作为一种简单灵活的语言,随着互联网,智能客户端的发展,变得越来越举重若轻。虽然JS不是一种以类为基础的面向对象的程序设计语言,但是它在模拟像Java和C++这样以类为基础的语言时做得相当出色。JavaScript定义Class的方式,有下面几种写法。1. 直接定义函数function userModel(element, flag){ /*--
2011-11-02 09:14:49
5670
1
原创 一致化外部数据源管理
考虑这样一个背景:A系统有一张人事表,B系统也有一张人事表,且B中有一些A中没有的人员属性。如果A需要引用这些数据,该如何处理呢?实际上,通过View, WebService, 数据同步,数据直接访问,都可以达到这个目的。但是如果A作为一个中心系统,还需要访问C, D, E…等系统所特有的数据,该如何处理呢?比较好的办法是做一个通用的外部数据源管理模块,通过简单的设置和公共方法,达到方便一致取
2011-11-01 17:10:34
1506
转载 ORACLE PL/SQL编程之五: 异常错误处理
http://www.cnblogs.com/huyong/archive/2011/05/06/2038743.html
2011-09-29 08:52:18
613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人