C# 中 Stream(流)的使用简介 在 C# 中提供了 Stream 类, 用于流的操作, 比如读取和写入. 流实际是一个被激活的数据源连接, 或者说它是一个有序的字节序列. 在使用时首先需要打开流, 在使用完毕后需要关闭流. 如果使用结束后没有关闭针对某个数据源的流, 就可能造成内存泄漏, 线程饥饿等问题(因为资源一直被占用), 以及其他的性能问题. 2021-05-25 C# #C# stream
Docker DNS 简介 本文介绍 Container 是如何发现各自存在的. 即: 理解 Docker 内部虚拟网络中容器如何利用 DNS 简化相互通信 DNS 在自定义网络中如何工作 使用 --link 在默认的 bridge 网络中启用 DNS 2021-05-24 #Docker DNS Networking
Docker Networking 基础 本文主要介绍 Docker 的网络基础, 包括: docker container run -p 命令 docker container port 命令查看容器的端口 Docker Networking 的概念 网络包如何在 Docker 内部流转 2021-05-20
MediatR 使用教程--如何实现清晰的消息通信 MediatR 是.NET 中的简单中介者模式实现,一种进程内消息传递机制(无其他外部依赖)。 支持以同步或异步的形式进行请求/响应,命令,查询,通知和事件的消息传递,并通过 C#泛型支持消息的智能调度。 2021-05-17 C#
.Net 5.0 如何进行 Code First 开发 在 .Net 或 dotnet core 5.0 中, 数据库相关开发时, 通常可以分为 Code First 和 Database First 两种方式的开发, 本文先看看如何进行 Code First 开发, 即先定义数据模型, 通过模型生成数据表及对应关系. 2021-05-16 C#
Flutter 动画 API 简介(Animation API) 本文的主要目的是介绍 Flutter 中的动画 API, 相关概念, 类, 以及方法. Flutter 中的动画主要分为两大类: 插值动画和物理动画. 插值动画: 指的是通过设置一个起点和终点, 通过提供的变化曲线进行中间帧插值的一种动画方法. 物理动画: 指的是以模拟的方式 为了更好地在 Flutter 中实现动画, 先来看 Flutter 中的常用动画实现模式. 2021-05-15 Flutter
生成下一帧(frame): 驱动 Flutter Framework Flutter Framework 中的绝大部分代码都是通过 Engine 的帧渲染驱动执行的. 事件一般有如下几类: 手势 平台消息(设备本身产生的数据, 比如设备传感器数据) 设备消息(设备状态改变, 比如旋转, APP 进入后台/前台, 内存报警, 设备设置改变等) Future 或 HTTP 响应 事件发生后, 通过引擎驱动 Framework 代码执行. 2021-05-15 Flutter
什么是 Flutter 的 Binding 利用 Window 作为接口, 通过 Binding 来建立 Engine 和 Framework 的联系. Binding 的初始化过程实际就是将 Framework 端许多函数或方法挂接到 Window 上的过程. 绑定过程的结果是生成一个 WidgetsBinding 单例对象, 可通过 WidgetsBinding.instance 访问. 更极端地讲: 只有通过 Binding, Fra 2021-05-13 Flutter
移动设备图形渲染原理 大部分手机应用程序都会拥有用户界面(UI), 用户看到的实际是显示在屏幕上的”图片”, 这些”图片”由若干像素组成, 图片在高速变化时, 就形成动画. 当用户触摸某个按钮时, 实际是由设备发送手指在屏幕上触摸的坐标. 显示在屏幕上的”图片”要进行更新, 需要外部事件驱动, 这些事件包括: 用户手势(触摸) 各类传感器(光线/方向/位置等) 网络(network)通信 时间(定 2021-05-12 Flutter
Flutter 框架概述 Flutter 框架概述Flutter 总体架构如下所示: Flutter 框架总体分为如下三个部分: Embedder: 负责初始化 Flutter Engine(引擎) 和相关线程(包括 Flutter 主线程, 消息通道线程等), 并将平台事件和引擎进行对接. Engine: 负责和平台之间的沟通, 同时负责渲染管线后续处理. 另外它会创建 DartVM, DartVM 创建后 2021-05-11 Flutter