Fork me on GitHub

2012年6月20日

摘要: 缓存这个东西可大可小,小到一个静态的字段,大到将整个数据库Cache起来。项目开发过程中缓存的应用到处可见,在这篇博文中笔者就来谈谈自己的项目中关于缓存实现。 最常见的缓存功能,如C#语言中的Dictionary对象,应该至少包含以下几个功能:Init():缓存的初始化;如:Dictionary<int, object> dic = new Dictioinary<int, object>();Add():增加缓存;如:dic.Add(1, new object());Set():设置缓存 ;这里的Set()和Add()是有一点区别的,Add()的时候发现已存在的缓存, 阅读全文
posted @ 2012-06-20 12:32 HackerVirus 阅读(824) 评论(0) 推荐(0)
摘要: 1. 迭代器与Closure: 在Lua中,迭代器通常为函数,每调用一次函数,即返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之间保持一些状态,这样才能知道它所在的位置和下一次遍历时的位置。从这一点看,Lua中closure机制为此问题提供了语言上的保障,见如下示例: 1 function values(t) 2 local i = 0 3 return function() 4 i = i + 1 5 return t[i] 6 end 7 end 8 t = {10, 20, 30} 9 it = values(t)10 ... 阅读全文
posted @ 2012-06-20 12:31 HackerVirus 阅读(185) 评论(0) 推荐(0)
摘要: 一、缓存概念,缓存的好处、类型。缓存是一种用空间换取时间的技术,通俗点也就是说把你得到的数据存放在内存中一段时间,在这短时间内服务器不去读取数据库、或是真实的数据源,而是读取你存放在内存中的数据,这里你会疑惑怎么设置存放数据,能存放什么样子的数据,存放时间的设置,真实数据源数据改变服务器不就读取存在偏差?别急,下面慢慢会说到的。。缓存的好处,缓存是网站性能优化不可缺少的一种数据处理机制,他能有效的缓解数据库压力,例如,网站每分钟的点击率为100万,如果不使用缓存的静态页面,这里也没有viewstate的情况下(viewstate会产生大量的字符串,对服务器交互数据是一种压力,所以一般页面是要禁 阅读全文
posted @ 2012-06-20 11:18 HackerVirus 阅读(147) 评论(0) 推荐(0)
摘要: 接续...[Architecture Pattern] Database Migration (上)实作范列下载实作说明请参照范例程序内容:DatabaseMigrationSample点此下载范列实作首先建立封装数据库更新逻辑的DatabaseUpdater,以及定义DatabaseUpdater会使用到的各个接口。执行DatabaseUpdater的Update方法,系统会依照数据库更新逻辑,执行对应的DatabaseUpdatePlan。并且反复执行,直到数据库版本为目前DatabaseUpdatePlan能更新的最新版本。?1234567public interface IDataba 阅读全文
posted @ 2012-06-20 11:16 HackerVirus 阅读(120) 评论(0) 推荐(0)
摘要: [Architecture Pattern] Database Migration (上)动机在软件项目的生命周期里,每次做软件版本的修改,难免会去修改到数据库的Schema。针对这种数据库版本的变更,一般的做法会在版本控制系统(SVN)里,存放生成数据库的SQL脚本文件案。在每个软件版本的释出时间点,开发人员会依照当时的数据库,建立数据库生成SQL脚本文件案并存入SVN。这样安装人员只要取得SVN某个软件版本的执行文件,以及对应版本的数据库生成SQL脚本文件案,就可以为客户完成安装部属的工作。这样的架构模式,遇到旧版本系统要升级为新版本系统的时候。安装人员会需要:将旧版本的数据保留、建立新版 阅读全文
posted @ 2012-06-20 11:15 HackerVirus 阅读(139) 评论(0) 推荐(0)
摘要: 在cenOS5.5上安装oracle 10G虽然不是什么新鲜的东东,但搭建这个前后还花了一周的时间。我想每个人在安装时都会遇到点不一样的问题。既然是傻瓜篇,那它一定非常傻瓜。哈哈!!==================所需装备=============================虚拟机virtualboxhttps://www.virtualbox.org/wiki/Downloads-----强烈推荐这个虚拟机,因为我的系统是win7 X64位的,找个能用的虚拟机真不容易。linux 5.5:http://mirrors.kernel.org/centos/5/isos/i386/--- 阅读全文
posted @ 2012-06-20 11:14 HackerVirus 阅读(169) 评论(0) 推荐(0)
摘要: 准备要部署的应用程序在正式进入部署MVC程序到IIS之前,会介绍一些关于应用程序迁移到生产环境之前探测错误以及一旦进入生产环境最大化性能的技术。同时也会展示关于流线型部署过程的有用的功能。检测视图错误Razor视图会在服务器需要的时候编译而不是在VS里面生成项目时编译,正常情况下,探测视图编译错误的方式是系统的访问每一个action,从而让每一个view都能够呈现。这显然是非常乏味而且不会一直成功的技术,特别是在基于不同的model状态呈现不同的view的时候。我们可以启用一个特别的项目选项来启用我们的视图并且报告任何编译错误。我们可以编辑一个.csproj的文件,设置MvcBuildView 阅读全文
posted @ 2012-06-20 11:12 HackerVirus 阅读(260) 评论(0) 推荐(0)

2012年6月19日

摘要: 标题有有意思,说是再次看WCF,意思是说之前也简单的看过,但没有用到实际项目中来,这一次,准备大规模的体验一下WCF。今天主要是一个例子,从用户服务器,根据指定用户ID,还回它的用户实体,即,用户模块的代码是写好的,可以供其它项目,业务去调用,提供一个开放的服务平台,先看一下结构图在WCF Service文件夹中,Contracts是指定义服务契约(Service Contract),引用System.ServiceMode程序集Service提供对WCF服务的实现。即在契约Contracts的实现,所以Services具有对Contracts项目的引用;Hosting实现对定义在Servic 阅读全文
posted @ 2012-06-19 21:55 HackerVirus 阅读(210) 评论(0) 推荐(0)
摘要: 在MVC4下, 很多人都在使用Ninject来实现DI。在这里(http://q.cnblogs.com/q/37471/) , 老大提到一个:?[assembly: PreApplicationStartMethod(typeof(BootStrapper.Initializer), "Initialize")]但是我至今都没搞定那个BootStrapper是怎么来的。引用了哪些DDL?研究了2个小时,搞定如下:1. 首先需要添加如下的引用: (添加到WebUI项目下,DAL项目无需添加)1) BootStrapper.Ninject2) Ninject.使用nuget添 阅读全文
posted @ 2012-06-19 21:55 HackerVirus 阅读(154) 评论(0) 推荐(1)
摘要: 第一话 Asp.Net MVC 3.0【Hello World!】Posted on2012-06-19 17:33辉太阅读(407) 评论(6)编辑收藏在用Asp.Net MVC写这个Hello World之前,先来聊一下这个MVC到底是什么东西!MVC是一种模式,是一种软件的构架模式。它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller)。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个 阅读全文
posted @ 2012-06-19 21:52 HackerVirus 阅读(163) 评论(0) 推荐(0)