精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

在Microsoft Word中,Node是如何替代宏的

責任編輯:editor006

作者:Jonathan Allen

2016-04-06 16:29:26

摘自:INFOQ

WordBASIC最初是在1989年引入的,它能夠讓受過極少培訓的打字員都能進行計算機編程,從而簡化他們的日常工作。因為這是一個Web應用,所以可以使用瀏覽器內置的調試工具進行調試。

最近的30年來,宏(macros)成為了Microsoft Word的關鍵賣點。WordBASIC最初是在1989年引入的,它能夠讓受過極少培訓的打字員都能進行計算機編程,從而簡化他們的日常工作。

在那個時代,競爭非常激烈。除了Word,還有WordStar和后來居上的WordPerfect,它們都有自己的宏編程語言。隨著競爭的持續,業務用戶的需求越來越多,更新也變得非常頻繁。

在上世紀90年代末期,發生了一些有意思的事情。Microsoft創建了Visual Basic for Applications(VBA),這個語言具有(有限的)OOP能力以及與其相匹配的IDE,用以替代WordBASIC,它所創建的并不僅僅是另外一個嵌入式組件。最初的時候,Microsoft預期將這項技術用在所有的MS Office產品之中,隨后他們意識到可以對這項技術進行許可認證。很快,眾多的公司都提供了對VBA的支持,包括ArcGIS、AutoCAD、SolidWorks、CorelDraw,甚至還有WordPerfect。

在世紀之交不久,人們就看到了宏的大幅下滑。所謂的“宏病毒”造成了嚴重的破壞。因為它們隱藏在Word文檔中,所以病毒掃描器很難發現它們。

作為回應,Microsoft鎖定了VBA編程接口。它依然很強大,但是關閉了安全功能,所以使用它實際上很有挑戰性。大多數的病毒掃描器會拒絕所有通過email共享的帶有宏的文檔。

盡管它處于下滑的狀態之中,Visual Basic for Applications依然還是存在的。最新的7.1版本是在2013年發布的,并且從2010年開始它就有64位版本了。但是隨著基于Web的字處理器變得越來越流行,VBA也似乎走入了死胡同。它基于上世紀90年代的COM技術,并沒有可行的方案將其放到Web應用中。隨著人們逐漸將語言從BASIC替換為JavaScript,再創建一個“Web版本的VBA”顯得就有點不合時宜了。

.NET與Office

為了讓人們放棄過時的VBA技術,Microsoft還創建過Visual Studio Tools for Office(VSTO)。這個開發工具集和庫不僅能夠創建Office插件,還允許獨立的應用操縱Office文檔。

至少在理論上是這樣的。但實際上,在這兩方面VSTO都失敗了。

普通的程序員并不想要安裝Visual Studio并從頭開始創建Office插件。他們想要錄制一個宏,然后對其修改以滿足他們的需求。培訓學習的成本從“編輯直到可用為止”變成了完全從頭開始,這是難以承受的。

另外,還有版本的問題。VBA風格的宏會存儲為純文本,這意味著只要你不使用只有新版本才有的特性的話,你所編寫的代碼能夠用到任意版本的Office之中。而編寫VSTO插件時,你需要針對特定的Office版本進行編程。這意味著開發人員只能使用公司中最老的版本。

另一方面,專業的開發人員對插件基本上沒有太大的興趣。他們希望構建使用和/或生成文檔的服務器。VSTO基于COM的自動化,這意味著在做實際的工作之前,首先要有Word或Excel的一個副本。對于Web站點的每個用戶,都要運行一個重量級桌面應用的副本,這種做法顯然是站不住腳的。

與VBA類似,我們實際上無法在基于瀏覽器的Web處理器上使用VSTO。

使用Node構建Office的Add-In

如我們前文所述,JavaScript現在已經成了通用的編程語言。業余愛好者(以及類似的專業開發人員)不想要或不喜歡重量級的IDE,如Eclipse或Visual Studio,于是Node變成了他們的開發平臺。所以,Microsoft選擇這些工具來構建Office add-in,我們也不應該感到意外。

首先,我們需要安裝Node。然后從命令行中,運行下面的兩條命令:

npm install -g tsd bower gulp yo generator-office yo office

yeoman generator會詢問我們想要構建哪種類型的add-in(ribbon command、 task pane等)、支持哪些Office產品以及想要使用Angular還是純HTML/JavaScript進行構建。接下來需要執行的命令就是搭建本地的服務器,用來托管你的add-in。

gulp serve-static

這是用于基本的冒煙測試的,對于實際環境來說,你需要在Web上運行Office。在打開一個空文檔之后,可以上傳add-in的manifest,然后查看它的實際效果。

你可能會問,既然要上傳manifest,為什么還要啟動本地服務器呢?這是因為manifest在你的電腦同時運行Office的時候,它就允許瀏覽器從電腦上加載add-in。在實踐中,這意味著你可以修改add-in,點擊瀏覽器的刷新按鈕,就能馬上看到實際的效果,不需要在每次變化之后都重新上傳add-in。

因為這是一個Web應用,所以可以使用瀏覽器內置的調試工具進行調試。

要看實際效果的話,可以觀看Harrison Shapley的Build Office Add-ins with Any Code Editor and Office Online演示。

查看英文原文:How Node Replaced Macros in Microsoft Word

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 罗江县| 西吉县| 九寨沟县| 堆龙德庆县| 土默特左旗| 太原市| 永泰县| 洛阳市| 汤阴县| 湖州市| 游戏| 马龙县| 伊川县| 景东| 乐业县| 彩票| 珲春市| 吉木萨尔县| 盘锦市| 滨州市| 台湾省| 根河市| 前郭尔| 温宿县| 嘉黎县| 田东县| 冷水江市| 西乡县| 井冈山市| 平度市| 亳州市| 隆林| 兴义市| 洪湖市| 稷山县| 大邑县| 保亭| 卓尼县| 阿图什市| 蒙城县| 泰来县|