未发布 微软C# 8.0中的四个特性 可空的引用类型(Nullable Reference Types)
可空的引用类型可概括地表述为,引用类型将不再默认可空。因此,开发人员必须使用定义可空值类型的同样语法“Type?”,显式地标记一个引用类型为可空。
如果将一个空值赋值给一个非可空的引用类型,那么将会给出一个编译器警告。与之相类似,从可空类型中读取也会给出编译器警告,除非显式地提前检查了被质疑的变量是否为空值。因此从理论上讲,开发人员需要做的唯一更改就是在代码的适当位置标上问号。
该特性新加了一个语法。该语法针对开发人员明知一个可空变量x并非实际为空值却无法证明给编译器的情况。在上述情况下,开发人员现在可以定义x!.Method(),消除编译器对于潜在空值引用异常的警告。
异步流(Async Streams),即foreach async
异步流是IEumerable的异步等价类。C#团队自2015以来就一直在努力实现异步流。在经历了很多争议后,其语法被定为: foreach await (string s in asyncStream)
开发人员将使用如下的函数签名定义一个异步迭代器:
async IAsyncEnumerable MethodName()
就像使用一个正常的IEnumerable方法一样,开发人员可以使用“yield return”以懒方式(Lazy)构建对象流。
相比于源自响应式扩展(Reactive Extensions)的IObservable,使用这一方法的优点在于让消费者控制流速,这被称为“Pull模式”。与之相对,IObservable是一种“Push模式”,这意味着生产者可以使用高于消费者所能处理的流速让流涌向消费者。
缺省接口实现(Default Interface Implementations)
缺省接口实现在本质上是一种有限形式的多重继承。它允许抽象接口像抽象类一样,对方法进行完全的定义,只是抽象接口依然不能定义构造函数和字段。
需注意,开发人员可以通过使用ConditionalWeakTable在接口上模拟字段。
默认接口实现的主要好处是,开发人员可以在不破坏向后兼容的条件下,将一个新方法添加到一个已有的接口中。但是这并非是有保证的,因为默认接口只是在可以设计出适合的默认方法时才能工作。
扩展(Extension)
开发人员可以编写扩展方法,但是不能扩展属性,这是长期以来对C#一直存在的一个问题。事实上,如果使用当前的模式,甚至是不能定义一个扩展属性或事件的。此外,在很多开发人员看来,在静态类中放置扩展方法是“很诡异的”。
新的设计中新给出了一种称为“扩展”(Extension)的顶层语言构件。例如,如果开发人员想要为自定义的Customer类创建一个扩展方法和属性,可编写如下代码:
extension CustomerExt extends Customer {
//定义方法和属性的代码。
}就接口而言,是不能在扩展中定义实例字段的,但是可以使用ConditionalWeakTable实现模拟。定义静态字段也是允许的。
除了对属性、事件和操作符重载的扩展,C#团队甚至考虑允许扩展构造函数。扩展构造函数非常适用于工厂模式(Factory)和对象池场景。
扩展接口(Extension Interfaces)C#团队还考虑了扩展接口,即在已有类中添加新接口的能力。但是扩展接口将不会成为C# 8中的特性,因为它需要更改底层的运行时。
未发布 微软:Windows 10 Fall Creators Update包含最新Windows开发工具和应用商店 今年5月在西雅图举行的 Build 2017 开发者大会上,微软公布了 Windows 10 下一个重要更新——Windows 10 Fall Creators Update。Windows 10 Fall Creators Update将在今年下半年为超过 5 亿台 Windows 10 设备带来创新体验:其中包括一套用以在不同类型 Windows设备上实现创新的设计体系;全新的开发工具将让开发者轻松自如地在Windows平台工作;Windows 应用商店将要迎来 iTunes、Spotify、SAP Digital Boardroom 等人气应用;贯穿 Windows、iOS 和 Android 设备的一致的用户体验;此外,还有全球首款 Windows Mixed Reality(Windows 混合现实)动作控制器——完全无需依赖任何定位标记即可工作。
全新的设计体系,让开发者在 Windows 设备上更好地发挥创意
微软流畅设计体系(Fluent Design System)将带来直观、和谐、响应迅速、兼容广泛的跨设备体验与互动操作。对于开发者来说,流畅设计能帮助他们设计出更具表现力和吸引力的应用程序,并且广泛支持各种类型的设备和多样化的输入方式。
让开发者在轻松自如地使用 Windows
微软致力于让所有开发者都可以轻松自如地使用 Windows 和 Visual Studio——不仅仅是 Windows 应用程序开发,也包括跨越各类平台和设备的应用体验——。微软宣布了多个针对 Windows 开发者的新开发工具。
- .NET Standard 2.0 for UWP 和 XAML Standard将于下半年推出,它们将让网页开发、C++、.NET 和 UWP 开发者爱上用 Windows 编程的感觉。
- 现代编码让开发者可以更好地发挥出 Windows 和 Microsoft Graph 的优势,微软提供了面向 UWP、Android 和 iOS 的 “罗马计划”。
- 有了 Xamarin Live Player,开发者能够通过 Windows 电脑针对 iPhone 应用进行构建、测试和排错。通过这项新的工具,用户仅需要 Visual Studio 和 iPhone,即可上手在数分钟内开发 iOS 原生应用。
- 通过在 Windows 应用商店上线 Ubuntu,微软极大地简化了其安装的过程。微软还宣布将与运行于 Windows 针对 Linux 子系统的 SUSE Linux 和 Fedora Linux 展开合作, 在 Windows 应用商店发布这几款应用。现在, Windows 已成为唯一可以同时运行 Windows 应用和 Linux 应用的平台。
Windows应用商店全面支持Windows、iOS和Android UWP应用,欢迎iTunes上线
今年下半年,Windows应用商店将加入更多人气应用:
- iTunes应用即将在今年年底加入 Windows 应用商店。届时,Windows 用户将能够在任意 Windows 10 或Windows 10 S个人电脑上,享受到完整的 iTunes 应用体验,其中包括 Apple Music、iTunes 商店以及对于 iPhone 和其他苹果设备的支持服务。
- AutoDesk在去年夏季发布了Windows平台的 UWP 应用 SketchBook。如今,Windows 平台已成为这款应用增长最快的新平台,2017 年平均月销售增长达 35%。Autodesk SketchBook是绘画绘图应用领域当之无愧的王者,这个专门为 Windows平台构建的应用将充分发挥Windows 10 手写笔和触控的最大潜力。Autodesk将继续利用UWP拓展其在Windows应用商店的产品种类,并在Autodesk Stingray——一款 3D 游戏引擎及实时渲染软件——中加入更多针对 Windows Mixed Reality 的支持。
- SAP将在本月于Windows应用商店推出SAP Digital Boardroom。SAP Digital Boardroom 是SAP最受欢迎的解决方案之一,也是汇聚了一系列业务应用数据的新一代董事会门户,它能够为企业高管提供单一源头的业务情况汇总,帮助高层实时做出业务决策。这款应用将作为先进 Web 应用程序(Progressive Web App)在Windows应用商店推出,同时将与Windows 10深度集成。
为用户带来贯穿 Windows、iOS和Android的一致体验
Microsoft Graph构建起了一个智能网络,将人、会话、项目和微软云上的内容相互连接起来,并且能够构建起在Windows、iOS、Android 设备之间无缝衔接的一致体验。其提供的关键功能包括:
- 可视化的时间轴上展现了用户做过的一切,让用户并且可以快捷地跳转到任何时间点去访问文件、应用和网站,如同时间倒流一样。
- 借助小娜(Cortana),用户可以方便地在 Windows、iOS 和 Android 设备之间切换并继续之前的操作。
- 剪贴板将成为在互联设备之间进行复制粘贴的便捷手段,比如从电脑桌面上复制一个文件,然后在手机上把它粘贴过来。
- OneDrive文件随用随取,可以方便地访问储存在云端的所有文件,而无需下载和占用设备存储空间。
Windows Story Remix:用图片和视频讲故事的新方式
Windows Story Remix 是一项基于.Net 技术构建并通过 Windows 商店分发的通用Windows应用(UWP),可以利用人工智能和深度学习技术整理照片和视频并将其转变为叙事形态。它利用 Microsoft Graph 连接不同设备的用户。Story Remix 将记忆、照片、视频整合成一个故事,并加入音轨、主题和串场切换效果。通过在照片和视频中加入 3D 对象,用户还可以构建出混合现实的视角,以新的方式讲述故事,或是将照片和视频当作画布,利用 Windows 墨迹书写在上面涂鸦绘画。
全球首个Windows Mixed Reality运动控制器——无需依赖位置标签
微软还带来了全球首款完全无需依赖位置标签的 Windows Mixed Reality 运动控制器,利用 Windows Mixed Reality 头戴设备中内置的传感器,就能对视野内的动作进行定位准确、响应迅速的动作跟踪,并且完全不需要在周围墙壁上安装任何硬件设备。
微软正在将 Windows 塑造为帮助每一人开启创作之途的平台。在此诚挚邀请诸位开始这一旅程:
- 帮助你激发大众对应用的热情和参与,敬请下载Windows 10 Fall Creators Update——最新一期更新将在今天由Windows Insider计划推送,同时它将在接下来的数月得到进一步改进。
- 即刻下载罗马计划的 SDK 并开始使用 Microsoft Graph在时间轴中添加你的最新活动,助你提高应用参与度。
- 下载Windows 10平台的Visual Studio,尽情享受完整的端对端跨平台应用体验。
- 若你位于美国或加拿大境内,你可从此处预定 Windows Mixed Reality 开发工具包并着手开始构建属于您的混合现实场景。
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程七:添加多个附件 MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
本文主要介绍了如何使用MailBee.NET Objects在邮件中添加多个附件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
| C#: oMailer.Message.Attachments.Add(@"C:\Temp\report.doc"); oMailer.Message.Attachments.Add(@"C:\Temp\prices_2005.xls", "prs2005.xls"); oMailer.Message.Attachments.Add(@"C:\Temp\my_photo.jpg", "pic1.jpg","<12s4a8a8778c$5664i1b1$ir671781@tlffmdqjobxj>"); oMailer.Message.Attachments.Add(@"C:\Temp\john_doe_photo.jpg", "pic2.jpg","<12s4a8a8932r$5664i1t1$iy671661@yljfmkqjghxu>", "image/gif", null, NewAttachmentOptions.Inline, MailTransferEncoding.Base64); |
VB.NET: oMailer.Message.Attachments.Add("C:\Temp\report.doc") oMailer.Message.Attachments.Add("C:\Temp\prices_2005.xls", "prs2005.xls") oMailer.Message.Attachments.Add("C:\Temp\my_photo.jpg", "pic1.jpg","<12s4a8a8778c$5664i1b1$ir671781@tlffmdqjobxj>") oMailer.Message.Attachments.Add("C:\Temp\john_doe_photo.jpg", "pic2.jpg", "<12s4a8a8932r$5664i1t1$iy671661@yljfmkqjghxu>", "image/gif", Nothing, NewAttachmentOptions.Inline, MailTransferEncoding.Base64) |
上面的示例向邮件添加了四个附件。第一个文档作为report.doc附加。第二个文件作为附带指定的CID的prs2005.xls。第三个附件是一张图片,也有自己的CID。最后一个附件被强制作为Base64编码中的内联对象。
如果附件被认为是一个内联对象,它将与邮件正文一起显示。但是,如果开发人员需要从邮件正文的任何地方引用此附件,则应将相应的CID分配给此附件。
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程三:没有SMTP服务器的情况下发送消息 发送消息的最简单的方法是使用Smtp类的QuickSend方法(此方法是静态的,不需要你创建Smtp类的实例)。
即使没有SMTP服务器,QuickSend方法也可以发送电子邮件。该方法通过向网络设置中注册的DNS服务器进行查询,确定哪些服务器接收电子邮件的To / CC / BCC字段中指定的域的邮件,然后将电子邮件直接发送到收件人的邮件服务器。
C#: MailBee.SmtpMail.Smtp.QuickSend("jdoe@domain.com", "bill@domain.com", "Subject", "Message Body"); |
VB.NET: MailBee.SmtpMail.Smtp.QuickSend("jdoe@domain.com", "bill@domain.com", "Subject", "Message Body") |
如果要手动指定DNX MX查找DNS服务器,可以编辑应用程序的app.config或web.config文件,并将MailBee.DnsMX.DnsServerCollection键放该位置。有关详细信息,请参阅DnsAutodetectOptions文档。
备用(和更高级)的方法是创建Smtp对象并手动指定DNS服务器的IP地址:
C#: mailer.DnsServers.Add("127.0.0.1"); |
VB.NET: mailer.DnsServers.Add("127.0.0.1") |
要通过检查系统属性自动填充Dns服务器,请使用Autodetect方法(顺便说一下,QuickSend方法可以使用Autodetect来确定可用的DNS服务器列表):
C#: mailer.DnsServers.Autodetect(); |
VB.NET: mailer.DnsServers.Autodetect() |
此外,你可以指定用于调整在系统中注册的DNS服务器的自动检测选项。有关详细信息,请参阅DnsAutodetectOptions文档。
注意:由于发送垃圾邮件的人经常使用直接发送操作,因此许多邮件服务不接受来自未知主机的邮件提交。建议仅从指定的MX、PTR和SPF记录的域执行直接发送操作。在这种情况下,接收邮件的主机将能够验证发件人的域名并接受邮件提交请求。
未发布 Windows网络守门人UserLock教程:UserLock教程:阻止规定时间以外的访问连接 UserLock免费下载试用>>>
UserLock允许您创建规则用来阻止用户在授权时间以外连接到网络。本文将一步一步的教您如何制定规则来阻止用户工作站和终端连接超出工作时间:
- 周一至周五,8:00至19:00。
- 周六上午,9:00至13:00。
并且将在到达时限后强制任何会话的注销打开。
1、点击菜单中的“受保护的帐户”。如果已存在则可以通过双击相应的行来打开所需的用户帐户。否则,您可以为目标组创建受保护的帐户。
2、显示“时间限制”部分。
3、选择“以下时间范围”下拉列表的'被授权'选项。
4、点击“添加”来定义时间段。
5、定义具体的时间范围。选择“交互”作为会话类型来选择哪些类型的会话,包括工作站和终端会话类型。点击“确定”。
6、检查相应的日期框 - 星期一至星期五。点击“确定”。
7、调整时间为上午8:00至下午7:00。点击“确定”以验证第一个授权的时间范围。
8、您现在必须为星期六定义第二个时间范围。再次点击“添加”。
9、定义第二个时间框架,即星期六上午9:00至下午1:00。再次选择“交互”作为会话类型,包括工作站和终端会话类型。点击“确定”。
10、取消选中从星期一到星期五的框,而是选中星期六的框。点击“确定”。
11、调整时间为上午9:00至下午1:00。点击“确定”添加第二个时间框架。
您已经成功定义了与授权时间相对应的两个时间范围。用户在这些时间以外的连接将被拒绝。
12、要在时间限制后注销用户会话,请调整“超时时采取的行动”为“注销会话”选项。
请注意,强制注销表示所有未保存的文档将丢失。下一步允许您自定义警。
13、要警告用户授权时间已经结束,将“注销通知超时”设置为“已启用”,并输入几分钟,在此分钟内将显示警告消息框(在我们的示例中为15)。
14、在“快速访问”面板中单击“确定”以验证规则。
“Everyone”组的用户成员将被允许在授权时间内打开工作站或终端会话的权限。达到时限的会话将被注销,并发出预警通知。所有工作站和终端连接超出规定的时间将被拒绝。
您可以在“消息”视图中自定义“注销通知超时”内容。通知消息参考是“TIME_RESTRICTION_LOGOFF”。

未发布 微软的dotnet-new工具可以使创建JavaScript Web 程序变得更简单 Microsoft发布了一组工具,使用他们的dotnet-new工具和使用Node.js的灵活方法可以快速生成基于JavaScript的Web 应用程序。
dotnet-new工具是.NET Core工具的一部分,用于使用简单的命令启动一个新项目。作为ASP.NET Core JavaScript Services的一部分,Web开发人员现在可以使用相同的命令来启动新的单页应用程序(SPA)。
点击查看完整内容>>>
未发布 微信里的 Office 365 —— Office 365 微助理打造移动办公新体验 在2017微软技术暨生态大会(Microsoft Tech Summit)上, 微软宣布Office 365微助理正式商用。Office 365微助理将微软Office 365的生产力服务扩展到微信平台,能够在人们熟悉的微信操作界面中,为企业及用户带来 Office 365 的安全性、管理性和更多深层功能。这项由微软中国自主研发的全新功能能够为习惯利用微信进行日常沟通和工作的中国用户,提供一个功能强大、智能化,且简单易用的移动办公和通信解决方案。此外,Office 365 微助理还允许第三方合作伙伴开发出更多基于 Office 365 平台的商业解决方案。
Office 365商用客户将可以通过产品官方页面部署中文版的Office 365微助理服务。
Office 365 微助理
作为中国影响最广的移动社交软件,微信拥有超过 9 亿活跃用户,且大部分用户每天都在频繁使用微信。人们不但将微信用于私人交流,同时也经常将其用于日常的工作沟通和相互协作。但把私人微信用于工作,常常会让人手忙脚乱,因为用户要经常在微信、电子邮件、语音通话及更多其它应用之间来回切换;与此同时,企业 IT 部门则要为如何确保这些基于聊天的交流和数据的安全、可追踪、可管理而大伤脑筋。
Office 365 微助理将企业级的安全性、管理性,以及统一的通信及协作工具与微信的操作体验融会贯通。通过将
Office 365 服务植入微信,用户和企业既能继续使用他们最熟悉的通信工具,同时又能得到由 Office 365 提供的更高水平的生产力、团队协作能力,以及安全性的保障。
实现高效沟通及信息管理
Office 365 微助理的智能通知(intelligent notifications)功能可以帮助用户更高效地管理信息,并在微信中更轻松地找到联系人和文档。用户不但能及时收到邮件和会议提醒,还能在组织内快速查找联系人、文件和邮件信息。Office 365 微助理能确保信息发布的安全性,员工也可以通过公司内网查看企业内部的政策规定或及时获取 IT 部门的支持。Office 365 微助理还能提供对最近打开的文档或常用联系人的快速访问,智能识别图片信息,并能生成可以编辑的 PowerPoint 文档。
通过“个人助理”接收工作提醒
通过“同事圈”了解同事动态
促进高效的团队协作
Office 365 微助理不但能帮助用户快速与同事取得联系,还提供了安全的文档共享服务、基于人工智能的智能会议调度及任务协调功能,可以显著提升团队协作的效率。用户可以通过多种方式与他人沟通,包括使用企业通讯簿快速查找特定联系人,通过身份同步(ID sync)自动将 Office 365 联系人同步到企业通讯簿中。此外,用户还能够借助 OneDrive 安全地共享文件。所有讨论交流都可以自动存档,便于以后参考使用。
通过“团队协作”查看最近联系人
确保企业级的信息安全和管理性
利用 Office 365 微助理,企业可以对数据访问权限进行更好的管理,对数据进行更周全的保护,在确保合规的同时,提供简单易用的管理性。微信将得到企业级的数据保护,静态数据和传输中的动态数据都能全程得到增强的数据保护。收到文档的用户需要具有相应的权限才能对文档进行访问和共享,对于保密文档,用户浏览文件时就会自动添加水印,同时禁止文档转发。
Office 365 微助理能确保员工进入与其身份、职责相符的聊天群组或对话中,从而有效防止信息泄露。同时,每名员工的Office 365 账户信息与其企业微信身份始终保持同步,因此 IT 管理员能够轻松地对用户身份进行统一管理。Office 365 平台与微信的集成,不但能为企业提供企业级的数据保护,同时还能确保移动设备上的数据安全。
IT 管理员能够轻松地对用户身份进行统一管理
即刻体验 Office 365 微助理
从今天开始,Office 365 商用客户将可以通过产品官方页面即刻部署和使用 Office 365 微助理服务。
未发布 多比图形控件教程:基于Flex/Javascript的网页绘图控件 1.概述
多比矢量图控件是一个在Web上绘图的组件,适用于需要在网页中/编辑流程图、图表、网络图和普通矢量图形的Web应用程序组件。多比控件提供充分的编程接口,可以非常容易的和ASP.NET、JavaWeb技术集成。
【最新多比图形控件(Web)v3.5点击下载>>>】
1.1 技术特征
多比矢量图控件采用最新的AJAX技术,他以Flex和Javascript为基础,可以很方便的在网页中展现绚丽的矢量图形。相比传统的技术,多比矢量图控件有以下的突出优点。
- l 只需要安装Flash播放器,不需要其他第三方插件, 不依赖任何插件供应商。很多国有企业、政府部门、军工企业,由于安全性等原因,环境往往不能安装浏览器插件。
- l 标准的Web技术,非常容易和Java或.NET集成。
- l 可扩展,可修改,可配置。和ActiveX控件不同,多比控件很容易修改和扩展,只需要很少的脚本代码,就可以实现和默认行为不一样的功能。
1.2 应用领域
多比图形控件是一款基于Web的矢量图形控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器、工作流流程监视器解决方案。 可广泛应用于包括:电力、军工、煤炭、化工、科研、能源等各种监控软件、web工作流设计器、asp.net工作流设计器、电力、化工、煤炭、工控组态软件、仿真、地理信息系统、工作流、复杂报表 工业SCADA系统、ERP流程设计系统、图形管理、图形拓扑分析、GIS地理信息系统系统、工程制图等领域。目前已经为全球20多个国家的数千家客户采用。
1.3运行一下例子
首先, 你需要到多比的官方网站上下载最新版的多比控件。你可以直接到这个链接下载 http://www.duobee.com/Page-d-key-visio_download。
下载完成后,你需要将现有的包解压,并且发到IIS或者TOMCAT下的某个目录,然后通过http://localhost/download/testing这种方式打开。 请不要直接双击打开(file:///),这种方式将导致flash文件加载不正确。