聚合文章列表
17 浏览

用于 C# 的 SQL 基本语法总结

「博客搬家」原地址:CSDN原发表时间:2016-09-25本文目前用于VisualStudio2015平台的SQLite3,其他用法以后总结。1.使用Nuget添加SQLite库在VisualStudio2015中,选择:工具->NuGet包管理器->管理解决方案的NuGet程序包在此界面下检索「SQLite」,根据需要选择安装其中一个SQLite库,最好是红框部分内容中,二选一。之后在界面的右侧,选择需要安装到的项目,之后进行安装操作即可。2.常用策略2.1对异常进行捕获try{//将对数据库进行操作的语句放置在try中}catch(Exceptionex){//对异常进行处理}2.2事务及SQLite代码框架//使用以下语句配合具体的SQL操作语句即可//注:不主动控制事务时,每次执行SQL指令即会重复开启新的事务,//会在SQL操作方面花费大量的时间。所以在进行大量插入、修改操作//时,主动开

c# 2018-01-16 发布
12 浏览

如何使用 Angular 實現 Observer Pattern ?

ObserverPattern是OOP中著名的DesignPattern,尤其在應付一對多的場景特別有效,在本文中,我們將以Angular與TypeScript實現ObserverPattern。VersionNode.js8.9.3AngularCLI1.6.2Angular5.2UserStory畫面上有兩個數字鐘,每秒更新一次,不斷的顯示目前的時間。Task程式碼希望分成兩部分,一個部分是每秒送出目前時間,另一個部分負責顯示時間。也就是一個class負責產生資料;另一class負責顯示資料ArchitectureClockService負責產生資料,也就是每秒送出目前時間DigitalClockComponent負責顯示資料,也就是顯示目前時間DigitalClockComponent必須能向ClockService註冊為觀察者,根據DigitalClockComponent的需求,訂出SubjectIn

JavaScript 2018-01-17 发布
20 浏览

WPF 下的自定义控件以及 Grid 中控件的自适应

「博客搬家」原地址:CSDN原发表时间:2016-10-12本文主要总结使用C#及.NET在WPF框架下,自定义控件的绘制以及窗体中控件的自适应。1.WPF下的自定义控件WPF下,为快速地为应用定制一个零部件,需要的是UserControl,为了让你打造的控件更标准化,更灵活以及更具有普遍意义,需要用到的CustomControl。要在WPF中自定义一个控件,使用UserControl与CustomControl都是不错的选择,他们的区别在于:UserControl,其更像WinForm中自定义控件的开发风格,在开发上更简单快速,几乎可以简单地理解为:利用设计器来将多个已有控件作为子元素来拼凑成一个UserControl并修改其外观,然后后台逻辑代码直接访问这些子元素。其最大的弊端在于:其对模板样式等支持度不好,其重复使用的范围有限。CustomControl,其开发出来的控件才真正具有WPF风格,其对模板样式有着很好的支持,这是因为打造CustomContr

c# 2018-01-16 发布
AD 友情赞助
26 浏览

基于 WPF 的酷炫 GUI 窗口的简易实现

「博客搬家」原地址:CSDN原发表时间:2016-11-07本文要实现基于WPF的酷炫GUI窗口,力图实现一个真正可用且实用的GUI窗口。本文要实现的效果如图所示:效果总结如下:无标题栏,或自定义标题栏窗口的半透明效果窗口可自由拖拽Enter以及Esc等默认按键右键菜单1.窗口的效果实现1.1窗口外观相关首先新建一个窗口,更改外观,对窗口的属性进行如下设置:外观设置中,「AllowsTransparency」复选框勾选上,该窗口就可以透明化,同时「WindowStyle」会自动变更为「None」,窗口的默认标题栏会消失,此时可以选择自定义标题栏。窗口允许透明化后,在「Background」、「BorderBrush」等选项中,对窗体的背景及边框颜色进行设置。可以设置为纯色或各种渐变形态以及各种透明形态。使用「BorderThickness」项设置窗体的边框宽度。「Opacity」设置整个界面的不透明度设置界面如下图所示:1.2窗口大小位置相关更改窗口的位置,

c# 2018-01-16 发布
21 浏览

WPF:(5-1)程序样例VideoViewerDemo视频播放器示例

源项目地址:https://github.com/Microsoft/...以下是把样例转换为简要说明,同时给出实际运行效果及关键代码剖析:VideoViewerDemo视频播放器示例功能有:1左侧播放列表鼠标的进入退出触发颜色变换、同时在工具提示里播放视频。2选择列表项变成蓝色,同时播放器播放选中视频视频集类publicclassMyVideos:ObservableCollection<MyVideo>存储指定路径目录,每次访问属性时,如目录存在且有文件,就进行更新把文件添加到播放列表中publicstringDirectory{set{//Don'tsetpathifdirectoryisinvalidif(!System.IO.Directory.Exists(value)){MessageBox.Show("NoSuchDirectory");}

c# 2018-01-17 发布
30 浏览

ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)

前言本文主要是详解一下在ASP.NETCore中,自带的IOC容器相关的使用方式和注入类型的生命周期.这里就不详细的赘述IOC是什么以及DI是什么了..emm..不懂的可以自行百度.目录ASP.NETCore中使用IOC三部曲(一.使用ASP.NETCore自带的IOC容器)ASP.NETCore中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)ASP.NETCore中使用IOC三部曲(三.采用替换后的Autofac来实现AOP拦截)正文上一篇我们说过ASP.NETCore中自带的IOC容器是属于轻量级的,功能并不是很多,只是提供了基础功能而已..所以今天我们主要讲讲如何采用Autofac来替换IOC容器,并实现属性注入注意:本文需要读者理解DIIOC并使用过相关框架.1.将默认的IOC容器替换为Autofac首先,我们需要从nuget引用相关的包.AutofacAutofac.Extensions.DependencyInjection(这个包扩展了一些

.Net 2018-01-17 发布
AD 友情赞助
13 浏览

.net 平台下, Socket通讯协议中间件设计思路(附源码)

本人开发socket通讯多年了,一直干着“重复发明轮子”工作,这种工作方式效率低下,容易出错!重复的事情做多了,也会出现“灵光“!何不自己设计一套中间件,在此基础上,再设计应用层协议。就可以避免“重复发明轮子”。源码下载地址:http://download.csdn.net/download/qq_29939347/10209713先看下图,协议栈:本文讲述的就是绿色部分如何设计。这层协议设计原则有:要简单有两层意思:一是协议简单;再者使用起来简单。并且可以满足大部分应用场景。可以跨平台.netcore本身可以跨平台。如果对方使用c、c++开发,用其他语言实现该协议也不难。隐藏底层细节应用层,处理对象都是.net类,而不是字节流。可以大数据传输无论传输多大的数据,不必考虑分包合包处理。设计思路总的原则是,传输的是.net平台下的类,而不是字节流。直接处理.net类要比字节流要方便,安全很多。.net平台下类型很多,我提取了最常用的几种,达到即简单,又满足大部分应用场景的要求。可以传输的类

.Net 2018-01-17 发布
22 浏览

.net的retrofit--WebApiClient库深入篇

前言本篇文章的内容是对上一篇.net的retrofit--WebApiClient库的深层次补充,你可能需要先阅读上一篇才能理解此篇文章。本文将详细地讲解WebApiClient的原理,结合实际项目中可能遇到的问题进行使用说明。库简介WebApiClient是开源在github上的一个httpClient客户端库,内部基于HttpClient开发,是一个只需要定义c#接口(interface),并打上相关特性,即可异步调用http-api的框架,支持.netframework4.5+、netcoreapp2.0和netstandard2.0。1.HttpApiConfig的使用1.1创建HttpApiConfigvarconfig=newHttpApiConfig{//请求的域名,会覆盖[HttpHost]特性HttpHost=newUri("http://www.webapiclient.com"),};varmyWebApi=HttpApiClient.Create(config);1

.Net 2018-01-17 发布
23 浏览

Parcel.js带来零配置JavaScript模块打包器

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!Parcel.js是一款新开源的JavaScript模块打包器,于2017年12月5日发布。Parcel的发布公告指出,速度和零配置是其与webpack、browserify、rollup等现有模块打包器的不同所在。据称,当使用其内置的缓存时,Parcel的速度是webpack的10倍。Parcel为JavaScript、CSS、HTML、文件资产等提供了开箱即用的支持,而且不需要任何插件。开发人员通过NPM安装后马上就可以使用CSS预处理器、代码分割、模块热加载、开发服务器、缓存等。核心团队会根据用户请求快速增加特性,即将发布的路线图中包括WebAssembly支持、源映射、“摇树(treeshaking)”。当人们问及如何参与时,核心团队成员ShawnPresse建议人们加入Slack的Parcel频道或者钻研GitHub上的问题。发布仅一个月就有超过50名贡献者,他们也非常欢迎新的开源贡献者加入。零

JavaScript 2018-01-17 发布
AD 友情赞助
22 浏览

讀書時間:Spectre 的攻擊方式

上次寫了Meltdown攻擊的讀書心得(參考「讀書時間:Meltdown的攻擊方式」),結果後來中獎狂流鼻水,加上Spectre用的手法就更複雜,慢慢看的情況就拖到最近才看完...這邊就以讀者看過Meltdown那篇心得的前提來描述Spectre。Spectre的精華在於CPU支援branchprediction與out-of-orderexecution,也就是CPU遇到branch時會學習怎麼跑,這個資訊提供給out-of-orderexecution就可以大幅提昇執行速度。可以參考以前在「CPUBranchPrediction的成本...」提到的效率問題。原理的部份可以看這段程式碼:這類型程式碼常常出現在現代程式的各種安全檢查上:確認x沒問題後再實際將資料拉出來處理。而我們可以透過不斷的丟x值進去,讓CPU學到以為都是TRUE,而在CPU學壞之後,突然丟進超出範圍的x,產生branchmisprediction,但卻已經因為out-of

JavaScript 2018-01-17 发布
25 浏览

用Vue开发一个实时性时间转换功能,看这篇文章就够了

前言最近有一个说法,如果你看见某个网站的某个功能,你就大概能猜出背后的业务逻辑是怎么样的,以及你能动手开发一个一毛一样的功能,那么你的前端技能算是进阶中高级水平了。比如咱们今天要聊的这个话题:如何用Vue开发一个实时性的时间转换指令?接下来正文从这开始~如上图所示(我是截取的某技术社区首页的部分页面),大家看到用红色边框勾选中的时间文字了吧。很多网站发布动态的时候,都会有一个相对本机时间转换后的相对时间。那你知道这个功能实现的背后原理是什么吗?如果有兴趣的,请备好瓜子,茶水,继续往下读。一般在服务器的存储时间格式是Unix时间戳,比如2018-01-1706:00:00的时间戳是1516140000。前端在拿到数据后,将它转换为可持续的时间格式再显示出来。为了显示出实时性,在一些社交类产品中,甚至会实时转换为几秒前、几分钟前、几小时前等不同的格式,因为这样比直接转换为年、月、日、时、分、秒,显得对用户更加友好,体验更人性化。今天,我们就来实现这样一个Vue自定义指令v-time,将表达式传入的时间戳实时转

JavaScript 2018-01-17 发布
23 浏览

Android:你不知道的 WebView 使用漏洞

前言现在很多App里都内置了Web网页(HypridApp),比如说很多电商平台,淘宝、京东、聚划算等等,如下图上述功能是由Android的WebView实现的,但是WebView使用过程中存在许多漏洞,容易造成用户数据泄露等等危险,而很多人往往会忽视这个问题今天我将全面介绍AndroidWebView的使用漏洞及其修复方式阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解最全面&最详细的AndroidWebView与JS的交互方式汇总1.类型WebView中,主要漏洞有三类:任意代码执行漏洞密码明文存储漏洞域控制不严格漏洞2.具体分析2.1WebView任意代码执行漏洞出现该漏洞的原因有三个:WebView中addJavascriptInterface()接口WebView内置导出的searchBoxJavaBridge_对象WebView内置导出的accessibility和accessibilityTraversalO

JavaScript 2018-01-17 发布
AD 友情赞助
21 浏览

浅谈bootstrapvalidator(基于Thymeleaf)

后台数据校验.png前端校验导入所需css和js所需资源可以去官方下载,嫌麻烦的话,可以直接从我提供的百度云盘进行下载:链接:https://pan.baidu.com/s/1mjhovjy密码:atwy进行前端校验,实现代码如下,仅供参考。$("#loginForm").bootstrapValidator({submitHandler:function(valiadtor,loginForm,submitButton){valiadtor.defaultSubmit();},fields:{username:{validators:{notEmpty:{mes

JavaScript 1900-01-01 发布
27 浏览

码云推荐 | 基于 .NET Core 的 DDD 分层框架 ShriekFx

ShriekFxAddd-cqrsframeworkfor.NETCore2.0thatwouldmakeyoushriek!Forit'ssimple,elegantanduseful!一个使用.NETCore2.0开发的简单易用的领域驱动设计分层框架(DDD+CQRS),宗旨是让小型应用也能用DDD的思想去开发,使开发者告别对领域驱动设计的复杂认识。特性:领域驱动设计(DDD)命令查询职责分离(CQRS)事件驱动架构(EDA)事件回溯(ES)最终一致性(EventuallyConsistent)Server/Client动态代理(提供接口自动实现客户端和服务端)框架中每个组件都有基础实现,只需一个核心类库就能跑起来遵循端口与适配器模式,框架组件适配多种第三方组件实现,从单体到面向服务按需扩展安装Nuget包目前开发版本已发布到MyGet,从Nuget安装时需要添加MyGet的源地址,或者在解决方案根目录添加NuGet.config文件,内容如下:

.Net 2018-01-17 发布
30 浏览

Thymeleaf中js调取变量、模板化及静态资源拦截

公司项目,使用springboot开发,今天在后台与前台通讯过程中,发现几个问题,做简单整理,加深一下印象。js调取变量后台返回变量之后,在前端进行接收,之后需要在js里面对该变量继续处理,如何在js里面进行变量的接收呢?使用th:inline属性进行javascript的标记。使用如下方式进行变量数据接收:[[${example}]]示例代码varmessage=[[${error}]];varcode=[[${code}]];注意:在使用script的标签的时候,一定要使用th:inline属性进行标记,否则不会引用到。静态资源路径由于默认springmvc对所有的请求都做了拦截。因此,当我们访问一个本地静态资源的话,springmvc拦截器依旧会将请求拦截到。从而造成数据的访问失败。很显然,这不是我们希望的结果。万幸的是,早在springmvc的时候就spring团队就已经给我们提供了方案。即—在配置的时候将静态资源的请求进行重新定位。两步走

JavaScript 1900-01-01 发布
15 浏览

浏览器的渲染:过程与原理

本文不是关于浏览器渲染的底层原理或前端优化具体细节的讲解,而是关于浏览器对页面的渲染——这一过程的描述及其背后原理的解释。这是因为前端优化是一个非常庞大且零散的知识集合,一篇文章如果要写优化的具体方法恐怕只能做一些有限的列举。然而,如果了解清楚浏览器的渲染过程、渲染原理,其实就掌握了指导原则。根据优化原则,可以实现出无数种具体的优化方案,各种预编译、预加载、资源合并、按需加载方案都是针对浏览器渲染习惯的优化。关键渲染路径提到页面渲染,有几个相关度非常高的概念,最重要的是关键渲染路径,其他几个概念都可以从它展开,下面稍作说明。关键渲染路径(CriticalRenderingPath)是指与当前用户操作有关的内容。例如用户刚刚打开一个页面,首屏的显示就是当前用户操作相关的内容,具体就是浏览器收到HTML、CSS和JavaScript等资源并对其进行处理从而渲染出Web页面。了解浏览器渲染的过程与原理,很大程度上是为了优化关键渲染路径,但优化应该是针对具体问题的解决方案,所以优化没有一定之规。例如为了保障

JavaScript 2018-01-16 发布
20 浏览

inline-block元素间留白现象探究

现象说明最近在项目发布的时候遇到了一个奇怪的问题,在项目使用gulp打包压缩后发现之前一些行内元素间的空白消失了,导致页面中一些布局出现了问题正常样式如下:最开始出现这个问题的时候以为是gulp在压缩css,html出现了什么问题,一直在对比压缩前后对应节点的样式和结构,但却始终没有发现问题。通关观察元素的盒模型,觉得这段空白实际上是不应该出现的,压缩后异常的样式反而是正常的。最后通过查阅资料最后发现原来inline-block元素的自动留白造成的这一空隙的出现。空白出现原因其实产生这一空白的原因是我们在平时编码的时候这种行内元素之间往往会有一个换行符或空格,浏览器会识别并为我们的行内元素见插入一段空白。代码对比如下:压缩前html

  • 元素1
  • 元素2
  • 元素3
  • 元素4
JavaScript 2018-01-16 发布
22 浏览

nodejs+express+mysql实现restful风格的增删改查示例

首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo一、前言之前学的java,一直用的ssm框架写后台。前段时间接触到node.js,于是花了两天时间学了一下node.js并写了一个CRUD简单示例。由于前几天一直学用githubpages搭建博客,一直没时间写README,今天有空补了上来。下面来内容自于项目的README。二、项目介绍基于node.js+express+mysql实现的restful风格的CRUD简单示例2.1组织结构├──app.js--应用配置├──bin│└──www--项目运行脚本├──conf│└──mysqlConf.js--mysql配置文件├──dao│├──userDAO.js--封装和数据库的交互│└──userSqlMap.js--SQL语句封装├──model│└──result.js--返回结果对象封装├──pack

JavaScript 2018-01-16 发布
13 浏览

Babel 6 松散模式

想必每个写JavaScript的都或多或少了解过ES5引入的严格模式,Babel6在把ES6+代码转换为ES5时,也提供了「松散模式」(loosemode)的选项。Babel的松散模式和ES5没有任何关系,这里提ES5严格模式只是在概念上作一个比对,方便理解Babel的松散模式。两种模式一些Babel插件有两种工作模式:标准模式:转换时尽可能遵循、接近ES6语义。松散模式:转换为简单的ES5实现。松散模式的优、缺点显而易见:优点:转换出来的代码更简洁,没有为了接近ES6而添加的繁杂逻辑,文件更小,运行速度更快,兼容性更好。缺点:以后直接使用原生ES6时可能会遇到问题。需要留意。一般而言,不建议使用松散模式,不过也可以综合考虑项目的复杂程度,结合实际做选择。配置方式可以直接使用babel-preset-es2015-loose:{"presets":["es2015-loose"],}具体到某个插件时,可以设置loose参数为tru

JavaScript 2018-01-17 发布
16 浏览

web前端vue:自定义指令directive

官网截图实例vue除了一些核心的内部定义的指令(v-model,v-if,v-for,v-show)外,vue也允许用户注册自己的一些功能性的指令,有时候你实在是要对Dom操作,这个时候是自定义指令最合适的了。来直接看例子:当页面加载时使得元素获得焦点(autofocus在移动版Safari是不支持的),就是当页面加载好了,不做任何的操作使得表单自动获得焦点,光标自动在某个表单上代码如下:Vue.directive('zsqfocus',{//注册一个全局自定义指令`v-zsqfocus`,在main.js文件里inserted:function(el){//当被绑定的元素插入到DOM中时自动调用el.focus()//聚焦元素}})如果想注册局部指令,组件中也接受一个directives的选项: