聚合文章列表
20 浏览

C# Winform 实现Ajax效果自定义按钮

技术看点WinForm自定义控件的使用自定义控件gif动画的播放需求及效果又来一波C#GDI自定义控件show。这个控件已经使用几年了,最近找出来重构一下。原来是没有边框的,那么导致导航的功能不是很突出。本来想加个效果:在执行单击时显示Loading动画,在执行完单击事件后恢复原样。这就是网页里见到的局部刷新,Ajax常用的场景。需求来自几年前一个智能储物柜项目,人机界面有个美工设计好的效果图,为了省事和通用,需要一个透明的按钮来实现导航的任务。就是控件只是设计时可见,运行时不可见。关键点说明1)、GraphicsPath实现矩形的圆角羽化处理using(GraphicsPathpath=newGraphicsPath()){#region羽化,圆角处理path.StartFigure();path.AddArc(newRectangle(newPoint(rect.X,rect.Y),newSize(2*Radius,2*Radius)),180,90);path.Ad

.Net 2017-12-18 发布
19 浏览

Handler源码理解分析

准备在理解Handler之前,需要对于链表和数组的有一定的理解:链表和数组都是用于存储数据的集合,所以他们的用图是相同的。那么他们两者有什么区别呢?换一种话来讲,就是什么时候使用数据,什么时候使用链表的问题了?数组:有索引做下标,访问元素快,但是在插入操作的时候就较慢。在插入元素的时候指定插入的位置,可能需要移动其他元素的位置,才有位置供新元素进行插入。如下图所示,当需要在元素"B"前插入一个元素"E"时,我们需要找到元素"B"的index并将index上包括1之后的元素向后移动才能腾出位置给"E"。

消息系统 2017-12-19 发布
20 浏览

云化、服务化、数据化、智能化 带走这份企业数字化转型秘籍

每次ArchSummit全球架构师峰会上的技术晚场,都是极客邦的一个特色保留节目。一天会议的交流学习之外,架构师、开发者们聚在一起,以一种比较轻松、随意的LeanCoffee形式碰撞观点、深入交流。在刚刚结束的ArchSummit全球架构师峰会北京站上,阿里云联合极客邦共同策划举办了以“企业数字化转型“为主题的阿里云之夜晚场活动,包括阿里云解决方案总监霍嘉、阿里云高级解决方案架构师傅杰、阿里巴巴研发效能事业部高级技术专家章屹、阿里云解决方案架构师徐晓华、阿里云解决方案架构师陈彦博、阿里云容器服务高级技术专家张凯在内的6位技术专家,担任当晚交流小组的组长,与参会者一起,围绕企业数字化转型的路径、企业数字化转型中的技术选型、企业数字化转型中的研发趋势、企业数字化转型中的数据驱动这四个小组主题进行交流和探讨。阿里云之夜晚场交流现场分享:企业数字化转型分为四个阶段企业数字化转型正席卷全球,这不仅是趋势所在,也是企业发展必然面对的考题,阿里云解决方案总监霍嘉先以一个主题发言对本次讨论主题“抛砖引玉”,他对企业数

软件架构 2017-12-18 发布
AD 友情赞助
26 浏览

Jboot v1.1.9 发布,重构支持原生 Swagger 注解

Jboot是一个基于JFinal和undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Opentracing数据追踪、metrics数据监控、分布式session、代码生成器、shiro安全控制、swaggerapi自动生成等功能。Jbootv1.1.9更新内容如下:新增:Columns实现序列化,支持RPC直接远程传入Columns。修复:JbootRedis的getWithoutSerialize方法返回空数据出现NullPointerException异常的问题。修复:JbootModel通过fastjson序列化的时候没有排除某些私有方法而序列化异常的问题。优化:重构Swagger模块,移除Jboot自定义Swagger注解,添加Swagger原生注解支持。优化:更新sharding-jdbc到2.0.1版本,更新fastjson到1.2.43版本。此版本主要是重构Swagger模块,支持Swagger原生注解,方便从其他项目进行移植而不需要修

软件架构 2017-12-18 发布
121 浏览

2017年个人总结-程序员的中年焦虑症

2017年个人总结-程序员的中年焦虑症记不清上一次写个人年终总结是多久之前了,只记得那时候人人网还叫校内网,球场上出现最多的是麦迪的1号球衣,网吧最火的游戏是魔兽世界。我那时候应该还是个翘课打球、熬夜开荒的暴躁青年。25岁是老爷们儿的一道坎,以前是越活越矫情,以后是越活越糙。时至今日,30岁的我已经是个到点就困、满脸胡渣的油腻中年人了,每天最剧烈的运动就是遛狗时被二狗子溜。有次弯着腰给狗子洗澡累坏了,气的老子用仅剩的一点力气抽了狗子俩嘴巴。但今年偏偏老不知羞又想“矫情”一回,写点玩意发发牢骚。如果把少年的矫情理解为不知愁滋味的强赋新词,那么中年人的矫情就是尝过愁滋味后的陈词滥调,内容无非就那点事:工作、家庭、社会和自己。自己记流水账之前还是先唠点个人层面的主观感受吧。名利是好东西,能让人趋之若鹜,也能改变人的心态。然而名利却是无法量化的,甚至任何人都不能自信地说自己“拥有”了名利。所以有人贪得无厌,有人知足常乐。于我个人而言,两者的平衡点是现有的资本可以让自己和家人过上安定的生活,同时得到一定的认可和成就感。表面看上去,今

软件架构 2017-12-18 发布
26 浏览

vue+koa2+mongodb点餐系统总结

这是一个点餐系统,包含用户点餐、商家出餐、管理员管理三部分功能这个项目本来是校内实训,需要用java编写,我负责一部分。但是我不太喜欢用java,且时间足够,就自己独自做了一份,用于学习。项目的功能和需求是根据前期小组讨论出来的,也基本都是仿饿了么的各项功能基本都实现了线上地址:(比较慢)47.93.254.91:3333源码地址:chihuobao登录账号:用户:12345678910商家:11112222333管理员:admin2登录密码都是123456

Vue.js 2017-12-18 发布
AD 友情赞助
27 浏览

【只发精品】匠心打造Vue侧滑菜单组件

本文介绍一个简单的DrawerLayout(类似Android的DrawerLayout)布局组件的实现,基于Vue.js。介绍的内容已经制作成vue-drawer-layout组件。前言大家有兴趣先用手机扫一扫这个二维码,或者点我然后点击页面中左上角的头像打开drawer或者向右向左拖拽,就可以看到下面gif的效果,打开自己的手机QQ,是不是很像:)谷歌官方把这种布局叫做DrawerLayout(抽屉式导航栏)。那么我们要如何实现呢,好了正片开始!HTML结构页面结构很简单,一个抽屉,一个主容器,内容可以利用slot支持外部自行定制。

Vue.js 2017-12-18 发布
25 浏览

译:Code Splitting with Vue.js And Webpack

bundle.main.js1.36MB随之带来的问题是用户在屏幕上看到任何东西之前,必须要下载整个文件并运行它。如果用户使用的是网络连接不好的设备,这个过程可能需要很长时间。Codesplitting就是把打包文件分割成为更小的文件,允许用户在他们需要的时候下载需要的代码块的一个方法。例如,看看这个简单的界面,我们可以识别出这个App中不需要初始载入的部分。如果我们延迟加载这些代码段直到初始渲染结束会怎样?它可以让用户更快的看到界面并进行交互。在这篇文章,我将向你展示如何使用Vue.js和Webpack将单页应用拆分成可以动态加载的更理想的大小。异步组件Codesplitting的关键就是异步组件(asynccomponents),这个组件的定义就是异步加载(包括它的模板,数据,方法等等)。首先让我们用componentAPI即Vue.component(name,definition)声明一个组件。不同于将定义对象作为第二个参数,异步组件有一个函数,这个函数有两个显著的特点:它

Vue.js 2017-12-18 发布
16 浏览

很全很全的JavaScript的模块讲解

离职中,从今天起就不用上班了,最近一直在搞基础的东西,弄了一个持续更新的github笔记,可以去看看,诚意之作(本来就是写给自己看的……)链接地址:Front-End-Basics此篇文章的地址:JavaScript的模块基础笔记的github地址:https://github.com/qiqihaobenben/Front-End-Basics,可以watch,也可以star。正文开始JavaScript的模块介绍模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分割、作用域隔离、模块之间的依赖管理以及发布到生产环境时的自动化打包与处理等多个方面。模块的优点可维护性。因为模块是独立的,一个设计良好的模块会让外面的代码对自己的依赖越少越好,这样自己就可以独立去更新和改进。命名空间。在JavaScript里面,如果一个变量在最顶级的函数之外声明,它就直接变成全局可用。因此,常常不小心出现命名冲突的情况。使用模块化开发来封装变量,可以避免污染全局环境。重

JavaScript 2017-12-18 发布
AD 友情赞助
22 浏览

掌握Node.js平台核心模块:进程(Process)模块——摘自RisingStack

本文的主题是Node.js平台的进程(Process)模块和这个模块中一些不为人知的妙处。读了这个贴子后,大家就会更有信心写好用于实际产品的程序了。我们将会了解Node.js平台程序的处理状态,会正常顺利地关闭程序,会更高效地处理出现的错误。>在新出的掌握Node.js平台核心模块系列贴子中,大家能学到一些核心模块所拥有的不为人知或极少有人知道的特色功能,以及如何使用这些功能。这些Node.js平台模块的基本元素经过逐条解释后,其工作原理就更好地让大家理解,并让大家知道如何排除错误。在这一章节里,我们要讲的是Node.js平台的进程(process)模块。进程(process)模块生成的对象是一个事件触发器(EventEmitter)类的实例,作为一个全局变量,提供了当前Node.js平台进程的运行信息。Node.js平台的进程(process)模块中需要监控的事件因为进程(process)模块是一个事件触发器实例,像其它事件触发器实例一样,大家可以用.on函数来订阅关注其中包含的事件:process.on('eventNam

JavaScript 2017-12-19 发布
77 浏览

写在2017年末微清单汇总

这个时候仿佛又到写年终总结的时候了,磕磕绊绊,细细思索,感觉目前学的东西还是挺碎片化的,记得有前辈说,"先有了深度,再有广度你的知识才有价值"。前端开发难免会遇到诸多困境,一边面临知识深度不足窘迫同时又要追求广度,如学习新的框架Vue.js;在面对深度与广度2种情况下,学习难免就会陷入困境。就同挖渠一样,这边挖下下......,那边挖下下......,最终什么也没有......好的状态就是渠挖成了,将水流引入开垦荒地,旁边种上果园,劳动、睡觉的同时又能获得丰收.......(图片源自蔡垒磊分享如有版权问题,可立即删除)一、技能、工作方面前端开发技能方面仍然采用传统的开发模式即以jQuery为核心"万金油"(如下图所示)技术全栈开发模式(标注:这种模式不包括Electron)主要出于以下优点考虑a.代码模块化,便于维护b.兼容性良好,能够很好的兼容低版本浏览器,c.对没有使用过Angular/Vue项目开发经验的前端开发者,更容易上手,研发成本低添加Electron楼

JavaScript 2017-12-19 发布
19 浏览

Webpack自动化构建实践指南

首发于极乐科技写文章登录Webpack自动化构建实践指南熊建刚3hoursago由于现在的博客是使用wordpress搭建,自己得经常修改过一些代码,但是修改第三方源码真的比较痛苦,于是决定计划开始使用React+Node.js/Python开发新博客项目,最终替换当前博客代码,方便以后博客的维护和更新,也能实现自我开发技术,架构设计,解决问题能力的提升,同时记录下整个开发历程,总结,分享,希望能与读者们一起进步。本篇介绍如何使用Webpack和Babel,Eslint,documentation.js等搭建项目开发环境和生产环境,也算项目的准备工作,下一期计划介绍项目的架构设计和技术栈选择。点此查看项目源码地址我的个人博客npmVSYarn在本项目我们使用Yarn管理项目三方依赖,不过放心,Yarn和NPM不冲突,也不是要替代NPM,使用方式基本一致,只需要简单了解以下几点。三方库版本管理npm和Yarn都使用package.json来跟踪项目的依赖,版本号并非一直准确,因为你可以定义版本号范围,npm

JavaScript 2017-12-18 发布
AD 友情赞助
22 浏览

以同构之名,再谈 Redux/Vuex 的必要性

动态网页起初由服务器端脚本支撑,例如Jsp、Asp和Php等,也就是说,在当时,网页都是由服务端渲染的(这里的渲染指的是,将数据注入模板,渲染成html,发回到浏览器),服务器端的MVC架构由此提出,模板由服务器端维护得益于Ajax的发展,网页开始可以进行局部刷新,Js通过发送Ajax请求拉取接口数据,再通过浏览器的Dom接口更新前端网页。这种形式,相比于此前用户每点击一个按钮、每发起一个互动皆需要通过服务器渲染,再全局刷新网页的体验要优异很多。既然前端有渲染的工作,那必然前端也需要模板,自然而然的衍生出前端MV*,基于Angular、React和Vue的各类spa架构,给人的感觉是,大家似乎已经暂时忘记了服务器渲染忘记的理由并不是说spa已经足够完美,spa同样有显著的问题,例如,用户必须忍受bundle.js下载以及随后的前端渲染的过程中的转菊花过程:但是相比于前后端渲染同时存在导致的前后端需要维护两套模板,这点小缺陷似乎值得忍受。然而首屏直出一直以来都是Web应用的体验痛

JavaScript 2017-12-18 发布
22 浏览

前端入行两年--教会了我这些道理

1.前言光阴似箭,日月如梭。不得不感慨时间过得很快,2017差不多结束了,一下子我从事前端开发的时间已经两年了。这两年可以说是一波三折,回想这两年的经历,让我忍不住了写下了这篇文章,记录自己在这两年经历的种种种种。这篇文章,打算当做自己的一个经历记录,而对于看这篇文章的你,希望你们能从我的经历里面吸取教训,希望即将步入前端和已经从事前端的你,不要想我这样一波三折,在前端的路走得更好。2.大学时光考完了第二次高考,紧跟着就是懵懵懂懂的上了大学,报的专业就是‘软件技术(网站设计)’。这么说,我也算是科班出身了,只是大学不是那么出名而已!在大学的时光里面,我并不是每天埋头在电脑前面写代码,学习。生活上有社团,班级的活动我基本都参加,也经常约上同学打篮球,聚餐,外出。这些经历,对于大学而言,是非常珍贵的经历,我想拥有多一些这样的经历。至于学习上,我也努力过,也有懒散过。成就方面,除去一些平常的奖项,比较有成就感的就是班里的成绩和个人素质综合测评我都是第一,因此一等奖学金和国家励志奖学金我没落下过。虽然这些和同级的人参加了什么国家省市的比赛,获得了多少

JavaScript 2017-12-18 发布
28 浏览

从时间旅行的乌托邦,看状态管理的设计误区

Redux的状态管理理念非常优雅,随之附带的时间旅行调试支持也非常酷炫。但这个特性是否是传说中的银弹,又会给使用者带来什么额外的负担呢?让我们重新思考一下吧。什么是时间旅行?在2015年的ReactEurope会议上,DanAbramov展示了通过ReduxDevTools让开发者在历史状态中自由穿梭,从而提升调试体验的Demo,这个工具的使用体验非常惊艳,也取得了非常好的反响。在此之后,Vuex与MobX等状态管理库也陆续在它们的调试工具中引入了对类似功能的支持。我们可以认为,前端状态管理领域中,狭义的『时间旅行』概念是在满足了下面这几个前提后,开发时在历史状态中任意回溯的功能:将局部state统一到全局store中做状态管理。开发环境中安装了与状态管理库配套的DevTools,或引入了特殊的监控组件。开发环境中启用了Webpack的HMR热加载。需要特别注意的是,这个功能完全是调试时使用的。不过,由于这个能力给人的印象过于深刻,它也成为了许多人转向React+

JavaScript 2017-12-18 发布
29 浏览

vue 项目如何引入微信sdk,使用微信分享接口

做微信的网页基本上都要接入微信的sdk,我在做的时候,也颇费了一番功夫,然后就想记录一下,供自己日后翻阅,以及让有需要的朋友可以做一下参考,如果喜欢的可以点波赞,或者关注一下,希望可以帮到大家。本文首发于我的个人blog:obkoro1.com安装sdknpminstallweixin-js-sdk--save开始之前大家可以先读一读微信公众号的接入文档,vue是单页面项目,比如你想要接入微信分享功能,分享功能在每个路由地址都要有,因为每个路由的url是不一样的,搜易就需要在每个路由地址都引入一遍。整体步骤:vue引入sdk的话,就是在路由组件里面的,组件生命周期的:creatd()和mounted()里面放代码。用伪代码,熟悉一下整体的流程,要做哪些事情://wx是引入的微信sdkwx.config('这里有一些参数');//通过config接口注入权限验证配置wx.ready(function(){//通过ready接口处理成功验证//config信息验证成功后会执行ready方法wx.onMenuS

JavaScript 2017-12-18 发布
20 浏览

基于 HTML5 Canvas 的 3D 压力器反序列化

基于HTML5Canvas的3D压力器反序列化在实际应用中,我觉得能够通过操作JSON文件来操作3D上的场景变化是非常方便的一件事,尤其是在做编辑器进行拖拽图元并且在图元上产生的一系列变化的时候,都能将数据很直观地反应给我们,这边我们简单地做了个基础的例子,给大家参考看看。本例地址:http://www.hightopo.com/guide/guide/core/serialization/examples/example_exportimport.html实践场景再现:首先我们搭建一下这个例子的场景,熟悉的朋友可能已经看出来了,这个场景分为三个部分:左、右上以及右下。HT通过ht.widget.SplitView可以很轻松地将场景分割,实现良好的页面布局,最后将这个分割组件添加进html的body体中://场景搭建dataModel=newht.DataModel();//数据容器g3d=newht.graph3d.Graph3dView(dataModel);//3D组件pro

HTML5 2017-12-18 发布
29 浏览

InfoQ征稿启事

软件正在改变世界,我们的任务是帮助正在前进的软件开发团队采用新技术和新实践。InfoQ为软件工程师提供了与更广泛的行业分享经验的机会,无论是使用创新技术得到的经验,还是早期采用阶段所使用的技巧。我们一直在寻找高质量的文章,我们鼓励从业人员和领域专家提交时兴的、具有教育意义和实用的长篇(2000至3000字)文章。文章要求投稿文章应符合以下要求:时效性。InfoQ的主要工作是在自己内部的相关社区跟进当前重要的趋势。教育意义。文章应该能够教给我们的读者一些有价值的东西。实用性。读者应该从文章中获得他们可以应用于日常工作的方法和实践。我们的读者是高级技术的影响者,他们是如饥似渴的学习者,通常会影响到他们所在组织内部的创新。因此,文章应该以一种会话式而不是学术性的方式来面对读者,着眼于传授给他们一些有用的东西。文章还应该有特定的关键摘要,并且读完文章后,读者应该能够去进行一系列实际操作,去思考一个新理论,或者去回答一个引人深思的问题。也许最好的例子就来自于我们详细的InfoQ文章发布列表。在提交之前,请阅读我们的投稿指南,确保

.Net 2017-12-18 发布
21 浏览

七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

前言ASP.NETCore2.0怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NETCore网站绑定到指定的域名,让外网用户可以访问呢?步骤第1步:准备工作一台Liunx服务器:笔者用的是【搬瓦工】的VPS服务器(CDN加速,支持支付宝,多机房选择)--低配版[2.5$每月,29.99$每年],需要的同学点此了解详情一个Linux终端管理工具:笔者推荐Xshell,点击下载Xshell准备好Ubuntu服务器器[Ubuntu17.04x64]和终端管理工具后,我们开始配置关于ASP.NETCore2.0的Linux环境。第2步:创建一个非root用户为了安全和管理的方便,我们不使用root用户,而是创建一个非root用户:addusermyuser#[myuser为用户名,可自定义指定]将提示你输入登录密码,请输入并牢记usermod-aGsudomyuser#将创建的用户添加到sudo分组中,以便使用管理员的命令exit#

.Net 2017-12-18 发布
101 浏览

非主线程中更新UI的方式对比

我们知道Android中如果需要更新UI是需要运行在主线程中,如果我们在子线程中执行View.invalidate,那会报错。为什么一定要在主线程中才能更新UI呢?因为渲染UI的任务是在RenderThread中,如果所有线程都能与RenderThread通信,那肯定会涉及到线程同步和线程安全问题,会影响更新效率。Android中在非主线程更新UI的方式有很多种,下面一一介绍。runOnUiThreadrunOnUiThread是Activity中的一个可以在主线程中运行代码的函数,查看源码可以知道,其会先判断是否在主线程,如果是就立即执行,如果不是就会添加到主线程的消息队列中:finalHandlermHandler=newHandler();publicfinalvoidrunOnUiThread(Runnableaction){if(Thread.currentThread()!=mUiThread){mHandler.post(action);}else{action.run()

消息系统 2017-12-18 发布
AD 友情赞助