随笔分类 -  Refactoring

摘要:我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断。如下面这篇《用户控件(UserControl) 使用事件 Ver2》http://www.cnblogs.com/insus/archive/2011/11/18/2253605.html,就是一... 阅读全文
posted @ 2014-12-04 10:47 Insus.NET 阅读(1976) 评论(7) 推荐(7) 编辑
摘要:前几天,搬房子时又拿起《重构----改善既有代码的设计》这本书来随便翻来看下,重构Refactoring在开发时,是时常也经常会使用得到。她确实教我们怎样把写程序写简洁,清楚 好明白,好理解,好维护......今天为博客写点重构相关。以网友实际的例子,在论坛上看到的:public void show... 阅读全文
posted @ 2014-12-03 13:53 Insus.NET 阅读(5562) 评论(11) 推荐(32) 编辑
摘要:继续上一篇《ASP.NET开发,从二层至三层,至面向对象 (3)》http://www.cnblogs.com/insus/p/3826706.html。我们更深层次学会了逻辑层对象,即各个具体对象与数据库之间的逻辑类。 我们有分为有处理Access的SQL语句和SQL Server的SQL语句的,... 阅读全文
posted @ 2014-07-11 17:04 Insus.NET 阅读(1966) 评论(13) 推荐(6) 编辑
摘要:继续上一篇《ASP.NET开发,从二层至三层,至面向对象 (2)》http://www.cnblogs.com/insus/p/3825805.html。我们学会了怎样创建对象,把BizBase类从页面级分离,解耦合度。亲的更亲,疏的更疏。上面使用的是Access数据,将达不到扩展与升级的要求。程序... 阅读全文
posted @ 2014-07-08 17:24 Insus.NET 阅读(2649) 评论(7) 推荐(1) 编辑
摘要:继续上一篇《ASP.NET开发,从二层至三层,至面向对象》http://www.cnblogs.com/insus/p/3822624.html。我们了解到怎样把自己的程序由二层变为三层。本篇我们将学会在asp.net 面向对象编程。真正来说,我们不应该直接在.aspx.cs中new一个BizBas... 阅读全文
posted @ 2014-07-05 23:30 Insus.NET 阅读(2379) 评论(2) 推荐(2) 编辑
摘要:本篇Insus.NET使用一个实例,分享在ASP.NET开发时,一个功能一个方法(函数),且编且改,一步一个脚印把实例完成。在方法多变多形式的情况之下,怎样把写出来程序简单明了。下面是一个Excel文档:http://download.cnblogs.com/insus/ASPDOTNET/Book... 阅读全文
posted @ 2014-07-02 10:28 Insus.NET 阅读(4706) 评论(17) 推荐(16) 编辑
摘要:分享一下上个星期,开发与跟用户沟通历程。前提,以前旧系统,人事资料是一笔笔人手录入。现在公司在减少人手,提高效率。因此Insus.NET需要修改旧系统,实现批量导入。下面一些截图来自邮件。经用户使用之后,还有一些特殊情况是在开发时是没有想到的。当遇上下面的资料时,用户反馈:原因是有旧系统内,存储雇员... 阅读全文
posted @ 2014-06-28 16:54 Insus.NET 阅读(1774) 评论(7) 推荐(5) 编辑
摘要:没有什么,开发ASP.NET时随便写写,想到什么写什么,这次想写点开发过程中,比如在数据库,某一张表中有一个字段,如下:上面代码示例中高亮字段,数据类型为BIT,它存储的值将为"True"或"False"。在前端aspx网页上,我们用一个形式来呈现友好的控件。一般来说,存储boolean值,一般使用... 阅读全文
posted @ 2014-06-28 09:47 Insus.NET 阅读(2497) 评论(9) 推荐(4) 编辑
摘要:昨晚Insus.NET有怀旧一下《念念不忘,ASP.NET MVC显示WebForm网页或UserControl控件》http://www.cnblogs.com/insus/p/3641610.html那仅是小小尝试,还有很多不明的地方。那一篇其中有Render用户控件ascx的。如今Insus.NET想重构它一下,让步其能在Action或是Razor语法中使用。创建一个AscxUtility.cs,这们我们可以在应用程序中多个地方使用。这样我们就可以重构一下昨晚那个public ActionResult UcTest() Action了。Comment out标记1的代码,重构为标记2。这 阅读全文
posted @ 2014-04-03 11:48 Insus.NET 阅读(2010) 评论(0) 推荐(1) 编辑
摘要:这次,我们练习MVC应用程序中,应用web service。先在MVC应用程序中创建一个目录Services,将用来存储Service.asmx。这个Service的方法,可以参考这个《自定义MVC的Helper扩展方法》http://www.cnblogs.com/insus/p/3379485.... 阅读全文
posted @ 2014-03-14 16:15 Insus.NET 阅读(3176) 评论(15) 推荐(1) 编辑
摘要:下午分享《MVC编辑状态两个DropDownList联动》http://www.cnblogs.com/insus/p/3426563.html不久,马上有网友问及三级联动的例子。Insus.NET回复他,会做二级联动,三级应该不难。原理与方法是一样的。写此篇的目的,还是处理jQuery怎样获取动态产生后的html的标签或是元素。还是先回过头去看篇头指定的链接的文章。一开始时,Insus.NET使用了jQuery的ajax产生了一数据行,并append至 但是,在后续的jQuery是很难找到append的html的标签或元素。为了能找到两个select下拉列表,Insus.NET当时只能把相关 阅读全文
posted @ 2013-11-17 02:46 Insus.NET 阅读(5631) 评论(0) 推荐(3) 编辑
摘要:先看看这篇《在jQuery定义自己函数》http://www.cnblogs.com/insus/p/3415444.html程序越看越是有重构的地方。先看1部分,由于在#16代码有宣告变量就找到标签赋值了,那#24行就是冗余的了,因此Insus.NET把它删除。2和3部分,两个下拉列表,不管在什么情况之下,都是为它添加一个"选择..."的选项,我们就不必另外写它了,可以直接移至自定义函数中去。这样一经修改过自定义函数DdlBind(obj,data),只在jQuery代码中有引用此函数,它都会生成“选择...”选项。所以Insus.NET也把#11和#21行jQuery代 阅读全文
posted @ 2013-11-09 17:00 Insus.NET 阅读(772) 评论(0) 推荐(1) 编辑
摘要:今早复习昨天的练习jQuery的DropDownList联动功能,如果想看回《jQuery实现DropDownList(MVC)》http://www.cnblogs.com/insus/p/3413749.html和《jQuery实现两个DropDownList联动(MVC)》http://www.cnblogs.com/insus/p/3414480.html。发觉一些jQuery代码冗余。如:上图中,高亮部分的代码将会是产生冗余,它只是对象不相同而已。jQuery是否也有同C#语言一样,可以重构(Refactoring)呢? 为了尝试解决此问题,刚才Insus.NET查找资料,它们是可以 阅读全文
posted @ 2013-11-09 09:55 Insus.NET 阅读(869) 评论(0) 推荐(3) 编辑
摘要:重构此篇《在GridView控件FooterTemplate内添加记录 Ver2》 http://www.cnblogs.com/insus/p/3270644.html这有些缺陷,怎样说呢? 这些实验,均是在已有记录的基础上实现了。如果没有记录的情况之下,你想实现在FooterTemplate添加记录,是无法实现的。因为没有记录时,整个Gridview控件都不呈现,更不用说FooterTemplate模版了。Insus.NET把数据表中的记录全清除,再浏览网页时,它呈现这样子:没意思,不完美。既然Insus.NET能写此篇文章,办法肯定是有的。看看下面程序的变化,让这个功能重生?去修改Htm 阅读全文
posted @ 2013-08-21 09:57 Insus.NET 阅读(762) 评论(0) 推荐(1) 编辑
摘要:中午有发表一篇博文《在GridView控件FooterTemplate内添加记录》 http://www.cnblogs.com/insus/p/3269908.html添加铵钮是放在FooterTemplate模版内。这个版本,Insus.NET把添加铵钮放在Gridview控件外部。Html代码如下:这个已经不用写OnRowCreated事件,因为铵钮已经摆放在GridView控件外。为GridView控件绑定数据:下面是铵钮事件:动态操作演示:下面内容于2013-08-21 08:10分添加:最后一段代码,即铵钮事件中,有一个句程序,可以化繁为简: 阅读全文
posted @ 2013-08-20 17:26 Insus.NET 阅读(597) 评论(0) 推荐(1) 编辑
摘要:刚才在论坛上看到一个问题,其中网友有帖出一个方法,如下。过多的代码冗余过多的if判断。下面Insus.NET按照自己的相法与习惯,重构这个方法,希望代码冗余的地方,能够简化,需要封装的地方,把它们封装。第一步,大家可以看到每个if判断块内,都有一句:fileUpload.PostedFile.SaveAs(myDicPath + "\\" + fileName);结果如下,冗余的都被Insus.NET comment out了,只留下Highlight的一句:第二步,我们又看到每个if判断块内,都有两句代码,是判断目录是否存在,如果不存在,创建目录的。 if (!Direc 阅读全文
posted @ 2013-08-07 15:09 Insus.NET 阅读(2143) 评论(9) 推荐(6) 编辑
摘要:Insus.NEt曾经有写过一篇《Repeater控件最后一笔记录高亮显示》 ,它的实现是先宣告一个页面级的变量,然后在Data_Binding()方法内获取数据源的记录总数。本篇是的重点,就是改变前一篇的写法,不必宣告一个页面级的变量,而是直接在OnItemDataBound事件获取。先看.aspx:去.aspx.cs写code behind代码:上图中的#35行代码,是把sender对象转换为Repeater控件。#37行代码,是把Rpt.DataSource转换为DataTable,为什么要转换为DataTable对象,而不是其它类型的数据集? 因为在Data_Binding()中给Re 阅读全文
posted @ 2013-08-07 10:56 Insus.NET 阅读(1267) 评论(0) 推荐(2) 编辑
摘要:前一篇《批量更改某一目录之下所有文件名》只是批量修改所有子目录下的文件名。Insus.NET重构了它。能让它修改所有子目录名和子目录下的文件名。就是分别迭代,目录迭代目录,文件迭代文件。写一个重命名所有目录名的方法,重命名目录时,由于目录类别有一个FullName属性,所以不必再串联目录全名,使用FullName即可以获取。把前一篇迭代重命名文件名的方法,照料搬,不过参数名有变更:再看看Page_Load事件。动画演示一下:下面内容于2013-08-01 08:42分补充:今早,Insus.NET有看到昨天写的,还有待做得优化与简洁,因此对上两个方法,再进生重构,注重下面高亮区块。另一个方法, 阅读全文
posted @ 2013-07-31 17:28 Insus.NET 阅读(822) 评论(0) 推荐(1) 编辑
摘要:如果判断过多,也许令程序变得复杂,或许日后还有条件添加时,维护起来可想而知。Insus.NET有看到论坛一个网友帖出问题的代码:它的问题是Session的判断,判断Session 是否为空,正确方法应该是:Session["xxx"] != null现在,我们在这里不讨论问题与原因,讨论的是怎样设计下拉菜单与减少条件的判断。从两段代码来看,网友是在前一页放在下拉菜单,让用户选择,并在文本框中输入一些值,来转向第二页再判断对选择的条件进行查询。 不管第一代码代码,还是第二段代码,If很多,也就是说,条件判断很多。日后有可以还要添加。只要有条件修改,网友就得两个地方同时修改,改 阅读全文
posted @ 2013-07-10 15:30 Insus.NET 阅读(915) 评论(6) 推荐(5) 编辑
摘要:ASP.NET网页之间传递参数与值,方法很多,可以使用Application,Cookie,Session,或是Querystring等等。由于Insus.NET开发的程序中,多数是在后台之间进行参数与值传递,因此很少使用Querystring,而是使用Session。Session? 我也会。 是的,使用Session进行传递参数与值,懂开发的程序员都会。 使用Session传递网页之间的参数与值,可以做到轻微量级或是轻量级。为了参数与值方便进行管理,Insus.NET会把这些存放一个集合内,时行传递。 在专案中,会创建一个类别。上图中,20#代码,是一个静态方法,它有两个参数,一个是Dic 阅读全文
posted @ 2013-06-29 09:33 Insus.NET 阅读(3762) 评论(11) 推荐(4) 编辑