聚合文章列表
14 浏览

浅谈Await

浅谈Await1.Await为什么不会导致堵塞我们都知道Await关键字是.NetFrameWork4.5引入的特性。await使得我们使用异步更加时特别便捷,并且还不会导致线程堵塞。我们在使用时也就莫名其妙的使用。往往不知道为什么不会导致线程堵塞。在这里,简单的谈论下await的一点原理。在c#并行编程这本书中是这么介绍await的:async方法在开始时以同步方式执行,在async方法内部,await关键字对它参数执行一个异步等待,它首先检查操作是否已经完成,如果完成,就继续运行(同步方式),否则,会暂停async方法,并返回.留下一个未完成的task,一段时间后,操作完成,async方法就恢复执行.看到这句话应该就差不多能想到await为什么不会导致线程堵塞了,当碰到await时如果没有执行成功就先暂停这个方法的执行,执行方法外以下代码,等await操作完成后再执行这个方法await之后的代码。下面以一个例子形式来演示一下在这里创建一个窗体项目,我们都知道窗体主线程堵塞时会导致窗体不能移

ASP.NET 2018-02-01 发布
6 浏览

我的2017——求职篇(四)

我的2017——求职篇(四)这一次的面试邀请是在qq上沟通到的,他们公司的一个开发人员加的我qq,居然昵称就是.net,我特意看了下qq等级,应该是个私人号(可以看出来差不多是个对事情上心的人)。我跟他大致的聊了下,看了下他发的职位信息,感觉跟我的简历写的不是太合,于是发消息过去跟他再确认了下,“我没有精通mvc,linq,就了解过(跑过两小demo)而已,也只有一年的工作经验,您确定没找错人?”,他说,“有两个岗,发给我看的是个中高级岗,也有初级岗。”,中高级岗都是写的8k,初级岗那不得6k朝下了。于是我立马就接过话来,“我可以面中高级岗,有一个月的缓冲期就行。”,现在想想,自己也是单纯,什么都不会,就直接要面中高级岗,对方又不是傻子。我当时说话如此有底气的原因一方面是前几次面试让我觉得这些公司的东西基本都不会太难,api+百度基本就够解决问题;另一方面是对自己的学习能力还是有一定的了解的,刚到之前那家公司的的时候三周就直接把js,sql,asp.net全部捡起来做出一个三层的表格记录增删改查加分页的练习,顺便还把jq学了。(这

ASP.NET 2018-02-01 发布
17 浏览

DevExpress使用教程:Gridview下拉框

本人最近使用到DevExpressGridview下拉框repositoryItemComboBox控件,下面就详细写一下这个实现的过程,分享一下,同时也是对这个知识再次熟悉一遍。【DXperienceUniversalSuite下载】一、绑定前准备这一部分基本上是一些基础的知识,但也有些地方要注意的。1、添加下拉框列在GridDesigner中,添加一列,在这列的ColumnEdit熟悉中,可以选择这列的编辑样式,比如让这列是一个按钮或者选择框等等,这里我们选择下拉框,如图:这个下拉框默认被命名为repositoryItemComboBox1,我们对这列的操作,就是对repositoryItemComboBox1的操作。2、为gridview添加bindingSource这里要用bindingSource作为数据源,这是为了实现在repositoryItemComboBox1选择了一个值之后,gridview能够将它显示,repositoryItemComboBox的很大一个缺陷就是当你选择一个值

.Net 2018-02-02 发布
AD 友情赞助
11 浏览

(纯代码)快速创建wcf rest 服务

因为有一个小工具需要和其它的业务对接数据,所以就试一下看能不能弄一个无需配置快速对接的方法出来,百(以)度(讹)过(传)后(讹),最后还是对照wcf配置对象调试出来了:1.创建WebHttpBinding2.添加ServiceMetadataBehavior3.获取一个serverendpoint4.指定WebHttpBehavior格式1///

2///快速创建一个WCFhttp服务3///4///5///6///7///8///

.Net 2018-02-02 发布
15 浏览

[C#基础]说说lock到底锁谁?(补充与修改)

摘要今天在园子里面有园友反馈关于[C#基础]说说lock到底锁谁?文章中lock(this)的问题。后来针对文章中的例子,仔细想了一下,确实不准确,才有了这篇文章的补充,已经对文章中的demo进行修改。lock(this)一个例子usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceLockTest{classProgram{staticvoidMain(string[]args){TestLocktestlock=newTestLock();Threadth=newThread(()=>{//模拟死锁:造成死锁,使lock无法释放,在i=5时,跳出死循环,释放locktestlock.DoWorkWithLock();});th.Start();Thread.Sleep(100

.Net 2018-02-02 发布
14 浏览

Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本

Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本一、引言学习Redis也有一段时间了,感触还是颇多的,但是自己很清楚,路还很长,还要继续。上一篇文章简要的介绍了如何在Linux环境下安装Lua,并介绍了在Linux环境下如何编写Lua脚本和运行。由于我们这个系列是以Redis为主,所以也介绍了Redis和Lua如何进行整合、运行。在Lua脚本中有一个很重要的数据类型,那就是table类型,大家可以把Lua的table类型暂时理解为数组,只是Lua的table类型的下标可以是数字,可以是字符,除了(nil)类型,其他类型都可以做为table类型的下标。我们在使用Redis和Lua的过程中,比较多的会用到这个table类型,今天的主要任务就是介绍table类型的使用、CJSON的解析和如何通过C#语言来对Redis和Lua的进行整合操作。后续我还会推出针对Lua脚本语法的文章来扩充这个系列。二、Lua简介Lua是一个小巧的脚本语言。其设计目的是为了嵌入

.Net 2018-02-02 发布
AD 友情赞助
22 浏览

C# WinForm调用UnityWebPlayer Control控件 <学习笔记1>

工具1.三维场景Unity5.0.2f12.开发环境MicrosoftVisualStudio20103.需要使用的控件UnityWebPlayerControl出现的问题及解决办法:1.安装完Unity5.0.2f1后,通过工具箱->选择项->COM组件中没有找到UnityWebPlayerControl,我解决的办法:在网上下载了一个UnityWebPlayer.exe文件,安装后,就能找到。2.Failedtoinitializeplayer's3DSettings。控制面板里卸载UnityWebPlayer.exe,重新找了个UnityWebPlayerFull.exe文件安装,然后再次调用,就没有再出现该错误。集成步骤:1.打开Unity5.0.2f1创建一个新工程。Projects-->单击右侧[NewProject]在新窗体的ProjectName栏里输入UnityTest01作为项目名字,单击[CreateProject]。

.Net 2018-02-02 发布
20 浏览

vue 2.0 购物车小球抛物线

备注:此项目模仿饿了吗。我用的是最新的Vue,视频上的一些写法已经被废弃了。布局代码<divclass="ball-container"><transitionname="drop"v-for="ballinballs"@before-enter="beforeDrop"@enter="dropping"@after-enter="afterDrop"><divv-show="ball.show"class="ball"v-bind:css="false"><divclass="innerinner-hook"></div></div></transition></div>css代码(使用stylus写法).ball-container.ball

vue.js 2018-02-01 发布
13 浏览

vue风格指南小结

摄于2018年01月26日20:04:56杭州西湖音乐喷泉有一个良好的编码习惯风格对程序员来说也是功底的考究,而且还能规避一些不必要的错误,提高代码可读性,况且这也是一个优雅编写Vue的开始,嗯,完美Perfect。个人博客组件数据组件的data必须是一个函数。当在组件中使用data属性的时候(除了newVue外的任何地方),它的值必须是返回一个对象的函数。Vue希望每个组件实例都相对应地管理自己的数据,而不是在复用组件时各个组件之间出现数据混乱的情况,所以要求每个实例必须生成一个独立的数据对象。Bad=>Vue.component('todo-list',{data:{foo:'bar'}})Good=>Vue.component('todo-list',{data:function(){return{foo:'bar'}}})Prop定义Pro

vue.js 2018-02-01 发布
AD 友情赞助
24 浏览

Vue学习日记(三)——Vue路由管理vue-router

前言为了给读者更好的体验,去理解vue-router和下一篇介绍vuex,决定还是来一个实战教程来带大家更加的去深入理解vue-router,在这之前,读者先自行了解和去官网下载npm和node,附:npm官网项目构建这里我采用vue-cli+webpack构建初始项目,在vue官网里面也有相关介绍,在这里我就手把手教大家一下吧,先通过控制台进入相关的文件目录下,然后输入#后面是注释#$表示当前文件目录#全局安装vue-cli$npminstall--globalvue-cli#创建一个基于webpack模板的新项目$vueinitwebpackmy-project#安装依赖,走你$cdmy-project$npminstall#运行项目my-preoject$npmrundevnpminstall--globalvue-cli下载构建工具vueinitwebpackmy-project初始化项目npminstall下载相关资源到node

vue.js 2018-02-01 发布
18 浏览

javascript知识点

Vue.js前后端同构方案之准备篇——代码优化目前Vue.js的火爆不亚于当初的React,本人对写代码有洁癖,代码也是艺术。此篇是准备篇,工欲善其事,必先利其器。我们先在代码层面进行优化,对我们完成整个技术架构是起到基础作用的。腾讯AlloyTeam:移动端输入框填坑系列(一)作者:yana@alloyteam输入在移动端是一个很常用的功能,那么输入框必然是一个很重要的部分。然而,移动端输入框总会遇到各种各样的问题,无论是样式还是ios和android两端体验不一致都是很让我们头疼的问题,那么如何使移动web的输入框体验更贴近原生也成了一个需要我们…javascript函数式编程系列②优雅的使用underscore进行函数编程所谓一等公民①顾名思义身份高,JS任何只要是值能到达的地方,函数都可以去。这种编程方式很常见,谁都会写,我们一般叫这种编程方式称之为命令编程②,这个逻辑完全在你掌握之中,你只要规定计算机在你想要的时候执行一些不同的动作就可以了。下文中出现的注解underscore方法会在文…前端

vue.js 2018-02-01 发布
20 浏览

Vue.js 笔记之 img src

固定路径(原始html)index.html如下,其中,引号""里面就是图片的路径地址<imgsrc="./assets/1.png">单个可变路径index.html如下<divid="app"><imgv-bind:src="imgSrc"></div>对应地,app里面要有src,varapp=newVue({el:'#app',data:{imgSrc:'./assets/2.png'}}这样就可以通过改变imgSrc来改变某一个img标签指向的图片了basePath+参数比如有10张图片放在./assets/目录中,图片名1.png,2.png...Vue的文档里面有这么一句话Vue.jsallowsyoutodefinefiltersthatcanbeusedtoapplycommontext

vue.js 2018-02-01 发布
AD 友情赞助
16 浏览

分享一个功能强大的vue.js拖拽组件

介绍vue-slicksort--这是一个功能强大的可拖拽的vue.js组件。它可以自动滚动,锁定坐标系。支持拖拽时,流畅的动画效果。可以支持水平,垂直或者网格的拖拽。支持触摸。DEMO安装通过npm安装$npminstallvue-slicksort--save通过yarn安装$yarnaddvue-slicksort插件应用引入组件//UsinganES6transpilerlikeBabelimport{ContainerMixin,ElementMixin}from'vue-slicksort';//NotusinganES6transpilervarslicksort=require('vue-slicksort');varContainerMixin=slicksort.ContainerMixin;varElementMixin=slicksort.ElementMixin;在你的vue文件中这样引用importVuef

vue.js 2018-02-01 发布
24 浏览

关于Vue组件化开发的思考

今天在家躺了一天,直到晚上才考虑清楚,当人没有明确目标的时候,太容易被环境影响了。目标需要切合实际,至于和实际之间的距离,取决于当前认知的正确和全面。既有认知(误)一般说到组件,我首先想到的是弹窗,其他就大脑空白了。因为觉得这个是在项目中最常用的功能,提取出来方便复用的才是组件~然而我才发现这个想法是有问题的。我发觉可能从意识上把Vue的组件和UI库的组件(弹窗之类的)混淆了。。。联动思考(悟)缘起于最近的一个表单开发,页面上有2个是联动菜单的选项。首先想到的是,这个样式和选择地址的那个联动菜单,完全一样哈~(废话,同一个项目当然要保持ui风格的相同啊!)不过差别在于我这个是一个1级一个2级,地址那个是4级的.然后我就想着把那个地址的组件引进来用,发现这是个写死4级的这个时候我只想到2种办法1,分别改写成1级选项和2级选项的2个组件(好像比较low)2,引用4级联动组件,改写成可选1级选项或2级选项(有点麻烦,到时候还要测地址没被我改坏)3,重写一个可以通用无限联动菜单(方便可选级的)最后选了3,自己重新搞了个。至于

vue.js 2018-02-02 发布
18 浏览

Vue Cli 3.x简单体验

vue脚手架的3.x版本已经在开发中,现在还处于alpha版本。我们来看看有哪些变化。使用npminstall-g@vue/cli命名方式已经改为npm推荐的新的包名规则,使用作用域。详情可查看此文章。命令变化vue-h我们看到create[options]<app-name>创建一个由vue-cli-service支持的新项目invoke<plugin>在已创建的项目中添加插件serve[options][entry]在开发者模式下以零配置运行一个js或vue文件build[options][entry]在生产模式下以零配置构建一个js或vue文件init<template><app-name>旧api需要@vue/cli-init//就是原来的vue-cliinit<template><app-name>中文是我加的说到零配置,可以看看这个Parcel,生态还不完善,零配置的

vue.js 2018-02-02 发布
20 浏览

从零开始做Vue前端架构(1)

前言想想也已经做过不少架构的项目了,有基于vue,基于react,基于thinkPHP,基于laravel的。做多了,也就对现有的架构有各种想法,有好的,有坏的,总之,用起来还是不爽。vue-cli虽然可以很快地构建并使用,尤其是vue-cliv3.0,把webpack都封进@vue/cli的sdk里了,用起来更加干净、简洁。但是,对于爱折腾的我们,好吧,开个玩笑。重来,但是,对于页面的优化,还有项目的架构,我们不得不做多多少少的修改。好了,介绍完毕,接下来,我就从零开始,一步一步建起前后端完全分离的前端架构了。步骤由于要介绍的很多,全写在一篇里,有些太长了。所以,我会分为:创建开发环境下的webpack配置文件配置eslint、babel、postcss创建项目文件、目录架构通过koa实现本地数据接口模拟创建发布环境下的webpack配置文件创建测试环境下的webpack配置文件、以及测试用例(TODO)自动初始化构建项目(TODO)这七篇来分别介绍。开发一、初始化项目创建项目文件夹我们就叫vue-

vue.js 2018-02-02 发布
15 浏览

从零开始做Vue前端架构(2)

前言这一篇,我们将接着上篇来完成配置eslint、babel、postcss。开发一、配置eslint我们采用eslint--init的方式来创建eslintrc.js。对了,前提我们需要全局安装eslint:npmi-geslint。安装完全局eslint以后,我们在项目根目录使用eslint--init,我选择自定义的方式来规定eslint规则:➜vue-constructgit:(master)✗eslint--init?HowwouldyouliketoconfigureESLint?Answerquestionsaboutyourstyle?AreyouusingECMAScript6features?Yes?AreyouusingES6modules?Yes?Wherewillyourcoderun?Browser,Node?DoyouuseCommonJS?Yes?DoyouuseJSX?No?What

vue.js 2018-02-02 发布
18 浏览

从零开始做Vue前端架构(3)

前言这一篇,我们将接着上篇来完成创建项目文件、目录架构。回顾先回顾一下现在项目有哪些东西了:.├──app│  ├──app.vue│  ├──common│  │  ├──img│  │  ├──js│  │  └──scss│  ├──index.html│  ├──index.js│  ├──router│  │  └──index.js│  └──views│  └──home│  └──index.vue├──.babelrc├──.eslintrc.js├──.gitignore├──pac

vue.js 2018-02-02 发布
16 浏览

从零开始做Vue前端架构(4)

前言上一篇我们遇到'少年,是不是忘了npmrunmock?'的警告,这一篇我们就来解决这个问题。开发一、安装包安装koa和一系列的包(我们用的是koav2):koakoa-bodyparserkoa-routerboomnodemonmockjs解释说明一下(知道的同学可以忽略):名称作用koa我们都知道Node.js有HTTP模块,来处理HTTP请求,koa基于Node做了很多方便的接口让我们更顺畅地处理HTTP,比如,接收、解析、响应。koa-router方便的路由方式获取get/post、以及参数koa-bodyparserkoa插件之一,方便解析get/post的参数boom友好的HTTP错误对象nodemon为了在启动koa服务以后,修改了koa相关的node代码会自动重载更新,无需手动关闭再重启mockjs模拟数据用二、创建目录和文件结构:mock├──home//和views文件夹对应│  └──hel

vue.js 2018-02-02 发布
19 浏览

从零开始做Vue前端架构(5)

前言弄完了前后端分离,我们自然想打包发布项目了。不多说,就让我们来看看吧。开发直接上代码:constwebpack=require('webpack')constpath=require('path')constExtractTextPlugin=require('extract-text-webpack-plugin')constwebpackConfigBase=require('./webpack.config.js')constHtmlWebpackPlugin=require('html-webpack-plugin')constCleanWebpackPlugin=require('clean-webpack-plugin')constBundleAnalyzerPlugin=require('webpack-bundle-analyzer').BundleAnalyzerPluginconstexec=require('child_process').execSy

vue.js 2018-02-02 发布
AD 友情赞助