像这样的异步处理方式能承载的住这样的业务系统吗?
也就是说整个框架的增删改查都用这一个文件AjaxService.cs来异步处理,前端都用无刷新用异步处理的用html文件展现。
这样有什么瓶颈或者潜在的问题吗?
AjaxService.cs文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
///AjaxService 的摘要说明
/// </summary>
public class AjaxService:IHttpHandler
{
public AjaxService()
{
}
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
string methodName = context.Request["method"];
Type type = this.GetType();
System.Reflection.MethodInfo method = type.GetMethod(methodName);
if (method == null) throw new Exception("method is null");
try
{
//BeforeInvoke(methodName);//权限管理
method.Invoke(this, new object[] { context });
}
catch (Exception ex)
{
context.Response.ContentType = "text/plain";
context.Response.StatusCode = 500;
context.Response.Write(ex.GetBaseException().Message);
context.Response.End();
}
finally
{
//AfterInvoke(methodName);//日志管理
}
}
public void SaveOrder(HttpContext context)
{
//保存客户端提交的信息
/*
* string OrderName = context.Request["OrderName"];
.....
*/
context.Response.Write("保存成功!");
}
}
web.config文件 配置AjaxService.cs文件
<httpHandlers>
<add path="AjaxService.axd" verb="POST,GET" type="AjaxService" />
</httpHandlers>
前端html界面
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script>
</head>
<body>
<input type="text" id="txtOrderName" />
<input type="button" value="Save" onclick="Save()"/>
<script type="text/javascript">
function Save() {
$.ajax({
type: "POST",
url: "AjaxService.axd?method=SaveOrder",
data: { "OrderName": $("#txtOrderName").val() },
async: true,
success: function (resultData) {
alert(resultData);
},
error: function (xhr) {
alert(xhr.responseText);
}
});
}
</script>
</body>
</html>
我想搭建一个200人左右的公司业务内部系统框架
像这样的异步处理方式能承载的住这样的业务系统吗?
也就是说整个框架的增删改查都用这一个文件AjaxService.cs来异步处理,前端都用无刷新用异步处理的用html文件展现。
这样有什么瓶颈或者潜在的问题吗?
13 个解决方案
#1
用一个类型还是100个类型来写代码,只会影响到将来程序开发是否清晰方便,对于你的所说的那种事情能有什么区别呢?
#2
这样可以统一管理权限和日志,而且前端的显示速度比传统的.aspx快,但是没用实际应用到项目上试过。
#3
除了不套用入门书的写法(而这一点本身是好的)以外,就你的问题而言,看不出有什么问题所以不知道你到底担心什么。
你自己设计了一个框架,那么等你做得深入了一些之后再讨论具体问题。而且一个框架只有到你写了20个测试用例、每天至少运行1000个测试之后,才知道有什么问题。
没有必要做一定点东西就开始到处“找问题”。
你自己设计了一个框架,那么等你做得深入了一些之后再讨论具体问题。而且一个框架只有到你写了20个测试用例、每天至少运行1000个测试之后,才知道有什么问题。
没有必要做一定点东西就开始到处“找问题”。
#4
关于统一管理日志和权限,并不是说按照入门书的写法就不能方便的管理。asp.net也是一个比较成熟的框架,有各种层次(例如global.asax)可以对请求注入各种管理功能。所以单独这样一句话,并不是来放弃aspx的根本性的理由。
最主要地是,你发这个帖子,提不出什么具体的经过测试的“bug或者问题”来。如果你担心“200人访问时的并发性”,那么你就先想出一个测试用例来,然后给出其运行结果的数据,来说明这样做会降低多少效率。
其实会写程序根本不是什么技术,真正的技术是会写出测试来说明你到底担心什么问题。如果碰到一个只会讲解理论、但是亲自动手写测试程序时反而写不出来的人,你就知道其理论是虚的了。
最主要地是,你发这个帖子,提不出什么具体的经过测试的“bug或者问题”来。如果你担心“200人访问时的并发性”,那么你就先想出一个测试用例来,然后给出其运行结果的数据,来说明这样做会降低多少效率。
其实会写程序根本不是什么技术,真正的技术是会写出测试来说明你到底担心什么问题。如果碰到一个只会讲解理论、但是亲自动手写测试程序时反而写不出来的人,你就知道其理论是虚的了。
#5
使用人数不能代表并发数,如果你说200个人必定都在线,而且必须通过
ajax定时轮询向服务器请求数据,那你普通的PC机做服务器可能撑不住,如果只是普通的点击查看,绝对无压力的
#6
另外,你这个就是aspx/html+ajax+handler,你的AjaxService就相当于BaseHandler,对应Page的BasePage,这是一种很常见的项目开发方式
#7
我还真不知道怎么写出模拟200人同时在线操作数据库数据的这个测试来测试这个aspx/html+ajax+handler框架
#8
对啊,就是这样一个模式
#9
自动测试脚本+压力测试
只知道有这东西,但因为这主要是测试的职责,所以没去详细了解过
#10
先实现使用起来再说吧,200人的并发量也不算多,除非你们的数据处理量超级大,如果你一个表有几千个字段,那真的是大,那可以使用ccache,集群负载,分步式等来优化速度.
#11
遇到问题就解决啊,LZ认为能做出多高端的系统 能遇到.net和和HTML的瓶颈。
#12
200人真的不算多,而且同时在线的就更少了。所以我觉得支持这些人不会有什么问题。但是你的硬件也得跟的上才行。
#13
不建议把所有东西都写在一个AjaxService中~~~
分而治之~
分而治之~
#1
用一个类型还是100个类型来写代码,只会影响到将来程序开发是否清晰方便,对于你的所说的那种事情能有什么区别呢?
#2
这样可以统一管理权限和日志,而且前端的显示速度比传统的.aspx快,但是没用实际应用到项目上试过。
#3
除了不套用入门书的写法(而这一点本身是好的)以外,就你的问题而言,看不出有什么问题所以不知道你到底担心什么。
你自己设计了一个框架,那么等你做得深入了一些之后再讨论具体问题。而且一个框架只有到你写了20个测试用例、每天至少运行1000个测试之后,才知道有什么问题。
没有必要做一定点东西就开始到处“找问题”。
你自己设计了一个框架,那么等你做得深入了一些之后再讨论具体问题。而且一个框架只有到你写了20个测试用例、每天至少运行1000个测试之后,才知道有什么问题。
没有必要做一定点东西就开始到处“找问题”。
#4
关于统一管理日志和权限,并不是说按照入门书的写法就不能方便的管理。asp.net也是一个比较成熟的框架,有各种层次(例如global.asax)可以对请求注入各种管理功能。所以单独这样一句话,并不是来放弃aspx的根本性的理由。
最主要地是,你发这个帖子,提不出什么具体的经过测试的“bug或者问题”来。如果你担心“200人访问时的并发性”,那么你就先想出一个测试用例来,然后给出其运行结果的数据,来说明这样做会降低多少效率。
其实会写程序根本不是什么技术,真正的技术是会写出测试来说明你到底担心什么问题。如果碰到一个只会讲解理论、但是亲自动手写测试程序时反而写不出来的人,你就知道其理论是虚的了。
最主要地是,你发这个帖子,提不出什么具体的经过测试的“bug或者问题”来。如果你担心“200人访问时的并发性”,那么你就先想出一个测试用例来,然后给出其运行结果的数据,来说明这样做会降低多少效率。
其实会写程序根本不是什么技术,真正的技术是会写出测试来说明你到底担心什么问题。如果碰到一个只会讲解理论、但是亲自动手写测试程序时反而写不出来的人,你就知道其理论是虚的了。
#5
使用人数不能代表并发数,如果你说200个人必定都在线,而且必须通过
ajax定时轮询向服务器请求数据,那你普通的PC机做服务器可能撑不住,如果只是普通的点击查看,绝对无压力的
#6
另外,你这个就是aspx/html+ajax+handler,你的AjaxService就相当于BaseHandler,对应Page的BasePage,这是一种很常见的项目开发方式
#7
我还真不知道怎么写出模拟200人同时在线操作数据库数据的这个测试来测试这个aspx/html+ajax+handler框架
#8
对啊,就是这样一个模式
#9
自动测试脚本+压力测试
只知道有这东西,但因为这主要是测试的职责,所以没去详细了解过
#10
先实现使用起来再说吧,200人的并发量也不算多,除非你们的数据处理量超级大,如果你一个表有几千个字段,那真的是大,那可以使用ccache,集群负载,分步式等来优化速度.
#11
遇到问题就解决啊,LZ认为能做出多高端的系统 能遇到.net和和HTML的瓶颈。
#12
200人真的不算多,而且同时在线的就更少了。所以我觉得支持这些人不会有什么问题。但是你的硬件也得跟的上才行。
#13
不建议把所有东西都写在一个AjaxService中~~~
分而治之~
分而治之~