原文:WPF系列教程--(二)使用Prism实现MVVM设计模式 - 简书 本文假设你已经知道MVVM设计模式是什么,所以直接进入正题,今天我们就用Prism来实现WPF的MVVM设计模式,百度上关于Prism的教程少之又少,仅有的几个教程也是使用的很古老的版本,反正也是看不懂写的啥玩意,下面以最简洁明了的代码来演示事件绑定和数据绑定. 1. 准备 使用上一节的Demo,来继续完成本节教程WPF系列教程--(一)仿TIM QQ界面 Prism Prism是一个MVVM框架,它包括,依赖注入(通过…
原文:WPF系列教程--(三)使用Win10 Edge浏览器内核 - 简书 在需要显示一些 H5网站的时候自带的WebBrowser总是显示不了,WebBrowser使用的是IE内核,许多H5新特性都不支持,然后使用谷歌内核和火狐内核会使软件的体积增加至几十M,为了显示一个网页而牺牲这么大的空间是不值得的. 在新建项目的时候需要.NET Framework 4.6.2版本 图片.png 在NuGet中搜索Microsoft.Toolkit.Win32.UI.Controls,添加进项目 图片.p…
原文:WPF系列教程--(一)仿TIM QQ界面 - 简书 TIM QQ 我们先来看一下TIM QQ长什么样,整体可以将界面分为三个部分 TIM QQ 1. 准备 阅读本文假设你已经有XAML布局的基础,所以只对部分布局进行说明. 界面上的图标均来自 Material Design Icons 选择需要的图标后点击View XAML 图片.png 会显示WPF的调用代码,直接复制到项目中即可,WPF是支持矢量图显示的. 图片.png 本文中的控件使用了开源的MaterialDesignInXam…
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框架系列教程四(删除数据) CRL快速开发框架系列教程五(使用缓存) CRL快速开发框架系列教程六(分布式缓存解决方案) CRL快速开发框架系列教程七(使用事务) CRL快速开发框架系列教程八(使用CRL.Package) CRL快速开发框架系列教程九(导入/导出数据) CRL快速开发框架系列教程十(…
http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微…
Android Studio系列教程二--基本设置与运行 2014 年 11 月 28 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处! 上面一篇博客,介绍了Studio的优点与1.0 RC的安装与上手体验,没想到google的更新速度这么快,已经出了RC 2版本,主要是修复一些bug.那么今天就带大家预览下Stduio的界面与基本功能. 项目结构 当我们新建一个项目的目录结构默认是这样的 可以看到和Eclipse的目录结构有很大区别,Studio一个窗口只能有一个项…
接下来我们创建一个Label,NGUI->Open the Widget Wizard,打开widgetTool对话框,在Template中选择Label,确定AddTo右侧选项为panel,点击,Add To完成Label创建. 1.Label属性窗口如图 1.下面的节奏可能有点快,大家可以先熟悉一下上面讲的流程,再进行下面的学习.接下来我们依次创建Button和Input,因为这两个选项差不多,我们放一块讲,在WidgetTool窗口中,他们都需要选择一个Background,这里和选择Sp…
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块Cryptographyproviders中为对称加密配置Key文件的3种方式: create a new key  : 使用一串字符串作为Key,然后通过加密保存到一个Key文件中. use an existing DPAPI-protected key file  : 使用一个现有的Key文件进…
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级) 企业库加密应用程序模块提供了2种方式让用户保护自己的数据: Hashingproviders:  离散加密法, 简单来说就是把你的信息保存到内存中后用一个离散值表示并返回给程序,这样在程序中只能看到离散值而不是明文,这样就起到简单的加密效果啦. Cryptographyproviders: 密钥加密法. 用对称加密方法对数据进行加密…
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) 中间件 Fastify 提供了与 Express 和 Restify 中间件兼容的异步中间件引擎. 所以,Fastify 可以使用 Express 中间件. 注意:Fastify 中没有错误处理中间件(err, req, res, next).如果需要处理中间件中的错误时,只需要调用 next(new Error('error message')) 即可,Fastif…
今天介绍webpack怎么编译ES6的各种函数和语法.敲黑板:这是webpack4版本哦, 有一些不同于webpack3的地方. >>> 本节课源码 >>> 所有课程源码 1. 了解babel 说起编译es6,就必须提一下babel和相关的技术生态: babel-loader: 负责 es6 语法转化 babel-preset-env: 包含 es6.7 等版本的语法转化规则 babel-polyfill: es6 内置方法和函数转化垫片 babel-plugin-tr…
Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) Fastify 系列教程四 (请求对象.响应对象和插件) 中间件 Fastify 提供了与 Express 和 Restify 中间件兼容的异步中间件引擎. 所以,Fastify 可以使用 Express 中间件. 注意:Fastify 中没有错误处理中间件(err, req, res, next).如果需要处理…
Shell脚本系列教程二: 开始Shell编程 2.1 如何写shell script? (1) 最常用的是使用vi或者mcedit来编写shell脚本, 但是你也可以使用任何你喜欢的编辑器; (2) 脚本写好之后, 要给脚本设置可执行权限: 语法为: chmod  [option]  mode  script-name $ chmod +x script-name # 对所有用户(a, 默认) $ script-name 这里, 775这3个数字分别表示此文件对于用户(u), 组(g), 其他…
原文:WPF 动画:同为控件不同命 - 简书 1. 及格与优秀 读大学的时候,有一门课的作业是用 PPT 展示. 但是我们很多同学都把 PPT 当做 Word 来用,就单纯地往里面堆文字. 大家都单纯地从一页堆积的文字翻到另一页堆积的文字,以致于台下的同学都听不下去,包括那些以同样的方式汇报的同学. 本来以为会在枯燥中期待下课的到来,直到有个叫幽灵东的同学汇报,他惊艳到了我们. 相比别人单纯地堆积文字,他更多的采用图片+较少的文字的方式. 同时,那些图片和文字的出现.出现顺序.消失,都采用了动画…
在 Redis 出现之前,我们的缓存框架各种各样,有了 Redis ,缓存方案基本上都统一了,关于 Redis,松哥之前有一个系列教程,尚不了解 Redis 的小伙伴可以参考这个教程: Redis 教程合集 使用 Java 操作 Redis 的方案很多,Jedis 是目前较为流行的一种方案,除了 Jedis ,还有很多其他解决方案,如下: 除了这些方案之外,还有一个使用也相当多的方案,就是 Spring Data Redis. 在传统的 SSM 中,需要开发者自己来配置 Spring Data…
原地址:http://dong2008hong.blog.163.com/blog/static/469688272014030347910/ Unity3D脚本中文系列教程(一) .根据名称或标签定位. 你可以使用GameObject.FindWithTag和GameObject.FindGameObjectsWithTag搜索具有特定标签的游戏物体,使用GameObject.Find根据名称查找物体. function Start () { // 按照名称 var go = GameObje…
软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 在PyQt5系列教程的第一篇http://blog.csdn.net/djstavaV/article/details/50218157,我们已经搭建好了开发环境,今天,我们就用Python开发第一个Qt GUI程序,让大家感受下Qt开发的魅力,熟悉下Qt开发GUI程序的一般流程. 制作程序UI界面,一般会有2种方法,利用UI制作工具和纯代码编写,像移动开发中的Andro…
作者:马健邮箱:stronghorse_mj@hotmail.com 主页:http://www.comicer.com/stronghorse/ 发布:2017.07.23 教程二十:用“文件比较”看有损.无损 在前两篇教程中,扯了一大堆JPG文件的有损压缩,平时在网上也经常看到一些人整天把有损.无损挂在嘴边,但具体是否真的无损?有损又损了多少.损在哪里?讲得清的人就真心不多了.CEP从v4.13开始提供“文件比较”功能,可用于定量比较有损.无损. 按照CEP的使用说明,“文件比较”功能提供两…
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有再继续更新 Spring Boot 相关的博客了,2018年又去写书了,也没更新,现在 Spring Boot 最新稳定版是 2.1.8 ,松哥想针对此写一个系列教程,专门讲 Spring Boot2 中相关的知识点.这个系列,就从本篇开始吧. Spring Boot 介绍 我们刚开始学习 Java…
多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问题,之前有小伙伴在我的知识星球上提问,他的数据根据条件的不同,可能保存在四十多个不同的数据库中,怎么办?这种场景下使用多数据源其实就有些费事了,我给的建议是使用 MyCat,然后分表策略使用 sharding-by-intfile . 当然如果一些简单的需求,还是可以使用多数据源的,Spring B…
retention policy这个东西相比较于传统的关系型数据库(比如mysql)而言,是一个比较新的东西,在将表之前,有必要来看一下保存策略有什么用,以及可以怎么用 I. 基本操作 1. 创建retention policy retention policy依托于database存在,也就是说保存策略创建时,需要指定具体的数据库,语法如下 CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DUR…
0x000-前文 Cobaltstrike系列教程(一)简介与安装 0x001-Listner(监听器)介绍 ①Cobaltstrike listner简介 可能有一些小白并不理解什么叫做listner,在此科普一下.Listner(监听器):专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.在许多的渗透测试工具中,例如empire,metasploit,cobaltstrike中都有listner的存在.大家可以简单地理解为lis…
在利用WPF创建桌面应用程序的界面时,经常使用MVVM的设计模式,以减少UI层与逻辑层的代码耦合度. 在MVVM的设计中,最主要的方法和技术是UI中的控件利用Binding来和逻辑层(ViewModel)进行交互,其中控件的属性为依赖属性,而作为控件的DataContext的ViewModel则实现了INotifyPropertyChanged接口. 除了一般意义上的属性的数据的交互,还有一些基于命令的Banding来实现界面元素的操作与内部函数的解耦. 这样,界面上的数据和操作(包括控件的命令…
本文是 Spring Boot 整合数据持久化方案的最后一篇,主要和大伙来聊聊 Spring Boot 整合 Jpa 多数据源问题.在 Spring Boot 整合JbdcTemplate 多数据源.Spring Boot 整合 MyBatis 多数据源以及 Spring Boot 整合 Jpa 多数据源这三个知识点中,整合 Jpa 多数据源算是最复杂的一种,也是很多人在配置时最容易出错的一种.本文大伙就跟着松哥的教程,一步一步整合 Jpa 多数据源. 工程创建 首先是创建一个 Spring B…
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 哎呦喂,按照以往的惯例今天周六我的安排应该是待在家学学猫叫啥的.但是今年这种日子就可能一去不复返了,没法办法啊.前几天年轻,立下了一周至少更两篇文章的 flag .废话少说,今天接着前文给你们带来了第一个 SpringBoot 工程的详解. 第一个 SpringBoot 工程 前文已经说过了 SpringBoot 工程的创建,这里不再赘述,还不会的朋友,请看下面这篇文章. 如何使用 IDEA 构建 Spring…
一.存储方式 如果让我们设计一个版本控制系统,最简单的方式就是每做一次更改就生成一个新的文件. 这样的方式太占用空间,所以传统的版本控制系统都是保存一个文件的某个版本的全部内容以及其他版本相对于这个版本的更改,这样就节省了大量的空间. 不过Git却反其道而行之,采用了类似生成副本的方式保存每一次更改,我们称之为快照. 如果还有疑惑,下面我们会详细介绍这张图代表的意思. 二.存储对象类型 Git中有很多存储对象,这里我们着重讲解其中的三个:Blob(块).Tree(目录树).Commit(提交).…
原文:http://blog.csdn.net/hel12he/article/details/51089774 上一篇文章完整的讲叙了如何安装一个vagrant的环境.这里主要说一说vagrant的配置文件Vagrantfile.我在尝试各种技术的时候,常常苦恼于很多时候没有教程把相关的配置信息说明完整.所以在我的博客里,我一定会完整的把这块给补上. 一 配置详解 在我们的开发目录下有一个文件Vagrantfile,里面包含有大量的配置信息,主要包括三个方面的配置,虚拟机的配置.SSH配置.V…
一.创建工程 创建名称为"springboot_helloworld"的spring boot工程, new->Spring Starter Project,直接上图         点击“Finish”后需要耐心等待,这时Maven会自动下载所需spring boot的依赖包.所有的依赖如下:                        二.开始编码 2.1 新建WebController import org.springframework.web.bind.annotat…
以前的做法: 1.当项目的时间比较紧迫的时候,对UI层中控件的事件的处理,往往采取的是类似Winform中最简单的做法,直接做一个事件的Handler直接去调用VM层的方法. 2.控件只有一个Command属性,其它的事件的处理方法没有办法和ViewModel层进行解耦的时候往往也采取上面提到的方法. 如下图所示: 新的做法: 为了实现事件的处理与View层的解耦,我们可以利用WPF提供的附加属性来为需要的事件添加附加行为.附加属性扮演了一个在View层与Model层牵线的角色. 需要下面三个步…
免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel的神奇世界了,主要是讲解Laravel的Router,Views,Controllers的工作流程,目的也就是让大家明白Laravel在处理一个get请求的时候是如何工作的. 在开始之前,我们首先得将我们的服务器启动起来,如果你使用Laravel的artisan,你可以直接: php artisan…