写点什么

.NET 4.5 提升了 Web 开发的生产率

  • 2012-07-01
  • 本文字数:1506 字

    阅读完需:约 5 分钟

随着.NET 4.5 发布日期的日益临近,微软已经开始慢慢揭开下一代开发平台的神秘面纱。关于Metro 和 Windows 8 已经有了很多宣传,而对.NET 核心特性所作出的改进会在短期内抢了它的风头,传统上那会专注于web、服务和数据开发。

ASP.NET Web Forms 在.NET framework 的前几次发布中保持相对稳定,很多开发者市场份额分享给了 ASP.NET MVC 。在.NET 4.5 中,微软做了大量工作,在 ASP.NET Web Forms 中提供了对模型绑定的支持,从而减少这两种web 开发产品之间的生产力差别。这种绑定让开发者可以在代码中跳过服务调用和绑定,直接给控件赋值。

尽管这种方法确实节省了时间,但是它并没有把页面的渲染和业务逻辑完全分离开: 载入网格的服务方法名称会嵌入在控件中。

除了ASP.NET 栈中的模型绑定和其他改善——像提升了的对HTML 5 的支持、降低了的内存消耗、易于编写异步代码的能力——之外,ASP.NET 相关技术还在Visual Studio 编辑器中享受更丰富的开发体验。在更引人注目的改善之中,其中之一就是智能任务(Smart Tasks)。在标签中使用Ctrl + .(点), 开发者可以使用智能任务来加快开发的速度,而不需要知道关于如何配置给定控件的细节。

其他Visual Studio 的改进包括: 对于JavaScript 和CSS 更智能的支持,还有更精细的调试机制,像页面检查工具(Page Inspector tool)。

由于引入了ASP.NET MVC,它已经能够以某种形式来提供 RESTful 的 web 服务,而在 ASP.NET MVC 的最新版本中,微软引入了一些 Web API,让这个概念标准化。Web API 的关键特性就是,通过支持 RESTful 的方法来暴露 IQueryable,从而减少开发时间。这种特性能够帮助开发者创建专门的客户端查询,而不需要创建通常需要用来产生有用服务的大量代码。和其他.NET 4.5 的改善一样,这项特性所修改的代码范围被降到了最小。

对于以下标准的 API 控制器:

基于GetProducts() 的REST 查询,它会返回所有产品:

http://localhost:8334/api/product

对于以下可查询 API:

基于GetProductsByQuery() 的REST 查询,它会返回所有成本小于4 的产品:

http://localhost:8334/api/product?$filter=(cost lt 4)

过滤器会在运行时应用给第二个查询,从而形成结果。这让一个方法可以为多个特性服务,而且减少了方法的关注点。对于特定的特性,任何特殊的情况或者副作用都可能需要它自己的实现。

最后,为了管理你需要通过 Web API 暴露的数据,微软提供了 Entity Framework 5。尽管 Entity Framework 的各种模型已经存在一段时间了(像代码先行、数据库先行和实体先行),Entity Framework 5 引入了一种概念,能够在开发工作的周期内,自动同步模型和数据库。这会节省很多花费在创建 SQL 变更脚本和管理已经持久化的数据的工作。尽管在包管理控制台(Package Manager Console)中协调迁移的环节很可靠,但是还是值得学习一下相关的语法。

在代码先行(Code First)的应用程序中,运行这条命令:

如果“InitialCreate”文件没有添加到你的迁移目录中,那么就运行这条命令:

对于给定的模型:

如果我们增加属性“HasLid”:

我们可以运行另一条命令,使用我们对模型的改变来更新数据库。

如果你想要回滚所做的变更,只需要运行 add-migration 命令,并确定你想要让数据库反映的目标:

尽管这些变更已经被大家广为接受,认为它能够改善.NET 开发者的生产力,但是 4.5 版本中引入的大量变更还是存在一些问题。Greg Duncan简要地说明了微软在.NET framework 中的速度问题: “我猜你可能会说微软(或者参与的团队)是敏捷的,并试图在每次迭代中做出改善,从过去的经验学习……? (咳咳……所以我希望至少……咳咳)。”

查看英文原文:.NET 4.5 Raises the Bar for Web Development Productivity

2012-07-01 02:122713
用户头像

发布了 340 篇内容, 共 129.3 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

低代码平台与人工智能(AI)的结合的未来趋势与展望

天津汇柏科技有限公司

人工智能 低代码 AI 人工智能

Java新手必看:轻松掌握API文档使用技巧!

Noah

IPQ5010 IPQ5018 WiFi 6 TRIBAND Routerboard | Industrial-Grade DR5018S

wallyslilly

ipq5018 IPQ5010

StarRocks 存算分离 Compaction 原理

Ding_Kai

数据仓库 StarRocks

【原创】【深入浅出系列】之代码可读性

京东科技开发者

OpenHarmony城市技术论坛第10期——上海站圆满举办

科技热闻

短视频生成与AI的结合应用,Web/App RPA 智能化应用

测试人

人工智能 软件测试

Java日常反常识踩坑

阿里技术

Java 踩坑 经验 防踩坑

Easysearch x 《黑神话悟空》有奖征文获奖结果公示

极限实验室

easysearch 黑神话悟空

解锁数字新纪元:1688商品详情API——商家数字化转型的加速引擎

代码忍者

SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧

汀丶人工智能

人工智能 智能问答 searxng

从API返回值看阿里巴巴1688商品库存与价格管理

技术冰糖葫芦

API Explorer API 接口 API 测试 API 策略

短视频生成与AI的结合应用,Web/App RPA 智能化应用

测吧(北京)科技有限公司

测试

解析淘宝商品评论API返回值中的用户信息与行为

技术冰糖葫芦

API Explorer API 接口 API 测试 API 策略 pinduoduo API

SOL项目开发代币DApp的基本要求、模式创建与海外宣发策略

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

挑选最佳待办事项工具:专家指南

爱吃小舅的鱼

待办事项管理

如何挑选最适合你的企业级项目管理工具

爱吃小舅的鱼

项目管理 企业级

Lazada商品评论数据接口的API密钥如何获取?

tbapi

lazada商品评论接口 lazada API lazada

一站式统一返回值封装、异常处理、异常错误码解决方案—最强的Sping Boot接口优雅响应处理器

京东科技开发者

spirngboot项目 使用AOP限流用户单位时间请求接口次数

百度搜索:蓝易云

面向服务器端的 WebAssembly:与 NGINX 交互的全新方式

NGINX开源社区

Wasm WebAssenbly

YRCloudFile V6.13.0 发布| 新增弹性数据网络(Elastic Data Network)功能

焱融科技

独家揭秘丨GreatSQL 的MDL锁策略升级对执行的影响

GreatSQL

顶级项目管理工具大比拼:哪个最适合您?

爱吃小舅的鱼

项目管理 工程项目管理

昆仑万维推出全球首款AI短剧平台SkyReels!中国首个接入大模型Linux开源操作系统正式发布!|AI日报

可信AI进展

人工智能

加密市场的挑战与机遇:周期性变化与未来叙事趋势

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

StarRocks 存算分离数据回收原理

Ding_Kai

数据仓库 LakeHouse StarRocks

QPS提升10倍的sql优化

京东科技开发者

以太坊 Pectra 升级四个月倒计时,哪些更新值得期待?

TechubNews

pgbench测试postgresql存储过程高并发锁表情况

俞立夫

postgresql pgbench

什么是BPM,如何构建一个BPM App?

NocoBase

低代码 BPM 无代码

.NET 4.5提升了Web开发的生产率_语言 & 开发_Harry Brumleve_InfoQ精选文章