写点什么

Napa 简介——基于 Web 用于 Outlook/SharePoint 的 IDE

2012 年 8 月 15 日

VBA 作为 Office 中使用的宏语言,已经快被淘汰了。它基于 Visual Basic 的 COM 版本,这种技术已经有十多年没有做出重大更新了。当然还有 Visual Studio Tools for Office,但是非专业人员无法使用它,并且由于 COM 和.NET 技术之间的不兼容,它非常难以使用。还有 SharePoint,对于非正式的开发者来说没有什么成功的案例。如果你需要在 Office 和 SharePoint 的本地版本中使用宏,那么最后你会处于混乱之中。

这正是 Napa 项目发挥作用的地方。 Somasegar 是这样介绍 Napa 的

“Napa”为 Visual Studio 富客户端提供了一种轻量级的、基于浏览器的工具,它是开始 Office 和 SharePoint 开发的一种不错的方式,而且不需要在计算机中安装任何内容。它通过 http://dev.office.com/ 提供,支持构建针对 Office 和 SharePoint 的应用程序、能够深入到 Office 2013 应用程序(例如 Excel)的应用、Office 的 Web 应用(例如,Excel 的 Web 应用)以及 SharePoint 的应用。这些应用都基于新的云应用模型(Cloud App Model),其中 UI 和其他客户端逻辑都使用 Web 标准(例如,HTML、JavaScript、CSS)实现的,而后端逻辑会运行在服务器上,让开发者可以自由地选择开发工具、语言和部署环境。

使用简单的 JavaScript 可能会出现问题。即便是在理想的情况下,对于临时的用户来说,语言也没有 Visual Basic 那么友好。语法中长期存在不一致性、区分大小写以及使用字符而不是关键字,这些都会让程序员新手感到迷惑。这些问题都很难处理,但是使用 JavaScript 的方式就是这样。

为了创建一个按钮,我们需要一个函数来接受点击事件。这在所有语言里面都是类似的,而难点在于你如何绑定。在 VB(COM 或.NET)中,函数会以声明的方式附加到按钮上。在 C#中,我们可以使用事件处理器(event handler)语法,那需要一行代码。

在 Somasegar 提供的示例中,你需要为 Office.initialize 赋予匿名的函数。这个匿名函数会调用 $(document).ready,传入另一个匿名的函数。在那个函数中会存在第三个匿名函数,使用另一个 jQuery 操作附加到按钮的点击事件上。这种函数的嵌套对于熟练的 web 开发者是可以接受的,但是对于想要在 Excel 中创建简单的宏的开发者并不合适。

幸运的是,你不需要以那种方式来编写代码。正如在这个“概览”中能够看到的,我们可以选择使用上世纪九十年代就出现的传统JavaScript 技术。经过简单地介绍HTML 和 Office 的异步模型,开发者就能够编写简单的应用程序了。

使用Napa 需要你在 Office 365 开发者站点上注册。

查看英文原文: Introducing Napa – A Web Based IDE for Outlook/SharePoint

2012 年 8 月 15 日 20:031274
用户头像

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

关注

评论

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

Django 中如何优雅的记录日志

AlwaysBeta

Python django Web 后端

初入响应式编程(下)

CD826

spring 微服务 响应式编程 reactor

用jdk8的stream实现斐波那契数列

编号94530

jdk stream 斐波那契 fibonacci

回"疫"录(6):致敬最美逆行者

小天同学

疫情 回忆录 现实纪录 纪实 创新突破

skywalking内存泄露排查

小楼

dubbo 内存泄露

LeetCode 前1000题二叉树题目系统总结

Yano

面试 算法 LeetCode 二叉树 刷题

IPFS 星际传输协议的入门(二)

AIbot

区块链 分布式数据库

Docker运行常用软件:MySQL,Redis,Nginx,RabbitMQ,Neuxs,Gitlab

读钓

MySQL nginx Docker gitlab

在Kubernetes上运行SpringBoot应用

铁花盆

Docker Kubernetes Spring Boot

centos7.6操作系统安装

桥哥技术之路

Linux

Sentinel在docker中获取CPU利用率的一个BUG

小楼

Java sentinel cpu

Linux系统优化

桥哥技术之路

Linux

Ledge:这可能是距今最好的『DevOps + 研发效能』知识平台

Phodal

DevOps 敏捷开发 软件开发 研发效能

以为是青铜,没想到是王者的dubbo标签路由

小楼

dubbo

身为程序员,怎么接私活赚外快?

爱看书的小代码

MacOS配置网络命令

编程随想曲

macos network

如何在非 sudo 用户下运行 docker 命令?

愚一

Docker DevOps

广告与数据算法系列1.1.1: 什么是广告

黄崇远@数据虫巢

互联网 算法 广告

redis数据结构介绍二-第二部分 跳表

Nick

redis 源码 数据结构 源码分析 算法

记一次spring注解@Value不生效的深度排查

小楼

spring Spring Boot dubbo

nacos的一致性协议distro介绍

小楼

nacos

一次漫长的dubbo网关内存泄露排查经历

小楼

dubbo 内存泄露

项目实施要避免哪些坑?

顾强

项目管理

redis数据结构介绍三-第三部分 整数集合

Nick

redis 源码 数据结构 源码分析 算法

思维导图学《Linux性能优化实战》

Yano

Linux 后端

一个工程师向电信公司的维权

MySQL死锁与Spring事务

Dean

MySQL

格局不行,有机会也抓不住

池建强

创业 格局 MacTalk

当dubbo多注册中心碰上标签路由

小楼

dubbo

C++数组可以为变量吗

helloworld

c++ 互联网 编程语言

要不要重新认识一下递归与迭代?

西了意

编程

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Napa简介——基于Web用于Outlook/SharePoint的IDE-InfoQ