LightSwitch / Access / Project Siena – SharePoint 開発ツールを比較してみる

この記事は Office 365 Advent Calendar に参加しています。
25日が近づいてきましたね。


SharePoint 開発に使えるツールはいくつかあります。
Visual Studio で Web アプリ、Windows アプリ(WFP なり WinForms なり)、スマホ用アプリなどを作るのが、SharePointアプリ開発でも王道です。当然です。

それに加えて LightSwitch, Access, Project Siena, Napa といった開発ツール・環境でも SharePoint アプリを作ることができます。(これらが万能ツールとは言いません。Visual Studio に取って代わるものではないはず)

本稿では、これらの開発ツール(王道の Visual Studio 以外のもの) の特徴、どういうシーンで使うのか/使えそうかを私なりに整理してみます。
プロの開発者ではなくても簡易的なアプリを作れるというのは大事な特徴ですが、それ以外の観点で見てみます。
唯一解ではありませんし、単純に区分できないケースも多いと思いますが、ツールの使い分けの参考になれば。


■特徴の比較

ツール名 クライアント レスポンシブ 主なデータ 更新可 私見
Access (accdb ファイル) Access No SP 内のリスト Yes
Siena Windows 8.1 No SP 内のリスト Yes タブレットアプリ開発に良い
Napa Web ブラウザー Yes App Web 内のリスト Host Web 内のリスト Yes JavaScript 開発、 この中では難易度高
Access (Link) Web ブラウザー No SP 内のリスト No データ参照のみ可能
Access (インポート) Web ブラウザー No SQL Server Yes リストデータを元にするが、 以降は SQL Server にデータを保存
LightSwitch Web ブラウザー Yes SQL Server / App Web 内のリスト / Host Web 内のリスト Yes この中では一番拡張性が高く、 外部システムとの連携も容易

■使い分けの指針(あくまでも私見)

  • データ更新が必要・・・更新が必要な場合には、Access アプリ (SharePoint 内リストにリンク) は使えません。このタイプの Access アプリはデータ参照のみ可能です。他のツールを使ってください。
  • マルチデバイス対応(レスポンシブデザイン)・・・LightSwitch または Napa が使えます。それ以外は座標固定で画面をデザインするので PC でもスマホでも使いやすいデザインは難しいです。 また SharePoint のサイトで [Access で開く] で作成できる Access (accdb ファイル) の場合には当然 Access がインストールされた PC が必要です。Siena で開発する場合はクライアントが Windows 8.1 の PC (Surface 2 でも OK) が必要です。クライアントとしてスマホやタブレットを使いたい場合は、他の開発ツールで開発してください。
  • 大量のデータを扱う必要がある・・・SharePoint のリストにはいわゆる “5000件” 問題がついて回ります。それ以上のデータを扱いたい場合、または高速なデータアクセスが必要な場合は、LightSwitch または Access (データを DB で管理するタイプ) にしてください。
  • タッチ対応・・・タッチ対応のアプリを開発したい場合は Napa はあまりお勧めしません(開発不可ではないのですが)。クライアントを PC に限定できるのであれば Siena または Access (accdb ファイル) が開発効率が高いと思います。汎用性が高く開発効率もできるだけ上げたいのであれば LightSwitch が良いです。
  • 外部のシステムとの連携が必要、拡張性が必要・・・LightSwitch 一択だと思ってください。業務アプリの場合は、比較的、画面の見栄えを求められないことが多いと思います(UX 的な意味での操作性は重要ですが)。開発生産性が高く、それでも外部との連携をしやすさを求めるのであれば LightSwitch をどうぞ。

「お前の LightSwitch 愛を語りたいだけじゃないか」と言われれば否定できませんが(笑)、それなりのアプリケーションを簡単に開発したければやはり LightSwitch が良いと思います。
使用するユーザーや対象とするデータを限定できるのであれば、Project Siena や Access でサクッと開発するのもいいと思います。
Napa は・・・私は詳しくありませんが、Web 開発の知識を持っている人であれば、いいシステムが作れると思います。判断基準は HTML / JavaScript / CSS に慣れているかどうか、ですね。

向き不向きはありますが、今回取り上げた開発ツールはどれも生産性が高く、比較的簡単に開発を進められるものです。上記の比較を参考に、適切なツールを選んで SharePoint 開発を実践してください。

※なんだか、文字ばっかりの記事になってしまってすみません。

LightSwitch が無償で利用できるようになりました (※ただし利用条件には注意)

ついに LightSwitch が無償で利用できるようになりました!

ただし利用にあたっては条件があります。こちらのページ を必ず確認してください。

個人には利用が許諾されています。自宅の PC でどんどん自習してください。

LightSwitch を使うと、データ指向の Web アプリや SharePoint 用アプリが簡単に、高い生産性で開発できます。

開発者はもちろん、プログラミング経験がほとんどない人にも使いやすい開発ツールです。開発経験が全くない人でもちょっとだけコツをつかめば他のツールよりも簡単にプログラミングができるはずです。

これを機に、たくさんの人に LightSwitch を楽しんでほしいと思います。(MS の中の人ではないですが /笑)

無償の Visual Studio Community 2013 がリリースされました。

これに Office Developer Tools for Visual Studio 2013 – November Update (これも無償)をインストールすることで、LightSwitch が利用できるようになります。

2014-11-14 0-00-27

Visual Studio Community 2013 は Professional 相当の無償ツールです。Office Developer Tools をインストールすれば LightSwitch は機能的に Professional  と同じものが利用できます。Web アプリも SharePoint 用アプリ (クラウドビジネスアプリ)もちゃんと開発できます。

2014-11-14 0-07-132014-11-14 0-07-37

この日を待ってました!

これまでは LightSwtich は Visual Studio Professional 以上に同梱されるツールということで、「ぜひみんな使ってください!」とは言いづらい部分もありましたが、これで LightSwitch を堂々と推せるようになりました。

最近サボりぎみだった LightSwitch やクラウドビジネスアプリについての記事もまた書きます。開発経験が少ない方も触り始めるかも、ということで、これまで以上に入門レベルの内容も書いていきますね。

「SharePoint Online 開発の最初の一歩」セッション資料を公開しました (第9回 Office 365 勉強会 / 2014年8月2日)

8月2日(土) に開催された 第9回 Office 365 勉強会で 1枠いただき、「SharePoint Online 開発の最初の一歩」 といういテーマでお話ししました。

SharePoint 用アプリ (Apps for SharePoint) の一番の特徴は、SharePoint の外でアプリケーションが動作するというところです。これによって、一般の Web 技術や DB などのサーバーサイドの技術を利用できます。

Apps for SharePoint のもう一つの特徴は、HostWeb, AppWeb, RemoteApp の3つのサイトやサーバーが利用できる点です。

サイト/サーバー 場所、用途など データストア API
 HostWeb ・SharePoint の利用者が普段アクセスする SharePoint サイト
・対象のリストを複数のアプリで共有したり、サイト内の任意のページに配置した Web パーツにデータを表示したい場合に使用する
SharePoint のリスト CSOM, JSOM
 AppWeb ・SharePoint 用アプリ専用のサイト(アプリをホストすると自動的にサイトが生成される)
・万一、アプリに不具合があっても、他のアプリや SharePoint のサイト本体に与える影響は最小限
・アプリ専用のサイトなので、リストの名前の重複などを気にしなくてもよい
SharePoint のリスト CSOM, JSOM
 RemoteApp ・任意の Web サーバー上の Web アプリ (SharePoint の外で動作する)
・一般の Web 技術やサーバーサイドの技術を自由に組み合わせることができる
・SharePoint のリストの、いわゆる 5000件問題やパフォーマンスを気にせずにデータの操作ができる
DB, Webサービスなど、一般の Web アプリで利用できる任意のデータストア データストアの既定の API

※CSOM = .NET 用の クライアントサイド SharePoint オブジェクトモデル、JSOM = JavaScript 用の SharePoint オブジェクトモデル


このブログのお約束ごとですが、 上記の 3つのサイトやデータストアをもっとも簡単に、かつ高度に組み合わせられるのがクラウドビジネスアプリです。
勉強会当日に参加者に聞いた時も、まだまだ知名度が低い LightSwitch とクラウドビジネスアプリですが、ぜひ一度試してみてください。高い生産性でアプリ開発できるという意味で、ユーザーにメリットの大きい開発ツールです。

 

※本稿は公開したつもりになっていたんですが、実はなぜか1週間も下書きで保存したままでした orz

クラウドビジネスアプリをアプリカタログに発行する手順 (プロバイダーホスト編)

プロバイダーホスト型のクラウドビジネスアプリ (SharePoint 用アプリ) をアプリカタログに発行する手順をステップバイステップで紹介します。(SharePoint 用アプリを企業アプリカタログに発行する手順 はこちら)

Update on Autohosted Apps Preview program” という発表があったので、これからは自動ホストに頼ることはできなくなります。プロバイダーホストの発行手順を見てみます。以下の手順は Azure の Web サイトに発行する手順です。

続きを読む

「初めてでも大丈夫!SharePoint 開発の第一歩」資料を公開しました (2014年5月10日 第8回 Office 365 勉強会)

第8回 Office 365 勉強会/技術ひろば合同開催が5月10日(土) に開催されました。

一コマいただいて「初めてでも大丈夫!SharePoint 開発の第一歩」というタイトルでお話ししました。

当日は開発者が2~3割で、業務に関係ないよという方もいらっしゃったかもしれませんね。
Office 365 / SharePoint をより活用するにはアプリ開発は一つの大事な要素だと思います。アプリを作るにはまずはどうするのか、を概要を理解するお手伝いができたようでしたらうれしいです。

「第一歩」ということで具体的な開発テクニックまで触れることができませんでしたので、ブログでフォローしていきますね。
LightSwitch、クラウドビジネスアプリについては・・・まあいつも通りで(笑)。
“Napa” や ASP.NET の SharePoint 用アプリについてもこれから情報を共有していきます。と言っても、私も勉強中の身です。

SharePoint 2013 になって新しいプログラミングモデルが追加されました。
Web 標準の技術が利用でき、Apps for SharePoint のように利用者がまず使う SharePoint サイトの外で動作するアプリケーションも作れます。従来よりも SharePoint 特有のハードルは低くなってきました。

ぜひ SharePoint 用アプリ開発にチャレンジしてみてください。

 

5月の SharePoint 月間の第2弾、「Office 365 / SharePoint 勉強会~活用・連携編」は5月17日(土) の開催です。
まだ受け付けていますので、Office 365、SharePoint に興味のある方はぜひいらしてください。こちらのページ からお申し込みください。

クラウドビジネスアプリが Office 365 のドキュメントライブラリーに対応

Office Developer Tools for Visual Studio 2013 March 2014 Update で、LightSwitch から Office 365 のドキュメントライブラリーを扱えるようになりました。

Office 365 上にあるドキュメントライブラリーは、クラウドビジネスアプリから見ると “外部データソース” です。”新しいテーブルの作成” ではなく “外部データソースにアタッチ” で始めます。
データソースのアタッチウィザードではドキュメントライブラリーを選択します。
“ユーザー情報リスト” のインポートも必須なので、未選択の状態でも自動的にインポートしてくれます。また今回のアップデートではユーザー情報リストがドキュメントライブラリー/カスタムリストに関連することが分かりやすくなりました。もちろん明示的に選択してもかまいません。

2014-04-13 11-45-09

2014-04-13 11-47-452014-04-13 11-49-002014-04-13 11-51-06

これでドキュメントライブラリーの定義がインポートされます。ただし一点注意が必要です。少し脱線します。
今後のアップデートでは改善されることを期待していますが、オブジェクト名に日本語を使うと全てのアイテムの表示が1件目の内容になってしまいます

2014-04-13 11-55-52
2014-04-09 23-48-02

現状はこの問題を解消するにはオブジェクト名に日本語を使わないことです。

2014-04-13 11-57-32

これで正しく表示できるようになります。

2014-04-13 12-09-12

クリックするとちゃんと Office クライアントで開いてくれます。Office クライアントがインストールされていなければ Office Web App で開いてくれます。

2014-04-13 12-14-152014-04-13 12-15-15

 

順番が逆になってしまいましたが、上記の動作は今回のアップデートで追加された “ドキュメントの概要” コントロールのおかげです。ドキュメントのアイコン、タイトル、クリック時の動作の面倒を見てくれています。

2014-04-13 12-19-54

 

改めて「クラウドビジネスアプリプロジェクトで、テーブル、画面の名前に日本語を使うと、[データの参照画面] で全てのレコードの表示が1件目の内容になってしまう」フィードバックへの Vote にご協力ください!
日本語で Office 365 を使う際にはとても都合の悪い問題です。フィードバックで改善してもらいましょう。

LightSwitch から見た Office Developer Tools March 2014 Update のポイント

3月の始めに Office Developer Tools for Visual Studio 2013 March 2014 Update がリリースされました(もう1ヶ月も前の話です、すみません)。
MVP Community Camp で担当したセッションでは、このアップデートで追加された機能を使ってクラウドビジネスアプリのデモを行いました。今まで以上に素早く業務アプリケーションを作れるようになっています。

March 2014 Update の一番の目玉はクラウドビジネスアプリ関連の機能拡張です。Office Developer Tools のアップデートなのに! これはうれしい。

一番うれしい、「共通の画面セット」作成について見てみます。
業務アプリで多くの場合に必要となる、データの一覧表示画面、詳細画面、新規/更新画面の3種類の画面がまとめて作成できる機能です。
アップデート前も同様の画面を作ることはできましたが、3画面まとめて作れるのがいいですね。

2014-04-05 21-34-10

2014-04-05 21-54-312014-04-05 21-56-302014-04-06 0-41-292014-04-05 21-52-51

 

画面によってちょっとテイストを変えて、表形式にするのもいいです。(表形式は前から出来ましたが)

2014-04-06 0-19-352014-04-05 21-56-52

はじめから検索機能付きの画面になっています。(これももちろん以前から実装可能でした)

2014-04-05 21-57-23

 

共通の画面セットが作れるようになって、プロジェクトの構成は少しだけ変わりました。
画面セットごとにフォルダーが作られて、その中に3画面のファイルが作られるようになっています。

2014-04-05 21-37-54

アップデート前は Screen フォルダー直下に全てのファイルが置かれていました。画面数や扱うテーブル数が増えた時に画面を探しやすくなりますね。
以前はこんな感じでした。

2014-04-05 21-38-55

 

直感的、見た目的にはこういったところが機能拡張されました。LightSwitch とクラウドビジネスアプリがますます楽しくなってきました。

3月22日(土) は日本各地の MVP Community Camp に参加しませんか

MVP ComCamp

3月17日(月)~22日(土) の1週間、MVP Community Camp なるイベントがあります。

平日の間はオンラインでのセミナーがあり、22日の土曜日は日本各地、アジアパシフィックの各地でのカンファレンスが開催されます。カンファレンスはオフライン+Ustream 配信されます。これまでにないコミュニティーイベントですね。

IT 業界の皆さんにとっては消費税引き上げ前の期末の忙しい時期だと思いますが、ぜひぜひお近くの会場に参加することをお勧めします。

さて、22日は瀬尾も東京会場で 1コマ担当させていただきます。

テーマは「SharePoint 開発ツールの比較」です。

comcamp_seo

SharePoint 特有の API を使ったSharePoint 開発は “一言触れるだけ” です。というより「今日はそこはお話しません」と宣言するだけです。

当日のテーマはクラウドビジネスアプリ(LightSwitch)、Access、Project Siena を使った SharePoint 連携アプリ、SharePoint クライアント開発についてです。
Office 365 のおかげで大企業以外の方でも SharePoint に触れる機会が増えてきたと思います。ただ小さい規模の会社だと SharePoint の拡張の費用はそんなには出せないことが多い。となると、がっつり作り込む代わりに、いい意味で “お手軽な” 開発が求められるはず。そのためのツールの紹介と比較をしてみます。

もちろん他のセッションも面白そうなものが揃っていて、できることなら喋る代わりに他のセッションを聞いて回りたいくらいです(笑)。
東京近郊にお住まいの皆さんは、ぜひ東京会場でお会いしましょう!
それ以外の地域の方は、それぞれの地域でそれぞれ特色のあるセッションを楽しんでください。

MVP Community Camp のお申し込みは MS さんのこちらのページ からどうぞ。

クラウドビジネスアプリから SharePoint Online のカスタムリストを操作する

本稿は Office 365 Advend Calendar 2013 に参加しています。

クラウドビジネスアプリとは LightSwitch ベースの SharePoint 用アプリ(Apps for SharePoint)です。

LightSwitch ベースなので開発生産性が非常に高いのが特長です。Office 365 認証を利用できて、SharePoint Online との連携が容易なので、Office 365 を利用する企業が業務アプリをクラウド化する場合に活用できます。

  • 「クラウドビジネスアプリって何?」という方は こちらの記事
  • 「クラウドビジネスアプリから SharePoint Online のニュースフィードへの投稿」が気になる方は こちらの記事

本稿では SharePoint のカスタムリストを操作する方法をステップバイステップで紹介します。


操作対象のカスタムリストはこれにします。
アプリの配置のタイミングでカスタムリストを一緒に配置することもできますが、あらかじめ SharePoint Online 上で作っておきます。今回はリストを操作することに絞りましょう。

2013-12-18 22-48-23

Visual Studio で新しいクラウドビジネスアプリのプロジェクトを作成したらデータソースに接続します。それに続いて [SharePoint] を選択して、開発者サイトのアドレスを入力します。

2013-12-18 22-52-182013-12-18 22-53-18

対象のリストを選択します。[ユーザー情報リスト] も必要なので一緒にインポートします。

2013-12-18 22-57-242013-12-18 22-58-46

これでカスタムリストをアプリ固有のテーブルと同じように扱えるようになりました。SharePoint 開発につきものの Load メソッドや ExecuteQuery メソッドも不要です。

2013-12-18 23-01-42

画面の定義も LightSwitch 開発の流儀のままです。

2013-12-18 23-08-182013-12-18 23-12-33


サインインしているユーザーをカスタムリストの担当者列に、現在日時をカスタムリストの問い合わせ日時列に、それぞれ入れたいと思います。そのためには少しだけコーディングが必要です。LightSwitch では本当に少ないコーディングの機会です。
もちろんデモのレベルを超えるとそれなりにコードは必要ですが、それでも他の開発ツールに比べると少ないはずです。

ユーザー情報リストから特定のユーザー情報を取得するためのクエリを用意しましょう。LINQ で問い合わせてもいいのですが、せっかくの LightSwitch ですのでクエリもデザイナーを使って定義してみます。

2013-12-18 23-20-082013-12-18 23-21-08

カスタムリストの担当者列および問い合わせ日時列は、データストアに保存する直前にエンティティに代入します。 “_Inserting” メソッドを使います。

2013-12-18 23-27-262013-12-18 23-32-18

Application.Current.User が現在サインインしているユーザーです。PersonId がユーザー名(サインイン時のアカウント=メールアドレス)に相当しますので、これを先ほど定義した GetUserInfoByUserName クエリに渡します。これでサインインユーザーのユーザー情報が取得できます。
問い合わせ日時には DateTime.Now を入れておきましょう。


開発は以上です。これだけの手順でカスタムリストを読んだり書いたりが簡単にできます。

2013-12-18 23-39-032013-12-18 23-39-53

当然ですが、SharePoint Online でもちゃんと表示されますし、もちろん SharePoint Online で編集した内容も業務アプリ側でも表示されます。

2013-12-18 23-40-53

カスタムリストを操作するメリットは関係する社員で情報を共有しやすいことと(Office 365 をきちんと運用していれば社員は定期的にアクセスするはず)、ワークフローを組み合わせるなどの運用がしやすいことです。
ただし前の記事のように専用の業務アプリを作るメリットもあるので、上手く組み合わせて使ってみてください。

クラウドビジネスアプリの不具合を Connect にフィードバックしました [Voteの協力をお願いします]

日々クラウドビジネスアプリと戯れています。そうすると不具合にも遭遇します。

2件の不具合を Connect に登録しましたので Vote の協力をお願いします。

2件目のほうは以前このブログにも投稿した内容なのですが、Connect にあげていませんでした。(ごめんなさい)

どちらも国際化に関する不具合のようです。日本語 Visual Studio の品質をより良くしていただくために Vote の協力をお願いします。

 

2013/12/29 追記
上記2件が開発チームに届いたようです。Visual Studio 2013 の今後の Update で修正されるといいな~