摘要: http://www.css3maker.com/ 阅读全文
posted @ 2011-11-24 18:32 火腿骑士 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 最近上网上找了些关于CSS实现垂直居中的方法,方法挺多,下面就我看到的几种好方法在这里说明一下,使用 CSS 实现垂直居中并不容易。有些方法在一些浏览器中无效,因此,到底选择哪种方法好,还要看具体情况。 方法一:这个方法把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align property 属性。view sourceprint?1<div id="wrapper"> 2<div id="cell"> 3<div class="content"> 4Conten 阅读全文
posted @ 2011-11-24 18:20 火腿骑士 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 在页面里加入些动画,可以是页面更加生动活泼,使用CSS3的动画功能,可以使页面上的文字或图像具有动画功能。比如说背景色从一种颜色,平滑的过度到另一种颜色。CSS3中的动画功能有两种,Transitions和Animations。这两种功能都可以通过改变CSS中的属性值来产生动画效果。本文简单介绍一下Transitions功能的使用方法。 到目前为止,支持CSS3中的Transitions功能的浏览器有:Firefox 4+ 、Opera 10+、Safari 3.1+、Chrome 8+等,transitions属性的使用方法如下: transition: property durati... 阅读全文
posted @ 2011-11-24 18:19 火腿骑士 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 在CSS3中,用Transform功能可以实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形,这四种变形分别使用rotate、scale、skew和translate这四种方法来实现。将这四种变形结合使用,就会产生不同的效果,使用顺序不同,产生的效果是不一样的。 目前浏览器支持情况:Safari 3.1+、 Chrome 8+、Firefox 4+、Opera 10+、IE9+ 一、旋转: CSS中使用rotate方法来实现对元素的旋转,在参数中加入角度值,旋转方式为顺时针旋转。 例一:一个黄色的div元素,通过在样式代码中使用“transform: rotate(45deg)”... 阅读全文
posted @ 2011-11-24 18:17 火腿骑士 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 做winform程序,很多时候都需要用到插件式的,所以本人做了一个Demo,思路跟网上思路基本一致,现在共享出来如有需要的朋友可以下载。申明:部分代码来源于网上,当然思路也是,呵呵 原理很简单:一:定义插件接口二:实现插件接口并建立不同工项目,使其在生成时生成不同的DLL三:主程序运行时根据接口名利用反射对插件目录的DLL进行加载,加载完成后便可以使用插件接口定义的方法或属性了。下面上几张图,有兴趣的朋友可以先看看,觉得值得一看的朋友可以下载。 项目结构:DefaultPlugin,PosPlugin两个项目均为插件,均实现了Iplugin接可Iplugin接口 usingSystem;usi 阅读全文
posted @ 2011-11-24 16:59 火腿骑士 阅读(233) 评论(0) 推荐(0) 编辑
摘要: ESFramewor使用技巧(2)-- 在插件中使用NHibernate 我们来讨论一下这种情景,你采用基于ESFramework的4层架构进行应用开发,你分析用户的需求,并将其分类整理为几大块,考虑每一块使用一个功能插件来完成。在这几个插件中,有个插件需要访问某个数据库,并且只有这个插件需要访问这个数据库,根据插件的“自治”性质,你不想将本插件中的数据访问“上升蔓延”到应用程序(FS),而是让它“仅仅”在本插件中,这样,无论是对FS还是插件都是有好处的--FS自己不需要访问数据库(日志记录除外),插件“自治”、而且插件之间相互独立,整个系统的结构是非常清晰简单的。 好了,我们决定在那个需要. 阅读全文
posted @ 2011-11-24 16:54 火腿骑士 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 在Mike Taulty的视频教程中有一个动态加载silverlight应用程序的DEMO,其程序运行效果如下: 当加载dll之后: 其实实现这个的效果本身并不难,主要是这个DEMO的应用场景可以让人做很大的扩展,比如说插件机制等. 好了,让我们看看如何实际去开发这个示例,以便让大家从流程和技术点上有个了解. 首先我们需要建立一个叫DynamicLoading的silverlight Application, 然后将如下的内容拷贝到Page.xaml中:<UserControlx:Class="DynamicLoading.Page"xmlns="http: 阅读全文
posted @ 2011-11-24 16:45 火腿骑士 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 我的架构经验小结(三)-- 深入三层架构 在 我的架构经验小结(二)-- 关于三层架构一文中,已经比较深入的介绍过三层架构方面的一些经验了,现在,我们来使用一个更小的比例尺来近距离观察我所理解的三层架构。一.三层架构图二.系统各层次职责1.UI(User Interface)层的职责是数据的展现和采集,数据采集的结果通常以Entity object提交给BL层处理。Service Interface侧层用于将业务或数据资源发布为服务(如WebServices)。2.BL(Business Logic)层的职责是按预定的业务逻辑处理UI层提交的请求。(1)Business Function 子层 阅读全文
posted @ 2011-11-24 16:35 火腿骑士 阅读(218) 评论(0) 推荐(0) 编辑
摘要: TCP服务器“拒绝服务攻击” 解决方案 说这是一个完全的解决方案,其实有点夸大了,但这个方案确实可以缓解TCP服务器遭受“拒绝服务攻击”时表现出的脆弱性。 当服务器以Tcp的方式提供服务时,客户端通过tcp连接上服务器。这时,恶意的程序,也可以通过tcp连接我们的服务器,如果恶意的程序采用循环与我们的服务器建立成千上万的连接,并在每个连接上都发送恶意的数据包给服务器,慢慢就会导致服务器资源耗尽而崩溃! 为了增强Tcp服务器在遭受“拒绝服务攻击”时的稳定性,我采用的方案是这样的:(1)通信协议的消息头增加Token字段,并且它是消息头的第一个字段。当服务器接收到一段数据,如果这段数据不是以To. 阅读全文
posted @ 2011-11-24 16:28 火腿骑士 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 经过这几年的积累,在系统架构方面逐渐积累了一些自己的经验,到今天有必要对这些经验作个小结。在我的架构思维中,主要可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。 一.三种架构模型1.3/N层架构 这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的。下图是经典的3层架构: 如今,凡是个程序员都能侃侃而谈3/N层架构,这确实是解决系统复杂性的一种主流模式,但是,只要采用了3/N层架构是不是就一定能解决系统的复杂性了?不一定,关键在于你在你的系统中如何实作你的3/N层结构。 在采用了3/N层架构后,我们还是要解决以下非常重要的问题:系统的可 阅读全文
posted @ 2011-11-24 16:10 火腿骑士 阅读(186) 评论(0) 推荐(1) 编辑
摘要: (本文名字取为“服务器系统自动升级”,实际上适用于所有应用程序自动升级的情况。) 前文介绍了在服务器或客户端应用程序运行的过程中,插件如何自动升级、更新。基于前文相同的理由,AS、FS、IRAS也需要有自动升级的功能。 与插件在运行时动态更新不同,服务器系统无法在运行时动态更新,只有在服务器系统重新启动的时候,才是自动升级的切入点。(1)对于功能服务器FS,可以采用持续/逐个更新的方式,即依次重启每个功能服务器。这样可以避免功能服务被中断的情况发生。需要注意的是,只有当目标FS上没有功能请求时,才可重启该FS,否则,会导致终端出现发出请求没有响应的糟糕的用户体验。解决方案是:在FS重启之前,F 阅读全文
posted @ 2011-11-24 11:56 火腿骑士 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 当我们的服务平台搭建成功后,所需要做的主要事情就是开发服务端功能插件(IFunAddin)和客户端插件(IPassiveAddin),每个插件对(AddinPair)实现了一组相似或相近的需求/功能。 好了,我们已经开发了十多对插件对,然后分别XCopy到了各个服务器节点上,“整个系统”已经投入了运行。通过前面的介绍(回顾),相信大家对我们的“整个系统”有了个大致的映像。我们的IRAS服务器通常只存在于一个节点上,而我们的AS和对应的多个FS通常分布在非常多个节点上(比如每个大中城市都分配一个AS),而且这些节点相距非常遥远,深圳AS位于深圳、上海AS位于上海、武汉AS位于武汉等等。整个系统非 阅读全文
posted @ 2011-11-24 11:48 火腿骑士 阅读(161) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/zhuweisky/article/details/411825这个题目听起来蛮吓人的,毕竟本人的经验值也不高,却大放厥词在这里谈“企业级”。原因有二,一是把这一年以来的开发DataServer服务器的工作做个总结;二是希望能抛砖引玉,希望这方面的研究和交流繁荣起来,毕竟,目前讲这方面实战经验的文章资料太少了。正式开题之前,绝对有必要先简单的介绍相关的背景。在写这篇文章的时候,我在航天量子数码科技有限公司(Aeromatex)产品部工作,全权负责DataServer的设计与实现。DataServer基于GIS/GPS是用于提供各种基于位置服务及其它远程 阅读全文
posted @ 2011-11-24 11:36 火腿骑士 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 最初之所以要采用插件的形式进行开发,主要是为了解决功能服务的“热插拔”问题,在决定采用“框架+插件”的方式进行设计后,我们就更进一步,打算将一个个可以分割开来的拥有完整功能的组件都做成插件的形式,并且使同类型的插件的接口兼容,这样在以后需要改变时就可以灵活的进行替换。比如,将通信部分做成通信插件、日志记录部分做成日志插件等等。首先,我们要弄清楚,什么是插件?我给出了一个定义,可能有失偏颇。 插件又称为扩展,是一种特殊的组件,用于增强和扩展基本框架的行为能力。插件和框架的通信协议是一组接口,插件的各种特性都可以通过该接口进行访问。插件主要有如下特点:(1)一个插件是一个独立的物理单元。它可以独立 阅读全文
posted @ 2011-11-24 09:26 火腿骑士 阅读(222) 评论(0) 推荐(1) 编辑
摘要: 设想这样一种场景:我们的服务系统提供一系列的功能服务,而以后会有更多新的功能服务增加进来,也可能出现功能服务需要被更改或移除的情况。对于这样的服务系统,一个常见的基本的要求就是,在添加/移除/更新功能服务的时候不能停止的服务系统的运行。通常,将每一项服务封装成一个插件Dll,可以非常容易地实现“插件热插拔”(关于插件的基础信息,参见这里),但是插件的“热替换”(“动态替换”)却成了一个问题。原因在于,当我们从服务系统中卸载插件Dll的时候,实际上服务系统仍然持有该Dll的底层引用,这时如果你尝试删除或覆盖这个Dll,windows就会给出类似“该Dll正在被使用”的信息。 那么如何解决这个问题 阅读全文
posted @ 2011-11-24 09:24 火腿骑士 阅读(752) 评论(0) 推荐(1) 编辑
摘要: 在DataServer中,功能插件位于功能服务器上,被框架用于处理所有的功能请求,功能请求的表现形式是数据流,即字节数组。 在描述功能插件的外貌之前,先有必要了解这个被功能插件处理的数据流,这个数据流可能基于某种流协议格式,也可以是被序列化的请求对象。所谓“基于格式的流协议”是这样一种消息协议,它定义了数据流的固定偏移处接下来的几个字节的含义,比如规定数据流从偏移为4的地方是一个整数,该整数表示本消息的长度。如果采用基于协议格式的流,则功能插件必须首先能解析此数据流;如果采用的是序列化的流,则只要反序列化该流即可(序列化一般也可以采用两种方式--二进制序列化或XML序列化)。可以这么认为,序. 阅读全文
posted @ 2011-11-24 09:18 火腿骑士 阅读(239) 评论(0) 推荐(0) 编辑
摘要: ESFramework介绍之(6)―― 基于C/S的4层架构概述 ESFramework的4层结构的4层分别是:客户端(Client)、应用服务器(AS)、功能服务器(FS)、数据库服务器。它们之间的联系图示意如下: FS (FunctionServer),功能服务器,处理并且仅处理所有的功能性请求,不参与用户管理、状态保持等,提供最纯粹的功能服务。 AS (ApplicationServer),应用服务器,转发所有的功能请求给FS,并处理所有的非功能请求,并管理终端用户、进行状态保持、日志记录等。 上图中的功能服务器FS的个数可能是0到N(N>0)个。在某种意义上可以认为,每个功能服务 阅读全文
posted @ 2011-11-24 09:15 火腿骑士 阅读(188) 评论(0) 推荐(0) 编辑