聚合文章列表
11 浏览

.NET Core跨平台:全新布局

本文来自于cnblogs,从实例演示介绍程序集,以及多平台复用的BCL等。这个系列文章可以帮助正在学习.net的你,有更深入的了解。从本质上讲,按照CLI规范设计的.NET从其出生的那一刻就具有跨平台的基因,这与Java别无二致。由于采用了统一的中间语言,微软只需要针对不同的平台设计不同的虚拟机(运行时)就能弥合不同操作系统与处理器架构之间的差异,但是“理想很丰满,现实很骨感”。在过去十多年中,微软将.NET引入到了各个不同的应用领域,表面上看起来似乎欣欣向荣,但是由于采用完全独立的多目标框架的设计思路,导致针对多目标框架的代码平台只能通过PCL(参考《.NETCore跨平台的奥秘[中篇]:复用之殇》)这种“妥协”的方式来解决。如果依然按照这条道路走下去,.NET的触角延伸得越广,枷锁将越来越多,所以.NET已经到了不得不做出彻底改变的时刻了。一、跨平台的.NETCore综上所述,要真正实现.NET的跨平台伟业,主要需要解决两个问题,一是针对不同的平台设计相应的运行时为中间语言CIL提供一个一致性的执行环境,而是提供统一的BC

.Net 2017-11-22 发布
31 浏览

ASP.NET Core 认证与授权[6]:授权策略是怎么执行的?

IAuthorizationPolicyProviderIAuthorizationHandlerContextFactoryIAuthorizationHandlerProviderIAuthorizationEvaluator在《(上一章》中提到,AuthorizeAttribute只是一个简单的实现了IAuthorizeData接口的特性,并且在ASP.NETCore授权系统中并没有使用到它。我们知道在认证中,还有一个UseAuthentication扩展方法来激活认证系统,但是在授权中并没有类似的机制。这是因为当我们使用[Authorize]通常是在MVC中,由MVC来负责激活授权系统。本来在这个系列的文章中,我并不想涉及到MVC的知识,但是为了能更好的理解授权系统的执行,就来简单介绍一下MVC中与授权相关的知识。MVC中的授权当我们使用MVC时,首先会调用MVC的AddMvc扩展方法,用来注册一些MVC相关的服务:publicstaticIMvcBuilderAddMvc(thisIServiceCollect

.Net 2017-11-22 发布
19 浏览

VS 2017 的重大功能回顾和针对 .NET 开发者的更新

VisualStudio2017于2017年3月份发布了正式版。发布至今,已有五次更新,每次都带来更多的改进和功能,大大提升了开发者的工作效率。本文主要介绍迄今为止已发布的重大功能。全新的安装体验、性能和可靠性VS2017带来了一个新的轻量化和模块化的安装体验,可根据需要量身定制安装,它允许使用者选择自己需要安装的开发工具。为了帮助快速开始工作,VisualStudio2017Preview15.5版本已经实现并行初始化,使得解决方案的加载速度更快。其他性能改进包括将计算类代码分析移出主VisualStudio过程,以保持输入畅通无阻。智能的代码编辑器通过使用Roslyn编译器,VS能深度了解你的代码,提供诸如语法高亮、代码补全,完成列表过滤,拼写检查(输入错误变量)、未导入的类型解析、outline、结构可视化器、CodeLens、调用层次结构等智能编辑功能,还有参数帮助,以及重构工具、应用快速操作和生成代码功能。VisualStudio2017的最新版本包括智能变量命名建议和展开

.Net 2017-11-22 发布
AD 友情赞助
26 浏览

Winform界面中实现菜单列表的动态个性化配置管理

Winform界面中实现菜单列表的动态个性化配置管理在我们一般的应用系统里面,由于系统是面向不同类型的用户,我们所看到的菜单会越来越多,多一点的甚至上百个,但是我们实际工作接触的菜单可能就是那么几个,那么对于这种庞大的菜单体系,寻找起来非常不便。因此对菜单的个性化配置就显得尤为重要,本篇随笔就是基于这样的理念,提供用户对可见菜单进行一个动态配置,只选自己喜欢、常用的菜单显示出来即可,菜单的配置存储在数据库里面,在不同的客户端体验都是一样。本篇随笔主要介绍实现这样的功能的一个完整思路,部分代码逻辑可供参考。1、菜单列表的动态个性化配置的过程在我们有些软件里面,我们可能在界面上顶部放置菜单,也可能在界面的左侧放置树形列表菜单,这种情况都有可能,本篇摘取其中之一,左侧菜单进行一个介绍菜单的配置处理。例如我们在左侧根据用户权限展示相关的菜单信息,动态生成整个列表展示,大致的界面效果如下所示。然后在功能列表上提供一个右键的菜单进行菜单的刷新、配置管理,如下界面所示。通过配置功能,我们让用户进入一个配置管理界面,在其中配置显示自己感

.Net 2017-11-22 发布
16 浏览

C#版本websocket及时通信协议实现

1:Websocket有java、nodejs、python、PHP、等版本,我现在使用的是C3版本,服务器端是Fleck。客户端和服务器端来使用websocket的,下面开始讲解如何使用:2:在开始之前我们先来看看哪些浏览器支持websocket:Websocket服务器支持:3:接下来我们使用的是C#控制台程序来实现客户端直接通信的实施推送第一步服务器端:打开VS2015创建项目Webshoufa(如下图)服务器端示例展示:打开主程序入库Program.CS写入主要链接推送代码如下展示FleckLog.Level=LogLevel.Debug;varallSockets=newList();varserver=newWebSocketServer("ws://0.0.0.0:7181");server.Start(socket=>{socket.OnOpen=()=>{Console.WriteLine("Open!")

.Net 2017-11-22 发布
18 浏览

DevExpress v17.2—WinForms篇(一)

DevExpress首推团队升级培训套包,最高可省10万元!查看详情>>>用户界面套包DevExpressv17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容。开篇介绍了DevExpressWinFormsv17.2DataGridControl、DiagramControl、Editors等的新功能,快来下载试用新版本!DataGridControl支持DirectX硬件加速DevExpressWinFormsDataGrid和WinFormsCellEditors现在可以使用DirectX硬件加速,使您可以在高DPI设备上提供出色的性能。要激活DirectX绘画,请调用静态WindowsFormsSettings.ForceDirectXPaint方法。数据网格和树列表的拖放管理器v17.2为WinFormsDataGrid和TreeList控件提供了自动拖放引擎。使用新的DragAndDropBehavior(操作管理器的一部分),您可以用几行代码在各种组合中启用数据网格、树列

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

.net core2.0下使用Identity改用dapper存储数据

.netcore2.0下使用Identity改用dapper存储数据前言、已经好多天没写博客了,鉴于空闲无聊之时又兴起想写写博客,也当是给自己做个笔记。过了这么些天,我的文笔还是依然那么烂就请多多谅解了。今天主要是分享一下在使用.netcore2.0下的实际遇到的情况。在使用webapi时用了identity做用户验证。官方文档是的是用EF存储数据来使用dapper,因为个人偏好原因所以不想用EF。于是乎就去折腾。改成使用dapper做数据存储。于是就有了以下的经验。一、使用Identity服务先找到Startup.cs这个类文件找到ConfigureServices方法services.AddIdentity().AddDefaultTokenProviders();//添加Identityservices.AddTransient,CustomUserStore>();services.Ad

.Net 2017-11-22 发布
20 浏览

端到端实时处理解决方案

作为一家初创公司,Streamlio团队正在全力打造世界上第一个企业级的端到端的实时数据处理平台。从前段时间发布的StreamlioSandbox预览版中,我们可以初步了解Streamlio平台提供的服务内容。Streamlio实时处理平台由三个核心系统(Heron,Pulsar和BookKeeper)组成,其中Heron提供实时计算(compute),Pulsar提供持久化的消息系统(messaging),BookKeeper提供流存储(streamstorage)。Streamlio团队提供了一系列的技术文章来详细阐述平台的各个组成部分的特性:Heron,Pulsar和BookKeeper。在这篇文章里我们将会讨论一下我们希望的实时处理平台是怎样的,应该提供怎样的服务;并讨论实时计算,持久化的消息系统和流存储服务三个方面是怎样相辅相成,共同组成一个高效的实时处理平台。持久化的消息系统(Pulsar–Durablemessaging)消息系统就像是一个实时处理平台的神经系统,它将平台上的

消息系统 2017-10-05 发布
11 浏览

Spring AMQP 2.0.0 正式版发布

SpringAMQP2.0.0正式版发布了。主要更新内容如下:完整的Java8和SpringFramework5.0支持;包含实用测试工具的新的sring-rabbit-junit工件,包括BrokerRunningJUnit@Rule;amqp-client升级至5.0;DirectMessageListenerContainer可直接在客户端线程上使用消息,而不用在SimpleMessageListenerContainer中基于队列的逻辑;ConnectionNameStrategy选项,用于为可能的诊断命名目标代理连接;新的RabbitOperations.invoke()用于在专用的线程绑定通道上批量的模板操作;编码器对LogbackAmqpAppender

消息系统 2017-10-06 发布
AD 友情赞助
19 浏览

Android 触摸事件分发机制(二)原始事件消息传递与分发的开始

回顾在上一篇文章中,我们探索了从内核触摸事件传递到InputDispatcher线程,再与应用线程之间建立InputChannel的过程,并且我们已经看到一个最原始的触摸事件被封装成一个msg并通过InputChannel建立的socket通过sendMessage()方法跨线程通信发送给了应用的UI线程。这篇文章将会看到应用UI线程的消息队列是如何读取传递过来的触摸事件并进行处理、分发的。本篇文章主要参考了Gityuan的文章消息循环Android的消息机制的具体内容在这里不详细叙述:每个线程都可以拥有一个自己的消息队列与一个Looper,在Looper初始化的过程中,会启动一个循环来不断读取、处理队列中的消息,Android是一个事件驱动的模型,只有源源不断的事件产生与处理才能推动应用的进行。同时应该注意的是在Java与Native中各有一套消息处理的流程可以进行消息的处理。Looper当应用初始化时,会调用Looper.prepare():priva

消息系统 2017-10-07 发布
14 浏览

activemq install

ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMSProvider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位.安装如果出现如下错误:#error“Newerversionofjemallocrequired”makeMALLOC=libc#增加这个makeinstall修改redis.conf文件daemonizeyesappendonlyyeslogfileapache-activemq-install配置java环境:wgethttps://archive.apache.org/dist/activemq/5.13.0/apache-activemq-5.13.0-bin.tar.gz.tar–zxvfapache-activemq-5.13.0-bin.tar.gz/home/app/apache-acti

消息系统 2017-10-07 发布
19 浏览

NSQ深入与实践

1.介绍最近在研究一些消息中间件,常用的MQ如RabbitMQ,ActiveMQ,Kafka等。NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。官方和第三方还为NSQ开发了众多客户端功能库,如官方提供的基于HTTP的nsqd、Go客户端go-nsq、Python客户端pynsq、基于Node.js的JavaScript客户端nsqjs、异步C客户端libnsq、Java客户端nsq-java以及基于各种语言的众多第三方客户端功能库。1.1Features1).DistributedNSQ提供了分布式的,去中心化,且没有单点故障的拓扑结构,稳定的消息传输发布保障,能够具有高容错和HA(高可用)特性。2).Scalable易于扩展NSQ支持水平扩展,没有中心化的brokers。内置的发现服务简化了在集群中增加节点。同时支持pub-sub和load-balanced的消息分发。3).OpsFriendlyNSQ非常容易配置和部署,生来就

消息系统 2017-10-08 发布
AD 友情赞助
54 浏览

Kafka运维填坑

Replica无法从leader同步消息现象:集群上某topic原来只有单复本,增加双复本后,发现有些partition没有从leader同步数据,导致isr列表中一直没有新增的replica;日志分析:[2017-09-2019:37:05,265]ERRORFoundinvalidmessagesduringfetchforpartition[xxxx,87]offset1503297errorMessageiscorrupt(storedcrc=286782282,computedcrc=400317671)(kafka.server.ReplicaFetcherThread)[2017-09-2019:37:05,458]ERRORFoundinvalidmessagesduringfetchforpartition[xxxx,75]offset1501373errorMessagefoundwithcorruptsize(0)inshallo

消息系统 2017-10-09 发布
19 浏览

架构师之路-如何建立高可用消息中间件kafka

Kafka一、熟悉kafkalServer-1broker其实就是kafka的server,因为producer和consumer都要去连它。Broker主要还是做存储用。lServer-2是zookeeper的server端,zookeeper的具体作用你可以去官网查,在这里你可以先想象,它维持了一张表,记录了各个节点的IP、端口等信息(以后还会讲到,它里面还存了kafka的相关信息)。lServer-3、4、5他们的共同之处就是都配置了zkClient,更明确的说,就是运行前必须配置zookeeper的地址,道理也很简单,这之间的连接都是需要zookeeper来进行分发的。lServer-1和Server-2的关系,他们可以放在一台机器上,也可以分开放,zookeeper也可以配集群。目的是防止某一台挂了。简单说下整个系统运行的顺序:1.启动zookeeper的server2.启动kafka的server3.Producer如果生产了数据,会先通过zookeeper找到br

消息系统 2017-10-09 发布
13 浏览

OpenStack-Pike版本中的CellV2

OpenStack社区认为大规模部署nova的主要问题在于rabbitmq消息系统和DB数据库的性能瓶颈。因此CellV1和CellV2的主要工作均是拆分消息系统和数据库,使每个Cell拥有单独的rabbitmq和DB系统,然后通过API维护一层映射信息,记录Cell与实例、宿主机的对应关系。CellV1是多层嵌套概念并且已经被社区抛弃,因此这里主要介绍社区新的扩展方案CellV2.cellv2的架构API层只包含nova-api和nova-scheduler,用于统一处理和调度全局资源。API层包含nova_api和nova_cell0两个数据库。其中nova_api库包含所有的全局性资源,例如flavor、quota等;nova_cell0用于存储创建失败后没有被分配到具体host(也就没有从属的Cell)的实例。Cell之间是平等的。每个Cell管理自己的各种资源,相互没有从属关系。API与Cell形成扁平结构,理论上Cell可以扩展到多层支持海量宿主机。nova_api和nova_cell0数据库结构nova_api的数据库结

消息系统 2017-10-09 发布
15 浏览

kafka精确一次投递和事务消息学习整理

概述今年6月发布的kafka0.11.0.0包含两个比较大的特性,exactlyoncedelivery和transactionaltransactionalmessaging。之前一直对事务这块比较感兴趣,所以抽空详细学习了一下,感觉收获还是挺多的。对这两个特性的详细描述可以看这三篇文档,https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaginghttps://cwiki.apache.org/confluence/display/KAFKA/Idempotent+Producerhttps://cwiki.apache.org/confluence/display/KAFKA/Transactional+Messaging+in+Kafka需求场景精确一次投递消息重复一直是消息领域的一个痛点,而消息重复可能发生于下面这些场景1.消息发送端发出消息,服务端

消息系统 2017-10-09 发布
26 浏览

【技术分享】OS X内核大揭秘之利用篇

作者:天鸽译者:天鸽预估稿费:200RMB投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿背景知识OSX中的进程间通信(IPC)由于Mach使用了客户端-服务器的系统架构,因此客户端可以通过请求服务器进行服务。在macOSMach中,进程间通信通道的终端称为port(端口),port被授权可以使用该通道。以下是Mach提供的IPC类型。(但是,由于体系结构变化,在以前版本中可能无法使用的macOS的IPOS)消息队列/信号量/通知/锁定集/RPC关于MachportMachPort:与UNIX的单向管道类似,是由内核管理的消息队列。有多个发送方和一个接收方。Port权限:task信息是系统资源的集合,也可以说是资源的所有权。这些task允许您访问Port(发送,接收,发送一次),称为Port权限。(也就是说,Port权限是Mach的基本安全机制。)发送权限:不受限制地将数据插入到特定的消息队列中一次发送权限

消息系统 2017-10-10 发布
19 浏览

docker+jenkins+seneca构建去集中化微服务架构

前言在微服务架构中,服务发现一直是一件比较复杂的事。而且服务发现式的架构处理不好,容易产生集中化。同时,微服务的提供,不可避免的需要一些负载均衡方案,实现服务的高可用和可扩展,这无疑增加了很多复杂度。笔者认为,使用异步、基于消息的方式,可能更适合微服务架构。基于消息的微服务架构,对于所有微服务的部署条件非常简单,只需要能访问到消息服务即可。同时微服务节点的移除和增加不会影响到服务的提供。相比服务发现的架构,简单太多了。简单即是美。在这次实践中,使用到了seneca,一个nodejs微服务框架。seneca,使用seneca-amqp-transport插件,可以轻松构建基于消息的微服务。下面是架构图:https://www.processon.com/view/link/59dc2491e4b0ef561379bc25在这个架构中,我们使用的是标准的seneca定义的命令规范,这可能是所有微服务都需要遵守的一个规范,至于说使用其他语言,也很简单。封装一个seneca命令规范的库即可。不知道官方有没开发,开发起来

消息系统 2017-10-10 发布
17 浏览

log采集

需求及选型昨天在做简单日志采集分析,使用技术如下filebeat:做日志的收集kafka:日志中转,缓冲及解耦作用storm:做日志实时分析后续会再加上其它,如elasticsearch:做搜索hbase:存储在此调研只使用最上面的三项。kafka其安装不做介绍。只需做简单配置,然后创建一个topic,命令如:kafka-topics.sh--create--zookeeper192.168.101.176:2181--replication-factor1--partitions1--topicdemolog1filebeat安装不做介绍。修改filebeat.yml,注释掉其默认的elasticsearch的配置,修改要输出的log文件在最后面增加输入到kafka的信息,如:output.kafka:enabled:truehosts:["192.168.101.176:9092"]topic:demolog1在此遇到一个问题:配置好ip,但发现不

消息系统 2017-10-10 发布
18 浏览

WCF-MessageQueue-getstarted-demo

另启动一个控制台app,host刚才的WCF服务。classProgram{staticvoidMain(string[]args){ServiceHost_selfHost=null;try{//step0createMessageQueueinstancestringqueueName=@".\Private$\ReportService";MessageQueuemq=null;if(!MessageQueue.Exists(queueName))mq=MessageQueue.Create(queueName);//Step1CreateaURItoserveasthebaseaddress.//ThisaddressistheserviceaddressandclientreferesitUribaseAddress=newUri("net.msmq://localhost/private/ReportService");//Step2Cr

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