SharePoint Server 2010 発表!

ついにSharePoint Server 2010に関する情報が公になりました! すでにITProなどのIT系ニュースサイトで記事が出ていたり、SharePoint Conference 2009のために現地している山崎愛さんが非常にわかりやすい詳細なレポートを掲載しているので、ご存知の方がほとんどでしょう。 私は非公開のベータテストで若干触っていたのですが、まだ1%の機能も調べられていないような状況です。 ようやく公になるということでこれから多くの情報がでてくると思うと、非常に楽しみですね。 思えば私が初めてSharePoint Server 2007を触ったのはTR1というバージョンの時でした。 この時は公式なドキュメントが全くなく、すべて手さぐりで機能検証などをしていました。 製品リリース後もドキュメントの整備が進まず、しばらくは英語のドキュメントがちょっとだけあるというような非常につらい状況だったことは、皆さんの記憶にも新しいことかと思います。 はたして、SharePoint Server 2010のドキュメント整備状況はどうなんでしょう。 とある情報によると、今回は気合を入れて準備をしているとか。。。 ぜひぜひ期待してその時を待ちましょう。 しかし、製品のリリースサイクルというものは非常に早いなぁとつくづく思います。 SharePointの導入コンサルなどをしていると、今からSharePoint Server 2007の導入を検討される企業さんや、導入が終わりある程度運用をして今後どうやってSharePoint Server 2007を活用していこうかと検討をしている企業さんがほとんどなんですよね。 このような状況で「はい、次の製品来ましたー」といっても、なかなか前向きな反応をするのは難しいですよね。SharePointに限った話ではないですが。 こういう現実もしっかりと理解した上でうまく情報提供していきたいなと思います。 さて、SharePoint Server 2010の話に戻しますが・・・ 今時点で私が特に気にかけている新機能は、Business Connectivity ServicesとExternal Listです。 これらの機能により、バックエンドにある基幹システムのデータベースやWebサービスからデータを取得し、あたかもSharePointのリストのようにサイト上にデータを表示したり、ビューを作ったり、権限を設定したり、データの更新ができたりするようです。 これにより、SharePoint Serverをあらゆるシステムの入力インターフェースとして活用するという、これまでなかったような使い方もできるようになるのではと思っています。 もちろんそのためには、アイテム登録ページに強力なバリデーションチェック機能が必要になりますが・・・ ちなみに、SharePoint Team Blogに新機能の説明がでてますね。 非常に膨大な量の新機能です、全機能の細部まで把握するのは不可能に近いかも。 とにかく新機能がてんこ盛りのSharePoint Server 2010ですが、11月にパブリックベータが公開されるということなので、興味ある方は是非ダウンロードして色々試してみてください。 私も試したことはブログに公開するようにしますんで、情報交換していきましょう。

読了時間: 1分

MVPアワード再受賞できました

私事で恐縮ですが、おかげさまで今年もMVPアワードをいただくことができました。 これからの1年は、SharePointの次期バージョンの話とかも絡んでくると思うので、ますます気合を入れていかないといけないですね! ということで、今後もSharePointのMVPとして頑張って活動していきたいと思いますので、みなさん、よろしくお願いいたします。​

読了時間: 1分

SharePoint Server 2007 Beta2 Technical Refresh のインストール

製品版出荷前の最後の公開リリースになるかもしれない、Beta 2 TRが先日ついにリリースされました。 日本ではあまり大々的に取り上げられていないけど、これを待ち望んでいた人は多いはず。 自分もそのうちの一人で、MOSSの検証をしていていくつかうまくいかない機能とかがあったので早くTRで試したいと思ってました。 ということで、早速ダウンロードしてインストールしてみたので、まずはファイルのダウンロードから、MOSSへ適用するまでの手順をめもります。 インストール手順書が米MSサイトにあります。 いろいろなパターンに対応した手順が書いてありますが、どれもかなりめんどくさい手順になっています。 正直ちょっとやる気なくします・・・ http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=920B9690-B835-4785-A771-188C2082B2BC 前提条件今回beta2 TRをインストールする環境は、すでにbeta2がインストール済みです。 インストール手順書でいうところの、「既存の Beta2 環境を Beta 2 Technical Refresh にアップグレードする方法」なります。 1.ダウンロード 以下のURLからWSSとSharePointServerそれぞれダウンロードします。 Windows SharePoint Services 3.0(WSS) http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=e1e51280-71f0-4d60-b2b9-3c49df916bc2 SharePoint Server 2007 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=0b6bd175-e700-44b8-ab47-e4459250d16d 2.Windows Workflow Foundationをアンインストール MOSS beta2をインストールする前に入れたWindows Workflow Foundationをプログラムの追加と削除から、アンインストールします。 3..NET Framework 3.0 Release Candidateをインストール 以下のサイトから.NET Framework 3.0 Release Candidateをダウンロードしてインストールします。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=19E21845-F5E3-4387-95FF-66788825C1AF インストールはライセンス条項に同意して、インストールボタンをクリックするだけなので、画面キャプチャなどは割愛します。 インストール完了後に再起動します。 ※インストールの最後に、Windows Communication Foundationのパッチをインストールするよう指示があるので、こちらも念のためインストールしておいたほうが良いでしょう。 リリースノートを見る限りでは必要ない気もしますが・・・ 4.SharePointの検索サービスを停止 以下の2つのサービスを停止します。 ・Windows SharePoint Services Search ・Office SharePoint Server Search 5.WindowsSharePointServices 3.0 Beta2 TRのインストール 5.1.インストール開始 ダウンロードしたファイルを実行します。 5.2.ライセンス条項 ライセンス条項に同意するをチェックして、[次へ]をクリック。 5.3.SharePoint関連サービスを停止に関するメッセージ Beta2 TR へのアップグレードによりInternet Information Services、SharePoint Administration Services、SharePoint Timer Serviceが再起動されるとのメッセージが表示されます。 [はい]をクリック。 5.4.ファイル展開、インストール ファイルが展開されて、そのままインストールが始まります。 インストールが完了するまでしばらくかかります。 5.5.通知他にもBeta2 TRのインストールをする必要があることをわざわざ教えてくれます。 [OK]をクリック。 5.6.完了 インストール完了メッセージが表示され、WSS Beta2TRのインストール完了。 6.SharePoint Server 2007 Beta2 TRのインストール 6.1.インストール開始 ダウンロードしたファイルを実行します。 6.2.ライセンス条項 ライセンス条項に同意するをチェックして、[次へ]をクリック。 6.3.SharePoint関連サービスを停止に関するメッセージBeta2 TR へのアップグレードによりInternet Information Services、SharePoint Administration Services、SharePoint Timer Serviceが再起動されるとのメッセージが表示されます。 [はい]をクリック。 6.4.ファイル展開、インストール ファイルが展開されて、そのままインストールが始まります。 インストールが完了するまでWSSよりも時間がかかります。 6.5.完了 インストール完了メッセージが表示され、SharePoint Server 2007 Beta2TRのインストール完了。 6.6.アップグレード開始 インストールが完了すると自動的にSharePoint 製品とテクノロジ構成ウィザードが起動します。 指示に従いアップグレードプロセスを開始すると、アップグレードが行われます。 6.7.アップグレード完了 アップグレードプロセスが完了すると、自動的に管理サイトが起動します。 これでアップグレード完了です。 注意 今回、Beta2で作成済みのサイトをBeta2TRにアップグレードする方法を実験しましたが、アップグレード後に発覚した問題が2つあります。 1. 上記手順の6.7のあと、自動的に管理サイトが起動しますが、この起動が失敗しました。 とりあえずもう一度管理サイトへ移動してみると、管理サイトのホームエリアにあるWebパーツのひとつがエラーで表示できなくなっていました。 コレが原因? 2. Beta2TRから、Webアプリケーションのアプリケーションプールを実行するユーザーに、ローカルシステムとローカルサービスが使用できなくなったようです。 そのため、Beta2のころにこれらのユーザーで作成したWebアプリケーションがあると、Beta2TRにした途端に動かなくなってしまいます。 この際に発生したエラーは、「構成データベースに接続できませんでした。」という内容でした。 アプリケーションプールのユーザーをネットワークサービスとか、ドメインユーザーとかに変更したら動くようになりました。

読了時間: 1分

SharePoint Server 上でサイボウズが動く日

Microsoftとサイボウズがグループウェア開発で業務提携! ちょっと驚きました。 これまでは競合製品という認識でいましたが、ついにサイボウズがSharePoint Server上で動く日が来るようです。 これでますますSharePointの充実感が増すわけですね。 その分ユーザーさんのニーズも増えるので、導入を支援する立場としては覚えることがさらに増えるわけですが。 ますます頑張らねば。​

読了時間: 1分

絶対URLからSPViewを取得する

絶対URLからSPViewを取得する方法です。 SPViewはSPListと同様、http://から始まる絶対URLで取得することができません。 SPViewはホスト名からの相対URLで取得します。管理パスとかサブサイトとかで階層がどんなに深くなっていても、ホスト名からの相対URLを指定します。 従って、以下のコードのように何らかのやり方でホスト名までの部分を削除し、その値をSPWebのGetViewFromUrlメソッドに渡します。

1: Uri uri = new Uri("http://test.co.jp/test/Lists/List1/AllItems.aspx");
2: SPSite site = new SPSite(uri.AbsoluteUri);
3: SPWeb web = site.OpenWeb();
4: string targetUrl = uri.AbsoluteUrl.Replace(string.Format("{0}{1}", uri.GetLeftPart(UriPartial.Scheme), uri.Host), "");
5: SPView view = web.GetViewFromUrl(targetUrl);

指定の絶対URLでSPViewが取得できない場合、SPExceptionが発生します。 SPWebやSPListが取得できないときは、FileNotFoundExceptionが発生するのに、SPViewだけはSPExceptionなので、注意が必要です。

読了時間: 1分

絶対URLからSPListItemを取得する

絶対URLからSPListItemを取得する方法です。 SPListItemの取得方法は、対象がファイルまたはフォルダか、リストアイテムかで若干異なります。 ファイル、フォルダの取得 ファイルまたはフォルダのSPListItemを取得する場合、SPListと同様、ホスト名からの相対URLで取得します。 以下のコードでは、Documentsドキュメントライブラリの直下のtestフォルダ内のmemo.txtのSPListItemを取得します。

1: Uri uri = new Uri("http://test.co.jp/Documents/test/memo.txt");
2: SPSite site = new SPSite(uri.AbsoluteUri);
3: SPWeb web = site.OpenWeb();
4: string targetUrl = uri.AbsoluteUrl.Replace(string.Format("{0}{1}", uri.GetLeftPart(UriPartial.Scheme), uri.Host), "");
5: SPListItem file = web.GetListItem(targetUrl);

次は、Documentsドキュメントライブラリの直下のtestフォルダのSPListItemを取得するコードです。

読了時間: 1分

絶対URLからSPListを取得する

絶対URLからSPListを取得する方法です。 結論から言うと、SPListはhttp://から始まる絶対URLで取得することができません。 SPListはホスト名からの相対URLで取得します。管理パスとかサブサイトとかで階層がどんなに深くなっていても、ホスト名からの相対URLを指定します。 従って、以下のコードのように何らかのやり方でホスト名までの部分を削除し、その値をSPWebのGetListメソッドに渡します。

1: Uri uri = new Uri("http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1");
2: SPSite site = new SPSite(uri.AbsoluteUri);
3: SPWeb web = site.OpenWeb();
4: string targetUrl = uri.AbsoluteUrl.Replace(string.Format("{0}{1}", uri.GetLeftPart(UriPartial.Scheme), uri.Host), "");
5: SPList list = web.GetList(targetUrl);

これで問題なさそうですが、SPWeb.GetListメソッドは一つだけ注意点があります。 SPWeb.GetListメソッドは、引数として渡されたURLのファイル名の部分まで意味を持ちます。 例えば、リスト名までは合っていてもファイル名の部分に間違いがあると、SPListを取得することができません。 以下のコードは、DispForm.aspxがDisp.aspxと間違えているため、SPListは取得できません。

読了時間: 1分

絶対URLからSPWebを取得する

絶対URLからSPWebを取得する方法です。 SPWebを取得するには、まずSPSiteを取得する必要があります。 SPSiteの取得は、別の記事にも書いた通り、SPSiteのコンストラクタの引数に、絶対URLを渡して取得します。 その後、続けてOpenWebメソッドを引数なしで呼び出すことで、SPWebを取得できます。 以下のコードでは、testというサブサイトを指定しています。 このコードの結果は、testサブサイトが取得できます。

1: SPSite site = new SPSite("http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1");
2: SPWeb web = site.OpenWeb();

SPSiteと同様、サイトが特定できれば、後半のURLは存在しないコンテンツを指していても問題ありません。 以下のコードでは、test2という存在しないサブサイトを指しています。 このコードの結果は、http://test.co.jpのトップサイトが取得できます。

読了時間: 1分

絶対URLからSPSiteを取得する

絶対URLからSPSiteを取得する方法です。 SPSiteのコンストラクタの引数に、絶対URLを渡すとSPSiteが取得できます。

1: SPSite site = new SPSite(http://test.co.jp/test/Lists/List1/DispForm.aspx?ID=1);

管理パスを定義している場合は、SharePointが自動的に管理パスかどうかを判断し、適切なSPSiteを返してくれます。 例えば、http://test.co.jp直下のサイトコレクションの下位にtest1という管理パスを定義し、そこにサイトコレクションを作成した場合、以下のコードではtest1のサイトコレクションを取得します。

1: SPSite site = new SPSite("http://test.co.jp/test1/Lists/List1/DispForm.aspx?ID=1");

サイトコレクションが特定できれば、後半のURLは存在しないコンテンツを指していても問題ありません。 以下のコードでは、test2という存在しないサブサイトを指しています。 このコードの結果は、http://test.co.jpのサイトコレクションが取得できます。

1: SPSite site = new SPSite("http://test.co.jp/test2/Lists/List1/DispForm.aspx?ID=1");

指定の絶対URLでSPSiteが取得できない場合、FileNotFoundExceptionが発生します。

読了時間: 1分

修正モジュールのインストール手順

修正モジュールのインストール手順に関するドキュメントです。 手順だけではなく、本家TechCenterにある修正モジュール一覧と同じような情報も載っています。 Windows SharePoint Services 3.0 用のソフトウェア更新プログラムを展開する http://technet.microsoft.com/ja-jp/library/cc288269.aspx Office SharePoint Server 2007 のソフトウェア更新プログラムを展開する http://technet.microsoft.com/ja-jp/library/cc263467.aspx

読了時間: 1分