随笔分类 - asp.net
摘要:随着三天.NET Conf 2023的会议结束了,.Net 8正式发布了。 .Net 8是官方号称有史以来性能最快的一个版本了。 .Net 8 增加了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。 反正就是快,性能好、工作效率更高! 这个版本,.
阅读全文
摘要:我不喜欢我的代码,进这家公司已经一年多,已经慢慢熟悉了这里的开发模式,这是一个什么模式呢,那就是在原有的框架代码、在短期内迅速组合出一个项目。1、充斥垃圾、多余的代码。这里的开发,大都是拿着之前公司开发的代码,进行二次开发。其实我并不排斥使用以前的框架、代码,因为这确实可以减少成本,加快开发进度。只是开发时间太短,没时间清理,整理以前的代码,造成有着太多多余的代码,有时连数据库都有着多余的表。2、安全性从不考虑安全性从不考虑。比如最近开发的一个品牌活动站点中,有一个可以申领的功能,由于没验证码,后台也没做提交时间间隔、次数的处理,就被人提交了上万个申领(提交申领后可以拿奖品)。3、这样写代码太
阅读全文
摘要:现在有太多是文章讨论各种重构的技术,咱们就不谈了,我们就谈谈要怎么重构。
一谈到重构,大家大多认为是运用设计模式,来使你的代码看上去非常优雅。其实重构包括很多,一个变量名的修改、
代码格式的编排、分解一个大方法的等等都是属于重构的范畴。
我相信肯定有人和我一样,捧一本重构方面的书(《重构与模式》Joshua Kerievsky著,这本就不错),一劲的狂喊这样写代码太
漂亮;可是丢开书本,面对自己的代码一直寻找可以运用设计模式、需要重构的代码,最后发现一处可重构的都没。
写出优雅的代码,相信对于很多人来说一直是个瓶颈、很难去突破。不过突破后,你会发现你的世界变大了,犹如跳出井口的青蛙。
那我们到底才能写出那么优雅的代码呢。我们先说说,我们的重构误区吧。
误区:
1、从已有的代码寻找与书本中匹对一样或类似的场景。
2、在编写新代码时,脑子一直想着那几种模式,想去套用,一直想用上几个。
最终还是没什么好的消息,造成这样的原因是,你没真正的理解设计模式的运用场景、重构技术。
也许心里面会对自己说,这是项目比较小,没出现书本提到的那些场景。
其实重构你可以
阅读全文
摘要:随着Ajax的流行,现在的项目使用Ajax已经很普遍了,可以说是大量的使用Ajax了。由于存在大量的Ajax请求,变得难于管理。于是我们经常统一请求,唯一页面或者唯一的入口。于是便有以下类似的代码:示例:一、创建抽象类AjaxComm。二、Factory类,根据用户请求的Comm命令,创建相应的类,并执行相应的操作。三、实现相应的命令类。 # 优点与缺点# +合并创建逻辑和实例化/配置选项。 +将客户代码与创建逻辑解耦。 -如果可以直接实例化,会使设计复杂化。
阅读全文
摘要:当你学会用挑剔的眼光审视自己所写的代码时,将一段代码反复读上五六遍,每次都会找到新的问题。
重构,也就是对既有代码设计的改善,要求你首先知道什么样的代码需要改善。
最常见的设计问题都出自这样的代码:
1、重复代码。
2、代码过长。将一个厂方法分解为几个小方法,不但利于理解,而且能发现通常有很多方式能够使它们共享逻辑。
3、条件逻辑太复杂。
……
*重复。
*不清晰。
*复杂。
这些大原则当然对发现代码中何处需要改进有帮助。但是,许多程序员会感到这个列表太过含糊;他们不知道如何认出外表上不同代码重复,把握什么样的代码表达不算清晰,更难辨别简单代码和复杂代码。
Fowler和Beck为我们列出了存在代码坏味的12种情况。
阅读全文
摘要:昨天碰到一个很奇怪的事情,在最近的一个项目有这样的一个需求,把上传的图片进行压缩,避免因图片过大而影响浏览速度。
代码也很简单三两句就可以实现了,但发现压缩后的图片,虽然有变小,但还不是很明显。
本来是一张大约800*700的图片(80kb),压缩到120*110左右的图片,大小应该在10kb以内,但我却发现压缩后的图片却有45kb。
有个别的图片压缩后反而比原来的更大,而且用网页打开也无法显示。
阅读全文
摘要:蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。)
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。
阅读全文
摘要:Ajax现在已经是相当流行的技术了,Ajax不仅是想服务器端发送消息,更重要的是无刷新的重载页面。
如果页面单纯的使用js来创建,要写大量的代码,而且不直观。
在asp.net中,其实我们可以创建用户自定义控件,通过Ajax请求返回用户自定义控件HTML
阅读全文
摘要:近来一直在开发股票模拟系统,终于告一段落了,回想起来感慨很多。突然想应该做点总结了,想来想去还是觉得通过写点日志来把相关的知识点记录下来,下面就我在项目中经常用到的动态提示搜索选项功能的实现。
第一步,先做好搜索页面
阅读全文
摘要:当我们在Visual Studio添加一个自定义控件时,它都会给我们以下默认的代码。
[DefaultProperty("Text")]
[ToolboxData("")]
public class WebCustomControl1 : WebControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string Text
{
get
{
String s = (String)ViewState["Text"];
阅读全文