Office365を導入したお客様から、次に要望として挙がるのがSharepointの活用です。
弊社でもさまざまな方法でSharepointの活用・構築を提供してきました。下記の2つの他にもさまざまな開発手法があり、その都度適したものを選定する方法があります。
1.すでにある休暇管理システムを Sharepoint Online 上で再構築したいお客様
このお客様の場合は数年前に構築した休暇管理システムを、システムおよびサーバーの老朽化に伴ってSharepoint上で再構築するという要求でした。
この場合にすでにあるシステムと操作性を完全に合わせることが要求でしたので、画面開発に自由のきく Sharepoint Provider-Hosted アドインを使用して構築しました。
このProvider-Hostedアドインですが、開発の効率、それからインストール・メンテナンスについても思った以上の工数がかかるので大変です。ただしC#を使った開発なので、コードが他の案件やオンプレミスの案件に流用できそうなことは利点になります
2.Sharepoint Onlineで社内ポータルを構築し、スマホでも閲覧できるようにしたいお客様
まずは社内ポータルの構築(intramartからの移行)ですが、特に事前にSharepoint iOS App/Android App がアプリストアからダウンロードできることをお客様が調べており、このアプリにも対応した方式での構築を依頼されました。
いろいろ試したところ、このSharepoint アプリで閲覧できるようにするためにはモダンページを使用して構築する必要があり、そのモダンページをカスタマイズするにはSharepoint Framework を使用する必要がありました。
そのため、このSharepoint Frameworkを使用してポータルを行使地区したのですが、
- 開発環境の準備に大変時間がかかる&失敗することも頻発(特に中国のネットワークからではうまくツールをダウンロードできないことも多発)
- こまかな変更でもアプリの発行とCDNファイルのコピー、パッケージの再インストールが必要になり手間となる
- カスタマイズ内容はページの読み込みの後半に行われるため、全体に施したデザインなどが秒単位で遅れて変更されるのが美しくない
とデメリットを上げればきりがないのですが、ただしもしこの方式を使用しない場合、Microsoft社製のiOS App/Android Appは利用できず、基本的にはスマホからもブラウザを利用してのポータル閲覧となります。
そうすると頻繁にIDとパスワードの入力を求められることになり、結果としてポータルが利用されなくなるという状態にもなります
逆にSharepoint Appであればスマホの中に明確なアプリの入り口ができあがり、基本的には長期間パスワードも求められず気軽に閲覧できるので、たくさん社員に見てもらうという目的を達成するうえでは、正しい選択だったのではと思います。
3. オンプレミスの Sharepoint 2016 で文書承認および文書管理システムを構築したいお客様
オンプレミスではさまざまな伝統的な開発手法も選択できますが、弊社はOffice365 にも注力しておりますので、Sharepoint Onlineにも流用できる開発手法を取り入れています。
上記のProvider-Hostedでは大変開発コストがかかりますので、Provider Hostedで作成したCodeを流用しつつ、UI部分はSharepoint DesignerにてカスタムのHtmlをSharepoint上で運用することとしました。
- UI部分:Sharepoint上に Html + JS + CSS を配置して、Webパーツページ上にページビューワWebパーツから読み込む
- サーバー部分:サーバー上にIIS上で別サイトを運用し、管理者アカウントにてCSOMコードを実行してサーバー側処理を行う
この方法の場合ですと、実行したユーザーの権限でサーバーコードを動かすことはできませんが、上記の1番の開発の際でも最終的にはユーザー権限でコードを動かす部分がなかった(すべて特権に昇格して動かすことになった)ということで、結果的にこのような方法でも大丈夫かと思います。