日期:2014-05-18  浏览次数:20404 次

80分送上,只求高手回头一看!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DXBBS V8.0 论坛系统为采用最新 asp.net 2.0 C# 技术原创开发的一套 BBS 论坛系统. 内核程序高度集成,采用高速数据检索技术与独特的缓存机制,使得系统的运行速度为极速.程序对所有参数进行严格过滤,对 cookies 采用了特殊加密处理,使得系统具有高度的安全性. 对于大量数据的论坛,系统根据贴子量,自动建立新的数据表,防止单表数据量过大而造成数据库压力过大。
=================================
我下载了一个论坛的源码来学习研究,以上是该论坛的特性描述,请问加亮色处的功能是怎么实现的呢??

------解决方案--------------------
//对于大量数据的论坛,系统根据贴子量,自动建立新的数据表,防止单表数据量过大而造成数据库压力过大。 

用SQL语句就可以实现,这个不麻烦,麻烦的是生成两个表或更多个表以后的查询...
------解决方案--------------------
要推销的东西当然说的高深了,其实实现起来技术并不太高深。
内核程序高度集成--我想意思就是,核心程序通过良好的面向对象来实现,说白了就是写在类里,然后在各页调用。
采用高速数据检索技术与独特的缓存机制--数据检索的话两步走,一是数据库里优化,存储过程,索引,高效sql语句等待,还有就是尽量减少和数据库的交换,取一次数据,然后就放到缓存里一直用。至于“独特的缓存机制”有多独特?缓存一共就内几种方法,当然不排除代码写的相当巧妙。

总之不要让他说的把你吓住了,没那么深奥,当然也不能轻视。还是认真看源码,自己实践!
------解决方案--------------------
Assembly code
据的论坛,系统根据贴子量,自动建立新的数据表,防止单表数据量过大而造成数据库压力过大。
还有这个的解决思路是什么?
谢谢!!!

------解决方案--------------------
//建表不难啊,但是其他相应存储过程之类的东西也要跟着变吧,这点怎么用程序来实现呢?

依我看,这里都么有什么难度,相信楼主你也明白这点,关键就是一个费劲吧,麻烦,
多说一句,我感觉ACCESS才会有这样的需求,
------解决方案--------------------
取一次数据,然后就放到缓存里一直用 
这个怎么实现呢? 
据的论坛,系统根据贴子量,自动建立新的数据表,防止单表数据量过大而造成数据库压力过大。 
还有这个的解决思路是什么? 
谢谢!!!

缓存是老问题了,我就我知道的,如果是共有数据,就把dataset,datatable什么的放的cache里,如果是私有的,可以声明的时候加static,或者放到session里,具体你可以找些资料看看。这里有个效率和占用资源的问题,做项目的时候得考虑考虑用那个,另外安全性要求不是很高的话用ajax的话对速度提升很大。

至于建新表的问题,我觉得最好是数据库里建一个“作业”(sql server),定时调用检查,数据量大时就再建一个表,最好把旧表数据导到新表里,这时旧表就是空的了。(个人认为用select触发器或.net程序中检查控制效率低一些),但就像前几楼说的,这种方法查询的时候稍微麻烦一些(尤其是查很久以前的数据)
------解决方案--------------------
都是.net里最常用的东西……只是广告写得好看


现在用.net做B/S谁不用这些

内核程序高度集成,采用高速数据检索技术与独特的缓存机制
--------------------------------
所有cs文件都编译成一个dll,可不是高度集成了
ViewState和<%@Cache%>一用就说是高速数据检索技术与独特的缓存机制

对 cookies 采用了特殊加密处理
--------------------------------
在WebConfig里写句话就OK了

对于大量数据的论坛,系统根据贴子量,自动建立新的数据表,防止单表数据量过大而造成数据库压力过大
--------------------
asp时代就一直在用的东西,不说了……
------解决方案--------------------
asp.net实现C#代码加亮显示

StringWriter textBuffer = new StringWriter();
Match match= Regex.Match(HTMLStr,@"\",RegexOptions.IgnoreCase | RegexOptions.Compiled);
if(match==null)
{
Response.Write(HTMLStr);
return;
}

string codeType = match.Groups["codeType"].Value;
string content = match.Groups["codeContent"].Value;
if(codeType==String.Empty || content==String.Empty)
{
Response.Write(HTMLStr);
return;
}
// MessageBox.Show(codeType);
// MessageBox.Show(content);
string[] sr = content.Split(Convert.ToChar("\n"));
if(codeType=="C#")
{
textBuffer.Write("<Csharp>\r\n");
foreach(string sourceLine in sr) 
{
textBuffer.Write(FixCSLine(sourceLine)) ;
textBuffer.Write("\r\n");
}
textBuffer.Write("</Csharp>");
}
else if(codeType=="JScript.Net")
{
textBuffer.Write("<JScript.Net>\r\n");
foreach(string sourceLine in sr) 
{
textBuffer.Write(FixJSLine(sourceLine)) ;
textBuffer.Write("\r\n");
}
textBuffer.Write("</JScript.Net>");
}
else if(codeType=="VB")
{
textBuffer.Write("<VB>\r\n");
foreach(string sourceLine in sr)