反感服务器控件,请问有没有不使用服务器控件的?

qingyun163 2006-10-27 04:19:12
asp.net,我想不用服务器控件! 谁和我有同样的想法?
服务器控件,都在服务器编译的,加重了服务器的负担;
数据绑定控件,模板化,不灵活,不好控制,无法与Css+div设计模式相融合;
垃圾代码太多

有时候,连一个非常简单的操作都需要和服务器交互,严重地影响了性能。
不能够很好的与js相结合

所以我打算弃用服务器控件了,大家给意见!
...全文
891 62 打赏 收藏 举报
写回复
62 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangye1211 2006-11-01
  • 打赏
  • 举报
回复
就是因为ASP.NET太容易上手,所以不精通的人也可以开发完整的网站,虽然性能较差较慢。但是人是可以不断进步的,这叫科技以人为本。
mnc898 2006-11-01
  • 打赏
  • 举报
回复
楼主,我也深有同感,感觉"piggybank(吞硬币的小猪) "说的很对门户级别的应用还是尽量少用!!!
iuhxq 2006-10-30
  • 打赏
  • 举报
回复
怎么这么多人在钻牛角尖呢?

看我们用XML+XSLT做的一个后台管理代码,实现了默认列出所有该用户积分变化,如果选择了开始时间和结束时间,则过滤出这段时间内的积分变化:
#region 积分管理
/// <summary>
/// 积分管理
/// </summary>
[BaseClassAttribute(ClassName="Point" , ClassDescription = "积分管理",
ClassAuthor="qxh", ClassCreateDate="2006-7-28")]
public class Point : ListDataContain
{
protected override void OnGettiing(Object sender, DataEventArgs e)
{
//this.TransformKind = transformKind.Client;
this.CheckLogin();


this.PageSize = 20;
this.PageCurrent = 1;
this.TableName = "point_log";
this.FieldsShow = "*";
this.Order = "seqno desc";

string sv = Request.QueryString["s"];
string ev = Request.QueryString["e"];

if (sv != null && ev != null)
{
this.PostSqlCon = string.Format("s={0}&e={1}", sv, ev);
this.WhereCondition = string.Format(" where user_id = {0} and op_time >= '{1}' and op_time < '{2}'", this.userInfo.UserID, sv, ev);
}
else
{
this.WhereCondition = string.Format(" where user_id = {0}", this.userInfo.UserID);
}

this.XsltFile = "Manage/Point.xslt";
}
}
#endregion
pazuochuan 2006-10-30
  • 打赏
  • 举报
回复
mark
喝醉的咖啡 2006-10-30
  • 打赏
  • 举报
回复
非常好的问题,只是我觉得你的理由有点儿站不住脚,或者说描述不准确

>服务器控件,都在服务器编译的,加重了服务器的负担;
没错,不过对于性能来说,因为服务器控件仅仅编译一次,谈不上加重负担
真正加重负担的是:AutoPostBack,不过你可以通过合理使用服务器控件以及Ajax来减少影响:例如,大部分情况下不必修改内容时可以不用 Label 控件而使用 html;局部刷新而不必整页刷新

>数据绑定控件,模板化,不灵活,不好控制,
数据绑定这可是非常大的优势了,你试试看用 ASP/JSP/PHP 之后再来说。

>无法与Css+div设计模式相融合;垃圾代码太多 不能够很好的与js相结合
这从何谈起?可能是你用的控件不太好吧,呵呵

>有时候,连一个非常简单的操作都需要和服务器交互,严重地影响了性能。
这就是没用好 AutoPostBack 的缘故了,或者该控件设计的时候没兼顾好,换个控件,或者自己写写看

总的来说,非常赞同你的观点:
ASP.net 的优势就在于能够快速开发,并且最大程度的构件化,非常有效的降低开发成本和维护成本。
但,你不能指望用它来开发门户级别的应用——可以,只不过尽可能避免使用 ASP.NET 的 ViewState、AutoPostBack、Server Control 等等,以及开发门户应用顺理成章要注意的其它内容:缓存策略、页面代码优化、减少Session使用等等

在我看来,ASP.NET 的推出正如 ASP 当年的盛装登场一样,就像战斗机中的 F-16 和 F-22,其里程碑式经典地位是无可置疑的。

我相信即便是对于一些我们看来很“大”的应用(正如电信、金融等巨型数据处理需求的某些应用外,绝大部分应用 ASP+SQLServer效率很高,完全能够胜任了),ASP.NET的性能完全足矣——我曾经帮几家公司 review 代码以优化性能,发现问题往往出在我们开发人员自身基础知识不扎实,滥用某些特性,甚至编写错误代码。最典型的例子是数据库连接对象的释放——错误的代码、文章,甚至 CSDN 里错误的解答比比皆是——这就是微软开发者阵营普遍存在的事实。

正如楼主的观点:即便是面向企业应用开发,也要学会尽可能的用好 ASP.NET,不要滥用——这恰恰是微软开发阵营中常见的问题,因为微软提供的东西的确是太方便了。

那我们就充分发挥它的优势,同时不要被其它阵营的开发者轻易的鄙视——我们不但能充分发挥 ASP.NET 的特点,也能够避免使用这些特点开发出高性能的应用。

zorou_fatal 2006-10-30
  • 打赏
  • 举报
回复
楼主如果你觉得MS自己的web control不好用,完全可以自己render web control么。
xiao_p 2006-10-30
  • 打赏
  • 举报
回复
我也想过,不过服务器控件也有他存在的意义

我现在就是一个服务器控件都不用。
用的XML+XSLT+ASP。NET

>>
怀疑他打错了
应该是XML+XSLT+ADO.NET
否则看起来怪怪的,
asp.net 本来就是ui框架 在加上的话就和xml + xslt 重复了···
Ivony 2006-10-30
  • 打赏
  • 举报
回复
jianyi0115(随意) :
我说asp.net的用户控件无法与div+css相融合,我有错吗?

你用一个GridView控件,或者DataList控件,生成的都是是table,哪里有div+css元素啊??还说我不懂!

====================================================================

无语……无知者无畏。

世界上从来就没有什么div+css的东西。
TableLayout和BlockLayout各有优点,相辅相成。不说了……
lilome 2006-10-30
  • 打赏
  • 举报
回复
viewstate
net_live 2006-10-30
  • 打赏
  • 举报
回复
mark..
qingyun163 2006-10-29
  • 打赏
  • 举报
回复
jianyi0115(随意) :
我说asp.net的用户控件无法与div+css相融合,我有错吗?

你用一个GridView控件,或者DataList控件,生成的都是是table,哪里有div+css元素啊??还说我不懂!
  • 打赏
  • 举报
回复
其实那代表着一种新的可能性,新的扩展方法,新的能力,新的架构——面向对象。
ghx88 2006-10-29
  • 打赏
  • 举报
回复
用repeater 代替 GridView 也可以啊! 用repeater 绝对可以做成GridView 的效果,绝对可以与Css+div设计模式相融合
test33 2006-10-29
  • 打赏
  • 举报
回复
JS 牛X。
可爱的排骨 2006-10-29
  • 打赏
  • 举报
回复
无法与Css+div设计模式相融合;

在asp.net网站有个sandbox, 里面有个CSS Control Adapters. 嫌MS提供的控件不好用你可以改回用ASP. 同样做ASP.NET项目, 可以分出 架构师,业务工程师,数据工程师,UI工程师,还可以分出组件/控件工程师来.
Jianyi 2006-10-29
  • 打赏
  • 举报
回复
jianyi0115(随意) :
我说asp.net的用户控件无法与div+css相融合,我有错吗?

你用一个GridView控件,或者DataList控件,生成的都是是table,哪里有div+css元素啊??还说我不懂!

---------------------------
若你有这种需求,你应该用Repeater阿,生成什么完全由你控制!!!!!!!!!

再说,本来有些数据就要以表格的形式展现,用table有问题吗?

服务器控件封装了常用的html生成逻辑,搂主看到的服务器控件 no div+css , 并不说明
服务器控件没办法做这个。

建议搂主学习一下服务器控件的开发。



  • 打赏
  • 举报
回复
呵呵,刚刚看了一个网站上有个QQ图标,就把它的html扒下来花了十分钟作了个控件,送给大家玩:

public class QQPresence: HyperLink
{

public string UserQCode
{
get
{
if (ViewState["code"] == null)
return "123456789";
else
return (string)ViewState["code"];
}
set
{
ViewState["code"] = value;
}
}

public override void RenderEndTag(HtmlTextWriter writer)
{
writer.Write("<iframe name=\"" + this.ClientID + "_hidden\" style=\"display:none\" />");
base.RenderEndTag(writer);
}

protected override void Render(HtmlTextWriter writer)
{
this.ImageUrl = "http://wpa.qq.com/pa?p=1:" + this.UserQCode + ":10";
this.NavigateUrl = "tencent://message/?uin=" + this.UserQCode + "&Site=test&Menu=yes";
this.EnsureChildControls();
this.Target = this.ClientID + "_hidden";
if (this.ToolTip == string.Empty)
this.ToolTip = "点击这里发消息";
base.Render(writer);
}
}
ad0001 2006-10-29
  • 打赏
  • 举报
回复
对客户来说最重要的是开发效率,运行是否稳定.
看我们不止是用服务器端控件,还用communityserver作为基础平台
http://www.carva.net/
中国车载影音网
zheng616 2006-10-29
  • 打赏
  • 举报
回复
服务器控件可以和js很好的结合,
用户控件和div+css可以很好的融合..
iuhxq 2006-10-29
  • 打赏
  • 举报
回复
把数据库里取出的数据,生成XML格式,再用XSLT格式化成HTML

CSDN的帖子就是典型的例子
加载更多回复(42)
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-10-27 04:19
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。