对ASP.NET 2.0下面的新控件的困惑_weixin_34293911的博客-程序员宝宝

技术标签: c#  大数据  

大家知道在ASP.NET2.0下面微软件给出了一系统的新控件,有一些是挺有用的,比如那个Membership成员管理系统,以及分步向导控件都为我们节省了很多的时间,而另外一些,比如从Datagrid上升级来的Gridview有时候感觉倒不是那么好。

这个控件在为我们提供很大的方便的同时也失去灵活性,比如直接指定一个SQL语句就可以完成数据访问的工作,而分页显示,排序更是比吃饭还简单。众所周知,这是与我们分层的逻辑架构设计相违背的,这样就造成了一个难堪的局面,新手很难单单只凭借这些控件做出功能强大而完善的程序,更要命的是,它封装了很多的操作,而我们并不清楚它在后台是怎么运作的,对于新手来说,万一出了问题他们根本不知道问题出在哪里,而有经验的程序员肯定不会采用如此难看设计。要用它完成升级等操作的时候我们会要求对输入的内容进行验证也比较不方便,而该控件运行时会生成庞大的ViewState字段造成效率下降,至于在大数据量下面的分页性能就更不用说了,虽然现在可以把DataSet作二进制序列化,但是结果仍不尽人意。那么我们就要问这样的控件存在的价值到底在哪里呢?

GridView虽然可以做分页,但是它提供的分页样式也就那些,如果要手动定义很麻烦。话又说回来,如果需要非常强大的数据操作,比如多列排序,汇总,导出,合计,甚至拖放等等复杂的功能还不如借助其它的手段来实现,比如商业控件和使用智能客户端平台更方便一些。GridView的数十个样式属性的设计也是很糟糕的,虽然你可以用这些属性做出非常花里胡哨的用户界面,但是一旦一个项目有数十个GridView的时候要修改的工作简直不可想象,所以,我们还得借助CSS这样强大的工具来定义它的样式的。

同样鸡肋的还有那个SQL数据源控件,把做程序弄得如此简化,虽然在大型项目里面没有什么实用价值,我觉得还是有一定的好处的,至少它可以提高对编程感兴趣水平又不高的人的信心,想当年我正是瞎子摸象般用DW的自动编码功能做了个个人网站出来玩,虽然它生成的代码是那么的难看,逻辑是那么的混乱,后来我还凭借满腔的热忱投入到编程当中,否则我也不会走到今天了。

我比较看好的是那个叫做ObjectDataSource的数据源控件,为什么呢,它可以在后台自由地控制程序逻辑,让每一步的操作都很透明,加上利用泛型提供的强大特性让我们的程序看起来感觉不错。而数据源为我们前台数据绑定工作节省了不少的时间,好好的利用这一特性可以为我们的程序带来很多的便利。

熟悉微软的StarterKit的朋友都知道里面有一个个人网站的示例程序,就是对象数据源应用的很典型的例子,在这个程序中可以说是把ASP.NET2.0提供的新控件特性发挥到了淋漓尽致,用少量的代码就完成了很多的逻辑工作。但是它毕竟只是个人的站而已,很多地方的工作做得还很不够,比如说我可以提交一个空的表单,它并不作任何的检查等。

总之,这些新控件合理利用还是会大大提高效率的,并且也给了编程水平不高的朋友们一个C#锐利新体验的机会。从功能上说个人认为比DW那种三脚猫的伎俩好多了,好多人还在讨论在DW下面如何编程,实在有些不妥,DW更适合做界面一些。

关于分页的问题,我最近正在做一个ASP.NET 2.0下面的分页控件,总体上讲是从1.1里面MSDN SQLPAGER基础上升级改造过来的东西,一是程序上到2.0的迁移,二是做成了用户控件的形式,这样分页的样式可以根据自己的喜好自由扩展,并且可以使用微软的最新企业库的数据访问块进行与数据库的通讯,可以使用数据缓存或者只读取需要的记录,提高了效率。目前已经基本完工将在新日发布,欢迎大家关注。同时由于自身水平与精力有限,难免有一些不足和缺点,不过大家放心,这个控件开发源代码,您可以对它进行自由 的扩展,要是有问题的话也可以从源代码排查修正。

关于大数据分页的问题今天在网上看到了一个老外的东西好象挺有意思的,近期我会抽一些时间翻译出来奉献给大家,这里是源文地址,大意是利用SQL SERVER 2005的 ROW_NUMBER() 特性来工作。

转载于:https://www.cnblogs.com/darkangle/archive/2006/04/04/366691.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34293911/article/details/93968981

智能推荐

Errors running builder 'Android Resource Manager'_running builder android_Ydcool的博客-程序员宝宝

今天在导入工程的时候又遇到这个问题了。找遍了stackOverflow也没有一个好用的答案。在重试了第n+1 次报错Errors running builder 'Android Resource Manager' 之后,我试着按照一些人的办法,在buildPath      -config build path -Library 中,      remove 掉当前的JRE,

渗透测试——打靶场(目录)_anansec的博客-程序员宝宝

从业信息安全3年有余,经历过简单的应用系统漏洞扫描、服务器系统漏洞扫描、应用渗透测试、等保测评、数据安全、安全运营(含建设)…,看着好像还蛮厉害的,但是实际上涉及面挺广,但是都不精。嗯…有点扯远了,从今天开始,从头开始把web相关的靶场做一下并且弄一个记录,会涉及sqli-labs、xss-labs、upload-labs、整合靶场、框架类靶机等。当然做这些的目的也是为了能够快速回顾起一些技术细节,不论是在技术提升还是原理理解都会有所帮助,希望自己能够坚持下去,干吧!1、xss-labs2、upload

微信昵称的emoji的尝试性解决方案_weixin_30594001的博客-程序员宝宝

概述之前分享过前端页面使用emoji,讨论了前端页面使用emoji的方法,但是微信昵称中的emoji怎么获取和显示呢?我查找了一些资料,把心得记录下来,供以后开发时参考,相信对其他人也有用。转码问题这里借鉴umoji的源码,我总结了emoji的转码方法。

redis实现分布式session共享_草莓甜甜圈的博客-程序员宝宝

为什么要共享session?我们使用单台Tomcat的时候不会有共享sesssion的疑虑,只要使用Tomcat的默认配置即可,session即可存储在Tomcat上。但是随着业务的扩大,增加Tomcat节点构成Tomcat集群大势所趋,分布式带来了增加更大规模并发请求的优势,但是也随之到来了一个问题,每个Tomcat只存储来访问自己的请求产生的session,如果Tomcat-A已经为客...

NEFU大一暑假集训-字典树_Tan_Yuu的博客-程序员宝宝

题集链接目录:OPA L语言题目大意思路代码B Secret Message 秘密信息题目大意思路代码C The XOR-longest Path题目大意思路代码D The XOR Largest Pair题目大意思路代码E Phone List题目大意思路代码F Xor sum题目大意思路代码EDOP感谢学长的讲解与付出;感谢ph和zsl两位大佬的指导与讨论;目前来看,字典树主要用于线性复杂判断给定字符串与字典有没有前缀关系,和给定目标下异或值的求取;A L语言题目大意给定字典,问题给字符

随便推点

string_view_AlbertTao23的博客-程序员宝宝

什么是string_viewstd::string_view是C++ 17标准中新加入的类,正如其名,它提供一个字符串的视图,即可以通过这个类以各种方法“观测”字符串,但不允许修改字符串。由于它只读的特性,它并不真正持有这个字符串的拷贝,而是与相对应的字符串共享这一空间。即——构造时不发生字符串的复制。同时,你也可以自由的移动这个视图,移动视图并不会移动原定的字符串。正因这些特性,当你不需要改变字符串时,应当抛弃原来使用的const string而采用新的string_view,这样可以避免多余的字

如何处理报表中的舍位平衡_润乾软件的博客-程序员宝宝

在报表的数据统计中,常常会根据精度呈现或者单位换算等要求,需要对数据执行四舍五入的操作,这种操作称为舍位处理。简单直接的舍位处理有可能会带来隐患,原本平衡的数据关系可能会被打破。 为了保证报表中数据关系的正确,就需要调整舍位之后的数据,使得数据重新变得平衡,这样的调整就叫做舍位平衡。在这里我们就讨论一下如何利用集算器来处理舍位平衡问题。舍位处理往往会采取四舍五入计算,这时就会产生误差,...

String转十六进制,十六进制转String,字符串转十六进制,十六进制转字符串_string转16进制字符串_大雄_Ho的博客-程序员宝宝

最近需要使用到十六进制转字符串之类的,网上查都很乱,自己研究了一下,1.字符串转十六进制数据String str = "你好";String format = String.format("%x", new BigInteger(1, str.getBytes("utf-8")));System.out.println(format);输出为:e4bda0e5a5bd2.十六进制转字符串String mac = "e4bda0e5a5bd";String str = ne.

TA-Lib:技术分析库简介_wayz11的博客-程序员宝宝

翻译文章来自:http://ta-lib.org多平台的市场分析工具……交易软件开发人员在对金融市场数据做技术分析时,广泛使用TA-Lib库。包括200项指标,如ADX,MACD,RSI,Stochastic,Bollinger Bands等.. (更多信息)烛线图模式识别开源API语言支持: C/C++, Java, Perl, Python 和 100% Managed

浏览器显示服务器拒绝访问怎么办,ie浏览器拒绝访问原因如何解决_吴婧羡的博客-程序员宝宝

原标题:"IE浏览器拒绝访问的原因及其解决方法"相关电脑问题教程分享。 - 来源:191路由网。IE浏览器经常会出现各种各样的问题,那么遇到IE浏览器拒绝访问该怎么解决呢?近日有用户在使用IE浏览器上网时,突然遇到拒绝访问的情况,下面就给大家分享问题原因及其解决方法。原因:1.您的计算机或网络上阻止了活动脚本、ActiveX控件或Java小程序。InternetExplorer或另外一种程序(如防...

微信公众平台开发:JS-SDK之分享功能整理_Andy_Zheng.的博客-程序员宝宝

原理其实我也不懂,就不乱说了,大致就是微信公众账号平台有提供一个js-sdk开发文档,有一定的开发规范,对又到分享等违规行为也有严格要求。按着开发文档做,区别就是中通过后台验证一下APPID与SECRET是否正确,是否授权等,恶心之处就在后台验证时。JS-SDK文档在 这里 .  步骤(此处未尝试):  首先下载官方的示例代码:http://demo.open.weixin

推荐文章

热门文章

相关标签