新闻详情

新闻详情

首页 / 资讯中心 / 详情

ASP.NET开发两年多,谈谈对两三年工作经验的ASP.NET程序员的基本见解

发布时间:2026/11/4 22:19:52来源:尧图网络
ASP.NET开发两年多,谈谈对两三年工作经验的ASP.NET程序员的基本见解
我想众所周知Microsoft的东西入门都是比较简单的但是提高并不容易这也就导致了很多培训机构借此良机忽悠了大批的甚至对编程压根不知所以然的人加入.NET的开发阵营然后告诉他们包教包会包就业的三包政策。当然也有另一部分人是受过高等教育之后出来从事.NET开发工作但是他们或者也是受到了一些环境的影响在WEBFORM的开发模式中很喜欢托拉控件编辑模板之类的操作甚至不知道这些控件最终被解析成什么东西只知道我实现了而不问其所以然或者是效率如何等等。下面谈谈几点个人愚见希望能对两三年工作经验的.NET开发人员一点提醒1、Gridview之错错错我想从事ASP.NET开发工作的应当有相当一部分人是做基于信息管理系统类软件开发的这样一来可能就会经常与数据报表打交道Gridview这个东西可能就是在熟悉不过了。但是我想不通的是为什么有这么多的人喜欢用它呢我总结了这种控件的缺点如下1糟糕的编辑环境看不见TR,TD写样式也变得异常麻烦代码asp:GridView IDgvList runatserver CssClassGridViewCSS Width100% AutoGenerateColumnsFalse EmptyDataTextNo DataColumnsasp:TemplateField HeaderText行号ItemTemplateasp:Label IDlblRowId runatserver Text%# Container.DataItemIndex 1%/asp:Label/ItemTemplate/asp:TemplateFieldasp:BoundField DataFieldXXX1 HeaderTextXXX1 /asp:BoundField DataFieldXXX2 HeaderTextXXX2 /asp:BoundField DataFieldXXX3 HeaderTextXXX3 /asp:BoundField DataFieldXXX4 HeaderTextXXX4 /asp:BoundField DataFieldXXX5 HeaderTextXXX5 /asp:BoundField DataFieldXXX6 HeaderTextXXX6 /asp:BoundField DataFieldXXX7 HeaderTextXXX7 /asp:BoundField DataFieldXXX8 HeaderTextXXX8 //Columns/asp:GridView2有人甚至喜欢在模板列里面编辑我看着就一个字晕3生成糟糕的HTML标签4Gridview操作起来很不灵活这句话的意思是我想要方便的控制Table的TR,TD譬如在合并单元格等等很多问题的处理上很不方便以下是我用Repeater在处理合并单元格的问题的实例HTML部分代码asp:Repeater IDrpList runatserver EnableViewStatefalseHeaderTemplate%if (rpList.Items.Count 0){%div iddNoDataNo Data/div%}else {%tabletrthXXX1/ththXXX2/ththXXX3/ththXXX4/ththXXX5/ththXXX6/ththXXX7/th/tr%} %/HeaderTemplateItemTemplatetrtd idtdContainerNo runatserver %#Eval(ContainerNo)%/tdtd%#Eval(X1)%/tdtd%#Eval(X2)%/tdtd%#Eval(X3)%/tdtd%#Eval(X4)%/tdtd%#Eval(X5)%/tdtd idtdtotal runatserver%#Eval(X6)%/td/tr/ItemTemplateFooterTemplate/table/FooterTemplate/asp:RepeaterCS部分代码for (int i rpList.Items.Count - 1; i 0; i--){HtmlTableCell tdContainerNo_previous this.rpList.Items[i - 1].FindControl(tdContainerNo) as HtmlTableCell;HtmlTableCell tdContainerNo this.rpList.Items[i].FindControl(tdContainerNo) as HtmlTableCell;HtmlTableCell tdtotal_previous this.rpList.Items[i - 1].FindControl(tdtotal) as HtmlTableCell;HtmlTableCell tdtotal this.rpList.Items[i].FindControl(tdtotal) as HtmlTableCell;tdContainerNo.RowSpan (tdContainerNo.RowSpan -1) ? 1 : tdContainerNo.RowSpan;tdContainerNo_previous.RowSpan (tdContainerNo_previous.RowSpan -1) ? 1 : tdContainerNo_previous.RowSpan;if (tdContainerNo.InnerText tdContainerNo_previous.InnerText){tdContainerNo.Visible false;tdContainerNo_previous.RowSpan tdContainerNo.RowSpan;}tdtotal.RowSpan (tdtotal.RowSpan -1) ? 1 : tdtotal.RowSpan;tdtotal_previous.RowSpan (tdtotal_previous.RowSpan -1) ? 1 : tdtotal_previous.RowSpan;if (tdContainerNo.InnerText tdContainerNo_previous.InnerText tdtotal.InnerText tdtotal_previous.InnerText){tdtotal.Visible false;tdtotal_previous.RowSpan tdtotal.RowSpan;}}5Gridview生成的效率问题Gridview集成了这么多的东西我想在效率上应该也好不到哪里去吧。最后当然Gridview还有诸多其他问题这里就不一一列举了这里只列举几个最常见得问题让我想不通的是有些人像Repeater这么简单易用的控件为什么不用而去用Gridview这种不易掌控的控件呢2、为啥还有人用FormView有些人喜欢在设计界面的时候托一个FormView控件然后在里面放一些Textbox、Button、Label之类的服务器端控件这样在后台操作的时候可以统一绑定而后呢如果会经常有一些方法要操作FormView中的服务器端控件那么经常有些程序员会声明很多局部变量先从FormView去Findcontrol这些服务器端控件赋给这些全局变量而后去再操作这些全局变量如下CODE//声明部分private TextBox X1;private TextBox X2;private DropDownList X3;private TextBox X4;private TextBox X5;private TextBox X6;//赋值部分看到这样的CODE真是让人无语而且更让人无语的是这些人仿佛很喜欢在模板列里面编辑内容。3、疯狂的SQL 代码拼接虽然说在在MS SQL 2005以后的版本中对很长的SQL代码的执行效率比执行由这段SQL生成的存储过程的时间多的有限但是我们知道存储过程是预先编译好的存放在数据库中的你要调用它只需要传一个很短的字符串加N个参数而已。而超长的SQL代码呢你需要预先将其拼接成要执行的SQL 代码(SQL代码很长要分为很多行写)然后传到数据库中数据库要将其编译可能会编译出错你这个时候才知道然后在执行这段SQL代码。你别说我还真见到过很多人是这样写的为什么不一句存储过程了事呢改起来也很方便。4、恐怖的viewstate有些.NET程序员压根对viewstate不知其所以然甚至在用webform的过程中对其开发生成的HTML源码视而不见下面我们来看看viewstate产生的乱码
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/4 15:56:54

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/3 12:09:35

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/4 17:01:23

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/4 1:25:31

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/4 3:51:11

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉