未发布 .NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别 前段时日微软(Microsoft)正式发布了.NET Core 2.0,在很多开发社区中反响不错。但还是有一些开发者发出了疑问,.NET Core、Xamarin、.NET Standard和.NET Framework之间有哪些不同呢?本文就为大家简单描述一下这四者之间的区别。
.NET Core
.NET Core是免费、跨平台的,是托管框架的开源实现。它支持4种类型的应用程序:控制台、ASP.NET Core、云和通用Windows平台(UWP)。Windows Forms和Windows Presentation Foundation(WPF)并不包含在.NET Core中。
从技术上讲,.NET Core仅支持控制台应用程序。ASP.NET Core和UWP是以.NET Core为基础构建的应用程序模型。
与.NET Framework不同,.NET Core没有作为Windows组件考虑。因此,更新是以NutGet包的形式,而不是通过Windows Update。由于.NET Core运行时安装成了App-Local,而应用程序升级是通过包管理器完成的,所以应用程序可以关联特定的.NET Core版本以及单独升级。
.NET Standard
托管框架的每一种实现都有一套自己的基类库。基类库(BCL)包含诸如异常处理、字符串、XML、I/O、网络和集合这样的类。
.NET Standard是一项实现BCL的规范。由于.NET实现需要遵循这项规范,所以应用程序开发人员就不用担心每一种托管框架实现的BCL不同。
框架类库(FCL),如WPF、WCF、ASP.NET,不包含在BCL中,因此,也就不包含在.NET Standard中。
.NET Standard与.NET实现之间的关系就和HTML规范与浏览器之间的关系一样。后者是前者的实现。
因此,.NET Framework、Xamarin和.NET Core,每一种托管框架都实现了.NET Standard中的BCL。随着计算机工业不断推出新的硬件和操作系统,将来还会出现新的.NET托管框架。该标准让应用程序开发人员知道,他们可以依赖于一套始终如一的API。
每个.NET版本都对应一个.NET Standard版本。
API一致,将应用程序移植到不同的托管实现以及提供工具都会更简单。
.NET Standard被定义为一个单独的NuGet包,因为所有的.NET实现都必须支持它。工具变得简单了,因为对于特定的版本,它们有一套相同的API。你还可以针对多个.NET实现构建一个库项目。
你还可以构建特定平台API的.NET Standard封装器。
.NET Standard vs 可移植类库
可移植类库做的不是同一件事吗?
可移植类使用多个平台均都支持的通用API。因此,支持的平台越多,可用的API就越少,而且,对于特定的平台组合,很难知道到底支持哪些API。对于一个新平台,已有的PCL必须重新编译。PCL还需要微软针对每个平台创建一个新的框架实现分支。
由于.NET Standard确定了API,而不是一个实现,所以不需要重新编译应用程序。任何新发布的.NET实现都实现了必须的库。应用程序不需要重新编译就可以运行在新的硬件平台或操作系统上。从理论上讲,在调用API时可能会捕获到NotSupportedException异常,但那种情况应该很少见。
小结
- .NET Standard是一项API规范,每一个特定的版本,都定义了必须实现的基类库。
- .NET Core是一个托管框架,针对构建控制台、云、ASP.NET Core和UWP应用程序进行了优化。每一种托管实现(如Xamarin、.NET Core或.NET Framework)都必须遵循.NET Standard实现BCL。
- .NET Framework用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的ASP.NET应用程序。它是第一个托管框架。
- Xamarin则是一个用于构建iOS、Android、macOS和桌面应用程序的框架。
【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】
活动时间:10月1日-10月31日

未发布 【教程】FileAudit入门的基本要求 FileAudit可用于对Windows服务器上文件和文件夹的所有访问进行主动跟踪、审核、报告和警告。本文为大家介绍FileAudit入门的基本要求,包括操作系统、硬盘、数据库等。
操作系统
FileAudit可以在以下操作系统中安装(用于控制台安装):
- Windows 10
- Windows 8
- Windows Server 2012 R2
- Windows Server 2012
- Windows 7
- Windows Server 2008 R2
- Windows Server 2008
- Windows Vista
- Windows Server 2003
- Windows XP
- .Net Framework 4是必需的。
硬盘
FileAudit安装文件和文件夹需要60MB的可用硬盘空间。
此外,您必须保留一定的磁盘空间来存储文件访问事件历史记录:由FileAudit审计的访问事件保存在数据库中时会占用0.5KB的磁盘空间。通过将此值乘以平均访问次数
(在测试阶段已知或观察到),您可以轻松地估计数据库大小。
数据库
FileAudit支持以下数据库系统:
- Microsoft Access数据库文件(mdb)
- Microsoft SQL Server Express 2008/2008 R2 / 2012/2014
- Microsoft SQL Server 2008/2008 R2 / 2012/2014
- MySQL 5.6和更高版本
为了便于FileAudit评估,安装包集成了一个“MS Access数据库”来归档所有文件访问事件。这个免费的数据库类型被设计限制为2GB。你可以在使用FileAudit的第一天检查数据库大小的演变,以确认您选择的数据库系统是否适合您的环境。
协议和端口
FileAudit要求将这两个协议从FileAudit服务授权给目标审计系统:
- Microsoft网络的文件和打印机共享 - SMB TCP 445
- ICMP - Ping
请确保在“防火墙例外”列表中启用“远程事件日志管理”(Windows 2008/2008 R2和Windows Server 2012)。FileAudit控制台默认使用TCP端口2000远程连接到FileAudit服务。这个特定的端口可以在“服务”设置中修改。
显示分辨率
FileAudit要求1024 x 768的最小分辨率。
未发布 微软:Visual Studio 2017是迄今为止最高效的版本 Visual Studio 2017 全面上市。
欢迎大家即刻下载体验全新的 Visual Studio 2017!我们还为整个 Visual Studio 产品系列进行了更新,让 Visual Studio 订阅用户和 Visual Studio Dev Essentials 的会员收获更多价值。
Visual Studio 2017:迄今为止最高效的版本
我们针对 Visual Studio 2017 的多个关键领域进行了重点研发——包括改进基础部件、提供五星级的云和移动开发体验,以及提升 DevOps 功能,以确保 Visual Studio 2017 可以助力每一位开发者在各种平台上开发各类应用。
在发展 Visual Studio 2017 这一全新版本时,我们将云和移动开发置于最重要的位置。为了简化云开发流程,内置的各项工具将为您提供有关.NET Core、Azure 应用、微服务、容器等应用开发的完整集成功能,甚至现在可以更轻松地由 IDE 直接开发和部署 Azure 应用和服务。Visual Studio 2017 with Xamarin 让你能够通过先进的调试和分析工具更加快速地为安卓、iOS 和 Windows 平台开发移动应用。
我们也重视聆听用户心声,并清楚地了解到用户希望 Visual Studio 变得更为快速、更精简,即使所面对的应用开发和项目愈加庞大。因此,我们将为用户提供全新的安装体验,让一切变得轻便而模块化。为提高 Visual Studio 的性能,我们还增强了多项功能。Visual Studio 2017 还将交付多项全新特性,帮助开发团队能够轻松地实践现代化的 DevOps 做法,更为快速而持续地应对市场变化。为了帮助开发者更好地把自己的数据库嵌入 DevOps,加速发布周期,Redgate Data Tools 工具现已加入 Visual Studio Enterprise 2017 服务当中。
未发布 【教程】Edraw Max(亿图图示):思维导图怎样一次性键入分支内容? Edraw Max(亿图图示)作为一款功能齐全,使用方便、快捷的全类型图形图表设计软件,不仅富含丰富的模板和例子,还可以一键轻松导入思维导图的分支内容。本文就教大家具体的操作方法吧!
目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
第一步:选中需要添加分支的主题形状,然后点击“思维导图”菜单栏下的“添加多个主题”;
第二步:打开之后,依次输入需要添加的分支内容,按回车键(enter)换行,每一行代表一个主题;
第三步:重复以上两步,可以在第二级分支上再一次导入第三级分支;
第四步:数据导入之后,可以跟通过“思维导图”下的“布局”对整个思维导图的主题、样式进行调整,同时还可以将数据直接导出为Word、Excel以及文本格式。
未发布 用户界面控件TMS IntraWeb Component Pack Pro发布v5.8.8.1丨附下载 IntraWeb的TMS控件允许从Delphi IDE直接在IntraWeb表格上编辑设计期间的网页。IntraWeb的TMS控件允许以RAD方法用Delphi进行网页应用程序的开发。这使得网页开发就像在表格上放控件一样简单。
v5.8.8.1
修复:
v5.8.8.0
新增:
修复:
v5.8.7.0
新增:
修复:
v5.8.6.0
改进:
修复:
IWResponsiveList:滚动列表时可能出现问题
IWMultiColumnComboBox:DropDownImage属性的设计时间功能
IWDatePicker:在较新的IW版本中设置可见性问题
IWAdvWebGrid:内存泄漏
IWAdvTreeView:设置SelectedNode属性的问题
v5.8.5.0
新增:
修复:
【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】
活动时间:10月1日-10月30日

未发布 【百厂约惠】Dynamsoft全线产品低至6.7折!错过等一年
Dynamsoft现已加入慧都史上最大力度的“百厂约惠”折扣专区,全线产品低至6.7折!全年仅此一次,你还在等什么!
活动时间:2017.12.5-2017.12.31
应用于Web应用程序的TWAIN扫描识别工具 支持所有主流浏览器。 |
更快速、更安全的远程获取 和跨平台VSS插件 兼容所有的网络技术,平台和设备 | 为桌面应用程序设计的.NET控件 适用于C#和VB.NET 能让你从任何TWAIN设备中获取图像的托管代码SDK |
一款多功能的条码读取控件 只需要几行代码就可以将条码读取功能 嵌入到Web或桌面应用程序 | 快速、轻松地为您的web应用程序 启用图像和视频捕捉 |
一个用以替代VSS的独立版本控制软件 | 一款基于SQL Server的本地/网络版本控制软件 |

未发布 MailBee.NET Objects发送电子邮件(SMTP)教程一:使用SMTP服务器发送消息
Smtp对象提供了多种方法和属性来调整优化发送消息的过程。可以创建一个新的Smtp对象实例,如下所示:
C#:
Smtp mailer = new Smtp();
VB.NET:
Dim mailer As New Smtp()
如果SMTP服务器不需要任何身份验证,那么指定的主机名或它的IP地址就足以连接到此SMTP服务器。
C#:
mailer.SmtpServers.Add("mail.domain.com");
VB.NET:
mailer.SmtpServers.Add("mail.domain.com")
然而,大多数服务器现在要求用户对自己进行身份验证(例如,如果要通过此服务器将电子邮件发送给外部收件人,则必须拥有有效的帐户)。要指定你的帐户凭据,请使用以下代码:
C#:
mailer.SmtpServers.Add("mail.domain.com", "jdoe", "secret");
VB.NET:
mailer.SmtpServers.Add("mail.domain.com", "jdoe", "secret")
根据服务器设置,你可能需要输入整个电子邮件地址,而不仅仅是一个帐户名称(例如,在某些情况下为jdoe@domain.com或domain.com \ jdoe)。
某些SMTP服务器要求客户端进行身份验证,但不支持任何SMTP命令。这些服务器依赖于同一个客户端的最近POP3连接的认证结果(即相同的IP地址)。因为POP3和SMTP服务器通常共享相同的用户帐户数据库。
在发送消息之前,你应该确定内容。例如:
C#:
mailer.Message.From.AsString = "jdoe@domain.com";
mailer.Message.To.AsString = "bill@domain.com";
mailer.Message.Subject = "Hi";
mailer.Message.BodyPlainText = "Hello Bill";
mailer.Message.From.AsString = "John Doe ";
mailer.Message.To.AsString = "Bill (Company Inc), Kathy ";
mailer.Message.Subject = "The document";
mailer.Message.BodyHtmlText = "The document body";
mailer.Message.From.Email = "jdoe@domain.com";
mailer.Message.From.DisplayName = "John Doe";
mailer.Message.To.AsString = "Kathy ";
mailer.Message.Cc.Add("bill@domain.com", "Bill Smith");
mailer.Message.Subject = "News";
mailer.Message.BodyPlainText = "News body";
VB.NET:
mailer.Message.From.AsString = "jdoe@domain.com"
mailer.Message.To.AsString = "bill@domain.com"
mailer.Message.Subject = "Hi"
mailer.Message.BodyPlainText = "Hello Bill"
mailer.Message.From.AsString = "John Doe "
mailer.Message.To.AsString = "Bill (Company Inc), Kathy "
mailer.Message.Subject = "The document"
mailer.Message.BodyHtmlText = "The document body"
mailer.Message.From.Email = "jdoe@domain.com"
mailer.Message.From.DisplayName = "John Doe"
mailer.Message.To.AsString = "Kathy "
mailer.Message.Cc.Add("bill@domain.com", "Bill Smith")
mailer.Message.Subject = "News"
mailer.Message.BodyPlainText = "News body"
内容完成后,你就可以点击发送了。
C#:
mailer.Send();
VB.NET:
mailer.Send()
未发布 Microsoft将持续交付功能添加到Visual Studio、Azure Microsoft正在向Visual Studio 2017 IDE中添加持续交付功能。
Visual Studio扩展的持续交付工具允许开发人员在Visual Studio团队服务ALM平台上设置自动构建、测试和发布管道。它适用于面向Azure应用服务和Azure容器服务的ASP.Net 4和ASP.Net Core应用程序。开发人员可以通过IDE中的通知来监视管道,提醒他们连续集成运行中发生的生成失败信息。