在本文中,我们将为您详细介绍Win102009系统全新外观的更多证据浮出水面的相关知识,并且为您解答关于windows10外观的疑问,此外,我们还会提供一些关于#新闻拍一拍#微软水下数据中心在两年之后
在本文中,我们将为您详细介绍Win10 2009系统全新外观的更多证据浮出水面的相关知识,并且为您解答关于windows10外观的疑问,此外,我们还会提供一些关于#新闻拍一拍# 微软水下数据中心在两年之后浮出水面、.net hbase client-- 终于浮出水面的轮子、ASP.NET MVC 4 浮出水面、Carbyn:第一款基于HTML5的操作系统浮出水面的有用信息。
本文目录一览:- Win10 2009系统全新外观的更多证据浮出水面(windows10外观)
- #新闻拍一拍# 微软水下数据中心在两年之后浮出水面
- .net hbase client-- 终于浮出水面的轮子
- ASP.NET MVC 4 浮出水面
- Carbyn:第一款基于HTML5的操作系统浮出水面
Win10 2009系统全新外观的更多证据浮出水面(windows10外观)
Win10 2009系统全新外观的更多证据浮出水面
在内部,Microsoft一直在重组在Windows和Azure上工作的团队。作为重组的一部分,Microsoft将在Panos Panay(成功的Surface阵容的负责人)的领导下吸引更多Win10 2009系统开发团队。消息人士称,这些内部更改可以大大改善Windows操作系统。
尽管Win10 2009系统比以往任何时候都更受欢迎,但要改进设计,这已经不是什么秘密了。
我们知道,微软正在寻求使用20H2版本重新设计Win10 2009系统中的标志性“开始”菜单,现在该公司也已开始为该操作系统开发新的圆角外观。
在过去的几周中,微软推出了新的圆角改头换面功能,对Win10 2009系统照片应用程序,Windows日历,Windows地图,影视,即时贴,甚至计算器进行了更新。
当您打开上下文菜单时,您会注意到这些应用程序的外观发生了细微的变化(您可以通过右键单击表面来访问该菜单)。
这些收件箱应用的旧外观带有尖角。这些新变化与macOS Big Sur形成鲜明对比,后者在其设计语言中也使用圆角,但是由于Fluent Design,Microsoft的实现将更加微妙。
在Microsoft承诺为XAML应用程序中的默认控件样式添加圆角后,此设计更新已到了一年。正如我在上一份报告中指出的那样,此处的主要目标是使通用控件在所有Win10 2009系统应用程序中保持一致并可用。
据信,微软还致力于基于桌面的“开始”菜单和“操作中心”的设计改进。Win10 2009系统的新预览版包括对“开始菜单”和“操作中心”的“ WinUI”的引用。
什么是WinUI?简而言之,WinUI是Microsoft最新的界面平台,将在Win10 2009系统X和Surface Neo中使用。开发人员也可以使用该平台,该平台使开发人员可以轻松构建对所有形状都自然的现代无缝UI。
WinUI还使用Fluent Design,它包括透明度,圆角等,以使Windows更具视觉冲击力。
当然,这种对界面的新外观仍然处于开发和测试阶段,因此我们不知道在Win10 2009系统中对于核心区域(例如“开始”菜单)是否会真正实现以及何时实现该界面。
#新闻拍一拍# 微软水下数据中心在两年之后浮出水面
微软水下数据中心在两年之后浮出水面
两年前,微软将一个数据中心沉入奥克尼群岛海岸附近的海床上。两年之后,它将该数据中心从海床上捞了回来,研究人员对其进行了评估。855 个服务器中只有 8 个发生了故障,故障率为陆地的八分之一。
拍一拍:数据中心放在海底具有节能、安全和低损耗等好处,值得探索。
Red Hat 牵头推进 NVFS 文件系统
NVFS 的目标是成为像英特尔 Optane DCPMM 那样的高速文件系统。NVFS 面向基于 DAX 的设备(直接访问),并将整个设备映射成一个线性地址空间,从而绕过 Linux 内核的块层和缓冲区缓存。在持久性内存上,NVFS 文件系统的性能非常好,一般来说比 EXT2/EXT4/XFS(有 / 没有 DAX)以及之前的 NOVA 文件系统要好得多。
拍一拍:针对持久性内存存储设备,这种高性能文件系统可以让 Linux 提供高端服务。
IBM 宣布向 OpenPOWER 社区贡献两项核心技术
在今天召开的 OpenPOWER 峰会上,IBM 宣布将向 OpenPOWER 社区贡献 A2O POWER 处理器核心和开放认知环境(Open-CE)。目前,A2O 处理器核心已经作为 POWER ISA 核心开源,从而在 SoC 设计中嵌入使用。A2O 比前代产品具有更好的单线程性能,并支持 2 路 SMT、PowerISA 2.07 和模块化设计。
拍一拍:期待 OpenPOWER 能在生态上取得更多成功。
.net hbase client-- 终于浮出水面的轮子
一、开篇
1. 背景
在大数据时代,HBase 数据库是个绕不开的热门话题。由于其使用 Java 作为主要开发语言,并且依赖大量的 Java 组件(如 Hadoop、zooKeep),使得其他技术栈想要有一个对应的 hbase 客户端变得有一定难度。在 .net 的世界中,一直缺乏能够直接访问 hbase 的客户端。
2. 历程
Apache Thrift 作为社区内比较有名的支持多语言的 Api 服务,可以解决跨语言访问 HBase 数据库的痛点。在以往的文章中业也介绍过 C# 如何使用 thrift 访问 hbase,但在真正的生产环境中,该方式的访问效率和原生 Java 客户端比起来真着实让人心灰意冷。此外,thrift 也要求服务端和客户端版本一致。
Protocol Buffers HBase 提供基于 Protocol 的数据访问,这以一种相对高效紧凑的数据交换规则。基于此,我们能够造出属于 .net 的 hbase 客户端。
这是一个造轮子的过程,中间虽有着许多难点就不再赘述。下面直接介绍该项目的使用。
二、HBaseNet 使用
1.HBase 数据库准备
作为项目使用演示,我们就不讨论如何搭建 HBase 集群了,一切以简单便捷为前提,直接使用别人构建好的 docker 镜像就可以轻松获取 HBase 数据库的使用。
在 dockerhub 中搜索 hbase 或者命令行:docker search hbase
。结果中找到 dajobe/hbase
,将其 pull 到本地就行。可以按照作者教程进行部署。其核心操作也就几个简单命令,现作一简单摘抄:
docker pull dajobe/hbase # 拉取镜像到本地
mkdir data # 创建名为data的目录
id=$(docker run --name=hbase-docker -h hbase-docker -d -v $PWD/data:/data dajobe/hbase) #将hbase-docker设置为主机名运行,并将docker容器id赋值给id
命令行 docker inspect hbase-docker|grep IPAddress
查看 hbase 主机地址:
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
可以看到我的在 172.17.0.2 上,我们可以直接浏览器访问 http://172.17.0.2:16010/,看到 habse 的主页说明部署成功。此外,最好将本地物理机的 hosts 修改以作映射,文件中添加一行 172.17.0.2 hbase-docker
即可。
2.HBaseNet 简单演示
演示项目创建
首先创建控制台项目 dotnet new console -o HBaseNetTest
,然后添加 HBaseNet 客户端 nuget dotnet add package HBaseNet --version 0.1.0-rc2-final
。
使用 AdminClient 创建 HBase 表
直接在主函数中写下如下代码:
static async Task Main(string[] args)
{
// 注意在hosts中添加地址映射
var ZkQuorum = "hbase-docker";
var admin = await new AdminClient(ZkQuorum).Build();
if (admin == null) return;
var table = "products";
var cols = new[] { new ColumnFamily("info") };//名为info的列簇
var create = new CreateTableCall(table, cols)
{
SplitKeys = new[] { "8" }// 预分区
};
//简单判断表是否存在
var tables = await admin.ListTableNames(new ListTableNamesCall { Regex = table });
if (true != tables?.Any())
{
//使用高级客户端创建products表
var createResult = await admin.CreateTable(create);
Console.WriteLine($"创建表{table}的结果:{createResult}.");
}
else
{
Console.WriteLine($"表{table}已经存在");
}
}
运行后控制台输出创建表products的结果:True.
。我们再查看主页 http://hbase-docker:16010/
,找到 Tables
,可以看到 products 表已经被创建:
default products ENABLED 2 0 0 0 0 0 0 0 ''products'', {NAME => ''info'', VERSIONS => ''3'', DATA_BLOCK_ENCODING => ''FAST_DIFF'', BLOCKCACHE => ''False'', METADATA => {''TTl'' => ''2147483647''}}
使用 StandardClient 进行数据的写入和查询
var client = await new StandardClient(ZkQuorum).Build();
if (client == null) return;
var rowKey = "123";
var values = new Dictionary<string, IDictionary<string, byte[]>>
{
{
"info", new Dictionary<string, byte[]>
{
{"key", "value".ToUtf8Bytes()}
}
}
};
//放入一条数据
var rs = await client.Put(new MutateCall(table, rowKey, values));
Console.WriteLine($"放入数据key:{rowKey},结果:{rs.HasProcessed}");
// 根据rowkey获取一条数据
var getResult = await client.Get(new GetCall(table, rowKey));
Console.WriteLine($"获取数据结果key:{rowKey}");
// 使用scanner进行数据扫描
var sc = new ScanCall(table, "1", "")
{
NumberOfRows = 1000
};
using var scanner = client.Scan(sc);
var scanResults = new List<Result>();
while (scanner.CanContinueNext)
{
var per = await scanner.Next();
if (true != per?.Any()) continue;
scanResults.AddRange(per);
}
Console.WriteLine($"扫描数据共返回结果:{scanResults.Count}行");
控制台输出:
放入数据key:123,结果:True
获取数据结果key:123
扫描数据共返回结果:1行
日志配置
为了方便友好,建议还是开启日志进行使用。这里就以使用 Serilog
为例,添加以下 nuget 包:
dotnet add package Serilog --version 2.10.0-dev-01226
dotnet add package Serilog.Sinks.Console --version 4.0.0-dev-00839
dotnet add package Microsoft.Extensions.DependencyInjection --version 5.0.0-preview.7.20364.11
在主函数最上面添加:
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.MinimumLevel.Debug()
.WriteTo.Console(
outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}")
.CreateLogger();
HBaseConfig.Instance.ServiceProvider = new ServiceCollection()
.AddLogging(cfg => cfg.AddSerilog(Log.Logger))
.BuildServiceProvider();
更多细节可以参考项目里的示例代码 HBaseNet.Console。
三、最后
在 .neter 中使用 hbase 的人极少,多数人还是在抱怨生态不好。但想一想自己能够做什么,付诸行动总是比无谓的抱怨要好很多的。HBaseNet 是一个刚开始的项目,捂了(肝了)几个月还是把它做出来了。如果对它感兴趣,欢迎加入我们或者提出宝贵的修改意见。当然,我最终的愿望是希望它对您有用。开源不易,非常欢迎到项目主页进行 star 鼓励。
感谢。
本文分享自微信公众号 - dotNET 跨平台(opendotnet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。
ASP.NET MVC 4 浮出水面
最近,ASP.NET MVC 4的第一个beta版发布了,并且还含有“可以上线”的许可。这意味着即使最终正式版本还没有完成,但微软相信ASP.NET MVC 4目前已经可以在生产环境中使用了。这次的发布包含了对Razon视图引擎的改进、对异步调用的支持,以及WebSockets等功能。
Razor视图引擎
作为ASP.NET MVC的默认视图引擎,Razor中增加了一些新的特性,以减少视图模版的代码量。以~/开头的HTML属性会被自动解析为应用程序的根路径,而不再需要 使用Url.Content。另一个提升效率的特性是可空属性(conditional attribute),例如当中的myClass为null时,这个属性将不会被渲染到页面上。
注意:这些新增的特性也会出现在ASP.NET Web Pages 2中。
CSS与JavaScript管理
MVC 4鼓励开发人员合并和压缩(CSS与JavaScript)以缩短传输时间。开发人员不用详细列出每一个客户端需要的文件,只需要使用ResolveBundleUrl函数就可以将某个文件夹中的所有文件包括在内。 Jon Galloway指出,这对于更新某些程序库—如jQuery—特别有用。
移动开发
jQuery Mobile将会被包含在标准移动模版中。这些模版被用于创建一组视图,而这些视图则被Display Modes(译者注:根据用户所使用的设备,如桌面系统或移动设备,选择不同的视图文件进行渲染)子系统所使用。除了默认模式和移动模式,可发人员还可以根据需要添加其他模式。一般系统会根据浏览器发送的user agent来决定使用那种模式,但理论上你可以获得更大的灵活性。
Controller中的异步任务处理
在MVC 4和C# 5中使用异步模型非常简单,难以想象还会有人继续用阻塞的方式编写Controller中的方法。你只需要使用“async Task<ActionResult>”代替ActionResult作为返回值就可以了。当然底层的代码也需要支持异步调用,但基本上只需要做机械的代码转换,任何实习生或初级开发人员都可以处理。
异步Controller还支持cancellation token,Cancellation Token的实例由框架创建,开发人员只需在调用异步方法时,将之作为参数传递即可。这样整个调用栈都可以被取消,而不是简单的终止线程。
via InfoQ
Carbyn:第一款基于HTML5的操作系统浮出水面

Carbyn系统界面
Carbyn由一个5人创业公司开发,是世界上第一款基于HTML5技术可跨平台和设备的操作系统。
具有以下几个主要特点:
- 在浏览器内运行,不需安装任何东西。通过任何“现代”浏览器直接进入carbyn.com就可以使用。
- 登录后,你可以在该系统主页面锁定任何应用。开发者可以基于Carbyn提供的SDK工具包开发HTML5应用,允许不同的应用间相互对话提升多点触控体验。另外原有应用也可以通过改造在Carbyn内运行。
- 它有些类似Chrome Web Store,但是与Chrome Web Store不一样的是,你关闭一个Carbyn应用,会被带回Carbyn主页,而不是只关闭了一个标签页。在很大程度上,可以说Carbyn就类似Chrome本身或者Chrome OS。
- 可以跨平台,跨设备运行,支持任何“现代”浏览器。很快还将支持智能手机。
随着Facebook将在下周揭示自己的HTML5应用平台Project Spartan,HTML5平台战争一触即发。
英文原文:http://techcrunch.com/2011/09/15/carbyn/
关于Win10 2009系统全新外观的更多证据浮出水面和windows10外观的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于#新闻拍一拍# 微软水下数据中心在两年之后浮出水面、.net hbase client-- 终于浮出水面的轮子、ASP.NET MVC 4 浮出水面、Carbyn:第一款基于HTML5的操作系统浮出水面等相关知识的信息别忘了在本站进行查找喔。
本文标签: