在使用.NET开发时,由于种种原因,可能希望使用C++编写部分代码,例如希望通过使用C++提高性能,或是希望重用既有的代码。而.NET平台提供了平台调用(P/Invoke)功能,可以方便地调用其他语言编写的动态链接库(dll)。平台调用功能可以在各种.NET环境,包括.NET Core、.NET Framework、UWP下使用。
Docker通过端口绑定部署IPv6网站
只需要进行简单的端口绑定,甚至无需为Docker开启IPv6支持,用户就能通过IPv6来访问Docker容器中的服务。
解决Apache中WordPress中文路径404问题
遇到的问题:
在Apache服务器中部署WordPress,访问“index.php/测试”形式的页面遇到404错误。访问英文名称的页面正常,搜索功能正常。
C++编码理解以及中文显示
要正确处理编码,需要理解一个程序从代码到用户阶段的几个编码:
- 代码编码:代码文件使用的编码
- 执行编码:编译完的可执行文件中使用的编码
- 显示编码:在用户的界面上显示时,系统渲染文本使用的编码
最简单的UWP最小化运行
通过Extended Execution的功能,UWP应用能够实现最小化或锁屏时保持运行状态。为了尽可能地简化Extended Execution的使用,我写了一个帮助库ExtendedExecutionHelper,在GitHub上开源,可从NuGet上获取。
继续阅读“最简单的UWP最小化运行”
利用UWP数据保护功能加密字符串
UWP平台支持使用Windows系统自带的Data Protection功能进行数据加密,密钥由操作系统进行管理,开发者无需考虑密钥的生成和分发问题。该功能可以将数据加密为只有特定用户才能解密的密文。
继续阅读“利用UWP数据保护功能加密字符串”
解决Entity Framework Core 2.0命令行工具与UWP不兼容的问题
如果你在一个面向16299以上版本系统的UWP项目中使用Entity Framework Core 2.0,使用Add-Migration等命令行工具时,命令行工具会直接拒绝运行,出现如下错误信息:
Startup project 'App4' is a Universal Windows Platform app. This version of the Entity Framework Core Package Manager Console Tools doesn't support this type of project. For more information on using the EF Core Tools with UWP projects, see https://go.microsoft.com/fwlink/?linkid=858496
替代lock语句块实现await独占访问
C#中有lock语句块和Monitor类可以实现线程锁,实现对资源的独占访问。但是,当像下面这样试图在lock语句块中使用await时会出现错误,无法生成:
lock (streamReader)
{
await streamReader.ReadLineAsync();
} //编译错误
此时,也不能自作聪明地使用Monitor类实现线程锁,那样虽然能够生成,但是执行结果与你设想的是不同的。像下面这样的代码并不能实现独占访问:
Monitor.Enter(streamReader);
await streamReader.ReadLineAsync();
Monitor.Exit(streamReader); //不能实现功能
UWP后退功能处理
UWP后退功能处理有三个要点:一是响应系统后退键,二是在桌面系统上显示后退键,三是在全平台上实现后退时的确认。 继续阅读“UWP后退功能处理”
UWP控件如何锁定长宽比
在UWP界面设计的过程中,有时候我们需要锁定一些控件的长宽比,但又需要自动调整控件的大小。控件并没有直接实现锁定长宽比的功能,但只需要简单的代码即可实现自动缩放的情况下锁定长宽比。 继续阅读“UWP控件如何锁定长宽比”