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

.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧。
中文介绍
中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。
MVVM Light Toolkit
MVVM Light Toolkit 的目标是加快 MVVM 应用程序的开发,包括有 WPF, Silverlight, Windows Store (RT), 和 Windows Phone 。
项目详情
- 官方网站
- 项目源码
- 许可证类型: MIT
- 项目联系人: Laurent Bugnion
相关链接
笔者简评
Silverlight 早已停更, Windows Phone 也早已是历史。 目前项目的目标也已经扩展到了 Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone 。
某种意义上来说和 MvvmCross 有项目目的重叠,所以选择哪个也就见仁见智了。
英文介绍
MVVM Light Toolkit
The purpose of the MVVM Light Toolkit is to accelerate the creation and development of MVVM applications in WPF, Silverlight, Windows Store (RT), and for Windows Phone.
Project Details
- Project Info Site
- Project Code Site
- Project License Type: MIT
- Project Main Contact: Laurent Bugnion
Quicklinks
- Documentation
- Discussions
- Blog
- Twitter: @LBugnion
以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。
中文介绍
中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。
MvvmCross
MvvmCross 是一个跨平台的 MVVM 框架,其使得开发者能够构建简洁的像素友好的原生 UI。
使用 Model-View-ViewModel (MVVM) 设计模式能够在多平台间使用一套代码共享业务逻辑。
MvvmCross 专门为 Xamarin 和移动设备生态设计。其支持 Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Xamarin.Forms, Universal Windows Platform (UWP) 和 Windows Presentation Framework (WPF)。
项目详情
- 官方网站
- 项目源码
- 许可证类型: MS-PL
- 项目联系人: Tomasz Cielecki and Martijn van Dijk
相关链接
笔者简评
一套代码走天下的努力从未停止,这种努力是值得的。
此类框架总能在一定程度上解决多设备 UI 需要重复开发的窘境,不过往往随着业务复杂度的攀升,为了适配而产生的额外代码又无法避免。
不论如何,业务复杂度不会随着技术框架的选择而减低,它只会从一个地方转移到另外的地方。
开发者可以尝试并使用此框架减轻初期多重开发的困难,而随着团队和业务的演变,变化永远是不会停止的。
英文介绍
MvvmCross
MvvmCross is a cross platform MVVM framework which lets you, build clean, pixel perfect, native UIs.
Share behavior and business logic in a single codebase across supported platforms, using the Model-View-ViewModel (MVVM) design pattern.
MvvmCross is a framework specifically developed for Xamarin and the mobile ecosystem. It supports Xamarin.iOS,
Xamarin.Android, Xamarin.Mac, Xamarin.Forms, Universal Windows Platform (UWP) and Windows Presentation Framework (WPF)
Project Details
- Project Info Site
- Project Code Site
- Project License Type: MS-PL
- Project Main Contacts: Tomasz Cielecki and Martijn van Dijk
Quicklinks
- Documentation
- Blog
- Discussions and Help in the #mvvmcross channel
- Contribute
以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。
中文介绍
中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。
Nancy
Nancy 是一个轻量的,简洁的 HTTP 服务构建框架,能够支持运行于 .Net Framework/Core 以及 Mono。该框架的目标在保持平台无关的前提下,保持各个环节都拥有 super-duper-happy-path 的体验(极致畅爽的开发体验)。
Nancy 能够处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 的请求。
其提供了一套简明优雅的 DSL 以便开发者能够稍微敲打几个字便能处理 HTTP 响应。这样开发者便可以将更多的时间应用于业务代码与核心程序。
以下便是一个简明扼要的 Hello 代码实例:
1 |
public class Module : NancyModule |
The super-duper-happy-path (极致畅爽的开发体验)
“super-duper-happy-path” (或称 SDHP) 是我们为体现 Nancy 框架的核心精神和创建的短语,并且我们秉承着 “super-duper-happy-path” 的经验,在 API 开发中努力践行。
尽管很难具体的定义这种精神是什么,毕竟这是一个非常情绪化的术语,不过其基本的奥义如下:
- “It just works”(轻松启动) - 开发者可以轻松的用起来,而无需要将复杂的内容混合在一起。想要添加一个新的模块?好的,没问题!它将会被自动发现并弃用;想要引入一个新的视图引擎?好的,没问题!所有的工作都已经准备好了您无需过多操心;想要为模块注入一个新的依赖项?好的,没问题!默认我们将会为您定位并注入它到您的模块,完全零配置。
- “Easily customisable”(快乐扩展) - 尽管已经能够轻松启动,但是如果需要进行自定义扩展也不应有任何障碍。比如想要自定义依赖注入容器?完全没问题!想要调整路由规则?完全没问题!通过框架的启动器机制,所有这些自定义都是小菜一碟。
- “Low ceremony”(极致简洁) - 在您的程序中为了框架而写的 “Nancy 代码” 尽可能被保持最小。使用 Nancy 构建的应用程序中最为重要的部分应该是您的代码。我们的代码为您服务,为您编写精妙的应用程序而让路。您甚至完全可以在一篇推文(140 个字符)中将你应用程序所需要编写的 Nancy 代码全部包含其中。
- “Low friction”(纵享丝滑) - 使用 Nancy 构建应用程序,我们将助您成功而非制造麻烦。尽管命名需要明确,配置量也被最小化,但其拥有的功能性和扩展性并不会打折,依旧强力,如您所需。
Above all, creating an application with Nancy should be a pleasure, and hopefully fun! But without sacrificing the power or extensibility that you may need as your application grows.
综上所述,采用 Nancy 构建一个应用程序将会是一件令人愉悦的乐事,完全不需要牺牲功能性和扩展性,轻松构建您的应用程序。
Project Details
- 官方网站
- 项目源码
- 项目许可证: MIT
- NuGet
- 项目联系人: Andreas Håkansson & Steven Robbins
相关链接
笔者简评
在 .Net 中构建 HTTP 应用程序的传统方法皆是围绕微软传统框架: WebForms 、 MVC 、 WebAPI 等等。而 Nancy 作为一个独立的开源项目已经存在很长时间,并且一直在活跃中。
如果您正想查找一个轻量型优秀 HTTP 应用程序构建框架,这回事一个不错的尝试。
英文介绍
Nancy
Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .NET Framework/Core and Mono. The goal of the framework is to stay out of the way as much as possible and provide a super-duper-happy-path to all interactions.
Nancy is designed to handle DELETE, GET, HEAD, OPTIONS, POST, PUT and PATCH requests and provides a simple, elegant, Domain Specific Language (DSL) for returning a response with just a couple of keystrokes, leaving you with more time to focus on the important bits..
your code and your application.
Write your application
1 |
public class Module : NancyModule |
The super-duper-happy-path
The “super-duper-happy-path” (or SDHP if you’re ‘down with the kids’ ;-)) is a phrase we coined to describe the ethos of Nancy; and providing the “super-duper-happy-path” experience is something we strive for in all of our APIs.
While it’s hard to pin down exactly what it is, it’s a very emotive term after all, but the basic ideas behind it are:
- “It just works” - you should be able to pick things up and use them without any mucking about. Added a new module? That’s automatically discovered for you. Brought in a new View Engine? All wired up and ready to go without you having to do anything else. Even if you add a new dependency to your module, by default we’ll locate that and inject it for you - no configuration required.
- “Easily customisable” - even though “it just works”, there shouldn’t be any barriers that get in the way of customisation should you want to work the way you want to work with the components that you want to use. Want to use another container? No problem! Want to tweak the way routes are selected? Go ahead! Through our bootstrapper approach all of these things should be a piece of cake.
- “Low ceremony” - the amount of “Nancy code” you should need in your application should be minimal. The important part of any Nancy application is your code - our code should get out of your way and let you get on with building awesome applications. As a testament to this it’s actually possible to fit a functional Nancy application into a single Tweet :-)
- “Low friction” - when building software with Nancy the APIs should help you get where you want to go, rather than getting in your way. Naming should be obvious, required configuration should be minimal, but power and extensibility should still be there when you need it.
Above all, creating an application with Nancy should be a pleasure, and hopefully fun! But without sacrificing the power or extensibility that you may need as your application grows.
Project Details
- Website
- Source
- License: MIT
- NuGet
- Project Lead: Andreas Håkansson & Steven Robbins
Quicklinks
以上《英文介绍》摘录自 .NET Foundation 的项目介绍 。原文受原项目许可证保护。
其他项目
- Akka.NET - 【Actor 开发框架】
- AngleSharp - 【浏览器引擎】
- ASP.NET SignalR - 【Web 实时通信框架】
- ASP.NET MVC, Web API and Web Pages Razor - 【Web 开发框架】
- ASP.NET Ajax Control Toolkit - 【Ajax 开发工具】
- ASP.NET Core - 【新时代 Web 开发框架】
- AutoMapper - 【对象映射管理】
- Microsoft Azure SDK for .NET - 【SDK】
- Microsoft Azure WebJobs SDK - 【SDK】
- BenchmarkDotNet - 【基准测试框架】
- Cake - 【本地自动化框架】
- Chemistry Add-in for Word - 【Word 插件】
- Couchbase Lite for .NET - 【NoSQL 引擎】
- DNN Platform - 【CMS 系统】
- .NET Compiler Platform Roslyn - 【编译器】
- .NET Micro Framework - 【嵌入式框架】
- .NET SDK For Hadoop - 【SDK】
- DotVVM: Component-based MVVM framework for ASP.NET - 【Web 服务端 MVVM 框架】
- Entity Framework - 【ORM】
- Humanizer - 【工具库】
- IdentityManager - 【身份认证数据管理工具】
- IdentityModel - 【身份认证对接库】
- IdentityServer - 【OAuth 服务端】
- SixLabors.ImageSharp - 【2D 绘图库】
- DLR/IronPython2/IronPython3 - 【.Net 上运行 Python】
- Json.NET - 【JSON 处理库】
- Kudu - 【自动化框架】
- LLILC - 【语言底层项目】
- MailKit - 【邮件处理工具库】
- Managed Extensibility Framework MEF, MEF2 - 【模块化工具库】
- Microsoft Web Protection Library - 【Web 防攻击工具库】
- MimeKit - 【MIME 处理工具库】
- ML.NET - 【机器学习框架】
- Cecil - 【语言底层项目】
- Mono - 【语言跨平台底层项目】
- MSBuild - 【本地自动化框架】
一起了解 .Net Foundation 项目 No.13的更多相关文章
- 基于.NetCore开发博客项目 StarBlog - (13) 加入友情链接功能
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- 一起了解 .Net Foundation 项目 No.15
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. NUnit Test Fr ...
- 一起了解 .Net Foundation 项目 No.1
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Akka.NET Akka ...
- 一起了解 .Net Foundation 项目 No.2
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. ASP.NET MVC, ...
- 一起了解 .Net Foundation 项目 No.5
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Couchbase Lit ...
- 一起了解 .Net Foundation 项目 No.6
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. .NET Micro Fr ...
- 一起了解 .Net Foundation 项目 No.7
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Entity Framew ...
- 一起了解 .Net Foundation 项目 No.4
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. BenchmarkDotN ...
- 一起了解 .Net Foundation 项目 No.3
.Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. AutoMapper Au ...
随机推荐
- play framework在eclipse中自动的预编译生成precompiled文件
一.修改 eclipe 中的启动文件属性eclipse/*.launch 中的最后一条:加入参数 -Dprecompile=yes 将会在启动项目时,进行项目的预编译 (将在项目中生成 precom ...
- 华为鸿蒙系统pk安卓系统
Harmony OS Vs Android Comparison It isn’t based on Linux kernel The key difference between HarmonyOS ...
- WxProperties WxConfig
package org.linlinjava.litemall.core.config; import org.springframework.boot.context.properties.Conf ...
- The sequence and de novo assembly of the giant panda genome.ppt
sequencing:使用二代测序原因:高通量,短序列 不用长序列原因: 1.算法错误率高 2.长序列测序将嵌合体基因错误积累.嵌合体基因:通过重组由来源与功能不同的基因序列剪接而形成的杂合基因 se ...
- 概率DP——BZOJ4008 [HNOI2015]亚瑟王
[HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑.他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 ...
- Python常用的数据结构详解
数据结构:通俗点说,就是储存大量数据的容器.这里主要介绍Python的4种基本数据结构:列表.字典.元组.集合. 格式如下: 列表:list = [val1,val2,val3,val4],用中括号: ...
- [LC] 59. Spiral Matrix II
Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral ord ...
- E. Tree Painting(树形换根dp)
http://codeforces.com/contest/1187/problem/E 分析:问得分最高,实际上就是问以哪个节点出发得到的分数最多,而呈现成代码形式就变成了换根,max其得分!!!而 ...
- Telnet和SSH区别
首先,telnet和ssh都是连接远程计算机的连接协议,可以完成对完成计算机的控制,方便维护.其次,他们都是基于TCP/IP协议下的,所以连接时都需要知道目标机的网址或者域名,第三,他们都是与远程主机 ...
- 蓝桥杯-PREV28-地宫取宝
先自己用dp解了一遍,然后看了官方讲解视频是用记忆化搜索做的.感觉那位老师的方法比较容易实现(效率上和我的差不多的):记录一下三种方法. 动态规划 地宫取宝 1.195KB C++ 正确 100 15 ...