需要ASP Recomendation :( Linq或SqlDataSource?)+(Response.Write或UserControls或Repeater?

时间:2012-11-23 01:42:25

标签: .net linq user-controls sqldatasource response.write

我是ASP.net的新出价并开发一个网站,其中包含用户友好的分类项目列表,并在点击项目的详细信息时(图片库,文本,联系表单,那种东西,也许以后的用户评论和费率)。我已经阅读了很多,仍然可以得出关于我的问题的结论,所以我需要一个建议。我需要一个[良好的性能+低复杂性+不接近被弃用]的建议,这两个重要的事情我现在正在努力决定。

1) Linq或SqlDataSource?我不介意为SqlDataSource编写SQL,但我读过Linq是新时代,所以我害怕在2年内有一个过时的网站。或者不注意Linq的好处。

2)我认为我不能对产品分页列表使用gridview控件,因为它们对于公司目标客户来说非常严格。产品列表的网页设计是一种YouTube视频结果列表。单击时显示有关该项目的孔信息(在其他页面中)。我应该如何生成产品列表的HTML代码?我曾经将“html”+读者数据(查询结果)连接起来并将它们发送到带有Response.Write()的页面,但是我读到这对于UpdatePanel并不容易,而且它有点“老技术”你的立场是什么它?。然后我开始阅读有关转发器的内容,但我相信他们不会允许我接近我的模型类,因为我见过的示例直接评估了查询。最后我开始阅读有关创建我自己的控件“ASP用户控件”,这将允许我保留自定义html块(样式列表项与内部div)并添加一些类属性(数据库信息),我希望可以生成列表当前布局中的产品。请记住,我很快就会被要求实现ajax分页。

我需要了解最好的(推荐)技术,以便开始了解项目的详细信息。 非常感谢。

1 个答案:

答案 0 :(得分:2)

GridView专为表数据而设计。它可以按照你描述的方式进行操作,但这不是重点。对于你想要做的事情,Repeater或ListView会做得更好。作为旁注,所有这些数据绑定控件都采用了一个迭代器,它可以完全在代码端完成(我通常这样做),或者你可以使用DataSource控件。

在内存中构建一个html表并使用响应写入(甚至是文字控件)将会很快,但是您必须重新编译才能对表示层进行任何更改,并且如上所述不适用于更新面板。

那就是说,我从不使用UpdatePanel。我使用jquery发布/获取数据,然后使用jquery进行影响UI的更改。

除了使用基于服务器的解决方案之外,还有可以与asp.net一起使用的CLIENT端解决方案,例如Knockout.js库,用于构建MVC表单。

现在,至于Linq与SqlClient,这确实是一个偏好问题,每个都有好处和缺点。 Linq-to-sql很容易使用(对于大多数情况而言),但对底层数据库的更改必须反映在DataContext中。就个人而言,我喜欢Linq-to-sql,并尽可能地使用它。

相关问题