2012年12月11日 星期二

How to Enable Metadata Column for List in SharePoint 2010 (如何在SharePoint 2010的清單中中啟用Metadata欄位)

在使用SharePoint 2010的時候,通常只要啟用Metadata Service服務,就可以在網站的清單中加入Metadata欄位,但亞當斯今天遇到一個SPS環境預設是不允許清單加入Metadata欄位的,重點是警示訊息告知:沒有啟用Feature,因此無法加入此類型的欄位,如下圖所示:

column

但是我在網站和網站集合的網站功能清單中,都並沒有找到可以啟用此Feature的功能,後來查了一下文件,發現原來這個Feature預設是隱藏的,如果要啟用它的話,可能要使用Server OM API或是下PowerShell。

以下是PowerShell語法:

Enable-SPFeature -id "73EF14B1-13A9-416b-A9B5-ECECA2B0604C" -Url <Site-URL>

為了知道這個Feature的名字,我特別寫了一個WinForm去列出網站中所有的Feature有哪些? 程式碼如下:
Feature

程式執行後的結果如下,原來此Feature名為:TaxonomyFieldAdded
metadata

啟用後就可以使用Metadata Column了!

metadtacolumn

2012年12月8日 星期六

使用Visual Studio 2010 Windows Azure SDK 部署ASP.NET至Windows Azure

 

1.先安裝Web Platform Installer 3.0,Web Platform Installer (WebPI) 針對所有的 Microsoft 免費網路產品提供簡化的下載/安裝體驗,以下為中文版的下載網址:

http://www.microsoft.com/downloads/details.aspx?familyid=32B0DFE5-F139-4E1C-B412-3DA39F50BBF9&displaylang=zh-tw

image

2.下載並安裝 Windows Azure SDK 1.4 is available for download (下載網址Here)

Windows Azure SDK 1.4 Refresh 主要是解決以下問題的一個穩定版本。

  • 解決 web.config 檔案設為唯獨時會造成整體 IIS 失敗的問題。
  • 解決封裝時會造成整體 IIS 封裝大小增加一倍的問題。
  • 解決診斷存放區滿溢時會造成整體 IIS Web 角色回收的問題。
  • 解決會造成診斷無法將 IIS 記錄傳輸到 Windows Azure 儲存體的 IIS 記錄檔權限問題。
  • 解決 csupload 無法在 x86 平台上執行的問題。
  • 現在更容易診斷 web.config 中的使用者錯誤。
  • 增強產品功能,提高 Windows Azure 角色的遠端桌面穩定性和可靠性。

image

安裝的過程中會檢查其本機系統上的必要條件,若是沒有滿足的必要條件,則會要求自動幫你安裝,按下確定之後開始安裝所有必要條件。

image

終於看到成功的畫面,小小給他感動一下。

image

3.接下來要將ASP.NET網站部署到指定的雲端伺服器,那麼必須先建立「Windows Azure Project」專案類型的網站。

image

4.網站專案設計完成,部署時專案—>右鍵—>選擇「發行」。

image

5.在第一次針對Windows Azure Project發行網站時,必須先設定 Remote Desktop 所需的主機管理員帳號憑證,否則Web Deploy for all Roles 這個功能就無法啟用,請參考下圖,預設會是灰色無法勾選。

image

6.

image

image

image

 

image

 

image

 

image

 

image

image

image

image

 

image

 

image

 

image

2012年12月7日 星期五

How to use HTML Offline Application Cache(HTML5中的離線應用程式快取)

一般來說,在開發手機或是行動裝置的應用程式大部份都會遇到離線的問題,假設不想要在離線時出現錯誤的UI畫面,那麼可以使用HTML5 Offline Application Cache機制來解決此問題,剛好之前上了星星老師的課,稍微做了一下筆記,設計方式如下:

1.先準備一份HTML,用來呈現一張圖片,HTML TAG如下:

image

瀏覽HTML看起來如下:

image

模擬一下網路通訊離線,把網路通訊先斷線,則預設瀏覽起來的畫面如下:

image

2.接著新增一個用來快取網頁離線資料和內容的manifest定義檔,這邊命名為:offline.manifest,第一行一定要撰寫:CACHE MANIFEST,且前面不可以有空白或是將此行放在第二行,如果這樣的話CACHE將會失效,然後想要快取的內容放在CACHE:這行之下,範例manifest內容如下:

image

3.將離線快取的manifest定義檔引用至網頁中,作法為在html標籤中加入manifest屬性,設定如下:<html manifest="offline.manifest">

image

4.因為亞當斯是使用Visual Srudio 2010開發ASP.NET測試功能,所以先把此網頁執行起來,接著把Web 開發伺服器停止,用來模擬連線

image

5.最後,重新refresh一下網頁,可以看到圖片和網頁已經被CACHE快取了,大功告成,這功能真是太強大了,將來運用在手機的網頁上是非常好用的功能!

image

JavaScript navigator.onLine連線或離線偵測模式

JavaScript 的navigator.onLine屬性是一個唯讀的布林值,主要的功能目的為判斷系統是否處於連線或是離線模式,假設運用在手機的網頁上就可以進行判斷手機目前的狀況是否可以進行網路通訊,以達到不同狀態時的處理情況。

以下是簡易的設計方式以及執行結果,操作步驟如下:

1. 先準備HTML,有一個span和一個button,如下內容:

<span id="status" class="offline">Unknow</span>
<button id="check">  Check Connection </button>

並準備css來用呈現UI,有Online和Offline兩個畫面,分別呈現字型綠色和紅色:

image

2.撰寫JavaScript先判斷瀏覽器的onLine屬性定義是否瀏覽器有支援,使用typeof(navigator.onLine) != "undefined" 去判斷字串是否相同會比較保險一點,程式也比較不容易出錯:

image

3.在按鈕上註冊click事件後,進行判斷,此時使用navigator.onLine進行判斷瀏覽器是否連線或是離線:

image

4.開啟瀏覽器執行:

image

但是以上的程式碼必須每一次都手動去按下按鈕才能知道是否連線,那麼是否有辦法可以隨時讓網頁自動去判斷目前系統是否連線呢?答案是可以的,做法就是在init事件中,先進行註冊online和offline事件,並搭配checkHandler() 檢核函式,就可以在往後系統通訊網路連線或離線時,自動去觸發並進行UI的更新,程式碼修改如下:

image