2013年11月11日 星期一

Custom Access SharePoint User Profile Service Application (客製化存取ShaePoint的User Profile Service Application)

SharePoint有一個User Profile Service Application服務,用來識別帳戶的相關資訊,當安裝SharePoint時,假設帳戶是來自AD的話,那麼也可以將AD中所設定的帳戶資料,直接同步至SharePoint 的User Profile Service Application中,後續使用者就可以直接在SharePoint中編輯這些資訊。

那麼,假設我們想要設計一些維護介面,或是客製化應用程式去存取User Profile Service Application的話,該怎麼做了? 以下步驟說明開發方式:

1. 首先我們先建立一個SharePoint專案,接著在此專案中加入對應的dll組件

1

2. 新增一個ApplicationPage.aspx用來測試功能,新加入控制項:一個按鈕;一個ListBox

3

3. 切換至.cs中,先匯入欲使用的Namespace

2

4. 在Page_Load中使用UserProfileManager物件載入相對應的Profile,並且我們取出AccountName、WorkEMail、PersonalSpace等屬性資料呈現:

4

5. 先看一下執行的結果,如下圖所示,在ListBox中會寫出目前在網站中有使用Profile的資料:

7

6. 取出Profile資料後,接著我們亦可撰寫更新Profile的程式碼,在按鈕的Click事件中,撰寫如下的程式碼,透過Web.CurrentUser.LoginName取得目前登入的使用者帳號,然後當作參數丟給UserProfileManager的GetUserProfile方法,即可取得目前登入者的Profile物件,最後更新Profile時記得要呼叫Commit方法:

5

7. 執行結果,使用LauraG登入,且按下按鈕後,EMail就會被更新了

7

2013年10月30日 星期三

How to use ListData.svc To Access SharePoint 2013 in Window Form (如何使用ListData.svc存取SharePoint 2013)

ListData.svc 是 WCF Data Service提供在SharePoint 2013對外的其中一個服務,此服務最主要的目的是讓外部應該程式可以透過ListData.svc快速存取或控管SharePoint 2013的清單(List)中的資料,此ListData.svc 在SharePoint 2010時開始可以使用,目前sharePoint 2013雖然有提供諸多的其他REST的API來存取,但是使用ListData.svc 依舊可以快速取用清單資料!

好處是假設以往已經有SharePoint 2010 的客製化應該程式,有使用此ListData.svc 服務,那麼在升級至SharePoine 2013時,也可以快速無縫升級!

以下來介紹開發步驟,首先我們先來看一下在SharePoint 2013上的ListData.svc ,路徑為http://sp/sites/IntroSpApps/_vti_bin/ListData.svc

image

1.先建立一個Windows Application 應用程式,然後把http://sp/sites/IntroSpApps/_vti_bin/ListData.svc加入服務參考,並且更改Namespace名稱,如以下畫面:

image

2.加入參考後,會自動產生對應的proxy,以及相關的assembly,如:

Microsoft.Data.Edm、Microsoft.Data.OData、Microsoft.Data.Service.Client等等

image

3. 打開Windows 專案的Data Sources視窗,可以看到根據SharePoint 2013指定網站所產生出來的清單

image

4. 接著我們只想要針對其中一個清單進行存取,新增一個Data Source,選擇Object

image

5.挑選MyListItem (在SharePoint網站上清單名稱為:MyList)

image

6.完成後,可以看到清單中完整的欄位相關資料,如下圖所示,

image

7.接著,我們想要在Windows Form存取清單資料,可以直接從Data Source將MyListItem拖曳至Form1中,此時工具會自動產生對應的DataGridView等控制項

image

8. 先建立DataContext物件,且在Form_Load中加入載入SharePoint 2013 清單資料的相關程式碼:

image

執行測試,可以看到已經順利透過將ListData.svc 將資料取出到Windows Form應用程式中

image

9.假設想要在Windows Form應用程式中維護MyList的資料的話,可以透過ListData.svc 將資料同步更新回SharePoint 2013 ,程式碼如下:

image

在SharePoint 2013 上MyList資料的呈現!

image

2013年9月16日 星期一

File Recovery Recuva 搶救被誤刪的資料

昨天因為NB上相片軟體的同步,造成硬碟資料損毀的悲劇發生,其實事情發生後有馬上做緊急處理,不外乎就是救資料,但更悲劇的是因為式軟體所造成的資料損毀,所以被刪除的資料也不在垃圾桶內!

因此,只好求助一些File Recovery軟體來處理,我這邊使用的是:Recuva這軟體。有鑑於可能一些對電腦軟硬體並不是很熟悉的朋友們來說,假設發生同樣的情況也會很鬱卒! 因此我就將我整個處理的過程紀錄一下,讓各位參考,以便各位也可以自行在第一時間處理這類的情況。

官方下載網址:http://www.piriform.com/recuva

1. 安裝完畢之後,開始執行Recuva:

clip_image001

2. 設定要救回的資料類型,因為我設定相片軟體同步的那個資料夾,除了圖片之外,還有其他的Office文件,因此我在這邊選擇:All Files

clip_image002

3. 挑選指定的資料夾位置,並按下下一步開始進行:

clip_image003

4. 另外假設有一些資料第一次找不回來,後續也可以試試看勾選:啟用深層掃描,只是時間上會蠻久的!

clip_image004

5. 開始掃描完畢之後,如果幸運一點的,有一些被偵測到已經被刪除的檔案,狀態會顯示:非常好,那就代表可以順利被救回來。

clip_image006

6. 但並不可能每一次都是那麼幸運的,有一些檔案就是那麼的悲慘,狀態是無法救回,嗚嗚~我關島的回憶啊! 原始檔全掛了,有CR2也有JPG都救不回來了! 這時候女王居然說,沒辦法了,既然相片都毀了,那麼只好...再去一次了! Orz...

clip_image008

7. 好啦! 其實這軟體的操作還蠻簡單的,只需要將想要回覆的檔案勾選,並按下開始搶救,就可以了!

clip_image010

8. 還有可以進入:進階模式,去設定搶救回來的資料要如何處理,例如設定動作恢復原有的資料架構...等等的!

clip_image011

根據實際Adams的實際測試結果,大約會有1/2-1/3的資料可以救回來,但是很多還是救不回來的! 或許是我目前只使用這一個小軟體來救,假設使用Google Search : File Recovery,會有一堆可以使用的工具軟體,只是要逐個去測試好用性的。

2013年8月1日 星期四

How to custom BCS Update method in SharePoint 2010(如何在SharePoint 2010中開發客製化BCS中的Update方法)

這篇主要介紹的是sharepoint 2010中使用Visual Studio 開發 BCS的BDC Model 時,假設我們想要自訂的BDC Model擁有Update的功能開怎麼做?

假設我們已經使用Visual Studio 2010開發好一個BDC Model,叫做:TrainingEntity,此TrainingEntity使用SupplierID當作Identifier,並且已經事先定義好ReadList以及ReadItem,如下圖所示:

DBC Entity

因此,我們可以透過BDC Mothod Details視窗來設定Update方法中的相關物件,當新增Update方法後,會自動帶入TrainingEntity當作參數來更新後端的資料來源,且此參數為In,如下圖所示:

BDC Detail Update

選取TrainingEntity且按下編輯之後,可以帶出此TrainingEntity已經設定好的Type Descriptor,目前可透過下圖得知我們所定義的Type Descriptor以SupplierID當作Identifier,其餘的Type Descriptor都是在Update方法中要可以透過SharePoint 的UI操作異動更新的:

Update Type

因此,我們主要針對SupplierID做設定,這邊要特別注意一點,因為TrainingEntity是參數,帶入方法中要可以更新,因此TrainingEntity中的Type Descriptor必須是readonly為false。不過Visual Studio是很貼心的,當你使用工具產生Update方法時,所有的Type Descriptor預設readonly為false,因此不用特別設定! 但因為SupplierID是Identifier,在更新的畫面中我們希望此Type Descriptor不能被異動,因此必須要設定:Pre-Updater Field 為True

PreUpdate

假設Pre-Updater Field 沒有設定,則會出現以下的錯誤訊息:

Error : Failed to update a list item for this external list based on the Entity (External Content Type) 'TrainingEntity' in EntityNamespace 'Lab06.TrainingBdcModel'. Details: The Field named 'SupplierID' contains an Identifier which is not read only. The Update operation requires a corresponding PreUpdaterField for this Field on Method with Name 'Update' on Entity (External Content Type) with Name 'TrainingEntity' in Namespace 'Lab06.TrainingBdcModel'.

DBC Update Error

當設定好Update相關的Type Descriptor後,接著我們就可以實作實際要更新回後端資料來源的程式碼了,這邊我使用ADO.NET物件來更新回SQL資料庫,語法如下:

DBC Update Code

開發完畢,直接部署至SharePoint 2010 Server上,搞定!

接著我們來測試一下External List 上更新資料,首先瀏覽已經設定好的External List ,可以從資料庫正常抓取資料呈現:

List View

接著選取其中一筆項目,進入編輯頁面,並且按下Save更新完成!

List Update

2013年7月7日 星期日

Office 365允許邀請外部使用者至SharePoint Online網站

Office 365 是微軟推出給一些中小企業使用很好用的產品,其中的SharePoint Online更是讓企業中想使用SharePoint的USER免去繁雜的安裝設定工作,若是想要邀請外部使用者至SharePoint Online網站,那麼可以透過以下設定完成:

1. 登入Office 365的管理中心,並且進入SharePoint Online的管理網站集合

clip_image001

2. 選取網站集合Ribbon中的「設定」,並選取「管理外部使用者」

clip_image003

3. 因為要將網站集合分享給具有Microsoft Online Account或是Hotmail帳號的使用者,可以一起參與加入SharePoint Online的使用,所以選取「允許」:允許邀請組織外的人員存取SharePoint Online

clip_image004

4. 接著回到已經建立或是設定好的網站集合中,進入網站設定啟用「網站集合功能」中的「外部使用者邀請函」:允許邀請外部使用者至網站

clip_image006

5. 選取網站動作中的「分享網站」

clip_image007

6. 直接設定Hotmail帳號的使用者,加入至SharePoint網站的成員,並按下共用

clip_image009

7. 被邀請的使用著雖然沒有SharePoint Online的帳號,但是此時將收到一封邀請信,並且可以直接點選請接受您的邀請

clip_image011

8. 接下來進入Welcome To SharePoint Online的登入視窗,直接使用Hotmail登入

clip_image013

9. SharePoint Online將自動將您的Hotmail帳號加入至網站集中對應的權限群組中

clip_image015

10. 使用Hotmail帳號直接進行登入SharePoint Online網站,可以順利的登入,並且在線上使用共享的SharePoint網站,如下所示:

clip_image017

如此一來,就可以將建立於Office 365 中的SharePoint Online輕鬆地邀請並分享給多個非Office 365的註冊使用者,一起參與SharePoint Online網站的使用了!

2013年1月4日 星期五

Windows 8 how-to 懶人包

Windows 8輕鬆上手,好玩好用的功能秘訣懶人包大全!

image