一起了解 .Net Foundation 项目 No.1

2020-03-16 11:07:38 浏览数 (1)

.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧。

中文介绍

中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。

Akka.NET

Akka.NET 是一组类库,基于这些类库,可以设计出可扩展的、弹性的系统,这样的系统可以在水平扩展于物理处理器和网络结构之上。Akka 能够让开发者专注于业务需求,而不需要编写底层代码来实现可靠业务保障、容错机制和高性能。

项目详情
  • 官网地址
  • 项目源码
  • 项目许可证: Apache License 2.0
  • 项目联系人: Aaron Stannard
相关链接
  • 参与贡献
  • 项目文档
  • 参与讨论
  • Twitter @AkkaDotNet
  • StackOverflow 标签: akka.net

笔者简评

akka 是 Java 领域较为有名的Actor 模式实现框架。使用它可以较为方便的构建扩展的、弹性的系统。

Akka.NET 可以被认为 akka 的.Net版本实现。

要深入的了解 Akka.Net 就需要首先了解 Actor 模式的基本理论和工作模式。读者可以通过笔者写的Newbe.Claptrap-一套以“事件溯源”和“Actor模式”作为基本理论的服务端开发框架来初步了解 Actor 模式。

开源社区中也有一些项目使用到了 Akka.Net 。例如:基于.Net实现的区块链项目NEO便使用到了Akka.Net。

英文介绍

Akka.NET

Akka.NET is a set of open-source libraries for designing scalable, resilient systems that span processor cores and networks. Akka allows you to focus on meeting business needs instead of writing low-level code to provide reliable behavior, fault tolerance, and high performance.

Project Details
  • Project Info Site
  • Project Code Site
  • Project License Type: Apache License 2.0
  • Project Main Contact: Aaron Stannard
Quicklinks
  • Contribute
  • Documentation
  • Discussions
  • Twitter @AkkaDotNet
  • StackOverflow Tag: akka.net

以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。

中文介绍

中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。

AngleSharp

AngleSharp 是一款.Net实现的浏览器引擎核心,它为.Net应用程序提提供了现代Web相关的基础工具集,它以 .NET Standard 类库的形式进行分发。该类库包括了“完整实现的HTML5渲染器”和“能够采用L4查询选择器来进行DOM遍历的动态DOM实现”。AngleSharp 完全遵循 W3C 规范文件相关的约定和 WHATWG 的参考意见,以确保与常用浏览器行为之间的最大兼容性。

AngleSharp 的生态系统中也包含有一些功能性扩展,例如:集成CSS3渲染器、XPath选择器支持和正处于体验版的JavaScript引擎。

AngleSharp 的长期目标是为.Net应用程序提供内建好的标准Web特性,包括下载、检查、运行和展示。

项目详情
  • 官网地址
  • 项目源码
  • 项目许可证: MIT
  • 项目联系人: Florian Rappl
相关链接
  • 项目博客
  • 事项跟踪
  • 参与贡献
  • 项目文档
  • 在线讨论
  • Florian 的个人博客
  • Twitter: @FlorianRappl

笔者简评

如果从 DOM 操作的角度而言:

与此产生对比的主流类库便是:HtmlAgilityPack。它同样具备有 HTML 解析相关的基础功能。

正如很多老牌类库和新生代新角之间的对比。 AngleSharp 具备更多当前时代所时髦的一些特性。不过这其实是由于项目立意的不同所导致的: AngleSharp 定位是一套浏览器引擎核心的实现,而 HtmlAgilityPack 就是为了实现 HTML 的转换和 DOM 操作。

因此,单单如果想要进行 DOM 操作,两者都是可以选择的对象,但如果需要更多的浏览器特性支持,那么选择 AngleSharp 会是更好的办法。

而从性能上来说,两者现在都处于快速发展的过程中,因此各有优劣,需要开发者按照实际情况选择方案。内存大户双人组,注意释放

如果从浏览器核心的角度而言:

Chromium 是一套相当完整的浏览器框架,当然这与 AngleSharp 的定位还是不同的。 AngleSharp 是为现有的应用程序提供 Web 规范相关的特性,但不一定是浏览器。

当然,如果开发者希望寻找一款能够 .Net 进行定制的浏览器开发框架,那么 CEF 会是更好的选择。

目前,AngleSharp 还未发布 1.0 正式版本,仍在不断完善的过程中。

英文介绍

AngleSharp

AngleSharp is a .NET Browser Engine Core, which represents the basis for modern web tooling available to .NET applications in form of a .NET Standard library. The library contains a fully implemented HTML5 parser and a dynamic DOM implementation that can be traversed using L4 query selectors. AngleSharp fully follows the W3C specification and WHATWG references to ensure a maximum compatibility with evergreen browsers.

AngleSharp’s eco-system also features extension libraries such as an integrated CSS3 parser, XPath support, or an experimental JavaScript engine.

The long term vision for AngleSharp is provide all the building blocks for downloading, inspecting, running, and rendering standard web assets within .NET applications.

Project Details
  • Project Info Site
  • Project Code Site
  • Project License Type: MIT
  • Project Main Contact: Florian Rappl
Quicklinks
  • Blog
  • Issues
  • Contribute
  • Documentation
  • Discussions and Help
  • Florian’s blog
  • Twitter: @FlorianRappl

以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。

中文介绍

中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。

ASP.NET SignalR

ASP.NET SignalR 是一个为 ASP.NET开发人员提供的类库,它使得在 Web 应用程序中添加实时 Web 功能变得难以置信的简单。

什么是”实时 Web “功能?它能够让服务器实时将内容推送到连接的客户端上。类似的,您可能听说过 WebSockets,这是一种新的 HTML5 API,它就支持浏览器和服务器之间的双向通信。

SignalR 将在 WebSocket 可用时使用 WebSocket,并在 WebSocket 不可用时优雅地降级使用其他技术来替代,而这种优雅的降级不需要应用程序代码发生修改。SignalR 还提供非常易用的顶层 API,用于在ASP.NET应用程序中执行从服务器到客户端 RPC(从服务器端的 .NET 代码调用中调用客户端浏览器中的 JavaScript 函数),与此同时,还实现了用于连接管理的回调函数,例如连接/断开连接事件、分组连接、授权等等。

项目详情
  • 官网地址
  • 项目源码
  • 项目许可证: Apache License 2.0
  • 项目联系人: Damian Edwards
相关链接
  • 参与贡献
  • 项目文档
  • JabbR聊天室
  • 项目论坛
  • 项目博客

笔者简评

基于 Web 的实时通信需求在现在这个网速越来越快的时代,变得尤为重要。现在谁家还没有个“弹幕”功能呢?

SignalR 为开发者提供了在 .Net 应用中集成实时通信功能的一种快捷方法。由于历史的原因,SignalR 晚于微软 Web 御三家(ASP.NET MVC, Web API 和 Web Pages)一段时间,因此被单独作为一个独立内容。目前在新版的 ASP.NET Core 中 SignalR 也被重新重构,并入了集体。

值得一提的是,sockjs 可以作为 SignalR 的替代方案,但或许与 .Net 的集成度不够优秀。

英文介绍

ASP.NET SignalR

ASP.NET SignalR is a library for ASP.NET developers that makes it incredibly simple to add real-time web functionality to your applications.

What is “real-time web” functionality? It’s the ability to have your server-side code push content to the connected clients as it happens, in real-time. You may have heard of WebSockets, a new HTML5 API that enables bi-directional communication between the browser and server.

SignalR will use WebSockets under the covers when it’s available, and gracefully fallback to other techniques and technologies when it isn’t, while your application code stays the same. SignalR also provides a very simple, high-level API for doing server to client RPC (call JavaScript functions in your clients’ browsers from server-side .NET code) in your ASP.NET application, as well as adding useful hooks for connection management, e.g. connect/disconnect events, grouping connections, authorization.

Project Details
  • Project Info Site
  • Project Code Site
  • Project License Type: Apache License 2.0
  • Project Main Contact: Damian Edwards
Quicklinks
  • Contribute
  • Documentation
  • JabbR
  • Forum
  • Blog

以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。

0 人点赞