.Net Framework

【转载】漫画赏析:Linux 内核到底长啥样

烂漫一生 提交于 2020-10-25 11:26:25
漫画赏析:Linux 内核到底长啥样 今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。 在开始,我们先来看看这幅漫画的全貌! 这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。 地基(底层) 作为一个房子,最重要的莫过于其地基,在这个图片里,我们也从最下面的地基开始看起: 文件系统 地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着“文件”——电脑中的文件。 进程 左上角,有一只胸前挂着 421 号牌的小企鹅,它表示着 PID(Process ID) 为 421 的进程,它正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。 看门狗 在右下角有一只小狗,它是看门狗(watchdog),这代表对文件系统的监控。 一层(地面层) 看完了地基,接下来我们来看地基上面的一层,都有哪些东西。 进程表 在这一层,最引人瞩目的莫过于中间的一块垫子,众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。 左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话—

[译] APT分析报告:05.Turla新型水坑攻击后门(NetFlash和PyFlash)

倾然丶 夕夏残阳落幕 提交于 2020-10-25 07:27:21
这是作者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助。前文分享了一种新型无文件APT攻击Kraken,它会利用Windows错误报告服务逃避检测。这篇文章将介绍Turla新型水坑攻击后门(NetFlash和PyFlash),研究人员发现Turla对Armenian的知名网站发起水坑攻击,通过伪造Adobe Flash更新,欺骗受害者下载两个新型恶意软件NetFlash和PyFlash,从而实现恶意攻击,整个攻击的TTP基本没有变化 ,但Turla第一次使用了Python后门程序。 原文标题:Tracking Turla: New backdoor delivered via Armenian watering holes 原文链接: https://www.welivesecurity.com/2020/03/12/tracking-turla-new-backdoor-armenian-watering-holes/ 文章作者: Matthieu Faou 发布时间:2020年3月12日 文章来源:Welivesecurity.com 推荐文章: https://www.freebuf.com/articles/network/230436.html 文章目录 一.什么是水坑攻击 二.Turla组织

进击吧! Blazor !第二期 页面制作

别等时光非礼了梦想. 提交于 2020-10-25 06:34:53
Blazor 是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .Net 。 Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程,它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术,但它使用 C#语言和 Razor 语法代替 JavaScript 来构建可组合的 Web UI 。通过提供用于编译到 Web 的大小和高效加载的格式,WebAssembly 可让 .Net 在浏览器中运行。 本次系列课程共7次,每2周的周六下午举办。旨在通过,理论加实践结合,从0到1 带你进入 Blazor 的世界。 分享嘉宾 · 张善友 微软 SWAT 特派专家,友浩达科技有限公司 CEO & CTO,.NET 技术专家,连续15年被评为微软 MVP 陈超超 Ant Design Blazor 项目贡献者 拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,Ant Design Blazor 项目贡献者,现就职于正泰集团 第二课 网页制作 · 上课时间: 2020年9月12日 14:00 - 16:00 上课方式: 点击下方小程序报名,报名后在 “上课方式” 中查看 上课嘉宾:陈超超 Blazor通常以Razor标记页的形式编写UI ,介绍Razor语法,路由的基本用法。 - 路由 原理简述 路由模板、NavLink组件 路由参数

利用FlubuCore用C#来写DevOps脚本

二次信任 提交于 2020-10-25 04:57:14
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采纳和使用,它的确提供了很多的优势也解决了很多的问题,但是我们也知道也并不是银弹,提供优势的同时它也给我们的开发人员和团队也带来了很多的挑战。 为了迎接或者采用这些新技术,开发团队需要更加注重一些流程或工具的使用,这样才能更好的适应这些新技术所带来的一些问题。 对于流程行问题,敏捷的Scrum能够很好的提升产品开发团队之间的协作问题,那么对于应用变的越来越复杂这种情况,它最直接的问题就是带来了开发运维的复杂性,这个时候我们就需要使用工具来解决了。 开发运维的复杂性 从字面意思可以看出开发运维的复杂性指的是开发的复杂以及运维的复杂,然后我们具体来说一下到底是怎么复杂的。 我们先说开发的复杂性, 应用由单体变成分布式,需要处理分布式系统遇到的所有问题。 我在之前的 博客 里面大致都说过遇到的一些挑战,感兴趣的同学可以跳过去看下。 除此之外就是遇到的另外一个也会导致变得复杂就是应用的构建和发布以及部署,因为涉及到的服务特别多就带来了很多的问题,所以遇到的这些问题你可以认为应该开发处理也可以认为应该运维处理,那么就合在一起叫开发运维问题吧。 针对这种开发运维问题,业内提出了DevOps支持。 DevOps DevOps (Development和Operations的组合词),他是一组过程、方法与系统的统称,用于促进开发(应用程序

dotnet core 3.0 linux 部署小贴士

蓝咒 提交于 2020-10-25 03:21:23
dotnet core 3.0 目前还是测试版,在linux下安装 sdk 需要有一些注意事项 1.下载url https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-3.0.100-preview-009812-linux-x64-binaries 2.安装指令 mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.0.100-preview-009812-linux-x64.tar.gz -C $HOME/dotnet export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet 这是可以的,但是如果你之前有dotnet sdk 其它版本,这就玩不转了 默认安装的dotnet 是 在/usr/bin 下面设置了一个链接 cd /usr/bin ls dotnet 你应该能看到这个连接了 sudo rm dotnet –r 删掉他 sudo ln –s %HOME/dotnet/dotnet /usr/bin/dotnet 重建连接 这样就ok了,dotnet –version 检查一下 然后 build run 都ok dotnet core 3.0 有个新特性,build 直接生成当前操作系统可以直接执行的程序

一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?

被刻印的时光 ゝ 提交于 2020-10-24 21:06:30
在 WPF 中打开一个 Popup 并没有想象当中容易。虽说提供了一个 IsOpen 属性用于显示 Popup,但实际上造成的 Bug 会让你解得死去活来。Win32 的 WS_POPUP 也坑,不过 WPF 会额外再带来一些,所以本文只说 WPF。 @ TOC 先说结论 本文一开始就贴出打开一个 Popup 的代码 // 在以下代码中,我们假定 popup 是我们要显示出来的 Popup,而 textBox 是 Popup 中的文本框。 private async void WalterlvDemoControl_MouseUp(object sender, MouseButtonEventArgs e) { // 必须延迟打开 Popup,如果在 MouseUp 中打开,会使得 Popup 无法获得焦点。 await Task.Yield(); popup.IsOpen = true; // 必须显式让 Popup 获得焦点,否则内部的 TextBox 输入时,IME 输入框无法跟随。 await Task.Yield(); var source = (HwndSource) PresentationSource.FromVisual(popup.Child); SetFocus(source.Handle); // 必须显式让文本框获得焦点(如果有的话)。 await

利用FlubuCore用C#来写DevOps脚本

做~自己de王妃 提交于 2020-10-24 19:58:30
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采纳和使用,它的确提供了很多的优势也解决了很多的问题,但是我们也知道也并不是银弹,提供优势的同时它也给我们的开发人员和团队也带来了很多的挑战。 为了迎接或者采用这些新技术,开发团队需要更加注重一些流程或工具的使用,这样才能更好的适应这些新技术所带来的一些问题。 对于流程行问题,敏捷的Scrum能够很好的提升产品开发团队之间的协作问题,那么对于应用变的越来越复杂这种情况,它最直接的问题就是带来了开发运维的复杂性,这个时候我们就需要使用工具来解决了。 开发运维的复杂性 从字面意思可以看出开发运维的复杂性指的是开发的复杂以及运维的复杂,然后我们具体来说一下到底是怎么复杂的。 我们先说开发的复杂性, 应用由单体变成分布式,需要处理分布式系统遇到的所有问题。 我在之前的 博客 里面大致都说过遇到的一些挑战,感兴趣的同学可以跳过去看下。 除此之外就是遇到的另外一个也会导致变得复杂就是应用的构建和发布以及部署,因为涉及到的服务特别多就带来了很多的问题,所以遇到的这些问题你可以认为应该开发处理也可以认为应该运维处理,那么就合在一起叫开发运维问题吧。 针对这种开发运维问题,业内提出了DevOps支持。 DevOps DevOps (Development和Operations的组合词),他是一组过程、方法与系统的统称,用于促进开发(应用程序

使用.NET Core创建Windows服务(一)

跟風遠走 提交于 2020-10-24 16:40:46
原文:Creating Windows Services In .NET Core – Part 1 – The “Microsoft” Way 作者:Dotnet Core Tutorials 译者:Lamond Lu 译文:使用.NET Core创建Windows服务(一) - 使用官方推荐方式 创建Windows服务来运行批处理任务或者运行后台任务,是一种非常常见的模式,但是由于云服务(Amazon Lambda, Azure WebJobs以及Azure Functions)的激增,你可能不会经常使用Windows服务了。个人而言,我非常喜欢使用Azure WebJobs, 因为我可以直接编写一个控制台程序,而不需要考虑如何云中运行它,一个批处理文件可以将其装换成一个自动化任务,并且可以保证7*24小时的运行。 但是也许你还没有使用云服务,或者你有一堆要作为Windows服务运行的旧版应用程序需要转换为.NET Core, 但是不能完全将他们转换为“无服务器”(serverless)应用。 那么这边文章就是适合你的。 在许多方面,.NET Core中的Windows服务和.NET Framework中的Windows服务完全相同。但是,在编写服务的时候,你可能会遇到一些小问题。此外,本文中,我们仅介绍“Microsoft”方式的Windows服务创建,在后续

我后悔在简历上写了“精通数据库调优”…

别等时光非礼了梦想. 提交于 2020-10-24 16:39:25
调优为何倍受受重视 众所周知,数据量大了之后,性能是大家关注的一点,所以我们在业务开发的时候,特别关注性能,做为一个架构师,必须对性能要了解,要懂。才能设计出高性能的业务系统。 对于企业实际运行的数据库系统而言,数据库性能的好坏将直接影响业务系统的服务质量,进而影响企业收入。简单来讲,数据库运行快,响应及时,那么数据库性能就好。所以,应确保数据库的运行响应时间在一个可以接受的范围内,当超过这个范围时,应该对其进行相应的调整。 越来越多的应用提出了高性能的要求。腾讯今年开始招聘.NET了,也对性能调优这一块提出了明确的要求。随手翻一翻招聘网站,.net高级开发或架构师岗位,基本都要求掌握数据库的使用及性能优化。 调优的基本原则 数据库优化的基本准则是“资源最大化”,资源主要是指CPU、内存、磁盘IO、网络IO这四种资源,所有的调优手段都是围绕资源使用开展的。资源利用最大化有两层含义: SQL 语句应当尽量高效 最小的代价实现执行目标,比如点查询场景可以用顺序扫描(即读取每一条元组和点查询条件进行匹配)实现,也可以通过索引扫描实现,显然索引扫描代价更小 SQL 语句应当充分利用资源 这一层的含义是SQL语句应当尽量充分利用资源,实现性能的极致。比如在数据排序的时候,在内存可控的范围内保证数据不下盘,让数据在内存中排序,从而提升排序效率,保证性能的最大收益。 说白了,就是少花钱,多办事

WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。...

给你一囗甜甜゛ 提交于 2020-10-24 15:41:59
最近在改一段 XAML 代码时,我发现无论如何给一个控件添加 Name 或者 x:Name 属性时都会出现编译错误:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 @ TOC 编译错误 编译时,出现错误: 无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 MC3093: Cannot set Name attribute value 'X' on element 'Y'. 'Y' is under the scope of element 'Z', which already had a name registered when it was defined in another scope. 这里的 XXX 是元素的类型,YYY 是指定的名称的值,ZZZ 是父容器的名称。 我把出现错误的 XAML 简化后大约是这样的, XXX 是 TextBox , YYY 是 RenameTextBox ,而 ZZZ 是 walterlv:Foo 。 <walterlv:Foo Background="White"> <StackPanel Orientation="Horizontal" Focusable="False">