摘要:
对面向接口编程、按分层建项目的反思和新的分层结构思路本着每隔一年就得折腾一个新框架的习惯,近期对以前框架繁琐的结构进行了一些反思,加上打算新框架放弃使用EXTJS,也深入研究了下Asp.net MVC 4。在此给大家汇报一下,也希望大伙提出宝贵意见。 先回顾一下我们以前的框架分层和目录结构:上图可以看出,基本是按照DDD的路子去划分项目的分层的,每层一个项目。点开业务领域层看下:如上图,业务领域层,数据访问层,应用层是采用面向接口编程。系统中有大量的单一实现的接口。接下来我们再到展现层看看:如上图,由于系统采用EXTJS做UI,所以会有大量的JS文件存在。 这个设计用了将近两年,大小项目将.. 阅读全文
posted @ 2013-08-13 18:30
HackerVirus
阅读(243)
评论(0)
推荐(0)
摘要:
Go语言实战 - revel框架教程之权限控制一个站点上面最基本都会有三种用户角色,未登录用户、已登录用户和管理员。这一次我们就来看看在revel框架下如何进行权限控制。因为revel是MVC结构的,每一个url其实都会映射到一个具体的Controller.Action上面,所以权限控制落到实处就是对Action的访问进行控制。那么思路是如下:1. 有一个方法能够判定当前是什么角色。2. 有一地方定义了每一个Action的访问权限要求。3. 有一个方法能够在调用所有Action之前被调用,而且能够判定是否还要继续调用Action。我们一项一项来解决。存储当前用户的角色信息先定义一个角色类型如下 阅读全文
posted @ 2013-08-13 18:27
HackerVirus
阅读(283)
评论(0)
推荐(0)
摘要:
等待与通知机制在之前我们关于停止Thread的讨论中,曾经使用过设定标记done的做法,一旦done设置为true,线程就会结束,一旦为false,线程就会永远运行下去。这样做法会消耗掉许多CPU循环,是一种对内存不友好的行为。 java中的对象不仅拥有锁,而且它们本身就可以通过调用相关方法使自己成为等待者和通知者。 Object对象本身有两个方法:wait()和notify()。wait()会等待条件的发生,而notify()会通知正在等待的线程此条件已经发生,它们都必须从synchronized方法或块中调用。 这种等待-通知机制的目的究竟是为何? 等待-通知机制是一种同步机制,但它更像是 阅读全文
posted @ 2013-08-13 18:25
HackerVirus
阅读(252)
评论(0)
推荐(0)
摘要:
实现代码编辑器上一次曾经发布过一篇如何实现一个代码编辑器。今年工作中得空,所以对这个编辑器进一步做了些更新,把名字改成了从CuteC改成了CEditor。主要是重写了软件的界面(最终还原朴素),重写了编辑控件语法高亮的着色方式,还有增加了一个简单的SSH客户端和SFTP文件编辑的功能。感觉基本的功能已经实现了,所以再次写点东西记录一下。并且发布一下编辑控件的源代码,有兴趣的可下载下来看看,虽然代码写得比较乱。 上个版本:http://www.cnblogs.com/linxr/archive/2011/10/30/2229256.html 编辑控件源码链接:http://files.cnblo 阅读全文
posted @ 2013-08-13 18:03
HackerVirus
阅读(282)
评论(0)
推荐(0)
摘要:
自定义html标签 (觉得页面全是div 的解决办法 来个个性化)办法一(来源于 让ie支持html5标签的方法):在ie9以前如果要自定义要使用document.createElement的方法自定义一个helloworld的标签把直接上代码123456710111417181920754756765212223所以在js加了ie9的判断办法二:(来源于:HTML自定义标签-采用xml标记) 直接上图ps:我发现只在ie9+以上有效 而且html里面的xmlns属性也是多余的 ,不知道我哪里写错啦请各位看官评论分类:wp8标签:Html,Css 阅读全文
posted @ 2013-08-13 15:57
HackerVirus
阅读(393)
评论(0)
推荐(0)
摘要:
javascript生成自定义的arcgis simpletoolbar 最近在学习ARCGIS for Javascript过程中,在ESRI的在线帮助上看见了这样一个示例,查看源码后,觉得左侧工具的可扩展性并不是太好,并且要素的样式还不能自定义,于是就开始着手设计一个可以自定义边框和填充颜色的小工具。 1.封装setSymbol类:此类的实现基于原型链,有初始(init)、初始化操作(initOperater)、生成样式项(initItem)、添加项(addItem)、编辑项(editItem,未实现)、删除项(deleteItem) 等。详细代码如下:View Codefunction. 阅读全文
posted @ 2013-08-13 15:49
HackerVirus
阅读(287)
评论(0)
推荐(0)
摘要:
数据库索引及基本优化入门一前言 经常在面试中发现很多人工作了好多年了,项目经验也不少,用过各种数据库,但大都不知道这些SQL语句背后的基本原理,更别说数据库优化了。平时做项目只知道实现功能,懒得学习,懒得思考,懒得看书(其实本人也是,不要找借口说这是China国情,项目是给boss做的,但技术和成长是你自己的)。 本篇文章主要讲述数据库索引的基本原理,及基本的数据库优化的知识。所有知识均为本人自己学习的总结以及网络。此篇文章主要是为公司内部人员培训所用的,整理出来只是希望和大家分享、交流,因本人技术有限,若有遗漏、错误,希望多多指正、交流。二.基础知识2.1页 数据库文件存储是已页为存储单元的 阅读全文
posted @ 2013-08-13 15:15
HackerVirus
阅读(261)
评论(0)
推荐(0)
摘要:
VB的写法,关于版本写入注册表'软件都有一个关于我们的菜单,单单实现这个功能并不难,困难的是能够将这些信息写入注册表中,这样每次只要弹出这样的窗口,就从注册表里去搜索。这样是不是极大的节省了资源。这里也是一种通用的用法,例子比较初级。下面是全部的代码:Option Explicit' 注册表关键字安全选项...Const READ_CONTROL = &H20000Const KEY_QUERY_VALUE = &H1Const KEY_SET_VALUE = &H2Const KEY_CREATE_SUB_KEY = &H4Const KEY_ 阅读全文
posted @ 2013-08-13 14:59
HackerVirus
阅读(238)
评论(0)
推荐(0)
摘要:
PropertyGrid仿VS的属性事件窗口效果图:。首先我们去重写一下PropertyGrid:internal class MyPropertyGrid : System.Windows.Forms.PropertyGrid { private System.ComponentModel.Container components = null; public MyPropertyGrid() { InitializeComponent(); } protected override void ... 阅读全文
posted @ 2013-08-13 14:53
HackerVirus
阅读(589)
评论(0)
推荐(0)
摘要:
WCF学习笔记之事务编程一:WCF事务设置事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元;WCF通过System.ServiceModel.TransactionFlowAttribute特性定义在契约的相应操作方法上;TransctionFlowOption三个选项:NotAllowed、Allowed、Mandatory不同的事务流转策略;1:NotAllowed(默认) 客户端的事务不会允许被流转到服务端,服务端也不会试图去接收流入的事务;2:Allowed 如果客户端的事务在,则被流转到服务端,服务端会试图去接收流入的事务;3:Mandatory 客户端必须在一个 阅读全文
posted @ 2013-08-13 14:26
HackerVirus
阅读(198)
评论(0)
推荐(0)