.Net Framework

.NET中的缓存实现

混江龙づ霸主 提交于 2020-08-20 08:15:55
软件开发中最常用的模式之一是 缓存, 这是一个简单但非常有效的概念, 想法是重用操作结果, 执行繁重的操作时,我们会将结果保存在 缓存容器中, 下次我们需要该结果时,我们将从缓存容器中取出它,而不是再次执行繁重的操作。 例如,要获得某人的头像,您可能需要前往数据库。 我们不会每次都执行那次查询,而是将结果保存在缓存中,每次需要时都将其从内存中删除。 缓存非常适合不经常更改的数据, 甚至永远不会改变。 不断变化的数据不适合缓存,如当前机器的时间不应缓存,否则您将得到错误的结果。 进程内缓存,持久化缓存和分布式缓存 进程内缓存 用于在单个进程中实现缓存时, 当进程终止时,缓存会随之消失。 如果您在多个服务器上运行相同的进程,则每个服务器都有一个单独的缓存。 持久化缓存 是指在进程内存之外备份缓存, 它可能位于文件中,也可能位于数据库中。 这实现比较困难,但如果重新启动进程,缓存不会丢失。 分布式缓存 是指您为多台计算机提供共享缓存, 通常它将是几个服务器, 使用分布式缓存,它存储在外部服务中。 这意味着如果一台服务器保存了缓存项,其他服务器也可以使用它。 像 Redis 这样的 服务 非常适合这种情况。 单线程的缓存 public class NaiveCache<T> { private static Dictionary< object , T> _cache = new

WinUI 3 试玩报告

五迷三道 提交于 2020-08-20 08:10:07
1. 什么是 WinUI 3 在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI。WinUI 3 Preview 1 包含新的 VisualStudio 项目模板,可以创建面向 .NET 5 的 C# 和 C++/Win32 项目。从技术上讲,WinUI 3 将 UWP 的 XAML、Composition 和 Input 层分离,并通过NuGet将它们独立分发给针对Windows 10 版本 1803 及更高版本的 Win32 应用。 WinUI 3 适用于 Win32 和 UWP,这篇文章主要讨论 Win32 的情况。 2. 理解 WinUI 3 以前我们总是抱怨 WPF 多年都不提供新的主题,不提供新的控件,性能又没提升。现在微软索性把什么都是新的 WinUI 3 提供给桌面开发,没 WPF 什么事了。 简单来说,UWP 的开发体验不好(关于这个话题真是一言难尽),而且出了 Bug 还必须等待下半年的 Windows 更新进行修复,但微软的开发人员专心给 UWP 的 UI 层加各种功能;.NET Core 更新很快,但很少人有兴趣有动力给陈旧的 WPF 的 UI 层进行大幅度的改进。于是 WinUI 将 UWP 的 UI 层从 Windows SDK

尚硅谷Java——宋红康笔记【day6-day10】

a 夏天 提交于 2020-08-20 08:08:42
day6 一、数组的概述 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。 2.数组相关的概念: 数组名 元素 角标、下标、索引 数组的长度:元素的个数 3.数组的特点: 1)数组是有序排列的 2)数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 3)创建数组对象会在内存中开辟一整块连续的空间 4)数组的长度一旦确定,就不能修改。 4.数组的分类: ① 按照维数:一维数组、二维数组、。。。 ② 按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组 5.一维数组的使用 ① 一维数组的声明和初始化 ② 如何调用数组的指定位置的元素 ③ 如何获取数组的长度 ④ 如何遍历数组 ArrayTest.java public class ArrayTest { public static void main(String[] args) { //1. 一维数组的声明和初始化 int num;//声明 num = 10;//初始化 int id = 1001;//声明 + 初始化 int[] ids;//声明 //1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行 ids = new int[]{1001,1002,1003,1004}; //1

打造自己的.NET Core项目模板

给你一囗甜甜゛ 提交于 2020-08-20 07:45:54
前言 每个人都有自己习惯的项目结构,有人的喜欢在项目里面建解决方案文件夹;有的人喜欢传统的三层命名;有的人喜欢单一,简单的项目一个csproj就搞定。。 反正就是萝卜青菜,各有所爱。 可能不同的公司对这些会有特定的要求,也可能会随开发自己的想法去实践。 那么,问题就来了。如果有一个新项目,你会怎么去创建? 可能比较多的方式会是下面三种: 简单粗暴型,打开VS就是右键添加,然后引入一堆包,每个项目添加引用。 脚本型,基于dotnet cli,创建解决方案,创建项目,添加包,添加项目引用。 高大上型,VS项目模板,直接集成到VS上面了。 以前我也是基于dotnet cli写好了sh或ps的脚本,然后用这些脚本来生成新项目。 但是呢,这三种方式,始终都有不尽人意的地方。 因为建好的都是空模板,还要做一堆复杂的操作才可以让项目“正常”的跑起来。比如,这个公共类要抄过来,那个公共类要抄过来。。。这不是明摆着浪费时间嘛。。。 下面介绍一个小办法来帮大家省点时间。 基于dotnet cli创建自己的项目模板,也就是大家常说的脚手架。 dotnet cli项目模板预热 开始正题之前,我们先看一下dotnet cli自带的一些模板。 可以看到种类还是很多的,由于工作大部分时间都是在写WebAPI,所以这里就用WebAPI来写个简单的模板。 下面我们就基于dotnet cli写一个自己的模板。

玩转云上数据湖,解析Serverless 技术落地

蹲街弑〆低调 提交于 2020-08-20 07:45:37
本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地。Serverless是DLI将计算能力服务化和产品化关键技术,与传统IAAS和PAAS技术不同,DLI运用Serverless技术向客户提供了一种高效易用易扩展的计算框架,使得客户更能聚焦业务,避免牵扯集群运维的细枝末节。本文将从以下几点解读Serverless技术: 1. serverless计算简介 2. 云计算架构演进—从IaaS到Serverless 3. Serverless计算应用场景与潜力 4. DLI Serverless 计算 serverless计算简介 图 Serverless与传统云计算比较 无服务器计算(Serverless)是一种新型的云计算范式,在业界也被称为FaaS(函数即服务),它有别于传统的IaaS(基础设施即服务)和PaaS(平台即服务)技术,旨在帮助开发者摆脱减少甚至免去底层基础架构管理上的诸多烦扰。Serverless计算服务允许客户在不构建一个复杂的基础设施的情况下开发,运行和管理应用程序。在2014年10月先由 http:// hook.io 提供给业界,接着AWS推出Lambda,2016年Google Cloud Functions,Microsoft Azure Functions对外提供服务

C# .net Core 文件上传

痴心易碎 提交于 2020-08-20 06:34:56
.net core 和.net framework上传文件还是有一些区别的有很多注意的地方 .net framework 上传文件用httppostedfilebase .net core 上传文件用 IFormFile 下面废话不多说了,直接上代码 控制器里面写 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using CoreUpLoad.Models; using Microsoft.AspNetCore.Http; using System.IO; namespace CoreUpLoad.Controllers { public class HomeController : Controller { public IActionResult Index() { return View(); } [HttpPost] public IActionResult UpLoad(IFormFile file) { return View(); } }

SVN笔记

痞子三分冷 提交于 2020-08-20 06:34:03
一、简介和安装    1.SVN是什么 代码版本管理工具 它能记住你何次的修改 查看所有的修改记录 恢复到任何历史版本 恢复已经制除的文件     2.SVN跟Git相比,有什么优势     使用简单,上手快     目录级权限控制,企业安全必备     子目录checkout,减少不必要的文件检出    3.主要应用     开发人员用来做代码的版本管理     用来存储一些重要的文件,比如合同    4.SVN仓库     推荐:svnbucket.com,svn桶    5.安装SVN客户端     TortoiseSVN ---- windows     Cornstone ---- mac    6.下载地址      https://tortoisesvn.net/downloads.html             可下载汉化语言包    二、SVN基础操作    1.检出-----checkout同步代码       项目详情-源码页面-复制SVN地址     在你需要保存代码的地方右键选择“SVN Chekout…”     填写仓库地址,填写保存目录,输入网站登录用户名密码。     点击确定就能同步代码到本地了。         2.更新update      右键 SVN Update 就能更新代码了          3.提交commit     

不“简单”的HttpClient

大城市里の小女人 提交于 2020-08-20 06:33:21
Web能够打下天下,最重要的功臣就是HTTP;HTTP能够建功立业,最重要的原因就是它的简单。 微软在.NET Framework 4.5中为大家带来了System.Net.Http.HttpClient,既然叫HttpClient,我想应该迎合了HTTP简单的特性,应该会比HttpWebRequest更简单。 在之前的博文“ jQuery能做到,PHP能做到,C#也能做到 ”中也的确发现用HttpClient发起HTTP POST请求并传递url query string参数,比用HttpWebRequest更简单。于是打算把基于HttpWebRequest的实现改为基于HttpClient的实现。 基于HttpWebRequest的实现中有设置UserAgent的代码: var webRequest = WebRequest.Create(url) as HttpWebRequest; webRequest.UserAgent = " CNBlogs " ; 本来以为HttpClient也有同样的UserAgent属性,于是想这样写: var httpClient = new HttpClient(); httpClient.UserAgent = " CNBlogs " ; // 错误的代码 结果发现HttpClient根本没有UserAgent这个属性。 于是,找啊找

入职UI设计师,如何准备面试?

笑着哭i 提交于 2020-08-20 06:16:42
  入职UI设计师,如何准备面试?需要注意哪些内容呢?今天就来为大家总结下,在UI设计师的面试过程中,负责人一般重点考虑的是以下4点能力:   1、UI设计能力   对UI设计能力的考察,依据不同级别和岗位,要求有所不同,比如普通的UI设计师,要求能设计比较精致的web ui、app ui、icon、插画等。这几个方面,最好都会,并且其中有一项是特长。这样进入公司后,才能有机会负责起某个细分需求的设计;如果没有一项特长,什么都会,基本都会沦为打杂的角色。掌握设计软件是该岗位最基本的技能,要在简历中清楚明白地写出来!当你面试普通UI设计师的时候,当某个负责人委婉告诉你回去等消息,没有收到二轮面试通知的时候,不要反思是不是沟通不对、问题没回答好。这些都不是核心原因,核心原因就是设计能力不过关。   此外, 个人作品是专业能力最重要的表现形式,在简历中要记得列出,并且可以在简历附件中附上作品集。   2、交互思维能力   UI设计师的界面还是要服务于产品设计,那么对于界面的设计不应只停留在美学的思考,还应该思考界面的逻辑,界面元素的摆放,通过深入了解产品的行为目的后,更好的用视觉手段表达产品意图,这就需要对设计师的逻辑思考能力,界面交互综合能力提出更高要求。   3、学习能力   每个人都有一定的学习能力,但学习能力强和弱的差别在那里了?你自己测试下:   初级学习能力:

dotnet tool 安装失败因为对应的库不仅包含工具

非 Y 不嫁゛ 提交于 2020-08-20 05:33:34
在开发 dotnet tool 时,我将规范编码的库作为 dotnet tool 发布,但是在发布的时候本地进行安装提示DotnetToolReference 项目类型仅可包含 DotnetTool 类 型的引用 因为我的库本身也是作为可被引用的项目库发布的,在发布的时候我选择的库是多个平台的。多个平台的框架的写法请看 让一个 csproj 项目指定多个开发框架 - walterlv 但是这样写的多框架的包如果作为 dotnet tool 发布,那么将会在安装的时候有下面代码提示 error NU1212: dotnetCampus.EncodingNormalior 1.3.0 的项目包组合无效。DotnetToolReference 项目类型仅可包含 DotnetTool 类 型的引用 无法还原工具包。 工具“dotnetcampus.encodingnormalior”安装失败。此故障可能由以下原因导致: * 你尝试安装预览版,但未使用 --version 选项来指定该版本。 * 已找到具有此名称的包,但是它不是 .NET Core 工具。 * 无法访问所需的 NuGet 源,这可能是由于 Internet 连接问题导致。 * 工具名称输入错误。 有关更多原因(包括强制包命名),请访问 https://aka.ms/failure-installing-tool