摘要:
一、什么是Servlet Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,他是运行在Servlet容器当中,例如Tomcat就是一种流行的Servlet容器。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML... 阅读全文
摘要:
听说网易的一元夺宝项目一天的现金流水就达到了1个亿,老板听说有这回事,就着手让我这边逆向一个自己的一元夺宝。既然是老板钦定的项目,必须要积极的应对,不过对于外界传言一天一个亿的流水,写个爬虫抓取他们家站点网页,一分析就知道这传言靠谱不靠谱了。 那么什么是一元夺宝了?它是中国技术先进的互联网公司... 阅读全文
摘要:
接上一篇,整个一元夺宝中主要分为商品(后台、前台)、夺宝订单、夺宝期、开奖4大模块,如下图: 一、商品模块对于商品这块区分前台与后台的理由是:A、后台主要是管理商品的基本属性参数,例如ID、名称、所属名牌品类,颜色尺码SKU等,当然这里是分主子表。B、 前台在后台的数据基础上记录一些扩展行为参... 阅读全文
摘要:
上一篇主要分析了数据库表结构这块,这一篇就直接分析解决方案这块吧。主要分为3大块,分别为夺宝整体流程,缓存流程,定时任务流程。 一、夺宝整体流程 备注:A、普适性流程。 B、目前是单站点,IIS服务器,对IIS进行了优化,参考链接:http://www.cnblogs.com/x... 阅读全文
摘要:
一、ORM入口封装 结合上一篇文章与这里的DbProvider().Init()方法,就很明显的知道了是创建一个mssql的实例。那么在DbService的泛型方法中显示提供了单表操作与多表linq查询的入口,其实还存在获取数据库扩展操作的入口。public class DbService ... 阅读全文
摘要:
这里涉及到两个关键对象,一个是DbProvider,另一个就是DbFactory。粗略草图如下: 从上图可以看出,开放给消费者的接口就是DbProvider类,不过他主要继承IDbProviderExtend与IDbProvider接口。 IDbProvider接口提供单表操作、多表查询、扩... 阅读全文
摘要:
一、数据库提供者接口 /// /// 数据库提供者 /// public interface IDbProvider : IDisposable { /// /// 初始化数据库连接信息 /// /// ... 阅读全文
摘要:
一、常见开源ORM框架 比喻:Kerosene ORM,DbLinq,Dapper,DynamicQuery,elinq,glinq,NPoco,Relinq,EF,ServiceStack.OrmLite,IQToolkit,对于这些框架,在单表查询这块支持的还蛮可以,但是对于多表查询的那种... 阅读全文
摘要:
最近在阅读一些开源的代码,发现其中有些方法总结的很全面,至少在我做同样的事情时候,需要抓破脑袋想活着google,现在看到了这个关于主流数据库字段类型转.Net类型的方法,故收藏之,也顺便分享给那些能看到这篇文章的同学。具体代码如下 /// /// Default IDataType implementation (see IDataType for details) /// public class DataType : IDataType { public virtual string SqlT... 阅读全文
摘要:
经过前面介绍了路由系统之后,我们知道任何一个请求在经过asp.net url路由系统的拦截之后,会生成以controller/action 名称为核心的路由数据。asp.net mvc 根据此解析出目标controller 的类型,并最终激活具体的controller实例处理当前请求。 为了解释从请求到执行目标controller的过程,我们调式源码(具体怎么调试源码可以参照我这篇文章),在MvcHandler里面的IHttpAsyncHandler.BeginProcessRequest处设置断点IAsyncResult IHttpAsyncHandler.BeginProces... 阅读全文
摘要:
在最近的一个项目里面发现好多同事喜欢这样运用单例模式,样例代码如下public class Demo{ public static Demo Instance { get { return new Demo(); } } public string GetUserId() { return "001"; } public string GetUserName() { return "tauruswu"; }}在调用这个类的时候,是这样操作的var id = Demo.Instance.GetUserId();var name = Demo.Instanc 阅读全文
摘要:
先来看下面两个个url,对比一下:http://xxx.yyy.com/Admin/UserManager.aspxhttp://xxx.yyy.com/Admin/DeleteUser/1001 对于第1个Url,假设它与服务器上的文件有直接的关系,那么服务器在接受客户端请求并将对应的文件传送给客户端。我们大概可以猜到它是对用户管理的一个页面,它的物理文件UserManager.aspx在网站根目录下面的Admin文件夹中。而第2个url,在不知道Mvc路由以及Url重写时,很难猜到这个Url背后具体有些什么,前提条件是基于.Net框架开发的Web项目。 那么在这里,我们引入Asp.N... 阅读全文
摘要:
最近在研究asp.net mvc的源码,于是在想,既然提供了源码,那我们如何进入源码调试了?在网上找了一些调试的方法,试了几个都不行,于是折腾了一上午,终于弄出来了,下面看看我的操作步骤。 一:准备工作。本机安装的是vs2012,打了update1的补丁包,如图 接下来下载asp.net mvc的源码,地址是:http://aspnetwebstack.codeplex.com/ ,下载之后解压出来即可。 二:有两种方式可以调试源码,分别是:1)直接在源码的解决方案下新建一个asp.net mvc4应用程序 2)新建一个单独的asp.net mvc4解决方案 。两种方案... 阅读全文
摘要:
自Asp.Net Web Api问世以来,一直没有去体验下,有些惭愧。不过在说Web Api之前还是要提一下Rest,Rest的英文全称是:Representational State Transfer,翻译过来就是“表征状态转移”。不过在看到这译过来的6个字,我也迷迷糊糊的,名字为什么这么怪?它是Roy Fielding在2000年的时候在他的论文里面提出的一种软件架构风格。 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态。并且... 阅读全文
摘要:
在逛CodeProject的时候,偶然发现了一个老外写的代码,里面有一个自定义的用户控件,类似任务管理器里面CPU使用记录的图表,如下截图: 因为自己之前没有做过这样的图表,觉得很赞,所以将这个用户控件给抠了下来,做了一个小的demo,接下来我就分析下这个用户控件的实现过程。 先看代码:/// <summary>/// Summary description for UsageHistoryControl./// </summary>public class UsageHistoryControl : UserControl{ /// <summary> . 阅读全文