- 博客(97)
- 资源 (28)
- 收藏
- 关注
转载 OAuth2.0是什么?
OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。2012年10月,OAuth 2.0协议正式发布为RFC 6749。
2017-12-29 16:02:23 1283
转载 Unit Of Work--工作单元(二)
回顾 上一篇我们根据工作单元的原理基于ADO.NET进行了简单的实现,但是当项目需求发生变化的时候,比如需要引入ORM框架又要兼容当前ADO.NET实现的方式时,先前的实现就无法满足这个需求了。 话就不多说了,我们就跟据当前的需求变化来重构工作单元吧。重构UnitOfWork 首先我们看看原先实现的工作单元提取出来的接口,代码如下:public interface I
2017-12-29 12:12:49 2163 2
转载 Unit Of Work--工作单元(一)
简介最近忙着新项目的架构,已经有一段时间没有更新博客了,一直考虑着要写些什么,直到有一天跟朋友谈起他们公司开发数据层遇到的一些问题时,我想应该分享一些项目中使用的数据访问模式。 虽然最近一直都在使用Go语言开发数据服务器,但是本篇文章用到的语言仍然是C#,文章内提供的代码仅仅是分享如何使用工作单元,至于如何将这个模式引入到项目中去,就需要各位自己去实现了,毕竟每个项目都是不一样的,需要根
2017-12-29 00:37:28 5501
转载 聚集索引和非聚集索引
聚集索引一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以
2017-12-28 21:48:40 327
转载 Transact-SQL参考之sysindexes
数据库中的每个索引和表在表中各占一行。该表存储在每个数据库中。 列名 数据类型 描述 id int 表 ID(如果 indid = 0 或 255)。否则为索引所属表的 ID。 status int 内部系统状态信息。 first binary(6) 指向第一页或根页的指针。 indid smallint 索引 ID: 1 =
2017-12-28 21:36:20 1047
转载 Castle Windsor 文档
Castle Windsor 文档Castle Windsor是最好的,可用于.NET的成熟的Inversion of Control容器。从NuGet获取官方版本:PM> Install-Package Castle.Windsor 或者在构建之前获得预发布软件包显示我的代码Windsor的使用非常简单。下面的代码不只是hello world - 这是多少大现实生活应用程序使用
2017-12-20 22:21:42 1620
转载 GetInvocationList 方法
Delegate.GetInvocationList 方法 ()返回委托的调用列表。下面的示例将三种方法分配给委托。 然后,它调用GetInvocationList方法以获取分配给委托,以按逆序执行委托并执行其名称不包括子字符串的方法的方法总数”文件”。using System;using System.Collections.Generic;using System.IO;using Sys
2017-12-20 15:50:01 1994
转载 ECharts官方教程(十四)【使用 Canvas 或者 SVG 渲染】
使用 Canvas 或者 SVG 渲染浏览器端图表库大多会选择 SVG 或者 Canvas 进行渲染。对于绘制图表来说,这两种技术往往是可替换的,效果相近。但是在一些场景中,他们的表现和能力又有一定差异。于是,对它们的选择取舍,就成为了一个一直存在的不易有标准答案的话题。ECharts 从初始一直使用 Canvas 绘制图表(除了对 IE8- 使用 VML)。而 ECharts v3.8 发布了 S
2017-12-19 23:10:37 21928 1
转载 ECharts官方教程(十三)【富文本标签】
富文本标签在许多地方(如图、轴的标签等)都可以使用富文本标签。例如:其他一些例子: Map Labels, Pie Labels, Gauge.原先 echarts 中的文本标签,只能对整块统一进行样式设置,并且仅仅支持颜色和字体的设置,从而导致不易于制作表达能力更强的文字描述信息。echarts v3.7 以后,支持了富文本标签,能够:能够定制文本块整体的样式(如背景、边框、阴影等)、位置、旋转等
2017-12-19 23:02:58 10531
转载 ECharts官方教程(十二)【自定义系列】
自定义系列自定义系列(custom series),是一种系列的类型。它把绘制图形元素这一步留给开发者去做,从而开发者能在坐标系中自由绘制出自己需要的图表。echarts 为什么会要支持 自定义系列 呢?echarts 内置支持的图表类型是最常见的图表类型,但是图表类型是难于穷举的,有很多小众的需求 echarts 并不能内置的支持。那么就需要提供一种方式来让开发者自己扩展。另一方面,所提供的扩展方
2017-12-19 22:38:44 21018
转载 ECharts官方教程(十一)【小例子:实现日历图】
小例子:实现日历图在ECharts中,我们新增了日历坐标系,如何快速写出一个日历图呢?通过以下三个步骤即可实现上述效果:第一步:引入js文件下载的最新完整版本echarts.min.js即可,无需再单独引入其他文件哦<script src="echarts.min.js"></script><script> // ...</script>第二步:指定DOM元素作为图表容器和ECharts
2017-12-19 22:19:18 7805
转载 ECharts官方教程(十)【小例子:自己实现拖拽】
小例子:自己实现拖拽介绍一个实现拖拽的小例子。这个例子是在原生 echarts 基础上做了些小小扩展,带有一定的交互性。通过这个例子,我们可以了解到,如何使用 echarts 提供的 API 实现定制化的富有交互的功能。这个例子主要做到了这样一件事,用鼠标可以拖拽曲线的点,从而改变曲线的形状。例子很简单,但是有了这个基础我们还可以做更多的事情,比如在图中可视化得编辑。所以我们从这个简单的例子开始。e
2017-12-19 10:19:11 10032 3
转载 ECharts官方教程(九)【ECharts中的事件和行为】
ECharts 中的事件和行为在 ECharts 的图表中用户的操作将会触发相应的事件。开发者可以监听这些事件,然后通过回调函数做相应的处理,比如跳转到一个地址,或者弹出对话框,或者做数据下钻等等。在 ECharts 3 中绑定事件跟 2 一样都是通过 on 方法,但是事件名称比 2 更加简单了。ECharts 3 中,事件名称对应 DOM 事件名称,均为小写的字符串,如下是一个绑定点击操作的示例。
2017-12-19 10:11:04 7995
转载 ECharts官方教程(八)【数据的视觉映射】
数据的视觉映射数据可视化是 数据 到 视觉元素 的映射过程(这个过程也可称为视觉编码,视觉元素也可称为视觉通道)。ECharts 的每种图表本身就内置了这种映射过程,比如折线图把数据映射到『线』,柱状图把数据映射到『长度』。一些更复杂的图表,如 graph、事件河流图、treemap 也都会做出他们内置的映射。此外,ECharts 还提供了 visualMap 组件 来提供通用的视觉映射。visua
2017-12-19 09:52:04 4567
转载 ECharts官方教程(六)【在图表中加入交互组件】
在图表中加入交互组件除了图表外 ECharts 中,提供了很多交互组件。例如:图例组件 legend、标题组件 title、视觉映射组件 visualMap、数据区域缩放组件 dataZoom、时间线组件 timeline下面以 数据区域缩放组件 dataZoom 为例,介绍如何加入这种组件。数据区域缩放组件(dataZoom)介绍『概览数据整体,按需关注数据细节』是数据可视化的基本交互需求。dat
2017-12-18 23:06:03 2347
转载 ECharts官方教程(五)【异步数据加载和更新】
异步加载入门示例中的数据是在初始化后setOption中直接填入的,但是很多时候可能数据需要异步加载后再填入。ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。var myChart = echarts.init(document.getElementById('main'));$.ge
2017-12-18 22:40:42 2885
转载 ECharts官方教程(四)【个性化图表的样式】
ECharts 提供了丰富的自定义配置选项,并且能够从全局、系列、数据三个层级去设置数据图形的样式。下面我们来看如何使用 ECharts 实现下面这个南丁格尔图:绘制南丁格尔图上一篇中讲了如何绘制一个简单的柱状图,这次要画的是饼图,饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目。因为不在直角坐标系上,所以也不需要xAxis,yAxi
2017-12-18 15:56:21 6625
转载 ECharts官方教程(三)【在webpack中使用 ECharts】
在 webpack 中使用 EChartsWebpack 是目前比较流行的模块打包工具,你可以在使用 webpack 的项目中轻松的引入和打包 ECharts,这里假设你已经对 webpack 具有一定的了解并且在自己的项目中使用。npm 安装 ECharts在 3.1.1 版本之前 ECharts 在 npm 上的 package 是非官方维护的,从 3.1.1 开始由官方 EFE 维护 npm
2017-12-18 15:36:14 2555 1
转载 ECharts官方教程(二)【自定义构建 ECharts】
一般来说,可以直接从 echarts 下载页 中获取构建好的 echarts,也可以从 GitHub 中的 echarts/dist 文件夹中获取构建好的 echarts,这都可以直接在浏览器端项目中使用。这些构建好的 echarts 提供了下面这几种定制:完全版:echarts/dist/echarts.js,体积最大,包含所有的图表和组件,所包含内容参见:echarts/echarts.all
2017-12-18 11:54:48 5022 1
转载 ECharts官方教程(一)【5分钟上手ECharts】
获取 ECharts你可以通过以下几种方式获取 ECharts。从官网下载界面选择你需要的版本下载,根据开发者功能和体积上的需求,我们提供了不同打包的下载,如果你在体积上没有要求,可以直接下载完整版本。开发环境建议下载源代码版本,包含了常见的错误提示和警告。在 ECharts 的 GitHub 上下载最新的 release 版本,解压出来的文件夹里的 dist 目录里可以找到最新版本的 echart
2017-12-17 21:09:01 8782 1
翻译 Autofac官方文档(二十四)【应用集成之Web Forms】
ASP.NET Web表单集成需要Autofac.Web NuGet包。Web表单集成为code-behind类提供了依赖注入集成。 它也增加了每个请求生命周期的支持。本页面介绍了ASP.NET经典的Web表单集成。 如果您正在使用ASP.NET Core,请参阅ASP.NET Core集成页面。 Quick Start Add Modules to Web.config Im
2017-12-17 10:32:35 1483
翻译 Autofac官方文档(二十三)【应用集成之Web API】
Web API 2集成需要Autofac.WebApi2 NuGet包。Web API集成需要Autofac.WebApi NuGet包。Web API集成为控制器,模型绑定器和操作过滤器提供了依赖注入集成。 它也增加了每个请求生命周期的支持。本页面介绍了ASP.NET经典的Web API集成。 如果您正在使用ASP.NET Core,请参阅ASP.NET Core集成页面。 Quick St
2017-12-16 23:33:12 3656
翻译 Autofac官方文档(二十二)【应用集成之MVC】
Autofac始终保持最新,以支持最新版本的ASP.NET MVC,所以文档也保持最新。 一般而言,各个版本的集成保持相当一致。MVC集成需要Autofac.Mvc5 NuGet包。MVC集成为控制器,模型绑定器,操作过滤器和视图提供了依赖注入集成。 它也增加了每个请求生命周期的支持。本页解释了ASP.NET经典MVC集成。 如果您正在使用ASP.NET Core,请参阅ASP.NET Core集成
2017-12-15 23:25:34 4101
翻译 Autofac官方文档(二十一)【应用集成之OWIN】
OWIN全称Open Web Interface for .NET(.NET的开放式Web接口),是一种更简单的模型,用于(在不将应用程序绑定到Web服务器的情况下)编写基于Web的应用程序。为此,使用“中间件”的概念来创建请求所经过的管道。由于OWIN处理应用程序管道(检测请求何时开始/结束等)的方式的差异,将Autofac集成到OWIN应用程序中与将其集成到更多“标准”ASP.NET应用程序的方
2017-12-15 10:39:12 1472
翻译 Autofac官方文档(二十)【应用集成】
ASP.NET OWIN Quick Start Dependency Injection in Middleware Controlling Middleware Order Example MVC Quick Start
2017-12-14 23:22:13 1001
翻译 Autofac官方文档(十九)【模块】
介绍IoC使用组件作为应用程序的基本构建块。提供对组件的构造函数参数和属性的访问通常被用作实现部署时配置的手段。这通常是一个可疑的做法,原因如下:构造函数可以改变:对构造函数签名或组件属性的更改可能会中断部署的App.config文件 - 这些问题在开发过程中可能会出现很晚。JSON/XML难以维护:大量组件的配置文件可能难以维护。“代码”开始在配置中显示:暴露类的属性和构造函数参数是对应用程
2017-12-14 23:21:07 2034
翻译 Autofac官方文档(十八)【JSON/XML 配置】
大多数IoC容器提供编程接口以及基于JSON/XML文件的配置支持,Autofac也不例外。Autofac鼓励通过ContainerBuilder类进行编程配置。使用编程接口是容器设计的核心。 如果在编译时无法选择或配置具体类,则建议使用JSON或XML。在深入研究JSON/XML配置之前,一定要阅读模块 - 这解释了如何处理比基本的JSON/XML组件注册所允许的更复杂的场景。 JSON/XML中
2017-12-14 22:45:32 3177
翻译 Autofac官方文档(十七)【配置】
JSON/XML Configuration Configuring With Microsoft Configuration (4.0+) Quick Start Default Assembly Components Modules Type Names
2017-12-14 16:45:29 1120
翻译 Autofac官方文档(十六)【在启动时运行代码】
Autofac提供了在构建容器时通知组件或自动激活组件的功能。有三种自动激活机制可用: - 可启动组件 - 自动激活组件 - 容器构建回调在所有情况下,当容器建成时,组件将被激活。可启动的组件一个可启动的组件是容器在最初构建时被容器激活的组件,并且有一个特定的方法被调用来引导组件上的一个动作。关键是要实现Autofac.IStartable接口。在构建容器时,组件将被激活,并调用IStartable
2017-12-14 16:44:30 1125
翻译 Autofac官方文档(十五)【生命周期事件】
Autofac公开了在实例生命周期的不同阶段可能被挂钩的事件。 这些在组件注册期间被订阅(或者通过附加到IComponentRegistration接口。) OnActivating OnActivated OnReleaseOnActivatingOnActivating事件在使用组件之前引发。 在这里你可以:将实例切换为另一个或将其包装在代理中做属性注入或方法注入执行
2017-12-14 16:42:33 765
翻译 Autofac官方文档(十四)【销毁】
在工作单元内获得的资源(数据库连接,事务,认证会话,文件句柄等)应在工作完成时销毁。 .NET提供了IDisposable接口来帮助销毁这个更确定的概念。一些IoC容器需要通过像ReleaseInstance()这样的方法明确地告诉销毁特定的实例。 这使得很难保证使用正确的销毁语义。从不可销毁部件切换到可销毁部件可能意味着修改客户端代码。客户端代码在使用共享实例时可能会忽略销毁,但切换到非共享实
2017-12-14 16:27:14 918
翻译 Autofac官方文档(十三)【捕获依赖】
捕获依赖当一个要生存很短时间的组件被一个长期存在的组件持有时,就会发生“captive dependency”。 Mark Seemann的这篇博客文章在解释这个概念方面做得很好。Autofac不一定会阻止你创建捕获依赖关系。由于捕获的设置方式,您可能会发现解决方案异常的时候,但您并不总是如此。停止捕获依赖是开发者的责任。一般规则避免捕获依赖的一般规则:消费组件的生命周期应该小于或等于所消费的服务的
2017-12-14 11:13:23 728
转载 C# Directory.GetFiles()获取多个类型格式的文件
第一种方式System.IO.Directory.GetFiles()获取多个类型格式的文件System.IO.Directory.GetFiles("c:\","(*.exe|*.txt)"); 第二种方式var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories).Where(s => s.End
2017-12-13 21:01:43 24355 2
转载 分布式锁的三种实现方式
在进行大型网站技术架构设计以及业务实现的过程中,多少都会遇到需要使用分布式锁的情况。那么问题也就接踵而至。分布式锁zk和memcached以及redis三者都能实现,同样是分布式锁,三者的区别何在?各自适用什么场景?Zookeeper1、实现原理:基于zookeeper瞬时有序节点实现的分布式锁,其主要逻辑如下(该图来自于IBM网站)。大致思想即为:每个客户端对某个功能加锁时,在zookeeper
2017-12-13 17:18:32 2217
转载 基于zookeeper实现分布式锁
一、分布式锁介绍 分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍 在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图 三、分布式锁获取思路1.获取分布式锁的总体思路在获取分布式锁的时候在locker节点下创建临时顺序节点,释放锁的时候删除该临时节点。客户端调用createNode方法在locker
2017-12-13 16:53:39 1040
转载 基于zookeeper简单实现分布式锁
这里利用zookeeper的EPHEMERAL_SEQUENTIAL类型节点及watcher机制,来简单实现分布式锁。 主要思想: 1、开启10个线程,在disLocks节点下各自创建名为sub的EPHEMERAL_SEQUENTIAL节点; 2、获取disLocks节点下所有子节点,排序,如果自己的节点编号最小,则获取锁; 3、否则watch排在自己前面的节点,监听到其删除后,进入第2步(
2017-12-13 16:28:38 538
转载 ZookeeperClient(基于ZooKeeperNetEx再次封装)
概述ZooKeeper本质上是一个分布式的小文件存储系统。原本是Apache Hadoop的一个组件,现在被拆分为一个Hadoop的独立子项目。Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控
2017-12-13 16:06:20 2288
翻译 Autofac官方文档(十二)【实例范围】
实例范围决定了如何在同一服务的请求之间共享实例。 请注意,您应该熟悉生命周期范围的概念,以更好地理解这里发生的事情。当对一个服务进行请求时,Autofac可以返回一个实例(单个实例作用域),一个新实例(每个依赖作用域)或单个实例带某种上下文。 一个线程或一个HTTP请求(每个生命周期范围)。这适用于从显式Resolve()调用返回的实例以及容器内部创建的实例,以满足另一个组件的依赖关系。 注意
2017-12-13 13:10:46 1012
转载 Java随机数生产算法
java提供了Math.random()函数,返回一个double类型的随机数,也有util包里的Random类,可以生成double,int,float,long,bytes等随机数。但有些业务需求,往往需要对这些方法做一下封装。比如用固定因子生成32位的3DES算法key值。下面提供一些封装的方法:package test;import java.util.Random;public class
2017-12-12 22:38:55 745
Quill.js TextEditor.zip
2020-11-14
fund_sharp.zip
2020-09-17
webplayer.zip
2020-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人