1. 程式人生 > >SharePoint Framework 構建你的第一個web部件(一)

SharePoint Framework 構建你的第一個web部件(一)

SharePoint客戶端web部件是出現在SharePoint頁面的控制元件,但卻是在瀏覽器本地執行的。他們是SharePoint網站的頁面上的一個個小塊。你可以使用現代的指令碼開發工具和SharePoint工作臺(一個開發測試平臺)來構建客戶端web部件,可以部署客戶端web部件到O365開發者租戶中的的傳統的web部件頁。並且對於純JavaScript指令碼的專案來說,你可以利用通用的指令碼框架構建web部件,如AngularJS和React。舉個例子,你可以使用React和Office UI Fabric React的元件一起來快速建立跟Office 365中使用者體驗相同的元件。

下面開始介紹實戰。

客戶端web部件是執行在SharePoint頁面上下文中的客戶端元件。客戶端web部件可以部署到SharePoint Online,你也可以使用現代JavaScript指令碼工具和庫來構建他們。

客戶端web部件支援:

>用HTML和JavaScript構建

>SharePoint online和本地SharePoint環境

注意:在開始跟隨本篇下面的操作步驟之前,請確保你已經參照上一篇文章進行了開發環境的配置。

建立一個新的web部件專案

在你喜歡的路徑上建立一個新的專案路徑,按下面步驟操作:

>Win+R開啟執行窗體,輸入cmd回車,在開啟的命令列中,先定位到希望專案所在的目錄,然後執行md命令,如:

md myfirstwebpart,執行之後的效果如下圖,這裡我在C盤根目錄建立了一個專案資料夾。

然後進入到剛才建立的目錄,輸入命令cd myfirstwebpart。

接下來通過Yeoman SharePoint Generator來生成一個新的web部件,執行如下的命令:

yo @microsoft/sharepoint

執行命令後會出現提示,詢問解決方案的名稱和路徑,第一個提問可以直接回車保持跟資料夾的名稱相同,第二個通過上下箭頭進行選擇後回車即可,這裡我選擇使用當前目錄,如下圖:

接下來會繼續詢問一些設定:

>web部件的名稱。(直接輸入回車保持預設)

>web部件的描述。(直接輸入回車保持預設)

>要使用的框架,可以用上下箭頭進行選擇,直接輸入回車的話即為預設項,不使用指令碼web框架。

完成後Yeoman會開始安裝必要的依賴項並生成web部件的解決方案檔案,這會需要幾分鐘,如下圖正在等待安裝完成:

操作完成之後,你會看到如下圖的資訊表示成功:

使用你最喜歡的程式碼編輯器/IDE

由於SharePoint客戶端解決方案是基於HTML/TypeScript的,你可以使用任意的程式碼編輯器或IDE來構建你的web部件,這個在上一篇文章中已經提到,不再贅述。本文將使用Visual Studio code來演示,你也可以使用其他喜歡的IDE。

使用Visual Studio 2015

目前,Visual Studio通過NodeJS工具來支援SharePoint客戶端專案,更多資訊戳這裡,在之後的文章中也會對它進行詳細介紹。

預覽web部件

如果想預覽你的web部件,編譯並在本地的web伺服器執行的話,做如下操作。

回到你的命令列,確保你仍然在專案目錄下然後輸入命令gulp serve來編譯和預覽你的web部件。

這個很重要,你可以將它理解為在Visual Studio裡面執行F5啟動除錯。

該命令會執行一系列的gulp任務來在“localhost:4321”建立一個本地的基於節點的HTTPS伺服器,並在你的本地開發環境中啟動你的預設瀏覽器去預覽你的web部件,執行命令的效果如下所示:

客戶端工具組使用預設的HTTPS端點。但是由於沒有在本地的開發環境配置預設的證書,你的瀏覽器會顯示證書錯誤,如下圖:

這取決於你使用的瀏覽器來進行下一步的操作,比如對於上圖的IE和Microsoft Edge或Google Chrome來說,選擇Continue to this website即可,如果是Firefox之類的,需要新增一個例外。

SharePoint客戶端開發工具使用gulp作為任務執行器來處理編譯程序如:

>打包並壓縮JavaScript和CSS檔案。

>在每個編譯之前執行工具來呼叫打包和壓縮任務。

>將SASS檔案編譯為CSS。

>將TypeScript檔案編譯為JavaScript。

如果對於gulp來說你是新手,你可以閱讀Using Gulp,他描述了結合VIsual Studio的ASP.NET 5專案如何使用gulp。

Visual Studio Code內建了對gulp和其他任務執行器的支援。使用Ctrl+Shift+B來除錯和預覽你的web部件。

SharePoint工作臺

SharePoint工作臺(workbench)是一個開發者設計平臺,它使你可以快速地預覽和測試web部件而不需要在SharePoint中部署他們。SharePoint工作臺包括客戶端頁面和畫板,你可以在開發時新增或刪除畫板,測試你的web部件。

點選+號按鈕來新增我們建立的web部件。點選+號時你可以看到可用的web部件列表,該列表會將我們的web部件和你的開發環境可用的web部件一同列出。

如上圖所示,選擇HelloWorldweb部件,將他新增到頁面,如下圖:

簡單嗎?這就是咱們的第一個客戶端web部件,已經新增到了頁面上。(實際上除了配置和執行幾個命令,咱們什麼都沒有寫)

選擇web部件左側的鉛筆圖示開啟web部件屬性面板,如下圖:

跟傳統web部件一樣,這個屬性是你可以自定義的,以後會講到。這個屬性面板是客戶端驅動的,提供了與SharePoint的一致性設計。我們來修改一下Description屬性試試,比如改為This is a test, awesome!

上圖只是一個示例,在實際操作的過程中你會發現,在你在右面的面板修改屬性的同時,左邊的web部件的內容也會隨著改變。

這是該屬性面板的一個新的功能,能夠配置更新行為(有反應的和無反應的)。預設情況下更新行為是有反應的,你可以在修改屬性時看到更改。就像上面說的,這個更改是馬上生效的。

Web部件專案結構

你可以使用Visual Studio Code來檢視web部件專案的結構。

>在命令列中,定位到目錄src\webparts\helloWorld。

>輸入命令

code .

用Visual Studio Code(或是你喜歡的編輯器)來開啟web部件專案。(不要忘了code後面的空格加點)

Visual Studio Code會開啟專案,如下圖:

構建SharePoint客戶端web部件的主要語言是TypeScript。TypeScript是JavaScript的超型別,能夠被編譯成純JavaScript。SharePoint客戶端開發工具就是用TypeScript的類、模型和介面編譯的,幫助開發者構建強壯的客戶端web部件。

下一講將對專案具體的結構和程式碼進行講解。



相關推薦

SharePoint Framework 構建一個web部件

SharePoint客戶端web部件是出現在SharePoint頁面的控制元件,但卻是在瀏覽器本地執行的。他們是SharePoint網站的頁面上的一個個小塊。你可以使用現代的指令碼開發工具和ShareP

Anaconda+django寫出一個web app

圖片 things tab tro ogr 參考 min sent clas 在安裝好Anaconda和django之後,我們就可以開始創建自己的第一個Web app,那麽首先創建一個空文件夾,之後創建的文件都在這個文件夾內。 啟動命令行進入此文件夾內,可以先通過如下命令查

使用Phaser開發一個H5遊戲

本文來自網易雲社群 作者:王鴿 不知你是否還記得當年風靡一時的2048這個遊戲,一個簡單而又不簡單的遊戲,總會讓你在空閒時間玩上一會兒。 在這篇文章裡,我們將使用開源的H5框架——Phaser來重現這個遊戲。這裡你可以瞭解到遊戲內的狀態管理、Sprite元件物件等,以及如何使用Preload、Create

最簡單的混合APP開發框架——搭建一個Ionic應用

上次寫了一篇關於Ionic3的文章,但是對於從來沒有接觸過Ionic的開發者來說,可能不是太友好。為了讓更多的人瞭解這個非常好的混合應用開發框架,今天這篇文章主要介紹如何從零用最快的時間做一個Ionic APP。 一)為什麼是Ionic? 如果你以前從來沒有

Anaconda+django寫出一個web app

down lock 下載 解決 RKE 分享圖片 tinymce 今天 分享 今天開始學習網頁風格和設計,就像python有Web框架一樣,也有一些CSS框架。對於CSS框架,我們可以使用默認的樣式,也可以在原基礎上編輯修改。本教程使用的是materialize這個CSS框

Anaconda+django寫出一個web app

HERE obj short ren 混亂 all err strong anaconda 今天學習如何寫一個註冊用戶的界面。 上一節的導航欄中我們修改了導航欄右側的文字為register並將路徑設置為/register,內容如下: <li><a hre

Anaconda+django寫出一個web app

one reg url cat AMM filter import tex nac 今天繼續學習外鍵的使用。 當我們有了category、series和很多tutorials時,我們查看某個tutorial,可能需要這樣的路徑http://127.0.0.1:8000/c

如何搭建一個web網站

團隊合作 是的 轉換 們的 web服務 ons lang 用戶 域名 前言: 由於新生軍訓結束,作為學生會的一個技術部的老油條,這時候得幫幫他們了。 大多數新生都是奔著能做一些小東西,能夠被大家,被其他人用,為目的進入了技術部,部門主要負責做院系微信運營,順帶做開發。前兩任

VUE基礎入門 一個VUE專案

Window10 下 VUE 開發環境搭建 開發環境準備 Windows10 + WebStorm + NodeJS WebStorm 2018.2 下載地址 NodeJS 下載地址 安裝環境 安

TypeScrip入門—環境搭建和一個TS程式碼

介紹 TypeScript 擴充套件了 JavaScript 語法,任何已經存在的 JavaScript 程式,可以不加任何改動,在 TypeScript 環境下執行。TypeScript 只是向 JavaScript 添加了一些新的遵循 ES6 規範的語法,以及基於類的面向物件程式設計

從零開始搭建Electron+Vue+Webpack專案框架,套程式碼,同時構建客戶端、web

摘要:隨著前端技術的飛速發展,越來越多的技術領域開始被前端工程師踏足。從NodeJs問世至今,各種前端工具腳手架、服務端框架層出不窮,“全棧工程師”對於前端開發者來說,再也不只是說說而已。在NodeJs及其衍生技術高速發展的同時,Nw和Electron的問世,更是為前端發展提速不少,依稀記得哪位前輩說過,“能

新手教學Spring4.0+Maven構建超級簡單的Web專案

本篇部落格是在(一)和(二)之上的擴充套件。因本人很不喜歡MyEclipse,故誕生了此篇。 整體環境:Intellij idea15 0、預備(全域性設定maven) 1、建立Maven專案 一路Next,其中,需要指定你自己的Mave

一個AngularJS Demo購物車

mod 購物 set sco tle ng-model -m -c 刪除 <!DOCTYPE html><html><head>   <meta charset="utf-8" />   <script sr

BlinkLED 點亮一個LED燈C#

text interval rgs pri art one namespace ane ready 界面: <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">

如何成為python聖鬥士之一個python程序1

python 小白 聖鬥士 安裝python解釋器python是跨平臺的語言,目前主流的有2.X和3.X系列版本,由於3.X系列是不兼容2.X系列的,但現如今很多程序和第三方庫都是基於2.X系列開發的,因此我們以2.X為主,期間也會穿插介紹3.X的部分特性。學習編程語言的第一步那就是hellowo

一個python程序2

小結 nts 技術 數學公式 spa 但是 漂亮 num 回車 輸入和輸出 輸出 用print加上字符串,就可以向屏幕上輸出指定的文字。比如輸出‘hello, world‘,用代碼實現如下: >>> print ‘hello, world‘ print語

從零寫一個Java WEB框架

該系列,其實是對《架構探險》這本書的實踐。本人想記錄自己的學習心得所寫下的。 從一個簡單的Servlet專案開始起步。對每一層進行優化,然後形成一個輕量級的框架。 每一篇,都是針對專案的不足點進行優化的。 專案已放上github

Phaser3入門教程:一個Phaser3遊戲中文版

平臺 我們剛剛在create函式中加了一段程式碼,讓我們詳細解釋一下,首先是這句: platforms = this.physics.add.staticGroup(); 這句程式碼建立了一個靜態物體組,並賦值給了變數platforms。在Arcad

Phaser3入門教程:一個Phaser3遊戲中文版

加入角色 有了這些可愛的平臺,怎麼能沒人在上面跑動呢? 在create函式中,新建一個player變數,程式碼參看part5.html: player = this.physics.add.sprite(100, 450, 'dude');

Phaser3入門教程:一個Phaser3遊戲中文版

鍵盤控制角色 碰撞已經處理好了,但我們還要讓角色動起來。不知道你是否會馬上想起去某些文件上搜尋如何加入監聽器的方法,但這裡你大可不必如此。Phaser內部已經有一個很好的鍵盤管理程式,只要用下面一段程式碼就可以使用: cursors = this.input.k