[译] 在 ASP.NET Core 中创建自定义模板引擎
几个月前,Taylor Mullen在"The Monsters Weekly"中谈到了关于ASP.NET Core里的Razor引擎。在采访中的某个时刻有人指出,在MVC的设计中,我们可以轻易地向框架内插入一个新的模板引擎。还有人指出,实现一个模板引擎实际上是一件非常复杂的事情。这令我们去思考,如果我们有一个现有的模板引擎的话应该怎么办?向MVC框架中插入一个新的模板引擎到底有多简单?
几个月前,Taylor Mullen在"The Monsters Weekly"中谈到了关于ASP.NET Core里的Razor引擎。在采访中的某个时刻有人指出,在MVC的设计中,我们可以轻易地向框架内插入一个新的模板引擎。还有人指出,实现一个模板引擎实际上是一件非常复杂的事情。这令我们去思考,如果我们有一个现有的模板引擎的话应该怎么办?向MVC框架中插入一个新的模板引擎到底有多简单?
WPF 中内置了许多中特效与变换,在一般的日常使用中已经足够,但是如果想要实现更加强大的特效,必须使用 HLSL (High Level Shader Language / 高级着色器语言) 来手写 Pixel Shader (像素着色器) 以便能够为控件带来丰富多彩的效果,比如说下图中的边缘羽化特效:
在 Dopamine 的 issue 中,有人提到了想让 Dopamine 暴露一组 API 以供 Rainmeter 调用。如果直接将 IPlaybackService
暴露出去是没有问题的,但是难以控制外部程序对其本身的修改,并且也无法广播通知提供播放状态的改变,相对于 DDE 和 Socket,WCF 不仅便于敏捷开发,而且其回调机制可以模拟事件。
从某天起,整个系统的响应都变得极为迟缓,具体表现为 explorer 打开一个文件夹要经过 3 秒才能显示,打开 taskmgr 甚至要等待 10 秒,Visual Studio 加载 pdb 非常卡。
当为 IPC 调用使用 MemoryMappedFile.CreateNew()
方法创建共享内存时,其可访问性级别至少要设置为 MemoryMappedFileAccess.ReadWrite
,但是,当调用 MemoryMappedFile.CreateViewStream(long offset, long size, MemoryMappedFileAccess access)
为共享内存创建流的时候,却不能将 access
的可访问性设置为 MemoryMappedFileAccess.Write
,而必须设置为 MemoryMappedFileAccess.ReadWrite
,这一点在 MSDN 中并没有明确指明,但是 MemoryMappedFileAccess
的注释中却说当创建 View 的时候 Write
级别是可以被设置的: