Welcome 微信登录

首页 / 网页编程 / ASP.NET

解析ABP框架中的事务处理和工作单元

解析ABP框架中的事务处理和工作单元

通用连接和事务管理方法连接和事务管理是使用数据库的应用程序最重要的概念之一。当你开启一个数据库连接,什么时候开始事务,如何释放连接...诸如此类的。正如大家都知道的,.Net使用连接池(connection pooling)。因此,创建一个连接实际上是从连接池中取得一个连接,会这么做是因为创建新连接会有成本。如果没有任何连接存在于连接池中,一个新的连接对象会被创建并且添加到连接池中。当你释放连接,它实际上是将这个连接对象送回到连接池。这并不是实际意义上的释...
详解ABP框架中领域层的领域事件Domain events

详解ABP框架中领域层的领域事件Domain events

在C#中,一个类可以定义其专属的事件并且其它类可以注册该事件并监听,当事件被触发时可以获得事件通知。这对于对于桌面应用程序或独立的Windows Service来说非常有用。但是, 对于Web应用程序来说会有点问题,因为对象是根据请求(request)被创建并且它们的生命周期都很短暂。我们很难注册其它类别的事件。同样地,直接注册其它类别的事件也造成了类之间的耦合性。在应用系统中,领域事件被用于解耦并且重用(re-use)商业逻辑。事件总线事件总线为一个单体...
ASP.NET(C#) Web Api通过文件流下载文件的实例

ASP.NET(C#) Web Api通过文件流下载文件的实例

下载文件到本地是很多项目开发中需要实现的一个很简单的功能。说简单,是从具体的代码实现上来说的,.NET的文件下载方式有很多种,本示例给大家介绍的是ASP.NET Web Api方式返回HttpResponseMessage下载文件到本地。实现的方法很简单,其中就是读取服务器的指定路径文件流,将其做为返回的HttpResponseMessage的Content。直接贴出DownloadController控件器的代码:using System;using S...
详解ABP框架的参数有效性验证和权限验证

详解ABP框架的参数有效性验证和权限验证

参数有效性验证应用程序的输入数据首先应该被检验是否有效。输入的数据能被用户或其他应用程序提交。在Web应用中,通常进行2次数据有效性检验:包括客户端检验和服务端检验。客户端的检验主要是使用户有一个好的用户体验。 首先最好是在客户端检验其表单输入的有效性并且展示给客户端的那些字段输入是无效的。但是,服务器端的校验是更关键和不可缺失的(不要只做客户端检验而不做服务器端检验)。服务器端的检验通常是被应用服务(层)执行,应用服务(层)中的方法首先检验数据的有效性,...
ASP.NET Web Api 2实现多文件打包并下载文件的实例

ASP.NET Web Api 2实现多文件打包并下载文件的实例

最近由于工作和个人事务,站点也好久没更新了,但这并不影响我对.NET的热情。站点的更新工作还是得想办法抽时间来完成的。今天利用中午的时间来写一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:《ASP.NET(C#) Web Api通过文件流下载文件的实例》本文以这篇文章的基础,提供了ByteArrayContent的下载以及在下载多个文件时实现在服务器对多文件进行压缩打包后下载的功能。关于本文中实现的在服务器端用.NET压...
解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介

解读ASP.NET 5 & MVC6系列教程(1):ASP.NET 5简介

ASP.NET 5简介ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦。为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东西。 在.NET Core里一切都是可配置的,包括Session、MVC等功能,而一切可配置的功能都是可以在Nuget上进行下载。目前ASP.NET 5依旧兼容老的.NET Framwrok,但要在进行跨平台的部署,还是只能使用新改版的....
解读ASP.NET 5 & MVC6系列教程(2):初识项目

解读ASP.NET 5 & MVC6系列教程(2):初识项目

初识项目打开VS2015,创建Web项目,选择ASP.NET Web Application,在弹出的窗口里选择ASP.NET 5 Website模板创建项目,图示如下:我们可以看到,此时Web FormsMVCWeb API复选框都选择不了,原有是因为在ASP.NET 5中做了大量更改,移除了Web Forms功能,将MVC、Web API、Web Pages这些功能合在了一起,所以自然就不需要这些复选框了。另外由于是CTP版,所以目前还没有提供单元测试...
解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署

解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署

本章我们将讲解ASP.NET5项目发布部署相关的内容,示例项目以我们前一章创建的BookStore项目为例。发布前的设置由于新版ASP.NET5支持多版本DNX运行环境的发布和部署,所以在部署之前,我们需要设定部署的目标DNX(即之前的KRE)。步骤:右键BookStore项目->属性->Application选项卡,选择DNX的版本,本例中,选择dnx-coreclr-win-x64.1.0.0-beta4。在project.json文件的c...
Mac中体验ASP.NET 5 beta2的K gen代码生成

Mac中体验ASP.NET 5 beta2的K gen代码生成

ASP.NET 5 beta2中增加了一个新特性,可以通过K命令生成MVC的代码,比如:k gen controller -name HomeController。如果你用的是Visual Studio,自然对这个功能不以为然,因为Visual Studio帮你干了。如果你用的是Mac,没有Visual Studio,也没有K Studio,不想自虐手写本可以通过模板生成的MVC代码,这个特性就值得关注了。由于对Mac下写ASP.NET代码垂涎已久,一发现...
解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置

解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置

asp.net 5是下一代的asp.net,该版本进行了全部重写以适用于跨平台,新新版本中,微软引入了如下工具与命令:DNVM、DNX、DNU。DNVM(.NET Version Manager):由于要实现跨平台的目录,微软提供了DNVM功能,DNVM是ASP.NET最底层的内容,他是一组Powershell脚本,用于启动指定版本的ASP.NET运行环境,并且可以在同一台机器的同一时间点上通过使用Nuget工具来管理各种版本的ASP.NET运行环境(DN...
解读ASP.NET 5 & MVC6系列教程(5):Configuration配置信息管理

解读ASP.NET 5 & MVC6系列教程(5):Configuration配置信息管理

在前面的章节中,我们知道新版的MVC程序抛弃了原来的web.config文件机制,取而代替的是config.json,今天我们就来深入研究一下配置文件的相关内容。基本用法新版的配置信息机制在Microsoft.Framework.ConfigurationModel命名空间下进行了重写,重写以后不仅支持XML格式,还支持json、ini、环境变量等。在模板示例程序中Startup类的构造函数内如,有如下语句:// Setup configuration s...
ABP框架中的日志功能完全解析

ABP框架中的日志功能完全解析

ASP.NET Boilerplate使用Castle Windsor"s logging facility日志记录工具,并且可以使用不同的日志类库,比如:Log4Net, NLog, Serilog... 等等。对于所有的日志类库,Castle提供了一个通用的接口来实现,我们可以很方便的处理各种特殊的日志库,而且当业务需要的时候,很容易替换日志组件。译者注释:Castle是什么:Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容...
解读ASP.NET 5 & MVC6系列教程(6):Middleware详解

解读ASP.NET 5 & MVC6系列教程(6):Middleware详解

在第1章项目结构分析中,我们提到Startup.cs作为整个程序的入口点,等同于传统的Global.asax文件,即:用于初始化系统级的信息(例如,MVC中的路由配置)。本章我们就来一一分析,在这里如何初始化这些系统级的信息。新旧版本之间的Pipeline区别ASP.NET 5和之前版本的最大区别是对HTTP Pipeline的全新重写,在之前的版本中,请求过滤器的通常是以HttpModule为模块组件,这些组件针对HttpApplication里定义的各...
微信公众平台开发之获得ACCESSTOKEN .Net代码解析

微信公众平台开发之获得ACCESSTOKEN .Net代码解析

如何认证成为开发者?请点击第一篇文章进行查看,成为了开发者之后微信平台会给您appid和secret,在订阅号中是没有的,所以因该申请一下服务号,有了ACCESSTOKEN才能做添加菜单,上传/下载图片等功能。private string GetToken() { // 也可以这样写: //return GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_creden...
解读ASP.NET 5 & MVC6系列教程(7):依赖注入

解读ASP.NET 5 & MVC6系列教程(7):依赖注入

在前面的章节(Middleware章节)中,我们提到了依赖注入功能(Dependency Injection),ASP.NET 5正式将依赖注入进行了全功能的实现,以便开发人员能够开发更具弹性的组件程序,MVC6也利用了依赖注入的功能重新对Controller和View的服务注入功能进行了重新设计;未来的依赖注入功能还可能提供更多的API,所有如果还没有开始接触依赖注入的话,就得好好学一下了。在之前版本的依赖注入功能里,依赖注入的入口有MVC中的ICont...
解读ASP.NET 5 & MVC6系列教程(9):日志框架

解读ASP.NET 5 & MVC6系列教程(9):日志框架

框架介绍在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net、NLog、CommonLogging使用起来多多少少都有些费劲,和java的SLF4J根本无法相比。但在新版的ASP.NET5中,可谓是牛气冲天,微软提供的Microsoft.Framework.Logging框架集可谓就是.NET版的SLF4J,提供相应的接口,其它第三方组件可以根据接口实现自己的实现。ILoggerFactory接口ILoggerFacto...
解读ASP.NET 5 & MVC6系列教程(10):Controller与Action

解读ASP.NET 5 & MVC6系列教程(10):Controller与Action

我们知道在MVC5和之前的版本,两个框架的生命周期是不一样的,在新版MVC6中,MVC Controller/Web API Controller已经合二为一了,本章我们主要讲解Controller和Action的定义与使用,以及在MVC框架中,如何根据路由查询相应的Controller和Action。Controller&Action的定义和使用在新版MVC6框架中,依然提供了一个Controller基类,在这里除了依然提供了Url、RouteData、...
解读ASP.NET 5 & MVC6系列教程(11):Routing路由

解读ASP.NET 5 & MVC6系列教程(11):Routing路由

新版Routing功能介绍在ASP.NET 5和MVC6中,Routing功能被全部重写了,虽然用法有些类似,但和之前的Routing原理完全不太一样了,该Routing框架不仅可以支持MVC和Web API,还支持一般的ASP.NET5程序。新版的改变有如下几个部分。首先,Routing系统是基于ASP.NET 5的,是一个独立于MVC的路由框架,而不是基于MVC的。MVC只是在上面扩展了一个快捷方式而已。其次,在ASP.NET 5中,MVC和Web A...
<< 201 202 203 204 205 206 207 208 209 210 >>