登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
从事ASP.NET开发两年多,谈谈对两三年工作经验的ASP.NET ...
从事ASP.NET开发两年多,谈谈对两三年工作经验的ASP.NET程序员的基本见解
[ 复制链接 ]
觐有
2025-5-29 19:44:09
粗略算来,自己从事.NET开发工作2年有余,也来谈谈自己对两三年工作经验的.NET程序员的基本见解。
我想众所周知,Microsoft的东西入门都是比较简单的,但是提高并不容易,这也就导致了很多培训机构借此良机,忽悠了大批的甚至对编程压根不知所以然的人加入.NET的开发阵营,然后告诉他们包教,包会,包就业的三包政策。当然也有另一部分人是受过高等教育,之后出来从事.NET开发工作,但是他们或者也是受到了一些环境的影响,在WEBFORM的开发模式中,很喜欢托拉控件,编辑模板之类的操作,甚至不知道这些控件最终被解析成什么东西,只知道我实现了,而不问其所以然,或者是效率如何,等等。
下面谈谈几点个人愚见,希望能对两三年工作经验的.NET开发人员一点提醒:
1、Gridview之错,错,错
我想从事ASP.NET开发工作的应当有相当一部分人是做基于信息管理系统类软件开发的,这样一来可能就会经常与数据报表打交道,Gridview这个东西可能就是在熟悉不过了。但是我想不通的是为什么有这么多的人喜欢用它呢?我总结了这种控件的缺点,如下:
(1)糟糕的编辑环境,看不见TR,TD,写样式也变得异常麻烦
代码
'>
(2)有人甚至喜欢在模板列里面编辑,我看着就一个字晕
(3)生成糟糕的HTML标签
(4)Gridview操作起来很不灵活
这句话的意思是我想要方便的控制Table的TR,TD,譬如在合并单元格,等等很多问题的处理上很不方便,以下是我用Repeater在处理合并单元格的问题的实例:
HTML部分:
代码
No Data
XXX1
XXX2
XXX3
XXX4
XXX5
XXX6
XXX7
CS部分:
代码 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
.FindControl("tdContainerNo") as HtmlTableCell;
HtmlTableCell tdtotal_previous = this.rpList.Items[i - 1].FindControl("tdtotal") as HtmlTableCell;
HtmlTableCell tdtotal = this.rpList.Items
.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;
}
}(5)Gridview生成的效率问题
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产生的乱码:
这还是算小的了,数据控件在显示数量大的时候,你如果将这些东西拷贝到TXT文件中,然后看看他们的大小,是很恐怖的,虽然在开发webform过程中,很多情况下viewstate确实帮我们节省了不少开发时间,也方便我很多,但是我要说的是,根据实际情况决定你的viewstate,能禁掉就禁掉吧。
5、很喜欢到服务器端做验证(修正:应该client/Server同时验证)
在开发过程中,我们会经常遇到这样的问题,验证用户输入内容的格式正不正确,例如,用户输入个EMail,我们就需要判断输入的格式正不正确,然后有很多程序员就喜欢在CS文件中取this.txtXX.Text的内容作验证,然后弄个弹出框提示用户,殊不知这个简单的验证,还要跑到Server上做,为什么不写个JS提示一下呢,不是很简单吗?
6、不知其所以然
很多两三经验的.NET程序在开发过程中托控件托习惯了,都不知道最后控件被解析什么样子,甚至不知道自己开发的ASP.NET程序的工作流程,原理,完全被Microsoft傻瓜化了,只知道我这样做就实现了功能,却不知道你这样做为什么能实现。这是一个很恐怖的信号,希望活跃在.NET的兄弟们在开发程序的时候能知其然,知其所以然。
7、吃老本,不学习新的技术
众所周知,Microsoft的技术是更新很快的,有些人会抱怨跟不上节奏,索性不问,老是沉迷于过去式中,认为老的技术成熟,而且自己很熟悉,殊不知,这是一种退化的表现。我们应该明白,新事物的出现,肯定是为了补充旧事物的所缺少的地方,是为了更完美,更便捷的处理实际问题,我们不能一概的去否定它,而应该去了解他,学习他。Linq不是很好用吗,但是到现在还发现很多人对Linq是一知半解。
今天就写到这里吧,以上内容是我经常见到的,所以写在这里,希望给两三工作经验的程序员朋友提个醒!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
ASP
NET
从事
开发
两年
相关帖子
真正过安全狗的ASP大马
突破智创监控asp大马
超强隐蔽asp一句话
C++ 开发环境配置
Serv-U asp 提权程序
ASP免杀一句话木马
记一次 .NET 某中医药附属医院门诊系统 崩溃分析
C#/.NET/.NET Core技术前沿周刊 | 第 53 期(2025年9.1-9.7)
利用python开发的一款日志自动查找复制小工具
Microsoft 推出 .NET 10 RC 1
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
程序
真正过安全狗的ASP大马
0
28
新程序
2025-09-05
程序
突破智创监控asp大马
0
29
新程序
2025-09-05
程序
超强隐蔽asp一句话
0
27
新程序
2025-09-05
安全
C++ 开发环境配置
0
562
觐有
2025-09-06
程序
Serv-U asp 提权程序
0
30
新程序
2025-09-06
程序
ASP免杀一句话木马
0
18
新程序
2025-09-07
业界
记一次 .NET 某中医药附属医院门诊系统 崩溃分析
0
212
撙仿
2025-09-09
业界
C#/.NET/.NET Core技术前沿周刊 | 第 53 期(2025年9.1-9.7)
0
167
东门芳洲
2025-09-09
业界
利用python开发的一款日志自动查找复制小工具
0
351
穆望
2025-09-10
业界
Microsoft 推出 .NET 10 RC 1
0
689
乱蚣
2025-09-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
觐有
2025-5-29 19:44:09
关注
0
粉丝关注
14
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多