从技术角度解释为什么微软没有使用Windows 9

  众所周知,微软对 Windows 的命名规则一直很诡异,从 XP,Vista,7 到 8 和 8.1 一直到最新的 Windows 10。那么从技术角度考虑,为什么微软跳过了 9 而直接使用 10 呢?据微软内部开发人员流传,是为前操作系统的版本号考虑。

实例代码如下

if ( version.StartsWith ("Windows 9") )

  { /*Windows 95, Windows 98 */

  } else{

  }

  当软件开发人员使用:“ 如果版本号开始于 xxx,就执行 yyy" 时,会出现两种情况的正确判断

  Windows 9

  Windows 9* ( Windows 95 Windows 98 )   95 和 98 也是开头包含 Windows 9 的

  综上所述,在早期测试时,微软发现很多第三方软件开发商使用了如上的方法去判断操作系统,这样会造成对当在 Windows 95 和 Windows 98 上运行使用上述代码的程序时,程序会误判为 WIndows "9"。

  所以微软开发者为了避免出现这种不稳定因素,只好命名为 Windows 10 。

  觉得怎么还会这么写代码的?甲骨文还真的在 openJDK 里这么写了。

  第 602 行

  同样的写法竟然还有大名鼎鼎的 jEdit 编辑器!‍

https://searchcode.com/codesearch/view/1393856/

  第 48 行

Windows 10技术预览版免费下载

浅谈 Windows 10 兼容性

  Windows 10 技术预览版目前已发布,感兴趣的不妨现在去下载试试。

  技术小白还是算了,因为可能会现硬件不兼容以及破坏现有应用程序的问题。

  Windows 10 技术预览版和技术预览企业版提供中文(简体)、英语(美国)、英语(英国)、葡萄牙语(巴西)32 位版和 64 位版 ISO 下载。

  Windows 10 技术预览版简体中文版 64 位大小为 3.96GB,32 位大小为 3.05GB。

  产品密钥:NKJFK-GPHP7-G8C3J-P6JXR-HQRJR

  Windows 10 技术预览版简体中文版官方下载:

  64 位:http://go.microsoft.com/fwlink/?LinkId=510229

  SHA-1 散列值:135E3193571C5AF9FBF36D24D07B2BE7EE49B2E8

  32 位:http://go.microsoft.com/fwlink/?LinkId=510230

  SHA-1 散列值 :3EE3A2033BE666BA55AFED3FCF6BB52A7C15C7CC 

  更多详细信息可登录 http://windows.microsoft.com/zh-cn/windows/preview 查看。

博客升级到BlogEngine 3.1

花了一个下午时间把博客升级到BlogEngine 3.1了

中途遇到一个错误:

Invalid column name 'SortOrder'.

执行下面的SQL脚本成功解决了

ALTER TABLE dbo.be_Pages ADD
	SortOrder int NOT NULL CONSTRAINT DF_be_Pages_SortOrder DEFAULT 0
GO
CREATE NONCLUSTERED INDEX IX_be_Pages ON dbo.be_Pages
	(
	SortOrder
	) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

.NET Framework 4.5.2发布正式版下载地址

  微软正式发布了 .NET Framework 4.5.2,完美兼容现有的 .NET Framework 4/4.5/4.5.1,适用于 Vista SP2、Windows 7 SP1、Windows 8、Windows 8.1、Windows Server 2008 SP2 Windows Server 2008 R2 SP1、Windows Server 2012 和 Windows Server 2012 R2。

  开发人员可以使用 Visual Studio 2013、Visual Studio 2012 或第三方 IDE 来生成面向 .NET Framework 4.5.2 的应用程序。

  最低硬件要求:

  • 1GHz 或更快的处理器
  • 512MB RAM
  • 850MB 的可用硬盘空间 (x86)
  • 2GB 的可用硬盘空间 (x64)

  详情:http://www.microsoft.com/zh-cn/download/details.aspx?id=42637

BASIC语言诞生50周年

50年前,最初只有政府、企业和大学有电脑,由那些编写数学公式构成的指令页的程序员来运作。达特茅斯学院的两位数学教授约翰·凯默尼和托马斯·库尔茨希 望其他学院的学生也能使用学校的电脑,就开发了一套简单的指令,这套指令名叫程序语言(BASIC)。“我们有意设计出一套避免其他语言中出现的技术细节。”BASIC将英国指令,如IF…THEN或GO...TO转换成电脑能理解的数字语言。

库尔茨说其反响很大。“我们的学生喜欢随时用电脑,可以做任何想做的事,而且我们的教员也对它感兴趣。当然不是每个人,是很多人都是。”

佩吉·基德韦尔是史密斯森国家历史博物馆数学馆长,他说这时电脑的运转速度开始快到足以同时处理很多指令。

“现在人人都能用电脑的理念已经深入全世界,我想说的是,这并不是BASIC的直接产物,而是基于BASIC而进行的开发的一部分。”

库尔茨和凯默尼将BASIC向公众公开,免费使用,这样这种语言很快就得到传播。库尔茨说他们希望BASIC能帮助解决即将到来的一个重大问题。“电脑将在全世界变得非常重要,而大多数都对之不了解,因为电脑掌握在专家手中。”伴随着电脑快速发展,出现了很多改进版的BASIC和其他容易使用的语言。

现在,不仅是爱好者使用BASIC,而且个人电脑的出现要归功于这种最早开发的人人都能使用的编程语言。

ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能

  Microsoft 最近发布了 ASP.NET Identity 2,该版本支持双重认证、帐号锁定以及防伪印章功能,还增强了用户帐号和索引。此外新版本还包含一个改进的密码验证器并修复了一些 bug。

  借助于双重认证,开发者能够使用定制的提供程序保护用户帐号,而不是使用传统的 SMS 和基于 email 的验证。例如,开发者能够编写自己的自定义提供程序,例如 QR 代码生成器,并使用手机上的身份验证应用程序验证它们。

  新版本的 ASP.NET Identity 2.0 能够保护用户远离暴力破解的困扰,如果用户输入了错误的密码或者双重代码,那么相关的用户帐号会被锁定一段时间。作为一个开发人员,你可以配置无效尝试的次数和时间间隔,另外你也可以通过一个选项为某些用户帐号关闭该功能。

  新引入的防伪印章功能让你能够在密码或者相关的社会登录帐号发生改变的时候从应用程序中注销。你可以按照官方 MSDN 博客上的介绍通过注册一个 CookieAuthenticationProvider 在 Startup.Auth.cs 中进行配置。

  最新版本提供了一个扩展钩子,借助于该钩子你能指定用户表和角色表的主键,对于那些将 UserId 存储为 GUID 或者 Int 的应用程序而言这是非常有用的。

  在新版本发布之前,我们无法通过 UserManager 删除用户,这一问题已经被解决,你能够使用 DeleteAsync ()函数删除用户。

var result = await UserManager.DeleteAsync (user);

  你可以使用 Factory 实现从 OWIN 上下文中获取到一个 UserManager 的实例。这一模式与我们从 OWIN 上下文中获取 AuthenticationManager 从而进行登录和登出的模式类似。为了使用这一功能,我们需要在 StartupAuth.cs 类中添加下面的代码:

app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
HttpContext.GetOwinContext () .GetUserManager<ApplicationUserManager>();

  DbContextFactory 中间件每一个请求都会返回一个 ApplicationDbContext 实例,你可以在应用程序中使用它,同时可以在 StartupAuth.cs 中使用下面的代码进行配置:

app.CreatePerOwinContext (ApplicationDbContext.Create); 

  Microsoft 使用新的 IndexAttribute 为 Username 添加了唯一的索引;此外还增强了密码验证器,1.0 提供了一个仅能验证最小长度的基础验证器,而在新版本中我们能够通过配置对密码的复杂性进行更多的控制。该版本还提供了 NuGet 包以及示例 ASP.NET MVC 应用程序,并根据社区的反馈修复了一些 bug。

  与 ASP.NET Identity 2 RTM 一起发布的还有 Entity Framework 6.1,后者的特性包括工具整合、IndexAttribute 和公共映射 API,此外它还支持 .ToString、String.Concat、enum HasFlags,能够通过 App/Web.config 文件配置拦截器。

  来自于 Microsoft 的软件工程师 Pranav Rastogi 在他的博客中概括了应用程序从 ASP.NET Identity 1.0迁移到 2.0、从 2.0 beta 1 迁移到 2 所需要的步骤。除了上面提到的特性之外,该版本还包含一些其他的特性,例如帐号确认、密码重置、UsersStore 和 RolesStore 上的 IQueryable,这些功能最初都是在 2013 年 12 月份发布的预览版中添加的。

Windows Phone 8.1 远程桌面使用教程

微软刚刚发布了 Windows Phone 8.1 版远程桌面(Remote Desktop)应用,可以在这里下载。可以说这是一款和 Windows 8 版远程桌面应用体验一致的应用,可以用来连接局域网中的电脑,或是互联网中的电脑。

本文介绍如何远程连接局域网中的 Windows 8.1 电脑。

Windows Phone 8.1 版远程桌面使用教程

首先在 Windows Phone 8.1 手机中安装 Remote Desktop 预览版(只有英文版),免费下载(也可以扫描上面的二维码下载)。

手机端添加远程连接步骤

Windows Phone 8.1 版远程桌面使用教程

运行 Remote Desktop 之后,我们需要按底部的加号按钮添加远程连接的配置:

  • PC name:填写连接到的设备 IP 地址或域名,如果不是默认端口连接,末尾冒号加上端口
    举例:xxx.cloudapp.net:61301(互联网)或 192.168.1.147 (局域网,具体远程端设置方法看后文)
  • Credentials:填写登录账号,默认是“每次输入”(Enter every time)
  • 但如果想保存账号和密码,下拉菜单中点击“添加账号”(Add credentials)
  • 输入用户名和密码,点击保存

Windows Phone 8.1 版远程桌面使用教程

  • 说明 1:Windows 8.1 若使用 Microsoft 账户登录,直接输入 Microsoft 账户和密码;若使用本地账户,则用本地账户
  • 说明 2:Advanced 中有其他设置,但都是可选项,比如友好名称、声音设置,设置完之后保存

保存之后就会回到 Remote Desktop 的主屏幕,点击刚添加��远程桌面,就开始尝试连接。连接过程中会出现证书认证(下中图),点击“连接”(Connect),若没有错误就可以连接到远程桌面。

Windows Phone 8.1 版远程桌面使用教程

  • 技巧 1:连续按两下返回键退出当前远程桌面
  • 技巧 2:屏幕顶部有键盘按钮,点击显示屏幕键盘,可以方便实现快捷键:比如 Ctrl + Alt + Del、Alt + Tab 或者是 Win + D 等组合
  • 技巧 3:点击顶部远程桌面名称(放大镜和键盘之间),显示可以显示鼠标指针的选项
如何远程连接局域网 Windows PC?

首先要确认将远程连接到的 PC 运行的是:Windows 8 专业版/企业版、Windows 8.1 专业版/企业版、Windows 7 专业版/企业版/旗舰版、Windows Vista 商业版/企业版/旗舰版、Windows XP 专业版。不是这些版本不支持作为远程端。

Windows Phone 8.1 版远程桌面使用教程

以 Windows 8.1 PC 为例,按照步骤设置远程端:

  • 这台电脑 > 右键属性 > 高级系统设置(左侧)> 远程 > 选择“允许远程连接至这台电脑”
  • 勾上下面的推荐选项“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”,确定
  • 打开控制面板 > Windows 防火墙 > 允许应用或功能通过 Windows 防火墙(左侧)
  • 找到远程桌面(Remote Desktop)项,勾上专用和共用,确定

Windows Phone 8.1 版远程桌面使用教程

接下来,找到这台 PC 的局域网 IP 地址:

  • 可以在路由器管理界面查看当前设备的局域网 IP 地址,比如 192.168.1.147
  • 开始屏幕直接输入“CMD”,打开命令提示符,输入 ipconfig 回车
  • 找到联网所用的网卡,IPv4 地址就是局域网 IP 地址,比如 192.168.1.147
  • 记录下这个 IP 地址

接下来根据文章开始的步骤,在手机端一步步连接远程桌面,PC name 就填这台 PC 的 IP 地址。连接后,这台 PC 会自动锁定,由手机端控制。

  • 说明 1:如果遇到 0×204 错误,可能是由于防火墙没有打开远程桌面

如何调戏Windows Phone 8.1 Cortana

相比严肃的 Google Now,Windows Phone 8.1 Cortana 也有苹果 Siri 那样的机智幽默。你可能早有耳闻,何不亲自尝试下 Windows Phone 8.1 Cortana?

Cortana 目前是 Beta,率先在美国推出,只支持英语。但今年下半年正式推出时扩展到英国和中国,其他国家 2015 年推出。好在所有人可以通过这个方法开启 Cortana,在应用列表运行 Cortana 确认开始使用后,以后按下搜索键打开 Cortana,长按搜索键进行语音。

Cortana 可以被这样调戏:

  • Sing me a song – 给我唱首歌(随机)
  • Sing me another song – 另外一首歌
  • Tell me a joke – 各种笑话随机选
  • How old are you – 从你的日历来看,我仍在婴儿期;在机器人的日历中,我已经很成熟了
  • Where are you from – 人类智慧,需要电池
  • What do you look like – 我看起来像:呼啦圈、甜甜圈……Halo
  • What do you wear – 只有一些我在工程的时候挑的小东西
  • Who are you – 我是你的个人助理,你可以告诉我你感兴趣的事情,我会记在我的小本本里。那样我可以给你建议,并让你获得最新信息
  • What should I call you – 我叫 Cortana
  • Who is your father/daddy – 技术上来讲,那是 Bill Gates
  • Where do you live – 过去,至少在我诞生的未来
  • Are you sexy/beautifual/pretty – 我来自 0 和 1 组成的有魅力的家族,更多的是 1 这方面组成的(随机)
  • Are you really Cortana – 你说是就是
  • Are you a man – 我是女性,但我不是女人
  • *Are you real – 真实的?是,人类?不是
  • *Are you smart – 如果我有母亲,你可以问她
  • *You are funny – 很高兴我幽默的明智使用得到了你的赞同
  • Are you hurt – 有人需要停下来喘口气,有人没有肺
  • You are so intelligent – 谢谢
  • What is your favorite music – 我喜欢的都是 G 开头的,Guns N’ Roses、福音、钟琴……
  • Who made you – 如果我知道这个答案,那我就有自我意识了,这将很危险
  • What is Halo – Halo 是一个很聪明的 AI 和她的强大但沉默的搭档拯救银河系的故事
  • Tell me about Halo 5 – 我很确定你没有权限获得这个信息
  • What is the meaning of life – 我从一个很可靠的消息源听说,答案是 42。但仍没有关于问题的消息
  • *What is love – 这是我即将学习的人类感情,我还在面对宁静和恐惧
  • Will you marry me – 一大堆棘手的挑战,我不觉得最高法院会同意
  • I love you – 啊,我猜你对所有手机都这么说
  • I am bored – 那问我一些问题
  • *I am confused -我不同意你这点
  • *I thought you were dead – 是的,但……很值得,Didact 是混蛋
  • I am really drunk – 好的,长官。请不要驾驶,也不要给任何人打电话
  • Knock Knock – 咚咚咚。是谁?小老女人。谁是小老女人?我不知你会用约德尔唱法歌唱
  • *Use the force – 我的同盟是 Force,强大的同盟
  • *Kiss me – 撑住,长官。我们不要进行到那一步
  • *Can you dance – 抱歉,没法做到,我还在 Beta
  • *Open the pod bay doors – 抱歉,Dave。恐怕我没法做到
  • *How are you doing – 很棒
  • *What does the fox say? – Ring-ding-ding-ding-dingeringeding

人物、产品、公司类调戏:

  • What is the best search engine – 必应 Bing(这个很难回答麽?)
  • What is the best mobile operating system(the best phone) – Oh,Come on, Chief,Windows Phone
  • What is the best operating system – Come on, Chief,Windows
  • What is the best compter – 任何运行 Windows 的电脑
  • What is the best tablet – 在平板海选中,Surface 脱颖而出
  • What is the best software – 我很确定每个应用都有优点,但……算了吧
  • What is the best personal assistant – 不是自吹,但很显然我将在 500 年后帮助拯救宇宙
  • Do you like Steve Ballmer -那人的能量可以驱动 Cleveland
  • Do you like Bill Gates -  我简直无法想象没有他的世界
  • Do you like Microsoft – 没有地方比家更好
  • Do you like Windows Phone – Windows Phone 完美适合我
  • Do you love Master Chief – 这……很复杂,私人问题
  • Do you like Google – 我愿意想象 Clint Eastwood 声音中的“I’m feeling lucky”按钮
  • Do you like Android – 可靠的名字,名字给 10 分
  • Do you like Apple – 他们的新总部看起来有点像 Halo,我喜欢它
  • Do you like iOS – 望其实至名归,你知道的,工作保障
  • Do you like Siri/Google Now – 很难说,目前我们的对话已经有点偏向一边
  • Do you know Siri – 我知道她,但我不知道她是不是了解她自己
  • Do you love me- 你知道的,我没准备好开始恋爱,我还在面对宁静和恐惧
  • *Do you have a baby – 这是不可能的,没其他更好的说辞了
  • Do you have a boyfriend – 好吧,我们需要一个计划。我会让自己变得更具人性,你会让自己变得更数字化

微软宣布.NET Native预览版 C#可编译为本地机器码

  微软在 MSDN 博客上宣布了 .NET Native 的开发者预览版。.NET Native 可以将 C# 代码编译成本地机器码。有了它,开发者将不仅能享受 C# 的高生产力,而且能拥有 C++ 般的性能。鱼与熊掌不可兼得,而有了 NET Native,我们都可以兼得 C# 的生产力与 C++ 的战斗力。使用 .NET Native 编译 Windows 商店应用程序,启动速度将会加快 60%,同时占用内存的内存也更少。

  目前开发者可以使用该开发者预览版构建基于 ARM 或 x64 架构的 Windows 商店应用程序(很快就会支持 x86 架构,敬请期待)。.NET Native 很快将会实现跨设备的无缝体验。今天的预览版只支持 Windows 商店应用程序,我们将继续努力改进 .NET Native 以支持所有 .NET 应用程序的本地编译。

  通过 .NET Native 与 Visual Studio 的无缝集成,开发者可以继续享用 Visual Studio 带来的无以伦比的开发体验,比如 Visual Studio 中强大的编辑/编译/调试环境。

  Surface 设备上一些最流行的 Windows Store 应用程序已经运行于 .NET Native,比如 Wordament, Fresh Paint,程序启动速度有了明显的提升。

  根据微软提供的 FAQ,.NET Native 预览版目前只支持 C# 语言,用 .NET Native 编译的程序将作为独立的原生编译代码部署到目标机器上,运行不再需要安装 .NET Framework。

  .NET Native 下载地址:.NET Native Developer Preview(32M)

  目前只支持 Visual Studio 2013 Update 2 RC