首页 文章 精选 留言 我的

精选列表

搜索[持续测试],共10000篇文章
优秀的个人博客,低调大师

ASP.NET Core框架揭秘(持续更新中…)

之前写了一系列关于.NET Core/ASP.NET Core的文章,但是大都是针对RC版本。到了正式的RTM,很多地方都发生了改变,所以我会将之前发布的文章针对正式版本的.NET Core 1.0进行改写。除此之外,我还会撰写一系列与此相关的文章,这些文章以ASP.NET Core为核心,我个人将它们分成三个主要的部分,即编程基础、支撑框架和管道详解。其中编程基础主要涉及与ASP.NET Core独特的编程模型和相关编程技巧。支撑框架则介绍支撑ASP.NET Core的多个独立的框架,比如依赖注入、配置模型、配置管理等等。至于最后一部分管道详解,我们会介绍ASP.NET Core最为核心的部分,即用以处理请求的管道,以及众多中间件。 “不要重复制造轮子”是我写文章甚至写书的一个基本原则,我不会撰写你可以从其它地方可以轻易获取的内容,更不会翻译微软的官方文档,所以本系列文章将打上Artech个人标签,好坏暂且不论,至少它们会是独特的,与众不同的。值得一提的是,这些文章将在个人公众帐号(Artech1984,大内老A)上发布,如果你希望采用这种阅读方式,或者希望得到及时的推送提醒,可以关注扫描左上方二微码关注。 第一部分 编程基础 如果没有Visual Studio 2015,我们如何创建.NET Core项目 ?通过几个Hello World感受.NET Core全新的开发体验难道.NET Core到R2连中文编码都不支持吗? 第二部分 基础框架 依赖注入 控制反转(IoC) 依赖注入(DI) 服务注册与提取 构造函数的选择与生命周期管理 文件系统 读取并监控文件的变化 FileProvider是个什么东西? 由PhysicalFileProvider构建的物理文件系统 由EmbeddedFileProvider构建的内嵌(资源)文件系统 扩展文件系统构建一个简易版“云盘” 配置管理 读取配置数据 配置模型设计详解 Options模式 针对不同类型的配置绑定 多样性的配置源:内存变量,环境变量和命令行参数 三种针对文件(JSON、XML与INI)的配置源 将配置保存在数据库中 如何实现配置与源文件的同步 为什么针对XML的支持不够好?如何改进? 配置的同步机制是如何实现的? 日志 采用统一的模式记录日志 将日志输出到控制台 将日志写入Debug窗口 利用EventLog写日志 利用TraceSource写日志 第三部分 管道详解 模拟管道 采用管道处理请求 管道如何处理请求 管道如何创建 真实管道 中间件究竟是个什么东西? 服务器在管道中的“龙头”地位 自定义一个服务器感受一下管道是如何监听、接收和响应请求的 应用的入口——Startup 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter 管道是如何随着WebHost的开启被构建出来的? 补遗 如影随形的”依赖注入”[上]: 从两个不同的ServiceProvider说起 如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法 ASP.NET Core应用中如何记录和查看日志 如何远程关闭一个ASP.NET Core应用? 如何设置和获取与执行环境相关的信息? 第四部分 中间件 静态文件 以Web的形式发布静态文件 条件请求与区间请求 StaticFileMiddleware中间件 DirectoryBrowserMiddleware中间件 DefaultFilesMiddleware中间件 路由 注册URL模式与HttpHandler的映射关系 路由系统的核心对象——Router Router的创建者——RouteBuilder 来认识一下实现路由的RouterMiddleware中间件 内联路由约束的检验 错误处理 三种呈现错误页面的方式 DeveloperExceptionPageMiddleware中间件 ExceptionHandlerMiddleware中间件 StatusCodePagesMiddleware中间件 作者:蒋金楠 微信公众账号:大内老A 微博: www.weibo.com/artech 如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号 蒋金楠的自媒体将会停用)。 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 原文链接

优秀的个人博客,低调大师

移动需求持续上升 WIFI性能能否满足?

今天,90%的消费者拥有至少一个具有无线连接功能的设备,如笔记本电脑,智能手机,或平板电脑。需要移动办公的企业用户越来越多。据统计,支持远程工作至少需要三个无线网络连接的设备,一台笔记本电脑、平板电脑和智能手机。 近日,高性能的无线网络供应商Xirrus,在对300名北美和欧洲的Wi-Fi用户的调查中发现,有76%的消费者在使用他们家庭以外的无线网络。而在国内,有94%的用户都在使用公共Wi-Fi。 而在大多数受访者中,有79%的用户认为公共Wi-Fi是不安全的,不会使用。而在国内,有62%的用户依然非常希望连接到公共Wi-Fi中。 此外,超过有超过一半的受访者,会尝试改变更好的Wi-Fi体验。49%的人会因为无线网络的原因改变他们的首选航空公司。 当我们的无线网络连接很烂时,84%的受访会选择向网络提供商报告Wi-Fi故障。如果有其他选择,我们大多数人会毫无疑问的选择更好的无线网络连接。即使 在今天,随着802.11n的普及,以及802.11ac的逐渐部署,无线网络连接将面临更多挑战,比如过于频繁的视频会议。 奇怪的是,Xirrus还发现了一个令人惊讶的数字,在Wi-Fi用户中有三分之一拥有某种类型的可穿戴设备,如的SmartWatch或健身带。从这些调查来看,苹果推测其智能设备自推出以来已经下降90%的看法还为时尚早。 在同一个地方为几千个用户及设备提供无线连接服务,这种需求在未来将越来越普遍,这也难免会让我们现有的无线网络变得更糟。 根据ABI Research的统计,截止到2014年有超过230亿个Wi-Fi设备被单独售出,再加上物联网设备的所有互联网市场,IDC预计,到2020年这一 市场将达到71000亿美元,然而根本没有足够的无线带宽去支撑这一市场的发展速度。 目前,802.11ac的第二波产品来势汹汹,它允许我们可以通过三种不同规格的Wi-Fi客户从单个接入点同时收发数据。当然,要支持802.11ac的这些特性不仅需要新的Wi-Fi设备,还需要建立有线基础设施,以支持我们无尽的无线数据带宽。 Xirrus的首席执行官巴蒂尔巴克利,在一份声明中说,“我们现在比以往任何时候更加依赖无线网络。对无线网络的扩展连接,以及设备连接质量的期望已经把Wi-Fi网络需求推向了风口浪尖。而无处不在的网络连接也将成为企业发展的基础所在。“ 所以,无论你是一个CEO或者一个不起眼的网络技术人员,准备好升级你的网络吧。用户不仅爱自己的无线网络,他们更需要高质量大数据量的无线传输需求,而这种需求只会越来越高。 原文发布时间为: 2015年11月25日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

优秀的个人博客,低调大师

Android自定义加载动画(持续更新中...)

准备做一个Android自定义加载动画的合集,主要通过自定义View实现一些常见的加载动画,也会模仿一些主流APP好看的加载动画。项目源码同步上传到了个人github上,欢迎大家star,fork,提issues,一起交流进步。 目前实现了几种效果,以后会陆续加入其他效果: 通过动画可以实现一些绚丽的效果,平时我们在使用过程中,有几点需要咱注意一下: 1.OOM的问题: 这个问题主要出现在帧动画上,Frame(帧动画)是通过顺序播放一系列图像从而产生动画的效果,可以简单理解为图像切换动画。很明显,当图片数量过多并且图片过大的时候,就极容易出现OOM的现象。之前我在项目中就遇到过这种情况: Android性能优化之Bitmap导致的内存溢出 所以在实际项目开发中应该尽量避免使用帧动画,对于那些配置低,内存小的手机很容易出现内存溢出的情况导致应用崩溃。 2.无限循环动画的问题: 这个问题主要出现在属性动画来实现无限循环,很常见的就是加载动画。如果当前Activity正在使用无限循环动画,退出当前Activity或者将当前Activity切入后台时,没有及时结束动画。可能会导致Activity无法释放从而导致内存泄漏。解决办法就是在自定义的加载动画中进行判断: @Override public void onWindowFocusChanged(boolean hasWindowFocus) { super.onWindowFocusChanged(hasWindowFocus); if (!hasWindowFocus) { endAnimation(); } } @Override protected void onWindowVisibilityChanged(int visibility) { super.onWindowVisibilityChanged(visibility); if (visibility != VISIBLE) { endAnimation(); } } 在退出当前Activity或者将当前Activity切入后台时,结束动画,这样及时释放Activity,防止内存溢出。 3.Handler的问题 Android动画中,尽量少用Handler来实现异步任务,因为使用Handler如果处理不当,很容易造成内存泄露。其实Android动画中已经封装好了处理异步任务的方法: public void postInvalidateDelayed(long delayMilliseconds) {} 关于无限循环动画可以设置重复次数,然后添加动画监听,在动画重复时进行操作: valueAnimator.setRepeatCount(ValueAnimator.INFINITE); valueAnimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { //处理动画循环业务 } }); 4.硬件加速 复杂的动画建议开启硬件加速,提高动画的流畅性。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册