摘要: 最近做了一个项目技术预研:在ASP.NET MVC框架中使用Web API和EntityFramework,构建一个基础的架构,并在此基础上实现基本的CRUD应用。 阅读全文
posted @ 2018-02-12 11:28 阿子 阅读(3388) 评论(2) 推荐(4) 编辑
摘要: 多年以前,在我的刚接触编程语言时,我遇到了一个超出能力范围的类型设计问题。这个问题困扰我多年,让我寝食难安。原因并不是因为这个问题有多复杂,恰恰相反,让我纠结的是,这个问题看起来很简单,而我却找不到一个优秀的解决方法。 俗话说踏破铁鞋无觅处,得来全不费工夫。苦苦求索而不得的多年之后,我从一次系统设计 阅读全文
posted @ 2018-01-30 09:16 阿子 阅读(909) 评论(2) 推荐(0) 编辑
摘要: 设计模式是面向对象编程的一个非常精彩的部分。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性,它能帮助我们将应用组织成容易了解,容易维护,具有弹性的架构。本文通过一个简单的案例来讲述策略模式在地铁票价系统中的应用。 阅读全文
posted @ 2018-01-25 12:56 阿子 阅读(1811) 评论(1) 推荐(5) 编辑
摘要: 在理解 和`dynamic`关键字之前,让我们先了解一下编程语言的类别。 C 中有两类编程语言: 静态类型语言类别 动态语言类别 静态类型语言 静态类型语言也被称为强类型语言。所谓强类型语言,通俗的讲,就是在编译过程中执行类型检查的语言。我们举个简单的例子,比如我们知道一个方法的返回类型,但是如果返 阅读全文
posted @ 2018-05-06 16:29 阿子 阅读(21612) 评论(1) 推荐(8) 编辑
摘要: 最近我正在处理C#中关于timeout行为的一些bug。解决方案非常有意思,所以我在这里分享给广大博友们。 我要处理的是下面这些情况: - 我们做了一个应用程序,程序中有这么一个模块,它的功能向用户显示一个消息对话框,15秒后再自动关闭该对话框。但是,如果用户手动关闭对话框,则在timeout时我们无需做任何处理。 - 程序中有一个漫长的执行操作。如果该操作持续5秒钟以上,那么请终止这个操作。 - 我们的的应用程序中有执行时间未知的操作。当执行时间过长时,我们需要显示一个“进行中”弹出窗口来提示用户耐心等待。我们无法预估这次操作会持续多久,但一般情况下会持续不到一秒。为了避免弹出窗口一闪而过,我们只想要在1秒后显示这个弹出窗口。反之,如果在1秒内操作完成,则不需要显示这个弹出窗口。 这些问题是相似的。在超时之后,我们必须执行X操作,除非Y在那个时候发生。 阅读全文
posted @ 2018-01-22 12:53 阿子 阅读(12191) 评论(4) 推荐(21) 编辑
摘要: 你是否曾经有过这种感觉:即使代码没有改变,Visual Studio也总是在重新生成项目? 阅读全文
posted @ 2018-01-16 12:42 阿子 阅读(4620) 评论(4) 推荐(2) 编辑
摘要: 创建响应式WinForm应用程序并不那么简单。 响应式布局,我们在此指的是在不同屏幕分辨率下的可用性。 对于WinForm应用程序,我们需要明确地根据分辨率来调整控件的大小和重新定位。 虽然在使用WPF时有相关的实践应用,通过使用控件的docking和anchoring,或使用panels等方法,但本文提供了一种将响应式应用于WinForm应用程序的不同方法。 阅读全文
posted @ 2018-01-12 16:12 阿子 阅读(4636) 评论(5) 推荐(12) 编辑
摘要: 网站之前运行一直很正常,但有一次用户在导入格式为xls的excel文件,发生了错误,跟踪错误后抛出如下的异常: 错误提示: 未处理System.Data.OleDb.OleDbException HResult=-2147467259 Message=外部数据库驱动程序 (1) 中的意外错误。 原因 阅读全文
posted @ 2018-01-02 10:50 阿子 阅读(4232) 评论(0) 推荐(0) 编辑
摘要: 最近在获取数据时,发现程序读取的字段中含有\r\n字符,检查数据库表中的数据,发现是varchar字符串中包含了换行符。导入数据导致了这一情况出现。 回车换行 不同系统的行结尾符号并不同,如下: linux/unix下的行结尾符号是\n windows中的行结尾符号是\r\n Mac系统下的行结尾符 阅读全文
posted @ 2017-12-22 14:50 阿子 阅读(12788) 评论(0) 推荐(0) 编辑
摘要: 阿子原创,转载请注明出处。 在使用jQuery Mobile Slider时,发现在页面上下拖动时,很容易不小心触发Slider的点击事件,从而造成误操作。为此需要禁用Slider的点击事件。 官方API并没有提供禁用点击事件的事件的方法,因此要实现这一功能只能另辟蹊径。 留意到点击Slider时都 阅读全文
posted @ 2017-12-07 16:26 阿子 阅读(734) 评论(1) 推荐(0) 编辑