Asp.Net MVC3.0网站统计登录认证的在线人数

Posted by & filed under Uncategorized.

前言 对于一个网站来说,统计在线人数是一个很重要的工作。平时也发现很多的网站论坛等都有在线人数的显示。对于一个网站如果在线人数很多,用户看到了这么个数字也是很了不起的事情。由于之前对于这个知识点只是知道,并没有去了解过,这两天偶然的机会又看到了,于是自己整理了一个简单的版本,也方便让大家来给提提意见。 本文主要通过Application和Session全局来统计在线人数,暂时只统计登录验证过的。实现的大致方案如下: 1、在全局应用程序启动的时候,Application[“count”]=0;初始化统计在线人数为0 2、处理一个简单的Form登录认证,在登录的时候对全局变量Application[“count”]进行累加1的操作。同时,在登录的时候写入Session值,设置一个有效的时间为1分钟(多长时间根据需要,这里只是作为测试使用)。 3、在Session失效、用户登出、浏览器关闭的情况触发,全局的会话函数进行对全局变量Application[“count”]进行累减1的操作。 正文 第一步:新建一个Asp.Net Read more […]

高效的使用 Response.Redirect

Posted by & filed under Uncategorized.

我正在评估一个 ASP.NET Web 项目应用。它有一些可扩展性问题。意味着当网站访问量增加的时候。系统将会变得缓慢。当我查看应用日志。我找到了大量的 ThreadAbortException. 这个应用大量的使用了 Response.Redirect (是的 endResponse= true),这个就是可扩展性问题的根源。通过endResponse = false 在Response.Redirect将会解决这个问题. 但这样做会导致应用程序出现一些奇怪的问题。因为应用程序将假设在 Response.Redirect 将在当前页面停止执行.除此之外你需要处理一些安全隐患,因为你的应用程序是假设页面事件永远不会执行重定向之后。在这篇文章中,我将讲述一个简单的方法来解决这些问题,并取得良好性能   说明: 比方说你有一个web表单,需要验证一些条件并在条件不符时重定向用户跳转。

  这样做很好,但这会影响可扩展性能。因为它将会终止线程池.现在,只需要用Response.Redirect(“Unauthorized.aspx”, Read more […]

小谈程序员创业者的”劣根性”

Posted by & filed under Uncategorized.

微博上看到一篇IT方面的文章,大意是:难道创业只需要钱吗? 本来看标题我只想回:没钱能行吗? 后来此文列出了很多创业者的“劣根性”,譬如: 一、抵挡得住虚荣心吗? 二、真的有耐心吗? 三、你有定力吗? 四、真的懂怎么做事吗? 具体内容就不展开了。这是我以前公司的领导给我转发的文章,他表示很赞同这些“劣根性”,并建议程序员就应该好好工作、敬岗爱业、一丝不苟、效忠公司效忠领导,直至干到人老珠黄为止,末了还加了一个“呵呵”。 这里我想为“创业者”打抱不平,尤其是程序员创业者。 虚荣心、耐心、定力、做事和做人。这四项首先是我们所有人在还没有真正“成熟或成型”前共有的通病: 1、  Read more […]

ASP.NET MVC 4 视图页去哪里儿

Posted by & filed under Uncategorized.

在MVC中,执行完Action之后,会返回一个ActionResult对象,之后再执行该对象的ExecuteResult方法,这也就是【View的呈现】的入口! 【View的呈现】包括了:根据模版去寻找请求的视图页、编译视图页、再执行视图页的内容。本篇就来介绍寻找视图页的详细过程,其中涉及到了MVC 4的一个新特性–“手机视图页” 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 public abstract class ViewResultBase : ActionResult {     public override void ExecuteResult(ControllerContext context)     {         if (context Read more […]

Maven入门

Posted by & filed under Uncategorized.

  最近由于工作原因在研究、应用Maven,有了一些体会就写成了此文。本文虽然是Maven2的入门文章,但并不涉及Maven的历史、下载与安装,这些内容可以到Maven的官方网站上了解。本文主要是关注Maven中的重要概念,并以一个实例来阐述使用Maven的基本方法。文末有例子代码下载的链接。(2007.01.02最后更新) 注:转载时请注明原作者(jiangshachina)及出处(http://www.blogjava.net/jiangshachina)! 1 关键名词     Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。    POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。  Read more […]

SQL Server 日期和时间函数

Posted by & filed under Uncategorized.

1、常用日期方法(下面的GetDate() = ‘2006-11-08 13:37:56.233′) (1)DATENAME ( datepart ,date )    返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表. SELECT DateName(day,Getdate()) –返回8 (2)DATEPART ( datepart , date )     返回表示指定日期的指定日期部分的整数。 SELECT DATEPART(year,Getdate()) –返回2006 (3)DATEADD (datepart , number, date )     返回给指定日期加上一个时间间隔后的新datetime 值。 SELECT DATEADD(week,1,GetDate()) –当前日期加一周后的日期 (4)DATEDIFF ( datepart , startdate , enddate ) 返回跨两个指定日期的日期边界数和时间边界数。 SELECT DATEDIFF(month,’2006-10-11′,’2006-11-01’) –返回1 (5)DAY ( date ) 返回一个整数,表示指定日期的天datepart Read more […]

C#中的abstract与virtual

Posted by & filed under Uncategorized.

在C#中,有时有搞不明白的修饰符,abstract 与 virtual。 首先去MSDN看了看,http://msdn.microsoft.com/en-us/library/sf985hc5(VS.80).aspx。 这里面对abstract是这么定义的: Abstract classes have the following features: An abstract class cannot be instantiated. An abstract class may contain abstract methods and accessors. It is not possible to modify an abstract class with the sealed (C# Reference) modifier, which means that the class cannot be inherited. A non-abstract class derived from an abstract class must include actual implementations of all inherited abstract methods and accessors. Use the abstract modifier in a method or property declaration to indicate that the method or property does not contain implementation. Abstract methods Read more […]

Python对于线程的支持

Posted by & filed under Uncategorized.

1. 线程基础 1.1. 线程状态 线程有5种状态,状态转换的过程如下图所示: 1.2. 线程同步(锁) 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所有元素都是0,线程”set”从后向前把所有元素改成1,而线程”print”负责从前往后读取列表并打印。那么,可能线程”set”开始改的时候,线程”print”便来打印列表了,输出就成了一半0一半1,这就是数据的不同步。为了避免这种情况,引入了锁的概念。 锁有两种状态——锁定和未锁定。每当一个线程比如”set”要访问共享数据时,必须先获得锁定;如果已经有别的线程比如”print”获得锁定了,那么就让线程”set”暂停,也就是同步阻塞;等到线程”print”访问完毕,释放锁以后,再让线程”set”继续。经过这样的处理,打印列表时要么全部输出0,要么全部输出1,不会再出现一半0一半1的尴尬场面。 线程与锁的交互如下图所示: 1.3. Read more […]

Python 打包

Posted by & filed under Uncategorized.

一个成功的开源项目的其核心功能是打包功能,而出色的打包功能的关键在于版本控制。因为项目是开源的,所以您希望发布的包能够体现出开源社区所具备的优点。不同的平台与语言具有不同的打包机制,本文主要讲述的是 Python 及其打包机制。本文所讨论的打包机制可以作为您的基础学习,此外还提供了大量的实例,可让您快速起步。 关注打包的理由 除了正确做法这条理由之外,打包软件还有三条实际的理由: 易用性 稳定性(带有版本控制) 发布 尽量减少用户安装您的应用程序的工作量是值得的。打包会让您的软件变得更容易访问和安装。如果其安装流程更加简便,用户就会更加愿意使用您的软件。如果在 Read more […]

ssh annotation配置

Posted by & filed under Uncategorized.

先做准备工作: 1.struts2去官网下载最新版struts开发包http://struts.apache.org/download.cgi#struts216 2.hibernate4去官网下载最新版hibernate4开发包http://sourceforge.net/projects/hibernate/files/hibernate4/ 3.spring3去官网下载最新版spring3开发包http://www.springsource.org/download/community 一、先建立一个空的web的项目sshFrame,加载必须的包 1.添加struts2必备的包。我下载的是最近的struts2.3.8 asm-3.3.jar  –ASM字节码库 ,使用“cglib”则必要 aopalliance-1.0.jar  –这个包为AOP提供了最普通和通用的接口 commons-fileupload-1.2.2.jar   –Struts2上传下载的jar commons-io-2.0.1.jar  –Struts2上传下载的jar commons-logging-1.1.1.jar   –Jakarta的通用日志记录包 freemarker-2.3.19.jar ognl-3.0.6.jar    –支持ognl表达式 struts2-core-2.3.8.jar  Read more […]