随笔分类 - [20]DesignAnalysis设计分析
-
实战-架构设计
摘要:实战-架构设计在微软的阵营中,将其在不同领域提出的技术解决方案利用一个项目,串起来,融会贯通,例如底层采用ef,展示层使用mvc,自定义一个业务层,让两者串联,就成一个简单的三层架构,这是催动其他多层架构的内功。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅对于开发人员是一件受苦受难的事情,软件本身的质量更是受到严重威胁。架构设计图架构说明一个标准的四层架构包含如下四个部分:展示层,负责系统与客户的交互业务逻辑层,负责处理系统的业务数据访问层,负责处理数据,与不同的数据库打交道服务层,负责与其他系统进行数据交互和业务 阅读全文
-
Portal-Basic Java Web 应用开发框架(Portal-Basic v3.1.1 beta-1 示例工程发布)
摘要:Portal-Basic Java Web 应用开发框架(Portal-Basic v3.1.1 beta-1 示例工程发布)portal-basic 3.1.1 已开发完成,正在编写帮助文档,将于近期发布。现在先发布 portal-basic 3.1.1-BETA-1 的示例工程供大家下载试用,体验新特性。同时希望收集一些意见反馈。谢谢 *_^ 注:本示例工程增加了 “异步 Action” 和 “异步 REST Action” 示例。 Portal-Basic Java Web应用开发框架(简称 Portal-Basic)是一套功能完备的高性能Full-Stack Web应用开发框架... 阅读全文
-
Google——在用最简单的方式赚钱
摘要:Google——在用最简单的方式赚钱楼主最近在研究大数据,当然要想真正的了解大数据或者是处理大数据仅凭我们自己会的这些三脚猫的功夫是不够的,遂本人就开始学习一些技术和方法,当然最重要的还是技术背后的思维。Hadoop,一头勇猛的大象,我看了几个星期的书,发现要想真正的去学习Hadoop就要去读Google的那三篇比较著名的论文。当然,在这里我才刚刚把今天的主角请了出来——Google。 最近不知怎么了,发现自己已经深深的被Google所吸引。可是学校不给力,要想连接Google的香港服务器要等上半年,当然这要归功于我们国家日益发达的防火墙和学校无限多的路由交换机。可是这还是阻挡不了我去Goo. 阅读全文
-
.NET:在线悲观锁、在线乐观锁、离线悲观锁、离线乐观锁代码示例
摘要:.NET:在线悲观锁、在线乐观锁、离线悲观锁、离线乐观锁代码示例名称解释悲观锁定义:我修改数据的时候,不允许别人修改数据。意图:并发很容易发生(悲观者经常认为某件坏事会发生在自己身上)。场景:绩效评分的过程,因为每个评估人评分后都要修改评估结果表的同一行记录,而且经常是在同一个时间段进行的评分,评分的过程就适合用悲观锁。乐观锁定义:谁都可以修改数据,提交的时候和数据库做比较,如果数据在这期间发生了变化,有两种处理思路:1、失败;2、合并后提交。意图:并发不容易发生(乐观者经常认为某件坏事不会发生在自己身上)。场景:多个人事管理员都可以修改劳动合同,因为这种并发场景很少发生,因此此处采用乐观锁会 阅读全文
-
理解NetworkSock之FastTcpSreverEx
摘要:理解NetworkSock之FastTcpSreverEx前言本小节是NetworkSocket系列的第10小节,在阅读本小节之前,您可能需要先阅读前面的使用FastTcpServerEx构建服务器,否则觉得本文内容跳转比较大。描述FastTcpServerEx是从TcpServerEx派生,使用的协议和TcpServerEx完成相同,FastTcpServerEx充分结合C#强大的反射功能,大大地简化了服务器编程难度,从使用FastTcpServerEx构建服务器看出中,只要定义服务接口,实现接口,就完成了服务器,这是因为利用了反射。下面是使用FastTcpServerEx构建服务器小节中中 阅读全文
-
ASP.NET MVC经典项目ProDinner项目解析
摘要:ASP.NET MVC经典项目ProDinner项目解析(2)上一篇文章介绍了整体架构,接下来我会就每一个类库层次做个逐次介绍二、Core层解析在Core中做了几件事情第一层 Model1、定义整个系统的实体类型,包括了每个实体的关联。2、定义实体的公用字段(ID)和状态(IsDeteled),这两者非常简单,谁都能看得懂,作为范例,我觉得由此体现得更多的是一种思想。 我们在做表设计的时候,很多同学,对外键关联时,外键字段名和主表的主键名并不对应,我想对现今的数据库也好,ORM框架也好,或许不是什么大问题,但在做架构设计时估计就会遇到问题,或为此多付出代码。有同学用过DevExpress框架. 阅读全文
-
以读取博客园随笔备份为例 将xml 序列化成json,再序列化成对象
摘要:以读取博客园随笔备份为例 将xml 序列化成json,再序列化成对象资源下载:http://files.cnblogs.com/codealone/ConsoleApplication2.zipJson查看工具:http://files.cnblogs.com/codealone/JsonView.zip博客园随笔备份之后,得到的文件格式如下: 我们要读取上述xml,主要是获得channel节点下的所有内容,在平时的工作过程中,觉得json数据要比xml更加容易操作些,于是想,能不能将其转换成json格式,进一步转换成对象。下一步的工作则是将 rss节点下的内容,转换为json。 主要... 阅读全文
-
NhibernateProfiler-写个自动破解工具
摘要:屌丝的逆袭系列]是个人都能破解之终结NhibernateProfiler-写个自动破解工具(源码)破解思路分析及手动破解 增加“附加到进程”功能--功能介绍增加“附加到进程”功能--原理(源码) 写一个自动破解工具(源码) 在NhibernateProfiler破解这个系列的第一篇里我们描述了NhibernateProfiler的破解思路,同时也对这个思路进行了验证。本来准备第二篇就写这个工具的,但最终中间还是插了二篇关于附加到进程工具的介绍与实现。现在我们就回来把这个工具给完成了,也为这个系列做个完结 。 在第一篇里我们描述的那种方法叫做暴破,也就是暴力破解,理论上跟出注册算... 阅读全文
-
爬虫部分技术要点浅析
摘要:本来打算昨晚发的,结果园子又迁移...... 网络爬虫(Spider或Crawler),顾名思义,就是在互联网上爬行的虫子,那么这只虫子为什么要在网上爬行呢?很简单:收集信息。在互联网时代,谁掌握了信息谁就把握了主动权。曾经我一直觉得做搜索的公司都是慈善家,他们自己花钱为大众服务,真是太高尚了,直到我知道谷歌每年大半的盈利来自广告,我才明白那句名言——互联网上最昂贵的东西就是免费,因为它能让你轻易的接受,却无法舍弃。(我想多数人离开了搜索引擎,将在网络上寸步难行) 好吧,扯多了,我们先看下下图。我们可以很容易的看出,网络爬虫的根本任务就是从互联网抓取数据,存入数据库或本地文件系统以供使用。.. 阅读全文
-
OSGI:从面向接口编程来理解OSGI
摘要:OSGI:从面向接口编程来理解OSGI接口的种类(API和SPI)从接口的被调用方式和被实现方式看,接口有API和SPI之分,见下图:API和SPI在物理组织方式上的建议(可根据情况选择其一)位于独立的Assembly中。位于调用方的Assembly中。API和SPI的演化方式:API可以增加功能,最好保持稳定。SPI可以减少功能,最好保持稳定。API和SPI的交互方式见下图:如何实例化接口(避免不了的问题)简单工厂(三种工厂模式都引入了新的抽象,因此最终还是要用简单工厂创建抽象的。适用于根据上下文实例化不同实例的场景)。服务定位器(适用于实例化边界对象或根对象的场景)。依赖注入容器(适用于多 阅读全文
-
freemarker API demo
摘要:freemarker API demo FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于HTML格式的文本用来自动生成源代码)的通用工具。它是为Java 程序员提供的一个开发包或者说是类库。它不是面向最终用户,而是为程序员提供的可以嵌入他们开发产品的一款应用程序。 FreeMarker 的设计实际上是被用来生成HTML 网页,尤其是通过基于实现了MVC(ModelView Controller,模型-视图-控制器)模式的Servlet 应用程序。使MVC 模式的动态网页的构思使得你可以将前端设计者(编写HTML)从程序员中分离出来。所有人各司其职,发挥其擅长. 阅读全文
-
开源的.NET桌面程序自动更新组件 ——Sharp Updater 2.1发布
摘要:开源的.NET桌面程序自动更新组件 ——Sharp Updater 2.1发布SharpUpdater是一个基于.net Framework,将自动更新功能添加到您的windows桌面程序的引导程序。从2.0版本起,它也是一个解决方案,增加了一个示例服务端,提供了一组API供开发人员扩展。一、工作原理 Updater.exe从服务端下载最新版本的发布清单配置文件,同本地发布清单进行比较,如果发现本地版本落后,则从服务端下载差异文件,覆盖到本地,然后启动主程序。二、服务端配置 以IIS7.5为例 1、新建一个IIS站点。 2、禁用*.dll程序处理映射,以允许dll文件下载。 3、... 阅读全文
-
5星评级数据库表结构 如何才能更高效?
摘要:5星评级数据库表结构 如何才能更高效?产品数据库设计时,经常遇到5星评价的情况,数据表如何设计才能即保证查询效率,又能减少数据冗余呢?初步设计思路如下,请大家指正。一,最终效果,二,表结构CREATE TABLE IF NOT EXISTS `books` ( `id` int(8) NOT NULL auto_increment, `title` varchar(50) NOT NULL,`vote_1` int(8) unsigned NOT NULL,`vote_2` int(8) unsigned NOT NULL,`vote_3` int(8) unsigned NOT NULL.. 阅读全文
-
zachman框架
摘要:zachman框架Zachman框架全称为企业架构和企业信息系统架构Zachman框架(Zachman Framework for Enterprise Architecture and Information Systems Architecture)。Zachman"框架"实际上是一种组织构架工具(用来设计文档、需求说明和模型的工具)的一种分类学。包括工具的目标(例如,商业拥有者、创建者)是谁,哪些特殊的问题(例如,数据、功能)需要阐明。Zachman是这样描述他的杰作的: 当这个框架应用于企业时,它仅仅是用来分类和组织企业(在这些企业里,企业的管理和企业系统的开发同样 阅读全文
-
SAP HANA概述——SAP HANA学习笔记系列
摘要:SAP HANA概述——SAP HANA学习笔记系列SAP HANA是什么HANA(High-Performance Analytic Appliance)高性能分析设备HANA是一个软硬件结合体,提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析,而不需要对业务数据进行建模、聚合等。用户拿到的是一个装有预配置软件的设备。至于HANA的云服务,只是对用户而言可以在不购买相关硬件的情况下享受HANA的高性能,而HANA云服务的背后还是需要更高性能的硬件支撑的。软件方面HANA的内存数据库(SAP In-Memory Database, IMDB)是其重要组成部分,包括数据库服 阅读全文
-
.NET领域驱动设计—初尝(二:疑问、模式、原则、工具、过程、框架、实践)
摘要:.NET领域驱动设计—初尝(二:疑问、模式、原则、工具、过程、框架、实践)1.3.原则精简聚合分离用例与接口功能(设计模式的使用之地)1.4.工具、框架1.5.过程1.3】原则原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时候我们讲究的是设计原则:【单一职责原则Single Responsibility Principle、里氏替换原则Liskov Substitution Principle、依赖倒置原则Dependence Inversion Principle、接口隔离原则Interface Segregation Principle、迪米特法则Law Of Deme 阅读全文
-
BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式
摘要:BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式BizTalk Server 2006 R2开始支持WCF adapter本次Demo用的是BizTalk Server 2010,把一个简单的流程发布成一个WCF服务供客户端调用。有了wcf-custom adapter解决BizTalk和外部交互必须借助第三方协议进行,比如FTP,MSMQ,HTTP(IIS),database,现在通过BizTalk发布in-process的wcf就可以,变得非常方便简单。BizTalk流程设计流程 阅读全文
-
让NhibernateProfiler更完美一点-为NhibernateProfiler增加“附加到进程”功能
摘要:让NhibernateProfiler更完美一点-为NhibernateProfiler增加“附加到进程”功能上一篇我们写了NhibernateProfiler2.0的破解,做的是破坏性的工作,这篇我们来点建设性的东西--为NhibernateProfiler增加一个附加到进程的功能…… 注:本来是讲要写一个自动破解工具的…… 没用过NhibernateProfiler的人可能不明白我究竟在说些什么 所以,我们先来简单说一说NhibernateProfiler是怎么使用的。 要想使用NhibernateProfiler的功能,首先要在你的工程里添加一个对HibernatingRhi... 阅读全文
-
E/R模型学习
摘要:E/R模型学习(一) 关系模型中概念简单是这个模型一个很大的活力,尤其是它带来数据库操作的有效实现。然而当进行一个最初的设计时这恰恰又称为了缺点,这就是为什么在开始时要用一个高级设计模型的原因。 E/R模型中用到一下三个主要的元素类型: 1、实体集:某种抽象对象,相似实体的集合形成实体集。从面向对象的角度来看实体和对象有某种相似度。用矩形表示。 2、属性:实体集有相关的属性,属性是这个实体集中实体所具有的性质。用椭圆表示。 3、联系:两个或多个实体的连接。用菱形表示。 用边来连接实体集和他的属性,同样也用边来连接联系与他的实体集。 箭头表示如果实体集E到F是多对一的联系,就把... 阅读全文
-
Web跨浏览器进程通信
摘要:Web跨浏览器进程通信Web跨域已是老生常谈的话题,这次来尝试下跨域浏览器进程之间的通信 —— 这在过去基本依靠网络中转实现。 在之前一篇文章里尝试了跨浏览器的数据共享,最后提到使用LocalConnection还可以实现跨浏览器消息交互的可行性。 花了两个晚上简略的研究了下,LocalConnection的单向通信非常的简单,不过要实现多个终端交互,必须自己实现一套消息机制,见智见仁了。 为了简单演示,本例使用了基于广播的观察者模式:每个终端可以订阅自己感兴趣的主题,也可以向广播发送消息,通知其他感兴趣的终端。 Demo:http://www.etherdream.com/Funny... 阅读全文