跨平台的WatiForSingleObject实现】的更多相关文章

移植win32程序时,有一个难点就是涉及到内核对象的操作,需要模拟win32的实现. 其中比较奇葩的一个是WaitForSingleObject系列. Linux中没有类似的timeout实现,模拟这个接口,颇费功夫,做个笔记,以备将来. 头文件 /* * WIN32 Events for POSIX * 模拟win32的Event通知等待 */ #ifndef __LIBROOT_MY_EVENTS_H_ #define __LIBROOT_MY_EVENTS_H_ #if defined(_…
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET Core 的想法. NPOI 的介绍不多说了,不了解的可以看一下 NPOI百度百科 的介绍,在此感谢瞿总和他的团队的贡献. NPOI 的移植之路并非想象的那么容易,因为其依赖了 System.Drawing 和 System.Window.Forms 两个组件,还有一个第三方的 SharpZipLib…
一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在Mono的学习研究和推广,从<国内 Mono 相关文章汇总>你可以看到博客园有很多的同仁在探索学习,逐步形成了一个小圈子,这个圈子里的很多都是非Windows平台上运行C#程序,特别是MVP 刘冰的Web服务器Jexus 为我们dotNET跨平台提供了一个工业级的应用服务器,这个圈子里的同仁对于Mo…
前言: 其实小匹夫在U3D的开发中一直对U3D的跨平台能力很好奇.到底是什么原理使得U3D可以跨平台呢?后来发现了Mono的作用,并进一步了解到了CIL的存在.所以,作为一个对Unity3D跨平台能力感兴趣的U3D程序猿,小匹夫如何能不关注CIL这个话题呢?那么下面各位看官就拾起语文老师教导我们的作文口诀(Why,What,How),和小匹夫一起走进CIL的世界吧~ Why? 回到本文的题目,U3D或者说Mono的跨平台是如何做到的? 如果换做小匹夫或者看官你来做,应该怎么实现一套代码对应多种平…
使用方法很简单,很容易融入现有项目,使现有项目拥有Web网站功能和WebSocket,以及Socket直连! 并且包含了一个跨平台(windows/linux)工具集合; 嗯,也挺棒的^,^ 在项目中嵌入TinyWeb服务,响应特定path,或输出内部运行状态,或触发某个动作,如此一来,用户(或开发者自己)通过Web浏览器即可轻松完成与项目程序的有效沟通,至少免除了进程通讯之类的东西吧,通过特殊的path(比如http://localhost:3060/hillhim)给自己的程序留一个小小的后…
本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.MainForm改良成跨平台的服务共大家使用和相互交流:本来这篇应该分享的是nginx+iis+redis+Task.MainForm构建分布式架构后续文章,但使用.netcore来定义一个服务插件和跨平台测试经过让我既兴奋又头痛,不说了下次再分享分布式后续文章吧:那么开始今天的分享内容,希望各位多多支持:…
在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]中提到过以下错误,不知道大伙还记得不: 无法安装程序包"Microsoft.Identity.Client 1.0.304142221-alpha".你正在尝试将此程序包安装到目标为".NETPortable,Version=v4.5,Profile=Profile111"的项目中,但该程序包不包含任何与该框架兼容的程序集引用或内容文件.有关详细信息,请联系程序包作者. 不只是Microsof…
通过本文你将学会如下内容: 1,如何使用Xamarin开发跨平台(Windows,Android,iOS)应用. 2,如何使用微软的登录界面登入Microsoft账号. 3,如何使用Outlook邮箱API. 4,了解MVVM思想. 5,了解Prism框架. 原代码地址:https://github.com/NewBLife/MyOutlook Xamarin概述 Xamarin由开源项目Mono发展而来,是一套跨平台的移动开发工具,开发人员可以使用 C# 为iOS,Android, Mac以及…
在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]里面提到了Microsoft 身份认证,其实这也是一大块需要注意的地方,特作为后续补充这些知识点.上章是使用了Microsoft Authentication Library (MSAL)类库做认证,其实最后使用的是Azure AD V2.0 的OAuth2.0认证,而且支持所有用户身份认证: 个人用户(@live.com.@outlook.com.@hotmail.com) 企业(工作或学校)用户(@xxx.onmicr…
什么是Cordova? Cordova以前也叫PhoneGap,它提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码,简而言之,cordova就是连接H5和原生系统的桥.通过cordova就可以在H5页面上开发出类似原生APP的应用,而且还是跨平台的. 在windows上如何搭环境搭 1. 首先安装node.js. 不要被这个no…
谈及.NET跨平台,已经不是什么稀奇的事儿.今天我们就以Jexus服务器的部署为例.简单示范下.在这里,我用VMWare虚拟机来搭建Linux运行环境. Linux,我们选择CentOS7.大家可以前往官网下载:https://www.centos.org/download/ 大家可以看到: CENTOS 有三种,关于这三种的区别,在这里就不做过多阐述.我下载的事DVD.iso.4GB多的样子. 接下,就是在虚拟机中,安装CentOS系统. 安装成功后,我们首先在tmp目录下,通过wget命令下…
准备工作 本篇文章采用Mono+CentOS+Jexus的方式实现部署.Net的Web应用程序(实战,上线项目). 不懂Mono的请移步张善友大神的:国内 Mono 相关文章汇总 不懂Jexus为何物的请移步:Jexus - ASP.NET跨平台从这里开始! 该项目采用标准的MVC5+EF6.1.3+Jquery UI的形式实现,目前运行稳定,略有小瑕疵积极修复中(文章最后会提到). 文章中的Linux系统为:腾讯云 CentOS 7.1 64位 数据库为SQL Server 2008R2(注意…
Mono 3.2 发布了,对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新. Mono 3.2 主要新特性: LLVM 更新到 3.2 版本,带来更多的编译优化 默认使用 SGen Garbage Collector 垃圾收集器,提供3种新的实验模式:Low pause mode.Low promotion nursery.Mostly precise stack scanning: FullAOT编译器生成更优化的代码 Mono 3.2 基础类…
Xamarin 支持使用C#开发基于Android.IOS.WindowsPhone应用开发,最大特点C#+跨平台,详细说明问度娘. 安装 研究 想体验研究的点击查看页面 Xamarin For Visual Studio 3.0.54.0 完整离线破解版 我也下载了研究下,破解有时候有问题,一登陆就变成试用版,需要重新生成License,挺烦人,于是写了段批处理,放入记事本中另存为crack.bat执行,则可再次生成License. @Entitlements.bak为破解后生成的Entitl…
C#依托于mono平台可以实现Unix平台服务器端开发已经不是什么新鲜事了,而Xarmain公司(初始成员大多来自原Mono.MonoTouch.Mono For Android成员)继续将C#的先进性带到了移动平台 —— 这也不是新鲜事了!但是国内的学习资料却很少,倒是有培训班已经看准了这个赚钱的机会,CSDN应该是和Xamarin有合作在国内率先开始了Xamarin移动跨平台开始的课程(避免广告嫌疑,我就不贴地址了),虽然说我作为一个非专业移动端的程序员,因为懒的原因没有学习过Java和Ob…
概述 上一篇 C#移动跨平台开发(1)环境准备发布之后不久,无独有偶,微软宣布了开放.NET框架源代码并且会为Windows.Mac和Linux开发一个核心运行时(Core CLR),这也是开源的!IT媒体网站纷纷转载,博客园的C#开发者们热泪盈眶(泥煤都等这一天好久了!) 与此同时VS2015预览版更是直接集成了Android模拟器,但是其实里面并没有说集成IOS模拟器,我不知道大家是怎么得出可以直接用VS来开发Android和IOS应用的.不管怎么说,这都是个好消息.那么问题来了,C#如何来…
在 Linux Ubuntu 上成功编译 dnx 之后,会在 artifacts/build/ 文件夹中生成 dnx-coreclr-linux-x64/ 与 dnx-mono/ 这2个文件夹,前者是基于 coreclr 的 dnx ,后者是基于 mono 的 dnx . 这篇博文中我们将使用基于 coreclr 的 dnx 运行 ASP.NET 5 示例程序,而 dnx 以及它所需的一切都在 dnx-coreclr-linux-x64/ 的 bin/ 文件夹中,所以只需通过下面的命令就可以运行…
在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 mono,所以先要安装 mono,而且最好是用最新的 mono 源代码进行编译并安装. 我们实际成功编译的操作步骤如下(假设将 mono 安装到 /data/mono_build 目录): mkdir /data/mono_build PATH=/data/mono_build/bin:$PATH g…
前言 八年的坚持敌不过领导的固执,最终还是不得不阔别已经成为我第二语言的C#,转战Java阵营.有过短暂的失落和迷茫,但技术转型真的没有想象中那么难.回头审视,其实单从语言本身来看,C#确实比Java更优秀(并非C#天生丽质,而是它站在了巨人的肩膀上). 本文并非为.NET正名而来,而仅仅是分享作者近几年在ASP.NET跨平台方面的研究与实践经验,算是对八年的.NET之路作一个阶段性的总结. .NET技术自诞生以来,便一直因其跨平台能力差而广受诟病.这里面有微软有意为之,也有别有用心之人在混淆视…
Asp.Net跨平台的文章园子里有很多,这里给自己搭建的情况做一下总结,方便以后查看. 参考网站:   http://www.linuxdot.net/(Linux DotNET大本营 )  http://www.cnblogs.com/shanyou/p/4677569.html(张善友)  http://www.cnblogs.com/haoxilu/p/3813907.html 一.系统安装 使用VMware +Ubuntu14.04 64位系统.这个没什么好说的. 二.环境配置 1.对当…
Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshelf-project.com GitHub:http://github.com/topshelf/Topshelf 下面就开始来学习. 创建项目 1.新建一个控制台程序 2.添加引用 我们直接搜索 Topshelf log4net 或者Nuget控制台:Install-Package Topshelf.Log4Net 正常情况下 直接…
ASP.NET 5 is dead ASP.NET 5在今年早些时候被宣判死刑了.但是这并不影响我们之前在ASP.NET 5乃至ASP.NET MVC平台上的经验累积--没错,微软改名部门又立功了!他们觉得ASP.NET 5会让人觉得是4.6的升级版,所以改名成了ASP.NET Core 1.0...顺带把.NET Core 5.0重命名为了.NET Core 1.0,EF7也随着变为了EF Core 7. 其实M$这次改名不算错,的确,5是与4.6的关系不是升级而是另起炉灶全新开发,应该是并排…
很早之前就开始关注.net跨平台,最近正好测试了下用EF6连接mysql,于是就想直接把网站扔进Linux.查了很多资料,鼓捣了两个晚上,终于成功. 这里我使用的是budgetvm的1G openvz vps,centos7 64位.原本按照普遍的做法编译mono,各种失败,之后在官网上看到了官方推荐的安装方法,简单有效. 1.在root权限下执行 rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3…
在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读. 在本文将介绍如何配置类库项目支持不同的平台,并为不同的平台进行兼容的编码. 创建一个.NET Core类库 首先我们创建一个.NET Core的类库项目. 结构如下 设置项目支持的平台 我们打开“project.json”文件,会看到如下内容: 其中“framework”就是用来配置所支持的目标,默认为netstandard1.…
2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上用V2015开发的,以self-contained应用部署方式发布到Linux服务器.Linux服务器用的是Ubuntu 14.04,站点通过supervisor以服务方式运行,部署在2台阿里云服务器上,用了1台阿里云内网负载均衡. 虽然是很简单的站点,虽然是很小的一步,但是进入生产环境就意味着对性…
去年 11 月的时候,微软开源了 .NET CoreFX,然后是今年 2 月份的 .NET CoreCLR.自那时以来,已经有大约 3500 人在 GitHub 上进行了提交,而且贡献者的人数还在持续增长--他们不仅来自社区.还来自微软内部.今天,微软召开了".Net 社区虚拟大会"(dotnetConf),包括微软的 Scott Hanselman 和 Xamarin 的 Miguel De Icaza 在内的知名人士,都将在 Channel 9 的直播上与大家见面. 下方的信息图展…
Jexus作为一款运行于Linux/FreeBSD平台上,以支持ASP.NET著称的高性能HTTP服务器和反向代理服务器,继5.6版完成对OWIN标准应用的支持后,就把着力点放到了对ASP.NET5的支持. 但是,由于ASP.NET5与之前的ASP.NET相比,不管是从运行环境还是部署方式都发生了革命性的变化,Jexus很难像“前ASP.NET时代”那样,把ASP.NET5轻易地纳入其工作进程内直接运行. 支持ASP.NET5,摆在Jexus面前有多种待选方案,比如利用OWIN协议针对ASP.N…
导语 昨天上午,微信在广州举办了微信公开课Pro.于是,精神哥这两天的朋友圈被小龙的"八不做"刷屏了.小伙伴们可能不知道,下午,微信公开课专门开设了技术分论坛.在分论坛中,微信开源了跨平台的网络组件Mars. 之前Bugly也为大家介绍过Mars的一些相关模块的内容: 微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog 微信终端跨平台组件 mars 系列(二) - 信令传输超时设计 今天,微信的小伙伴和大家一起聊聊Mars的设计原则以及发展史. 背景 2012 年中,…
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/9DJxipJaaBC8yC-buHgnTQ 作者简介: 曹少琨,微信移动客户端开发工程师,2014年加入腾讯,从事手Q跨平台移动服务框架 MSF 的开发及优化工作,2015 年转入微信终端基础开发组参与网络组件的开发及维护工作. 前言 mars 是微信官方使用 C++ 编写的业务性无关.平台性无关的终端基础组件,目前在微信 Android.iOS.Wi…
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/FbiSLPxFdGqJ00WgpJ94yw 导语 精神哥前阵子去参加了好友小青在北京办的T沙龙,探讨移动端热更新相关的话题.Bugly 曾为大家介绍过不少腾讯内部的热更新的框架,正好这次看到了美团,去哪儿以及微博同学在应用热更新方面的实践. 上周为大家整理了<美团大众点评 Hybrid 化建设>,本周我们继续带来"去哪儿网 无线 iOS…