聚合文章列表
0 浏览

在C#中实现视频播放器

当我们需要在C#中实现视频播放器的时候,可以使用如下几种方法:一、使用MediaPlayerActiveX控件在C#中支持视屏播放器最简单的方式就是插入MediaPlayer控件了,在WPF中还内置了对MediaPlayer的封装MediaElement,可以通过它直接打造一个播放器。使用MediaPlayer控件的好处是简单,它已经基本封装了常用的功能,只需要很少的几行代码就可以实现媒体播放器的功能。并且,由于操作系统中已经内置了MediaPlayer,不需要额外集成播放器的文件。不过,它的一个最大的问题是视频支持格式有限。这个问题本身并不严重,在十年前就可以通过安装MediaPlayerCodecPack的方式来扩展其支持格式的。对于一些私有格式的视频文件播放,也可以采用这种方案。这种方式本身还是非常强大的,不过它带来了插件的安装问题了。如果你的程序是被许多客户端所使用的话,还是会有不少的麻烦的。插件不容易被集成安装安装完了后又不少参数要设置,并且不容易通过程序来设置它第三方插件容易和客户端环境冲突

.Net 2017-11-13 发布
0 浏览

ASP.NET没有魔法——ASP.NET Identity与授权

一个完整的ASP.NET的请求中会存在身份验证(Authentication)阶段以及授权(Authorization)阶段,英文单词Authentication和Authorization非常相似,所以很多时候会混淆这两个概念。身份验证(Authentication)的目的是知道“你”是谁,而授权(Authorization)则是当“你”访问一个资源时是否符合访问条件,符合就将访问权限授权给你进行访问,否则拒绝访问。本文将从以下几点介绍ASP.NETMVC如何使用Identity完成资源访问的限制:●资源访问的限制方式●ASP.NET中的访问限制●ASP.NETMVC中基的访问限制●ASP.NETMVC中的用户信息●ASP.NETIdentity用户身份信息填充●ASP.NETMVC访问限制的实现●ASP.NETMVC基于用户声明的访问限制及自定义限制资源访问的限制方式什么是资源?在Web中通过URI(UniformResourceIdentifier,统一资源标识符)来对HTM

.Net 2017-11-13 发布
0 浏览

Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制

在WPF或UWP中,我们平时开发所遇到的那些UI控件或组件,都直接或间接继承自Framework。例如:Grid、StackPanel、Canvas、Border、Image、Button、Slider。我们总会自然而然地认为这些控件都是有大小的,它们会在合适的位置显示自己,通常不会超出去。但是,FrameworkElement甚至是Control用得久了,都开始忘记Visual、UIElement带给我们的那些自由。阅读本文将了解我们熟知的那些功能以及限制的由来,让我们站在限制之外再来审视WPF的可视化树,再来看清WPF各种控件属性的本质。宽度和高度如果问Width/Height属性来自谁,只要在WPF和UWP里混了一点儿时间都会知道——FrameworkElement。随着FrameworkElement的宽高属性一起带来的还有ActualWidth、ActualHeight、MinWidth、MinHeight、MaxWi

.Net 2017-11-13 发布
AD 友情赞助
0 浏览

ASP.NET Core 与 Vue.js 服务端渲染

http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/原作者:MihályGyöngyösi译者:oopsguy.com我真的很喜欢在前端使用Vue.js,Vue服务端渲染直到第二个版本才被支持。在本例中,我想展示如何将Vue.js2服务端渲染功能整合ASP.NETCore。我们在服务端使用了Microsoft.AspNetCore.SpaServices包,该包提供ASP.NETCoreAPI,以便于我们可以使用上下文信息调用Node.js托管的JavaScript代码,并将生成的HTML字符串注入渲染页面。在此示例中,应用程序将展示一个消息列表,服务端只渲染最后两条消息(按日期排序)。可以通过点击“获取消息”按钮从服务端下载剩余的消息。项目结构如下所示:.├──VuejsSSRSample|├──Properties|├──References|├──wwwro

.Net 2017-11-14 发布
0 浏览

码云推荐 | 码云 Visual Studio 扩展 Gitee.VisualStudio

码云的VisualStudio扩展提示VisualStudio2013,2015,2017均有社区版,码云的VisualStudio扩展支持2017社区版,专业版,企业版。社区版基本功能和专业版一致,前提是只能用于非商业项目和开源项目。Express版可以用于商业项目,也可以只下载VisualStudioC++BuildTools,这个可以无限制使用。安装Gohttps://marketplace.visualstudio.com/items?itemName=Gitee.GiteeVisualStudio注:Gitee.VisualStudio只支持VisualStudio2015/2017。使用VisualStudio版本管理相关功能,都集中在TeamExplorerGitee.VisualStudio的各个功能,都是穿插在TeamExplorer的工作流中。Connect页打开VisualStudio之后,展开TeamExplorer面板,默认

.Net 2017-11-14 发布
0 浏览

ASP.NET Core集成现有系统认证

如果用户登录的Session不存在则再跳回到登录页面让用户登录。检查当前用户有没有某个权限的这个过程叫授权。如果没有怎么办?我们就会跳转用户到一个没有权限的提示页面,或者返回Forbidden403的HTTP状态码,这是最简单的授权。复杂的授权方式包括对角色,对具体资源访问以及操作的授权,这块我们后面再讲。当我们的ASP.NETCore项目需要与老的项目兼容的时候,就需要兼容老项目的认证方式,比如某种自定义的token(这是之前比较常见的做法)。我们需要在ASP.NETCore中根据当前用户header里面的token来判断是否为一个合法的用户。用Middleware拦截第一种简单粗暴的方法即用Middleware来拦截。在ASP.NETCore下,MVC以一个Middleware加入到整个HTTP管道。在此之前还会添加一个Routing的Middleware,注意这里的意思也就是说Routing不再和ASP.NETMVC一样属于它的一部分。正好相反,在ASP.NETCore里面是有一个MVCRouteHa

.Net 2017-11-14 发布
AD 友情赞助
0 浏览

将 UWP 的有效像素(Effective Pixels)引入 WPF

在很久很久以前,WPF诞生之初,有一个神奇的单位,它的名字叫做——设备无关单位(DIP,DeviceIndependentUnit)。微软给它描绘了一片美好的愿景——在任何显示器上显示的尺寸是相同的。Whatthe**isthisunit!!!神TM相同!!!UWP采用有效像素(EffectivePixels)来描述尺寸,这是才是能够自圆其说的一套尺寸描述;WPF的尺寸机制与UWP完全就是同一套,使用有效像素才能解释WPF尺寸变化上的各种特性!统一概念在继续讨论之前,我们必须统一几个概念。不能说那些意义不明确的词,尤其是“宽高”“大小”“尺寸”“更大”。试想你说一个按钮的宽高是200,那么它的宽高到底是多少呢?一个屏幕上的按钮和另一个屏幕上的按钮哪个更大呢?在本文中,对于尺寸,我们只说三个概念:物理尺寸(单位:厘米)显示器像素个数(单位:个)有效像素(即WPF中最常用的那个单位;在本文结束之前,这应该是一个未定义的概念)如果我们说A按钮比B按钮的物理宽度更大,那么无论它们显示在

.Net 2017-11-14 发布
0 浏览

巧用ExcelVBA和透视表制作自己的常识小词典

然后进入开发工具中的VBA开发环境,开始编写代码(formac上会有bug,本例基于Excel2016forWindows开发)IV.VBA知识点异常捕获和其他语言中的try...catch相似的是,VBA中的错误捕获是这样的:OnErrorGoToerrfailback'正常代码的try语句errfailback:'处理错误的catch语句IfErr.Number<>0ThenDebug.Print(Err.Description)EndIfResumeerrresumeerrresume:'总会执行的善后finally语句取得表格中行列最大范围的几种方法:DimlastColAsLong,lastRowAsLonglastCol=Sheet1.Cells(1,Sheet1.Columns.Count).End(xlToLeft).ColumnlastRow=Sheet1.Cells(Sheet1.Rows.Count,1).End(xlUp).ro

.Net 2017-11-14 发布
0 浏览

在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

HAL(HypertextApplicationLanguage,超文本应用语言)是一种RESTfulAPI的数据格式风格,为RESTfulAPI的设计提供了接口规范,同时也降低了客户端与服务端接口的耦合度。很多当今流行的RESTfulAPI开发框架,包括SpringREST,也都默认支持HAL规范,当RESTfulAPI被调用后,服务端就会返回ContentType为application/hal+json的JSON内容,例如:{"_links":{"self":{"href":"http://example.com/api/book/hal-cookbook"}},"_embedded":{"author":{"_links":"self":{"href":"http://author-example.com"}},"id":"shahadat","name":"ShahadatHossainKhan"}},"id":"hal-cookbook","name":"HALCookbook"}相对于仅

.Net 2017-11-14 发布
AD 友情赞助
0 浏览

讨论.NET Core 配置对GC 工作模式与内存的影响

引出问题:Asp.netcore应用在Kubernetes上内存使用率过高问题分析https://mp.weixin.qq.com/s/PqhUzvFpzopU7rVRgdy7eg这篇文章中讨论了,在默认情况下,ASP.NETCore程序跑在K8s的Docker中内存使用率>=600MB,导致Docker容器频繁重启。并探讨并做了将ASP.NETCore项目配置System.GC.Server设置为False后,内存小于<=150MB的实验。这文主要讲下什么是System.GC.Server,还有GC的二种模式。对GC工作模式的分类:.NETCore两种GC模式:ServerGC/WorkstationGCServerGC:主要应用于多处理器系统,并且作为ASP.NETCore宿主的默认配置。它会为每个处理器都创建一个GCHeap,并且会并行执行回收操作。该模式的GC可以最大化吞吐量和较好的收缩性。这种模式的特点是初始分配的内存较大,并且尽可能不回收内存,进行回收用时会很耗时,并进行内存碎片整理工作。

.Net 2017-11-15 发布
0 浏览

Ubuntu & Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践

阅读目录:Docker运行Consul环境Docker运行Fabio环境使用Consul注册ASP.NETCore2.0服务使用Docker发布部署ASP.NETCore2.0服务本篇博文的目的:在MacOS中使用VSCode开发ASP.NETCore2.0应用程序,然后在Ubuntu服务器配置Docker环境,并使用Docker运行Consul和Fabio环境,最后使用Docker运行ASP.NETCore2.0应用程序。你要的项目源码:https://github.com/yuezhongxin/HelloDocker.Sample上面配置看起来还蛮简单,但实际去操作的时候,还是遇到了蛮多的问题,并且花了很多的时间去解决,比如Docker运行Consul和Fabio,下面详细说下过程。1.Docker运行Consul环境关于Consul的概念:Consul是HashiCorp公司推出的开源工具,用于实现分布

.Net 2017-11-15 发布
0 浏览

向ASP.NET Core迁移

有人说.NET在国内的氛围越来越不行了,看博客园文章的浏览量也起不来。是不是要转Java呢?没有必要扯起语言的纷争,Java也好C#都只是语言是工具,各有各的使用场景。以前是C#非开源以及不能在Linux上使用,没有被互联网公司考虑,但它仍然有它的用途。这几年国内互联网公司进入蓬勃发展时期,所有才有这样的趋势。但并不代表C#不能做互联网应用,可以说在接下来的一年内.netcore将会成为一个很好的趋势,结合容器以及微服务架构会成为互联网公司另一个比较好的选择。作为现在在用.NET的公司,如果有机会可以考虑与时俱进,在真实项目中将.netcore用起来。作为开发者,我们不能等着这个语言好了再去学习,那时候机会已经给那些先头部队给抢了。:)你们都知道我在说什么。欢迎大家加入我建和ASP.NETCore学习群:qq:92436737我们首先来看看ASP.NETCore有哪些优势?跨平台:可以部署到Linux服务器上内置一套对云和部署环境非常友好的配置模块内置依赖注入IIS或者Kestrel(或者其它自定义)轻量级、高性能

.Net 2017-11-15 发布
AD 友情赞助
0 浏览

C#设计模式之十四模板方法模式(Template Method)【行为型】

一、引言“结构型”的设计模式已经写完了,从今天我们开始讲“行为型”设计模式。现在我们开始讲【行为型】设计模式的第一个模式,该模式是【模板方法】,英文名称是:TemplateMethodPattern。还是老套路,先从名字上来看看。“模板方法”我第一次看到这个名称,我的理解是,有一个方法的名字叫“模板方法”,后来深入学习之后,感觉最初的理解还没错,也可以换个理解方法,有一个方法包含了一个模板,这个模板是一个算法。在我们的现实生活中有很多例子可以拿来说明这个模式,就拿吃饺子这个事情来说,要想吃到饺子必须经过三步,第一步是“和面”,第二步是“包馅”,第三步是“煮饺子”,这三步就是一个算法,我们要想吃到不同的面和馅的饺子,对这三步中的任意一步就行操作就可以,也可以完全定义这三步,下面我们就来看看这个模式的详细介绍吧。二、模板方法模式的详细介绍2.1、动机(Motivate)在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体

.Net 2017-11-15 发布
0 浏览

DevExpress v17.2——增强ASP.NET GridView的功能

DevExpress首推团队升级培训套包,最高可省10万元!查看详情>>>在下一个主要版本v17.2中,我们将为DevExpressASP.NETGridView添加一些优秀的新功能。在本文中为大家介绍的所有功能都可用于GridView的ASP.NETWebForms和ASP.NETMVC版本。合并列分组新版本在ASP.NETGridView控件中引入了一种显示分组行的新方法。目前,您可以显示分组行,以便第一个分组列显示在其他列上方,数据嵌套在下面:从v17.2开始,就可以使用新的选项来删除嵌套的组行,并将它们合并到一个“groupingline”中:这节省了空间,并且还提供了更多空间来显示数据行。这是一个选项,所以两种显示类型都可用。标题过滤器搜索我们还通过添加搜索文本框来改进网格的标题过滤器功能。新的“标题过滤器搜索”可以帮助您的最终用户在搜索大量记录时节省更多的时间。更容易导出API下一个版本的另一个改进是我们将导出功能从ASPxGridViewExporter移到了ASPxGridVi

.Net 2017-11-15 发布
0 浏览

ASP.NET Core 异常处理与日志记录

1.ASP.NETCore异常处理与日志记录1.1.异常处理1.1.1.异常产生的原因及处理异常是在编程时,一个意外的事件,如无效的输入或连接丢失,当程序执行破坏的指令流时就会出现这种情况。Exception是Exceptionalevent的简要表达。异常的实现需要保存抛出异常捕获点的必要信息,这会一定程度上导致程序变慢,这也是人们诟病异常性能的原因。异常(Exception)是一种非程序原因的操作失败,而错误(Error)则意味着程序有缺陷。Exception是一种类.例外会中断执行堆栈直到被捕获.一个异常可以用来传达一个错误,但是更普遍的是用来表示出现了一些例外.1.1.2.ASP.NETCore中启动开发人员异常页面想要在应用程序中显示详细的异常信息,展示错误详情的页面在Microsoft.AspNetCore.Diagnostics包中,但是自从ASP.NETCore2.0开始Microsoft.AspNetCore.All包里面包含了所有以Microsoft.AspNetCore开头的包,所

.Net 2017-11-15 发布
0 浏览

超酷炫.NET数据可视化 - 专业图形视图应用集锦(中文视频)

LightningChartUltimateSDK是ArctionLtd公司开发的最快的.NET和Windows2D和3D测量、管理和研发数据可视化SDK。它是一个能全面实现GPU加速(Direct3D)和性能优化的数据控件,大规模数据都可以通过它以二维XY图表、三维XYZ图表、极坐标图、饼图和环面图等图表展现出来。从v5.0开始,也包括WPF图表。LightningChartUltimateforWPF使用带有我们自主开发的图形程序的低级DirectX。其他WPF图表建立了慢系统/窗口/媒体图形程序,主要区别在于渲染性能。LightningChartUltimateSDK的图形视图是专门为专业高速数据采集软件、基于PC的示波器、信号分析仪、科学研究、G.I.S、医学和其它实时测量以及信号监视应用而特别设计的。图形采用创新的CPU负载节省技术,优化高速采样信号数据处理,处理庞大的数据量,这样其它所有的图表/图像控件在进行相关工作时会不会出现延迟、卡机或者崩溃现象。3D视图实现了自由可旋转三维空间的数据可视化。通

.Net 2017-11-15 发布
0 浏览

WPF 简易的喷泉效果

这两天领导让我做个喷泉的效果,要把一个个UserControl从一个位置喷出,然后,最后落在最终需要在的位置。喷泉效果说白了,就是两个步骤:1、放大,从0放大到需要的倍数;2、缩小,平移,从放大的倍数还原到UserControl的原始大小,并且定位到最终的位置。虽然,只有两步,但是,作为写动画的新手,还是有点费事的,所以,采用了先用Blend设计,然后再转换为C#代码的过程。一、Blend设计单个UserControl的放大和移动效果1、在Blend里,新建个项目,然后,在Grid下,放个Canvas,在Canvas下放个Image(先拿Image来设计)2、在Blend左侧的时间线,选中image控件,然后点击上面的+号,会弹出新增动画资源的弹窗,点击确定。3、根据需要,拖拽左侧的时间线(黄线)到对应位置,然后,对红框中的Image控件,进行放大、缩小、位置调整等操作。4、XAML部分,产生了相应的代码

.Net 2017-11-15 发布
0 浏览

Asp.Net Core API网关Ocelot

首先,让我们简单了解下什么是API网关?API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。其次,我们了解下Ocelot框架Ocelot的目标是使用.NET运行微服务/面向服务架构,我们需要一个统一的入口进入我们的系统。Ocelot是一堆特定顺序的中间件。Ocelot框架内部集成了IdentityServer和Consul(服务注册发现)。Ocelot开源地址:https://github.com/TomPallister/Ocelot接下来,我们就针对Ocelot的具体用法展开介绍。这里使用的Ocelot版本为2.0,.NetCore版本2.

.Net 2017-11-15 发布
0 浏览

11月编程语言排行榜:Python逆袭C#上升到第4

TIOBE11月编程语言排行榜,Python逆袭C#曾经有一段时间,脚本语言因其易于编写和易于运行的特性,被预测在未来将发展强大。因此,Perl,Python,PHP和Ruby等语言在当时非常流行。而今天看来,似乎只有Python的发展很强势,其他脚本语言都在逐渐走出前20名,或排名趋于下滑。在前20名的排行中,可以看出Python已经超越C#,上升至第4的位置。无论在哪个榜单中Python都是保持着非同寻常的增长速度,为什么Python增长的这么快?众所周知,Python功能非常强大,标准库的极其丰富,从Web开发到数据科学,再到DevOps,而且现在有越来越多的应用是使用Python开发的。11月编程语言排行榜TOP20榜单:脚本语言下滑的主要原因可能还是性能问题,当然这可能取决于很多因素,问题是有多少情况下,性能问题才是致命的。脚本语言中的大多数错误都是运行时发生的,人们对质量要求越来越高,几乎没有人敢用脚本语言编写一个关键的大型软件系统

.Net 2017-11-15 发布
0 浏览

SharpGL(46)用Billboard绘制头顶文字

CSharpGL(46)用Billboard绘制头顶文字本文介绍CSharpGL用Billboard绘制头顶文字的方法。效果如下图所示。下载CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入(https://github.com/bitzhuwei/CSharpGL)固定大小的Billboard在OpenGL的渲染流水线上,描述顶点位置的坐标,依次要经过objectspace,worldspace,view/cameraspace,clipspace,normalizeddevicespace,Screen/windowspace这几个状态。下表列出了各个状态的特点。SpaceCoordinatefeatureobject(x,y,z,1)从模型中读取的原始位置(x,y,z),可在shader中编辑world(x,y,z,w)可在shader中编辑view/camera(x,y,z,w)可在shader中编辑

.Net 2017-11-15 发布
AD 友情赞助