随笔分类 -  c#

摘要:目录 unity3d支持typescript开发(一) unity3d支持typescript开发(二) unity3d支持typescript开发(三) unity3d支持typescript开发(四) unity3d支持typescript开发(五) unity3d支持typescript开发( 阅读全文
posted @ 2020-12-21 10:59 ahl5esoft 阅读(4522) 评论(0) 推荐(0) 编辑
摘要:前言 对于数据层的所有操作而言,查询是最常用的,之前的文章中只开有Find的查询接口,接口如下: 由于只开放了一个Find接口,因此在业务开发过程当中,会出现如下缺点: 1、业务靠多个表数据组合展示的时候,需要业务开发人员多次使用Find方法查找不同的表来组合数据,伪代码如下: 2、一些相似的业务需 阅读全文
posted @ 2016-01-23 09:13 ahl5esoft 阅读(1108) 评论(5) 推荐(1) 编辑
摘要:前言 原本上一篇是打算写分离数据层的,但是在思考的过程当中发现分离数据层的时候,有一些操作是要依赖分布式锁的,因此先写了分布式锁。 对于有些项目的数据层提供的是业务接口的(返回业务所需的数据),那么当数据层压力逐渐增大的时候,如需要使用缓存的时候,就需要开发人员去修改相应的数据接口使其使用缓存,缓存 阅读全文
posted @ 2016-01-16 10:34 ahl5esoft 阅读(1599) 评论(1) 推荐(7) 编辑
摘要:前言 项目初期的时候,一般会发布到一台主机上,当达到负载极限时,要想提升其性能,要么提升硬件,要么多台主机,然而成本上的花销,后者比前者便宜太多了,虽然便宜,但是却更加复杂。 大多数编程语言提供的各种锁只会对同一项目的同一主机的代码产生作用,当同一项目发布在多台主机的时候,这些主机中的项目要形成一个 阅读全文
posted @ 2016-01-08 09:08 ahl5esoft 阅读(1148) 评论(3) 推荐(2) 编辑
摘要:前言 数据验证主要分成2个部分,一个是前端js对用户输入的数据进行检查,另一个是后端收到请求时对请求数据进行验证。有些web项目只在前端验证用户的输入数据,但是对于请求到后端的数据却没有进行处理,这会遗留下严重的系统漏洞,又或者开发人员分别在前后端编写验证代码,当验证规则需要调整的时候,就需要一起维 阅读全文
posted @ 2016-01-01 09:54 ahl5esoft 阅读(933) 评论(0) 推荐(0) 编辑
摘要:前言 搭建一个web项目不可能一蹴而就,会先从最基础的开始,不考虑数据库的支持,不考虑任何业务逻辑,使其以最简单的方式运行起来,然后慢慢的填充各个部分,使其从一个单机项目发展到集群分布式的大型项目,而其中最基础的部分便是路由了。 之前已经写过一篇关于web form支持mvc的文章了,该文章为:《w 阅读全文
posted @ 2015-12-28 12:39 ahl5esoft 阅读(1310) 评论(0) 推荐(2) 编辑
摘要:回顾 上一篇分享的是基于SWFUpload的angular组件,由于项目初期工作繁忙,一直没有时间做分享。 这次打算分享的是从简单三层到分布式的web项目演变,虽然这类型的文章也不少,但是大多数都只是提供架构结构图,并作少量的解释,至于代码实现方面也是寥寥无几,如果想要从中学到一些技巧还是有些难度的 阅读全文
posted @ 2015-12-22 10:59 ahl5esoft 阅读(400) 评论(1) 推荐(0) 编辑
摘要:回顾 上一篇对模式进行了介绍,并基于ADO.NET进行了实现,虽然现在ORM框架越来越流行,但是很多中小型的公司仍然是使用ADO.NET来进行数据库操作的,随着项目的需求不断增加,业务不断变化,ADO.NET的实现方式,会使原先简单的单表操作变得尤为复杂,特别是数据库表发生改变的情况下,无法像OR... 阅读全文
posted @ 2014-10-27 11:29 ahl5esoft 阅读(2945) 评论(5) 推荐(4) 编辑
摘要:回顾 上两篇文章主要讲解了我对于数据层的Unit Of Work(工作单元模式)的理解,其中包括了CUD的操作,那么今天就来谈谈R吧,文章包括以下几点:什么是Query Object基于SQL的实现什么是Query Object Query Object从语义就能看出它的作用,就是将查询封装成对... 阅读全文
posted @ 2014-10-17 15:40 ahl5esoft 阅读(7250) 评论(2) 推荐(1) 编辑
摘要:回顾 上一篇我们根据工作单元的原理基于ADO.NET进行了简单的实现,但是当项目需求发生变化的时候,比如需要引入ORM框架又要兼容当前ADO.NET实现的方式时,先前的实现就无法满足这个需求了。 话就不多说了,我们就跟据当前的需求变化来重构工作单元吧。重构UnitOfWork 首先我们看看原先... 阅读全文
posted @ 2014-10-07 14:58 ahl5esoft 阅读(2459) 评论(2) 推荐(3) 编辑
摘要:简介 最近忙着新项目的架构,已经有一段时间没有更新博客了,一直考虑着要写些什么,直到有一天跟朋友谈起他们公司开发数据层遇到的一些问题时,我想应该分享一些项目中使用的数据访问模式。 虽然最近一直都在使用Go语言开发数据服务器,但是本篇文章用到的语言仍然是C#,文章内提供的代码仅仅是分享如何使用工作... 阅读全文
posted @ 2014-10-03 10:51 ahl5esoft 阅读(4263) 评论(3) 推荐(6) 编辑
摘要:回顾 在上一章中使用了angular实现了ajax form和树形结构,经过以上两章对于angular的大致使用,对于angular也有了初步的认识,接下来的内容只会对angular的一些用法做简单的说明,如果有不清楚的可以自己查看angular API或者留言给我。 刚开始接触angular的... 阅读全文
posted @ 2014-03-13 05:43 ahl5esoft 阅读(6442) 评论(3) 推荐(2) 编辑
摘要:回顾 上一篇讲解了引入bootstrap构建一个简单的登录页面,如何让angularjs自动启动并绑定视图,操作过程当中如何使用ui-bootstrap,继而完成简单功能后如何引入seajs后如何使ng手动启动。我会尽量把自己在学习当中遇到的问题以及如何解决分享给各位,如果大家有什么疑问或者想要达... 阅读全文
posted @ 2014-03-04 12:21 ahl5esoft 阅读(8694) 评论(5) 推荐(2) 编辑
摘要:简介 Bootstrap是Twitter推出的一个用于前端开发的开源工具包,它由Twitter的设计师Mark Otto和Jacob Thornton合作开,是一个CSS/HTML框架。 AngularJS是Google 开源出来的一套 js 工具,为了克服HTML在构建应用上的不足而设计的,试... 阅读全文
posted @ 2014-02-27 11:07 ahl5esoft 阅读(12981) 评论(14) 推荐(10) 编辑
摘要:前言 在mvc大行其道的今天,仍然有不少公司的项目还是使用web form来实现的(其实mvc也是基于web form的),如果要在项目中引入mvc,不得不新建一个mvc的项目,然后将当前项目的功能一点点的转移过去,实在是很麻烦的一件事情,而且项目的改造周期也会加长,更别说一边改造一边添加新功能了,那么如果中间出现那么一点点的小差错,那么开发人员和测试人员估计想死的心都有了。 基于以上的情景,我们可以通过自定义HttpHandler来仿造mvc的模式,大概的实现思路如下:给页面提供一个PageBase的类来继承,中间类似于mvc中存放Model的容器通过类似/mvc/controller/.. 阅读全文
posted @ 2013-08-29 10:15 ahl5esoft 阅读(2279) 评论(5) 推荐(1) 编辑
摘要:回顾 《前端基于easyui的mvc扩展》、《前端基于easyui的mvc扩展(续)》、《基于easyui的webform扩展》这几篇讲解了如何在mvc以及web form内来实现前端使用easyui以及在后端使用基于ValidationAttribute进行验证(mvc本身就有支持),但是这都是以Framework4.0为基础的,那么当我们遇到3.5或者是更早以前的版本的时候,现在这套应用就需要重新重构了。 首先来梳理一下整个流程,大致的流程如下:通过调用需要展示的控件方法解析属性上的验证元数据生成符合easyui验证规则的html提交表单到后端对表单转化后的对象进行验证如果通过验证则可.. 阅读全文
posted @ 2013-08-22 07:13 ahl5esoft 阅读(2538) 评论(0) 推荐(5) 编辑
摘要:回顾 《前端基于easyui的mvc扩展》、《前端基于easyui的mvc扩展(续)》前两篇介绍了mvc内如何基于easyui进行扩展,在mvc里面有很多简化的语法可以让开发人员快速开发,既然我们已经对mvc进行了扩展,那么当然也不能漏掉了基础的web form了。首先我们来比较一下mvc和web form,如果前端不使用razor,都是用aspx页面的话,使用的语法是一样的,只是mvc内提供了HtmlHelper、Model、ViewData等来简化开发。 也就是说,如果我们使用如下的方式,其实在web form里面也是可行的,但是与mvc不同的是,web form内并没有像HtmlHe.. 阅读全文
posted @ 2013-08-20 05:56 ahl5esoft 阅读(3578) 评论(3) 推荐(2) 编辑
摘要:回顾及遗留问题 上一篇讲解了基于easyui的mvc扩展的基本实现,已经降低了在mvc内使用easyui的难度,但是仍然还有一些问题:当我们要给生成的控件设置一些其他的属性(如:id)或者想要设置easyui控件的一些其他的可配置项对于form表单提交时,也要让form表单基于easyui的验证机制来进行验证 这里要先提一下,上一篇的TagBuilder并不是微软自带的(位于System.Web.Mvc下),而是自己实现的,理由嘛,既然我们编码了mvc下对于easyui的扩展,那么同样也可以去扩展普通的web form(后面的文章会再进行扩展),TagBuilder的实现方式跟微软提供的很.. 阅读全文
posted @ 2013-08-19 07:15 ahl5esoft 阅读(3358) 评论(2) 推荐(3) 编辑
摘要:背景 由于MVC的前端是基于jquery.validate和jquery.validate.unobtrusive来实现的,但是当我们要使用其他的ui组件且组件本身就带有完整的验证功能的话,那么要让它们配合起来是有些麻烦的,比如:easyui。介绍 MVC主要提供了一下几个验证特性来支撑前端的验证: CustomValidationAttribute:指定一个用于验证目标成员的验证类型和验证方法。DataTypeAttribute:指定要与数据字段关联的附加类型的名称。RangeAttribute:用于验证数值字段的值是否在指定的范围之内。RegularExpressionAttribu... 阅读全文
posted @ 2013-08-17 00:13 ahl5esoft 阅读(4982) 评论(9) 推荐(7) 编辑
摘要:随着Linq的盛行,对于Linq和Lmabda表达式的使用也越来越多,Lambda表达式在.net framework 3.5中提出来,Lambda表达式是一个匿名方法,通常在LINQ中被用来创建委托,但是当我们利用Lmabda表达式来实现某些操作的时候,分解内部的表达式树结构就很重要了,例如我们要在一些方法调用当中直接使用 t => t.Name 的方式将属性Name获取出来,这样我们就不用自己去写字符串,且在属性发生改变的时候编译器可以帮助我们进行重构和检测。 当我们要实现以上方式的时候,就不再只是匿名委托了,而是要使用到Expression,它位于System.Linq.Expre 阅读全文
posted @ 2013-07-25 16:39 ahl5esoft 阅读(5896) 评论(6) 推荐(6) 编辑