2011年11月13日 星期日

Enabled SharePoint 2010 Session(啟用SharePoint 2010的Session機制)

預設SharePoint 2010 並沒有啟用Session機制,因此如果客製化的User Control或是ApplicationPage有用到Session的話,那麼必須要啟用SharePoint 2010中的Session機制,而啟用的方式就是修改web.config中的相關設定。

總共有兩個設定要修改:

  1. 將<system.web>下的pages項目中的enableSessionState屬性設定為:trueimage
  2. 修改<system.webServer>下modules項目,將<remove name="Session" />註解掉即可image

2011年11月1日 星期二

SharePoint 2010 Common site collection templates (SharePoint 2010 網站樣板代號對應表)

SharePoint 2010上面有很多的網站範本,讓管理者可以建置各種不同類型的網站,如果要透過程式碼API或是Windows PowerShell 來安装或建立網站的話,就必須知道網站的範本代號為何。

以下亞當斯整理一下來自MSDN上的Common site collection templates,網站樣板代碼表如下:

Parameter value

Description

描述

GLOBAL#0

Global template

全域範本

STS#0

Team Site

工作組網站

STS#1

Blank Site

空白網站

STS#2

Document Workspace

文件工作區

MPS#0

Basic Meeting Workspace

基本會議工作區

MPS#1

Blank Meeting Workspace

空白會議工作區

MPS#2

Decision Meeting Workspace

決議會議工作區

MPS#3

Social Meeting Workspace

社交會議工作區

MPS#4

Multipage Meeting Workspace

多頁會議工作區

CENTRALADMIN#0

Central Admin Site

管理中心網站

WIKI#0

Wiki Site

Wiki 網站

BLOG#0

Blog

部落格

SGS#0

Group Work Site

群組工作網站

TENANTADMIN#0

Tenant Admin Site

租戶管理網站

ACCSRV#0

Access Services Site

Access Services 網站

ACCSRV#1

Assets Web Database

資產 Web 資料庫

ACCSRV#3

Charitable Contributions Web Database

慈善捐款 Web 資料庫

ACCSRV#4

Contacts Web Database

連絡人 Web 資料庫

ACCSRV#6

Issues Web Database

問題 Web 資料庫

ACCSRV#5

Projects Web Database

專案 Web 資料庫

BDR#0

Document Center

文件中心

OFFILE#0

(obsolete) Records Center

(已過時)記錄中心

OFFILE#1

Records Center

記錄中心

OSRV#0

Shared Services Administration Site

共用服務管理網站

PPSMASite#0

PerformancePoint

PerformancePoint

BICenterSite#0

Business Intelligence Center

商業智慧中心

PWA#0

Project Web App Site

Project Web App 網站

PWS#0

Microsoft Project Site

Microsoft Project 網站

SPS#0

SharePoint Portal Server Site

SharePoint Portal Server 網站

SPSPERS#0

SharePoint Portal Server Personal Space

SharePoint Portal Server 個人網站

SPSMSITE#0

Personalization Site

個人化網站

SPSTOC#0

Contents area Template

內容區域範本

SPSTOPIC#0

Topic area template

主題區域範本

SPSNEWS#0

News Site

新聞網站

CMSPUBLISHING#0

Publishing Site

發佈網站

BLANKINTERNET#0

Publishing Site

發佈網站

BLANKINTERNET#1

Press Releases Site

新聞發佈網站

BLANKINTERNET#2

Publishing Site with Workflow

使用工作流發佈網站

SPSNHOME#0

News Site

新聞網站

SPSSITES#0

Site Directory

網站目錄

SPSCOMMU#0

Community area template

社區區域範本

SPSREPORTCENTER#0

Report Center

報告中心

SPSPORTAL#0

Collaboration Portal

協作門戶

SRCHCEN#0

Enterprise Search Center

企業級搜索中心

PROFILES#0

Profiles

設定檔

BLANKINTERNETCONT

Publishing Portal

發佈門戶

SPSMSITEHOST#0

My Site Host

“我的網站” HOST

ENTERWIKI#0

Enterprise Wiki

企業 Wiki

SRCHCENTERLITE#0

Basic Search Center

基本搜索中心

SRCHCENTERLITE#1

Basic Search Center

基本搜索中心

SRCHCENTERFAST#0

FAST Search Center

快速搜索中心

visprus#0

Visio Process Repository

Visio 流程儲存庫

 

以下是Windows PowerShell 透過網站範本建立網站的指令:

Set-ExecutionPolicy unrestricted -Force # answer Y
Add-PSSnapin Microsoft.SharePoint.Powershell
$SiteCollectionName = "Welcome to My Publishing Site"
$SiteCollectionURL = "http://www.contoso.com/sps/"
$ContentDatabase  = "SP2010_ContentDB_Frontend"
$SiteCollectionTemplate = "BLANKINTERNET#1"
$SiteCollectionLanguage = 1033
$SiteCollectionDescription = "Publishing site"
$OwnerAlias = "DOMAIN\admin"
$OwnerEmail = "admin@contoso.com"
$SecondaryOwnerAlias = "DOMAIN\admin2"
$SecondaryEmail = "admin2@contoso.com"
# Create a new Sharepoint Site Collection
New-SPSite -Name $SiteCollectionName -URL $SiteCollectionURL -ContentDatabase $ContentDatabase Template $SiteCollectionTemplate -Language $SiteCollectionLanguage -Description $SiteCollectionDescription -OwnerAlias $OwnerAlias -OwnerEmail $OwnerEmail -SecondaryOwnerAlias $SecondaryOwnerAlias -SecondaryEmail $SecondaryEmail

2011年10月8日 星期六

開發Office 365 SharePoint Online–Step1

要開發Office 365 SharePoint Online 必須要先裝Visual Studio 2010 SharePoint Power Tools,下載的網址如下:http://visualstudiogallery.msdn.microsoft.com/8e602a8c-6714-4549-9e95-f3700344b0d9/,安裝完成之後,會在Visual Studio 2010的SharePoint樣板項目中,多了 一個:Visual Web Part (SandBoxed),因為預設的SharePoint Visual Web Part 專案,是沒有部署到SandBoxed這個選項可以選的,因此必須先建立一個空專案,然後再加入Visual Web Part (SandBoxed),如下圖 所示:

image

新增的Visual Web Part (SandBoxed)內容和一般的Visual Web Part 不大一樣,Visual Web Part (SandBoxed)是由一個ascx+ascx.cs以及ascx.g.cs組成

image

裡面最大不同的檔案是 : ascx.g.cs,因為預設的Visual Web Part 是將UserControl放到指定的外部資料夾中,但是SandBoxed不允許存取外部資源,因此Visual Web Part (SandBoxed)的UserControl就由ascx.g.cs中的程式來描敘控制項內容,以下為ascx.g.cs程式碼:

image

這樣一來,就可以使用SandBoxed方式將UserControl直接部署在Office 365 SharePoint網站上

2011年9月24日 星期六

Silverlight 4 Application Themes

Silverlight 4 Application Themes真是好東西,可以快速地建置起統一樣式、美美的Silverlight 系統,老實說接專案開發系統時,發現USER很重視系統的UI,所以亞當斯才說這是好東西啊,以下是官方的說明:

4 new application themes for Silverlight 4: JetPack, Accent Color, Windows 7 and Cosmopolitan. These themes can be used for the navigation template provided by the Silverlight 4 Tools installer or using the various resource dictionaries provided in this download.

下載網址在:http://www.microsoft.com/download/en/details.aspx?id=14590

2011年8月24日 星期三

SharePoint 2010 Custom Action Locations and Group IDs - Page

SharePoint 2010 的Locations and GroupIDs總共分為四大類:

以下是Page對應表格資料:

Location

Custom Action Group IDs

Default Custom Action IDs

Group Description

Microsoft.SharePoint.ContentTypeSettings

Fields

· AddField

· ReorderFields

Columns section on site collection Content Type page.

Microsoft.SharePoint.ContentTypeSettings

General

· ChangeNameDescription

· ChangeOptionalSettings

· ChangeWorkflowSettings

· RemoveContentType

Settings section on site collection Content Type page.

Microsoft.SharePoint.ContentTypeTemplateSettings

Fields

· AddField

· ReorderFields

Columns section on List Content Type page.

Microsoft.SharePoint.ContentTypeTemplateSettings

General

· ChangeNameDescriptionGroup

· ChangeOptionalSettings

· ChangeWorkflowSettings

· RemoveContentType

Settings section on List Content Type page.

Microsoft.SharePoint.Create

WebPages

Not applicable

Web Pages section on Create page.

Microsoft.SharePoint.GroupsPage

NewMenu

Not applicable

New menu on site collection People and Groups page.

Microsoft.SharePoint.GroupsPage

SettingsMenu

Not applicable

Settings menu on site collection People and Groups page.

Microsoft.SharePoint.ListEdit

Communications

Not applicable

Communications section on Customize page for list or document library.

Microsoft.SharePoint.ListEdit

GeneralSettings

Not applicable

General Settings section on Customize page for list.

Microsoft.SharePoint.ListEdit

Permissions

Not applicable

Permissions and Management section on Customize page for list or document library.

Microsoft.SharePoint.ListEdit.DocumentLibrary

GeneralSettings

Not applicable

General Settings section on Customize page for document library.

Microsoft.SharePoint.PeoplePage

ActionsMenu

Not applicable

Actions menu on site collection People and Groups page.

Microsoft.SharePoint.PeoplePage

NewMenu

Not applicable

New menu on site collection People and Groups page.

Microsoft.SharePoint.PeoplePage

SettingsMenu

Not applicable

Settings menu on site collection People and Groups page.

Microsoft.SharePoint.SiteSettings

Customization

· ProjectSettings

· NavOptions

· Theme

· TopNav

· QuickLaunch

· SaveAsTemplate

· ReGhost

Look and Feel section on Site Settings page.

Microsoft.SharePoint.SiteSettings

Galleries

· MasterPageCatalog

· ManageCType

· ManageField

· SiteTemplates

· ListTemplates

· WebParts

· Workflows

Galleries section on Site Settings page.

Microsoft.SharePoint.SiteSettings

SiteAdministration

· RegionalSettings

· LibrariesAndLists

· WebUsage

· UserAlerts

· RSS

· SrchVis

· ManageSubWebs

· ManageSiteFeatures

· DeleteWeb

Site Administration section on Site Settings page.

Microsoft.SharePoint.SiteSettings

SiteCollectionAdmin

· DeletedItems

· SiteCollectionUsage

· Storage

· ManageSiteCollectionFeatures

· Hierarchy

· Portal

Site Collection Administration section on Site Settings page.

Microsoft.SharePoint.SiteSettings

UsersAndPermissions

· PeopleAndGroups

· SiteCollectionAdministrators

· User

 

以上資料來自微軟MSDN : http://msdn.microsoft.com/en-us/library/bb802730.aspx

SharePoint 2010 Custom Action Locations and Group IDs - Menu

每次在設定Ribbon的時候,或是其他Elements功能都常常需要設定到Location和以及相對應的Group,每一次也要查一下MSDN,雖然查的到,但亞當斯還是覺得好麻煩,所以就把微軟官方的SharePoint 2010 Custom Action Locations and IDs在這邊也記錄備查一下。

SharePoint 2010 的Locations and GroupIDs總共分為四大類:

  • Menu Custom Action Locations and Group IDs
  • Page Custom Action Locations and Group IDs
  • Central Administration Custom Action Locations and Group IDs
  • Server Ribbon Custom Action Locations and Group IDs

以下是Menu對應表格資料:

Menu Custom Action Locations and Group IDs

Location

Custom Action Group IDs

Default Custom Action IDs

Group Description

DisplayFormToolbar

Not applicable

ExportEventToolbarButton (calendars)

ExportContactToolbarButton (contacts)

Location corresponds to the display form toolbar of lists.

EditControlBlock

Not applicable

Not applicable

Location corresponds to the per-item edit control block (ECB) menu.

EditFormToolbar

Not applicable

Not applicable

Location corresponds to the edit form toolbar of lists.

NewFormToolbar

Not applicable

Not applicable

Location corresponds to the new form toolbar of lists.

ViewToolbar

Not applicable

Not applicable

Location corresponds to the toolbar in list views.

Microsoft.SharePoint.StandardMenu

ActionsMenu

Not applicable

Actions menu in list and document library views.

Microsoft.SharePoint.StandardMenu

ActionsMenuForSurvey

Not applicable

Site Actions menu for surveys.

Microsoft.SharePoint.StandardMenu

SettingsMenuForSurvey

Not applicable

Site Settings links for surveys.

Microsoft.SharePoint.StandardMenu

SiteActions

Not applicable

Site Actions menu.

2011年8月18日 星期四

How to coding to creating a web part page in SharePoint 2010(如何在某個List(如Site Pages/Site Assets)裡加入一個web part page)

如果想要動態透過SharePoint Server API將Web Part Page動態加入指定的清單中,如:Site Pages或Site Assets中,該如何來實作,以下亞當斯使用Console Application來示範,先建立一個Console Application

1. 加入Microsoft.SharePoint.dll以及System.Web.dll兩個主要的組件

clip_image001

2. 因為當SharePoint2010在建立新的網頁組件頁面(WebPartPage)時,有很多的網頁範本可以選擇,所以假設想要動態建立新的WebPartPage,則必須先指定某個既定的網頁範本,例如最基本的:spstd1.aspx,這些網頁組件頁面範本是存放在以下路徑:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1028\STS\DOCTEMP\SMARTPGS

clip_image002

3. 在Main.cs中加入以下程式碼,透過SPUtility.GetGenericSetupPath先取出範本存放的路徑,接著設定網頁範本名稱以及想要放置的資料夾或清單名稱,最後透過SPFile物件,將自訂的網頁組件頁面新增到SitePages清單中:

try

{

using (SPWeb web = new SPSite("http://sharepoint").OpenWeb())

{

//Create Page in SitePages List (If English Version Please use 1033)

string hive = SPUtility.GetGenericSetupPath("TEMPLATE\\1028\\STS\\DOCTEMP\\SMARTPGS\\");

FileStream stream =

new FileStream(Path.Combine(hive, "spstd1.aspx"), FileMode.Open);

SPFolder libraryFolder = web.GetFolder("SitePages");

SPFileCollection files = libraryFolder.Files;

SPFile file = files.Add("MyPage.aspx", stream);

Console.WriteLine("Create Custom Page OK");

}

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

Console.Read();

4. 建置專案,並結執行測試,開啟http://sharepoint/SitePages/Forms/AllPages.aspx,可以看到MyPage.aspx已經被API動態新增到SitePages中

clip_image003

5. 點擊MyPage.aspx,並進入編輯模式,可以在MyPage中新增網頁組件

clip_image005

2011年8月17日 星期三

How to Programmatically Add List or WebParts to SharePoint 2010 WebPartPage

想要在既有的網頁組件頁面中透過API動態加入既有的清單List或是網頁組件WebPart,該如何設計呢?

以下亞當斯帶各位來設計開發:

1. 假設建立一個將加入至WebPartPage的清單:MyProject (此清單是Project Task),如下圖所示:

clip_image002

2. 接著建立一個Console Application,加入Microsoft.SharePoint.dll以及System.Web.dll兩個主要的組件

3. 在Main.cs中加入以下程式碼,將List加入名為MyPage.aspx的網頁組件頁面中,MyPage.aspx的建立方式可以自行加入單一網頁組件的頁面,或是請參考以下文章步驟:How to coding to creating a web part page in SharePoint 2010

image

4. 建置專案,並執行測試,將會發現MyProject已經被動態新增至MyPage.aspx的網頁組件頁面中:

clip_image004

2011年8月16日 星期二

How to Hidden OverwriteFile on DiscussionBoard Upload Page in SharePoint 2010(如何在SharePoint2010的討論區上傳檔案時隱藏覆寫功能)

在SharePoint 2010的討論區清單中,當使用者新增一個討論主題的時候,可以在編輯內容時,使用Ribbon上的插入選項,新增欲上傳的檔案:

clip_image002

以下是按下上傳功能時的畫面,但是因為同一個網站中的所有討論區都可以讓使用者上傳文件至指定的清單,這時候會產生一個問題,當不同的討論區上傳檔案時,檔名為相同時就會預設將前一個使用者上傳的文件覆蓋掉。

clip_image003

舉個例子:不同的討論區中發表主題時,上傳同一個檔名至:網站資產,此時勾選「複寫現有的檔案」,就會將之前的檔案直接覆寫掉,並且在本文中持續加入新檔案參考:

clip_image005

那麼如果不勾選「複寫現有的檔案」,就會有以下的訊息提示使用者。

clip_image006

有些情境因為考量到不讓使用者可以自行勾選「複寫現有的檔案」,因此必須將「複寫現有的檔案」選項設定為不顯示,並且預設是不勾選,該如何完成此需求呢,步驟如下:

1. 找到C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS下的RteUploadDialog.aspx

2. 進入編輯模式,找到

<asp:CheckBox id="OverwriteFile" Checked="true" Text="<%$Resources:wss,upload_document_overwrite_file%>" runat="server" />

3. 修改為以下的設定:

<asp:CheckBox id="OverwriteFile" Checked="false" Visible="false" Text="<%$Resources:wss,upload_document_overwrite_file%>" runat="server" />

4. 重新新增討論主題並上傳文件,可以檢視畫面已被修改:

clip_image009

5. 針對相同的清單上傳已存在名稱的文件時,將預設會判斷已存在,不得重複上傳,如下圖所示:

clip_image010

2011年8月15日 星期一

How to using SharePoint 2010 WebPart to New WebSites(如何在SharePoint 2010中透過WebPart新增子網站)

某些商業情境下我們會將SharePoint 2010 的Ribbon隱藏起來不讓使用者可以操作,或者是把以下的網站動作利用權限控管隱藏,以便讓一般的使用者也無法透過網站動作新增網站。

clip_image001

但是,當隱藏Ribbon以及網站動作功能項之後,若是要讓某些部分權限的使用者可以透過特定的操作功能來建立其所負責網站下的子網站時,該如何設計呢?

以下步驟透過一個WebPart包含一個連結就可以輕易達成此需求:

1. 新增一個SharePoint2010 WebPart專案:

clip_image002

2. 拖曳一個Image控制項至UserControl中,並設定:

ImageUrl為 ~/_layouts/images/createcontent.gif

clip_image003

設定完成之後的HTML如下:

<asp:HyperLink ID="HyperLink1" runat="server"

ImageUrl="~/_layouts/images/createcontent.gif">NewWeb</asp:HyperLink>

3. 另在加入一個HyperLink控制項,並設定相同的相關設定:

<asp:HyperLink ID="HyperLink2" runat="server">NewWeb</asp:HyperLink>

4. 設定好的UserControl畫面如下:

clip_image004

5. 接著設定此兩個控制項的NavigateUrl屬性為WEB相對應的路徑:/_layouts/newsbweb.aspx,切換到UserControl程式碼畫面,設計以下程式:

clip_image005

6. 完成後部署至SharePoint 2010網站中,加入此網頁組件

clip_image006

7. 並點擊此連結即可進入新增網站的設定視窗,而不用透過Ribbon或是網站動作管理清單來新增網站了。

clip_image008

clip_image010

2011年7月17日 星期日

How to using Dynamic Data in GridView-2(如何在GridView上套用DynamicData動態資料機制)

在亞當斯的前一篇文章中:How to using Dynamic Data in GridView-1(如何在GridView上套用DynamicData動態資料機制)有寫到可以使用Dynamic Data 機制來快速呈現資料庫的資料,但是上述連結的那篇文章是用ASP.NET Dynamic Data Linq to WebSite專案來設計,所以預設不用特殊的設定就可以達到符合的功能,然後若是修改使用ASP.NET Dynamic Data Entities WebSite專案,又是如何?

1.建立一個ASP.NET Dynamic Data Entities WebSite專案:

clip_image002

2. 同之前的步驟,新增一個ADO.NET Entity Data Model,然後設定Pubs資料庫為資料來源,並修改Global.asax,這邊值得一提的是因為EDM的模式所產生的DataContext類別會加上命名空間,所以在設定骨幹網站的時候要給完整名稱,如:pubsModel.pubsEntities

DefaultModel.RegisterContext(typeof(pubsModel.pubsEntities), new ContextConfiguration() { ScaffoldAllTables = true });

routes.Add(new DynamicDataRoute("{table}/{action}.aspx"){
Constraints = new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),Model = DefaultModel});

3. 新增一個網頁應用程式,加入GridView並設定資料來源為EntityDataSource,這邊我們挑選employee物件當作資料呈現來源

clip_image003

4. GridView控制項進入編輯欄位視窗,先找到動態欄位

clip_image004

5. 把動態欄位中的關聯欄位Jobs和Publishers加入GridView中

clip_image005

6. 瀏覽網頁,此時會出現錯誤訊息,如下圖所示:

clip_image006

主要是因為使用EntityDataSource設定資料來源的時候,它的一個很重要的屬性: ContextTypeName並不會自動給值,必須由開發者手動設定值。

7. 因此切換到EntityDataSource的屬性視窗,設定ContextTypeName為:pubsModel.pubsEntities

clip_image007

8. 以下是設定完成的EntityDataSource屬性資料

clip_image008

9. 最後重新瀏覽網頁,可以看到動態欄位Jobs和Publishers可以正確地顯示在GridView控制項上,並且擁有關聯網頁可以檢視。

clip_image009

How to using Dynamic Data in GridView-1(如何在GridView上套用DynamicData動態資料機制)

ASP.NET 4 有提供一個開發架構:ASP.NET Dynamic Data,可以快速地根據資料元件動態產生對應的網頁,但是如果想要將ASP.NET Dynamic Data套用到既有自行設計的GridView控制項的話來呈現資料的話,那麼就可以加入動態欄位來呈現。

以下就來示範如何在GridView控制項上套用DynamicData動態資料機制,以產生關聯資料列表:

1. 新增一個ASP.NET Dynamic Data Linq to WebSite專案

clip_image001

2. 加入一個LINQ To SQL Classes,並設定資料來源為Northwind.dbml,挑選幾個要測設的資料表,如:Product…等等,如下圖所示:

clip_image003

3. 修改Global.asax先啟用Dynamic Data骨幹網站,讓此網站可以快速動態產生資料網頁:

DefaultModel.RegisterContext(typeof(NorthwindDataContext),

new ContextConfiguration() { ScaffoldAllTables = true });

routes.Add(new DynamicDataRoute("{table}/{action}.aspx")

{

Constraints =

new RouteValueDictionary(new { action = "List|Details|Edit|Insert" }),

Model = DefaultModel

});

4. 瀏覽Default.aspx測試檢視是否可以成功啟用動態網頁

clip_image004

5. 接著要把動態網頁規則套用至自己設計的網頁中,先增一個DynamicGridView.aspx,加入一個GridView控制項,並設定Data Source為LINQ

clip_image005

按下OK,挑選Context Object為:NorthwindDataContext。

clip_image006

6. Table挑選Product(Table<Product>)為主要呈現的資料內容,欄位可以任意選,但是盡量挑選有參考其他資料表欄位關聯性質的,例如:Category…等等,這是為了凸顯動態資料的彈性。

clip_image007

7. 先瀏覽DynamicGridView.aspx,目前跟一般GridView設計時沒什麼兩樣,注意一下SupplierID 和 CategoryID兩個欄位,只有秀ID值。

clip_image008

8. 但是通常使用者想要看的資料並不會是ID值,而是希望看到名稱,甚至更聰明一點希望可以將關聯建立起來,可以直接檢視明細資料。

9. 刪除GridView的SupplierID 和 CategoryID欄位,並加入動態欄位下的Category和Supplier。

clip_image009

10. 再次瀏覽DynamicGridView.aspx就會發現新增的兩個欄位Category 和 Supplier資料都動態產生,甚至有聯結的欄位也自動將關聯加上。

clip_image011

11. 點選Category就可以檢視Categories/ListDetails.aspx的列表資訊。

clip_image012

2011年6月30日 星期四

Google Swiffy Lab Converts Flash SWF files to HTML5

Swiffy converts Flash SWF files to HTML5, allowing you to reuse Flash content on devices without a Flash player (such as iPhones and iPads).

Swiffy currently supports a subset of SWF 8 and ActionScript 2.0, and the output works in all Webkit browsers such as Chrome and Mobile Safari. If possible, exporting your Flash animation as a SWF 5 file might give better results. (這邊只有寫到支援ActionScript 2.0,其實這對後來設計的Flash是會有問題的)

如果是使用IE9去瀏覽:http://swiffy.googlelabs.com/ 就會看到以下的警示訊息

Your browser may not display Swiffy's output correctly. You need a Webkit browser such as Chrome or Safari for the gallery and previews to be displayed correctly.

所以亞當斯就使用Safari來測試,這樣就可以知道在iPhone和iPad上的呈現模式為何,上傳一個用Flash設計的Banner,結果如下:

Swiffy

發現還是會有一些小問題,例如以上所列的四點:

  • Blend modes are not supported. (1 occurrences)
  • Scenes are not supported. (1 occurrences)
  • ActionScript 3.0 is not supported. (2 occurrences)
  • Advanced text rendering using continuous stroke modulation is not supported. (4 occurrences)

如果要把轉換的結果存下來,網頁上也說明:
You can download or preview the Swiffy conversion at the following URL. Just right click and "Save link as..." to download. The URL will expire after 15 minutes.

總之,Swiffy 相信還有改進的空間,不過對於只搭配ActionScript 2.0地來說應該是沒問題的,也還蠻方便的小工具,所以亞當斯在這邊也小小的推一下囉!

2011年6月23日 星期四

List Template ID in SharePoint 2010

亞當斯之前開發SharePoint 2007時,有用到SharePoint清單對應的ID,在以下網址曾經整理一個列表參考:List Template Id In Moss 2007,如今SharePoint 2010多了更多新的清單,因此 ListTemplate ID 也就更豐富了,以下是SharePoint 2010 ListTemplate ID對應表。

例如:常用的文件庫就是101、Task是107…等等

ListTemplateType Value

Description and ID

InvalidType

Not used. Value = -1.

NoListTemplate

unspecified list type. Value = 0

GenericList

Custom list. Value = 100.

DocumentLibrary

Document library. Value = 101.

Survey

Survey. Value = 102.

Links

Links. Value = 103.

Announcements

Announcements. Value = 104.

Contacts

Contacts. Value = 105.

Events

Calendar. Value = 106.

Tasks

Tasks. Value = 107.

DiscussionBoard

Discussion board. Value = 108.

PictureLibrary

Picture library. Value = 109.

DataSources

Data sources for a site. Value = 110.

WebTemplateCatalog

Site template gallery. Value = 111.

UserInformation

User Information. Value = 112.

WebPartCatalog

Web Part gallery. Value = 113.

ListTemplateCatalog

List Template gallery. Value = 114.

XMLForm

XML Form library. Value = 115.

MasterPageCatalog

Master Page gallery. Value = 116.

NoCodeWorkflows

No Code Workflows. Value = 117.

WorkflowProcess

Custom Workflow Process. Value = 118.

WebPageLibrary

Wiki Page Library. Value = 119.

CustomGrid

Custom grid for a list. Value = 120.

SolutionCatalog

Solutions. Value = 121

NoCodePublic

No Code Public Workflow. Value = 122

ThemeCatalog

Themes. Value = 123

DataConnectionLibrary

Data connection library for sharing information about external data connections. Value = 130.

WorkflowHistory

Workflow History. Value = 140.

GanttTasks

Project Tasks. Value = 150.

Meetings

Meeting Series (Meeting). Value = 200.

Agenda

Agenda (Meeting). Value = 201.

MeetingUser

Attendees (Meeting). Value = 202.

Decision

Decisions (Meeting). Value = 204.

MeetingObjective

Objectives (Meeting). Value = 207.

TextBox

Text Box (Meeting). Value = 210.

ThingsToBring

Things To Bring (Meeting). Value = 211.

HomePageLibrary

Workspace Pages (Meeting). Value = 212.

Posts

Posts (Blog). Value = 301.

Comments

Comments (Blog). Value = 302.

Categories

Categories (Blog). Value = 303.

Facility

Facility. Value = 402

Whereabouts

Whereabouts. Value = 403

CallTrack

Call Track. Value = 404

Circulation

Circulation. Value = 405

Timecard

Timecard. Value = 420

Holidays

Holidays. Value = 421

IMEDic

IME (Input Method Editor) Dictionary. Value = 499

ExternalList

External. Value = 600

IssueTracking

Issue tracking. Value = 1100.

AdminTasks

Administrator Tasks. Value = 1200.

HealthRules

Health Rules. Value = 1220

HealthReports

Health Reports. Value = 1221

如果各位要查詢MSDN的話,可以使用"SPListTemplateType"關鍵字查詢。

2011年6月22日 星期三

[Resource] Web Standards Update for Microsoft Visual Studio 2010 SP1

以下是Web Standards Update for Microsoft Visual Studio 2010 SP1在官網相關的敘述,有興趣的朋友可以先參考:Web Standards Update provides the much wanted HTML5 & CSS3 support to Visual Studio 2010 SP1. It brings VS 2010 intellisense & validation as close to W3C specification as we could get via means of an extension. The most notable supported features by this extension are:

image_axdHTML5 – Video, Audio, Input Type, Drag & Drop, WAI-ARIA, Microdata, Schema.org

  • Browser API – GeoLocation & Local Storage
  • CSS3 – 2D Transforms, 3D Transforms, Animations, Background & Borders, Basic Box Model, Basic UI, Behavior, Color, Flexible Box Layout, Fonts, Paged Media, Hyperlink Presentation, Line, Lists, Marquee, Media Queries, Multi Column, Namespaces, Presentation Levels, Ruby, Selectors, Speech, Syntax, Template Layout, Text & Transitions. It also supports vendor specific prefixes like –ms, -webkit & -moz.

download

其他更詳細的一些說明,也可以參考保哥Will整理的資訊和內容:介紹好用 Visual Studio 2010 擴充套件:Web Standards Update for Microsoft Visual Studio 2010 SP1

2011年6月20日 星期一

SharePoint 2010 Reusable User Control Template Property in WebPart (在SharePoint 2010中使用WebPart存取共用的UserControl屬性)

Situation(情境) : 將共用的使用者控制項(UserControl)部署至SharePoint 2010 網站中,並開放一些對外的屬性,然而在其它的WebPart想要直接存取這些共用UserControl之屬性,該怎麼做呢?

上述問題是客戶在開發SharePoint 2010 時遇到的相關問題,因為SharePoint 2010 針對User Control 有提供預設的開發模型,因此Microsoft建議大家在開發的時候盡量使用Web User Control,因而延伸一些針對User Control 需要注意的開發技巧,以下亞當斯帶各位來實作以上問題的解決方案。

Solution(解決方案):

  1. 新增一個SharePoint 2010 專案用來存放共用的User Control,部署方式為Solution
    CommonUC-1
  2. 新增一個共用的Web User Control ,例如命名為:UserControlTextBox
    CommonUC-2
  3. 設計此User Control 的畫面,並針對此User Control 設計對外開放的屬性,以便其它物件存取其值
    CommonUC-4
    public string UCText
    {
      get
      {
        return TextBox1.Text;
      }
    }
  4. 將此User Control先行部署至SharePoint 2010 網站上,其部署位置將預設為:{SharePointRoot}\Template\ControlTemplates\CommonUC\
  5. 新增另一個WebPart專案,命名為:WebPartProject,並新增一個Visual WebPart (UCVisualWebPartUserControl.ascx) ,為了要存取已經部署到SharePoint 2010 網站上的User Control,要先註冊User Control,如下:
    CommonUC-5
  6. Src挑選來源的時候,可以透過選取視窗,例如直接挑選伺服器上的UserControlTextBox
    CommonUC-6
  7. 在WebPart專案加入參考
    CommonUC-7
  8. 選取同一方案中的CommonUC.dll (共用User Control所在的SharePoint 2010 專案範本)
    CommonUC-8
  9. 在WebPart中先將控制項設計好,如下:
  10. <%@ Register TagPrefix="NETDB" TagName="UserControlTextBox" Src="~/_controltemplates/CommonUC/UserControlTextBox.ascx"  %>

    <NETDB:UserControlTextBox ID="UCT" runat="server" />
    <asp:Button ID="Button1" runat="server" Text="Get UC Text" onclick="Button1_Click" />
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

  11. 雙擊按鈕,切換到程式碼視窗,將UCT直接轉型為共用的User Control並存取其開放的屬性:UCText即可
    CommonUC-9
  12. 將WebPart部署到SharePoint 2010 網站上
    CommonUC-10
  13. 在SharePoint 2010 網頁中加入WebPart測試,按下按鈕透過UCText屬性存取到共用User Control的TextBox1控制項值。
    CommonUC-11