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

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

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

所以我打算弃用服务器控件了,大家给意见!
...全文
903 62 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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
犀牛老爹 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)
请先阅读帮助文档:http://ismyway.com/help [2009.1.1] Ver 3.2.26 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 增加天语的按键映射 增加三星的背景灯控制功能(该功能未在真机上测试过) 删除图片浏览中的部分功能,由于这部分功能需要较大的内存,导致在大部分手机上无法完成,同时也引起背景图片无法设置成功 触摸屏用户可以不再受滚动条限制,在屏幕上任意地方都可以进行拖动 选择键盘映射为其它时无法再次更改的BUG 用户输入的颜色值无法保存的BUG 修正英文单词分词时会多添加一个空行的BUG 繁体语言措词上的修正 阅读设置中增加一个“文件缓存”选项,默认情况下是开启的,在NOKIA手机上会提高UMD等文件的表现,但由于测试并不充足,如果程序经常在阅读时出错,请关闭该选项(其它手机是否开启该选项并无明显的影响) 修正编辑文件后无法保存的BUG [2008.10.27] Ver 3.2.24 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 改进的颜色选择方式 允许用户重新选择键盘映射 HTML阅读时的错误 进一步完善编辑功能(仍有少许BUG,请继续反馈,谢谢) 新建文件后自动跳转到编辑中 改进的文件操作方式,速度轻微提升 UMD速度明显提升,并且减少内存占用,特别是在NOKIA手机上,表现提升超过600% 改进的输入框模式,以使得能适应更多的手机如天语等 [2008.10.21] Ver 3.2.23 为了提高运行效率,以下功能在LITE上将被取消(自定义欢迎页问候语;欢迎页背景图) 取消了JAR的支持,提高运行效率 修正打开大ZIP文件时的内存溢出错误 ·修正:  自动滚屏到末尾时,滚屏功能将停止 [2008.10.4] Ver 3.2.22 暂时删除了播放功能及网络相关的功能,由于以上两项功能一直没有能稳定下来,故暂时删除 增强了ZIP功能,支持带文件夹结构的ZIP/JAR文件 (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且选择打开为UNICODE/TXT阅读) (对于NOKIA手机及其它部分手机,由于安全策略的限制,在Anyview的文件管理器中无法查看后缀为.jar的文件) 自定义问候语(系统路径下dictum.rc文件,格式参见jar包中的dictum.rc文件,保存时使用UTF-8编码,可写条目为0~9/a~z/A~Z,置空时表示不显示问候语) ·修正:  0键在各偏好中切换时亮度混乱的问题  部分手机上无法新建文件夹 [2008.9.11] Ver 3.2.21 修正动画参数无法保存的BUG 动画效果不再对阅读翻页有作用 [2008.8.29] Ver 3.2.21 可将正在阅读的内容通过短信与好友分享 增加一种新的滚屏方式:波浪,同时,阅读时3键不再使用默认的像素滚屏,而会使用最后一次使用的滚屏方式 任何可用的外置字库都可以作为内置字库存在,在jar包中存在dot.font会被当为内置字库加载 加快大文件的打开速度,特别是对于NOKIA手机,S60上,打开20M文件,97%左右的位置不超过15秒 允许用户打开动画效果 ·M600/P990/P1/W950  修正键盘映射时“内存不足”的BUG ·E680/A780  选中后台播放后无法启动的BUG [2008.7.30] Ver 3.2.20 调整部分索爱手机上背景灯控制的逻辑 修正看图片时按0键出错的BUG 旋转屏幕引起的字外出 打开LRC最后出错 阅读到尾部弹出“上一个/下一个”窗口中的文件名过长不刷新的问题 偏好切换时亮度混乱的问题 在NOKIA上,当系统路径设置为根目录是无法启动的BUG E398上可以开关键盘灯 UIQ系统在退出时可以保持亮度 索爱上按“返回”键后导致阅读出现白屏的BUG 阅读时切换屏幕方向导致字体超出屏幕的BUG 欢迎屏幕上的日期使用中文显示 如果使用触屏手机,跳转改为进度条模式,以方便触屏操作 系统路径下如果存在bg.png文件,则会作为欢迎界面的背景图片显示(右下角) 减少跳转及翻页中出现乱码的机率 提高阅读时绘图效率,滚屏效率同样提高 播放时,暂停会导致声音爆至最大的BUG 内置“忘记月亮”制作的两款主题《典雅红》《黑橙》,并且更换主题不再要求退出 文件管理器中支持“剪切”功能 文件管理器中新增转换UMD为TXT的功能(解开操作,解开2无效!) 增加了编辑功能(尽管没有限制文件大小,但请别编辑过大的文件,另外,为了提高速度,不进行全文排版,有时候表现可能会有些不习惯),以后会进一步完善 启动时,会自动识别NOKIA、SONYER

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

试试用AI创作助手写篇文章吧