@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

携帯サイトを作る場合の基本設定について

1
投稿者投稿内容
BT
ベテラン
会議室デビュー日: 2006/09/24
投稿数: 81
お住まい・勤務地: Tokyo
投稿日時: 2007-02-12 16:14
お世話になります。

携帯サイトをVisual Studio2005で作ってみようと思っているのですが、その場合の設定などについてアドバイスいただけませんでしょうか。
ちなみに、PC用のサイトの概要が携帯で見れればOKというレベルですので、全端末に対応するといったことは考えていません。

(1)サイト(プロジェクト?)の構成

携帯用サイトとPC用サイトはプロジェクト自体を分けたほうが良いのでしょうか?
というのも、当初はデータソースの共有、開発・配置・保守のやり易さ等を考慮すると、一つのプロジェクト内(同一サイト内)でモバイル用フォルダを作った方がいいのかなと思いました。
また、以下の記事においても同様にしているようでしたのでとりあえずは一緒のプロジェクトとして作り始めました。(今回はルートにPC用のウェブアプリ、その下にMobileフォルダを作り、そこにモバイルWebフォームを入れる構成としました)
http://www.microsoft.com/japan/msdn/thisweek/catchupASP/catchupASP8.aspx
しかし、途中まで作ってみてこのままで本当にいいのだろうかという疑問も湧いてきました。作ったことはないのですが、VS2003ではモバイルWEBアプリケーションは別に作成メニューがあったように思いますので、もしかして其々別サイトとして作る方がよいのでは?という気もしています。特に次のcookielessのあたりで悩んでいます。

(2)cookielessの設定

携帯ではcookieが使えないものとして考えた方がよいということで、web.configのsystem.webセクションにおいて

<sessionState cookieless="true"/>

を指定するのが常道のようですが、Mobileフォルダにweb.configを追加してその中にcookielessの指定を書くと、エラーが出ます。どうやらルートのweb.configにしか記述できないようです。とすると、ウェブアプリ全体がcookielessになってしまいPC用サイトにもセッション文字列が付加されてしまうことになります。それが実害があるのかといわれると今のところ特にありませんが、URLをコード内で利用したりする場合にセッション文字列を取り除いたりする必要があるなど厄介なことになりそうです。
実際、この指定はアプリ全体でしか指定できないのでしょうか?またtrueにした場合にPCサイト側に悪影響はないのでしょうか?それらを考慮すると別アプリとして作った方がよいのかなとも思っています。
なお、現状では、そういう懸念もあってcookieless="false"とし、ページ遷移時のパラメータの受け渡しはQueryStringを使うなど、cookieを使わない方法を採用していますが、認証ページなどを作るとそうもいかないと思いますのでアドバイスいただけたらと思います。

(2)useFullyQualifiedRedirectUrlの設定

一部の機種では相対URLでRedirectすると不具合が出るということで、Mobileフォルダのweb.configのsystem.webセクションにおいて

<httpRuntime useFullyQualifiedRedirectUrl="true" />

を追加しています。ただし過去ログによると、これを使うとSSLを利用している際に問題が出るようなことがありました。今回はSSLを使う必要はありませんが、ログインページなどを作るとリダイレクトが使われると思いますし、SSLも必要になったりすると思いますので、今後のこともあり以下の点を確認させてもらえればと思います。

■SSL(https://)を使った場合には正常にリダイレクトされない?(確認です)
■cookieless="true"とすると初回アクセス時に必ずリダイレクトされる?・・とするとcookieless="false"で、リダイレクトを使わなければuseFullyQualifiedRedirectUrl="false"であっても、特に問題は発生しない?
■そもそも問題の発生する端末の種類はどれくらいある?過去ログではDoCoMoの505あたりのようだが、それ程多くなく古い機種だけであれば無視するという選択も?
■(以上の結果次第だが)SSLを使ったログインページがあるサイト(cookieが必要)で、広く端末をカバーすることはそもそも(標準の機能では)無理ということ?

(3)文字コード

実際に何も設定せずに携帯向けページを作ってみてエミュレータでローカル表示させてみると、auだけ文字化けします。検索したりしてどうやらこれではないかということで、以下の記述をMobileフォルダのweb.configのsystem.webセクションに追加して正常に表示されるようになりました。

<globalization requestEncoding="shift-jis" responseEncoding="shift-jis" enableBestFitResponseEncoding="true"/>

文字コードをshift-jisにするということのようですが、そもそもの疑問として、ASP.NETでコントロールについては機種を判別してある程度動作を変えてくれるのに、文字コードは変えてくれないのか?ということです。それくらいしてくれてもおかしくなさそうな気もしますし、固定にするとshift-jisが表示できない端末が出てきたらどうするのか?という懸念があります。

以上になります。
確認できる環境がエミュレータと自分の持っている端末しかないので、確認がやり難いのもあってたくさん質問してしましたが、よろしくお願いします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-02-13 06:27
ASP.NET 2.0を使用したモバイルサイトを構築する前に、以下の点を調査された方が
よろしいかと。

・ASP.NET 1.x、ASP.NET 2.0 Mobileコントロールを利用して構築されたサイトが
 どのくらいあるのか(実績の確認)?

・ASP.NET 2.0でモバイル系のコントロールが一切機能追加がなかった背景


・日本独自の携帯端末仕様にモバイルコントロールがどこまで対応しているのか?

個人的な意見ですが、どうもマイクロソフトはASP.NET Mobileコントロールに
積極的でないように思います。

この辺をしっかり見極めてから決断されたらどうでしょうか。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
BT
ベテラン
会議室デビュー日: 2006/09/24
投稿数: 81
お住まい・勤務地: Tokyo
投稿日時: 2007-02-13 09:02
Accessさん、どうもありがとうございます。

実績については調べる方法が皆目見当がつかないのでやっていませんが、マイクロソフトがモバイルコントロールのサポートを終息(?)しつつあるのは過去ログや新しい機能追加がないことから感じています。
(余談ですが、日本では携帯対応は重要だと思うのですが、マイクロソフトはPC用のリッチなものに対象を絞ってしまったのか?それとも面倒だからWindows MobileでOS自体を取り替えてしまえ!という戦略なのでしょうかね?いまいち方向性が分かりません)

ただ、今回作っているのは質問でも触れていますがPC用のサイトのおまけのようなものですので、とりあえず見えればOKというレベルです。商用だったり業務用のシビアなもの、携帯専用サイト等はとても作れるスキルはありませんが、今回は文字化けしたりエラーが出ずに表示してくれれば問題なしとしたいと思います。また、そのレベルのものであればモバイルコントロールもある程度使えるのではないかと期待して作り始めました。実際に、エミュレータや自分と家族の携帯で見た感じでは問題なく表示されているようでしたので、これなら大丈夫かと思っていました。

また、場合によってはモバイルコントロールである必要はないとも思っています。通常のウェブフォームを追加してhtmlタグなどを取り除いてタグを自前で書いていくという手もあると思っています。ただし、開発の一貫性を考えるとVisualStudio2005+ASP.NETは使いたいのです。それに、認証やcookie相当の部分は自分で作りこむのは大変そうですので利用できるものなら利用したいと。
そこで、今回の質問になります。つまりコントロールはモバイルでなくても良いのですが、cookieやRedirect、文字コード等は共通の問題ですので、このあたりの設定はVisualStudio2005ではどうやってやるのが正解かということです。

しかし、まるっきり実績がないと誰も作ったことがないということになるわけですからこの質問自体が成立しないことになりますね^_^;。
過去ログも途中で切れていたりしていますので、そうなのかな?
実際に皆さんがモバイルサイトを作られる場合にはASP.NET自体を使わずに作られているのでしょうか?ASPとか?
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-02-14 06:33
業務用で使用するのでなければよろしいかと。

私も個人的に知恵袋のような「モブログ」をASP.NET Mobile Controlで
作成して活用しています。

一部一般にも公開していますので、よろしければ携帯からご覧ください。

http://m.friendlysw.com/

※ASP.NET Mobile Controlを使用していますので、PCのブラウザでも見れます。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-02-14 09:37
そんなに複雑でないのなら BT さん自身がおっしゃっているように
通常の Webフォーム と同じように モバイルWebコントロール を使用しないで作ると言うのもひとつの方法だと思います。

_________________
かるあ のメモスニペット
BT
ベテラン
会議室デビュー日: 2006/09/24
投稿数: 81
お住まい・勤務地: Tokyo
投稿日時: 2007-02-14 10:15
Accessさん、どうもありがとうございます。

早速拝見しました。
こういうのがあると大変役に立ちますのでありがたいです。m(__)m
見たところ、cookieless設定は使ってないようですね。
PC用サイトと共有しているようなのでやはりそれを考慮しての事でしょうか?
エミュレータでアクセスしたところでは、cookieless設定がないというのもあってか
一部でページでエラーが出るようです。

それから、あの後、いくつかASP.NETで構築したモバイルサイトを見つけました。
ここでリンクを貼ってもよいのかどうかわかりませんが、とりあえず載せておきます。
まずかったら消しますのでご指摘ください。

-------------------------------------------------------
■鳥取県公式サイト「とりネット」のモバイル・携帯向けのサイト
http://mobile.pref.tottori.lg.jp/default.aspx
[コメント]
携帯のみアクセス可、cookieless設定を使用

■taxisiteモバイル
http://mb.taxisite.com/Default.aspx
[コメント]
PCもアクセス可、cookieless設定を使用

■エディー・バウアー モバイルストア
http://www.eddiebauer.co.jp/
[コメント]
携帯のみアクセス可、cookieless設定の使用・不使用が共存?クエリ文字を使って独自のsession管理?SSL使用(同一ドメイン)

■日大iクラブ@モバイル
http://mobile.nihon-u.ne.jp/index.aspx
[コメント]
PCもアクセス可、cookieless設定を使用、SSL使用(別ドメイン)
-----------------------------------------------------

エディバウアー以外はサブドメインを使ってモバイル専用のサイトを設置しているようです。そういう意味では質問1のサイト構成は別の方が良いということになりそうですが、エディバウアーが同一ドメインなのにsession文字列が入っているページと入っていないページが共存しているので、どうやっているのか不思議です。(別アプリとして作って仮想ディレクトリとして配置?)

あと、どのサイトもモバイルコントロールを使うと自動的に付くクエリ文字(__ufps=とか)などが出てこないので独自に作り込んでいるのかなと思います。といってもデータソースをバインドするような使い方をしているのは(見ただけではわかりませんが)少ないような感じがしますので、動的なページ生成のためというよりは静的なページで複数キャリアに対応するために使っているのかもしれません。まだ詳しく見てませんのでこれから分析してみたいと思います。

それから、最初の質問にあったuseFullyQualifiedRedirectUrlの設定に関してですが、MSDNを見ていたらアプリケーションレベルで設定するというのを見つけました。
自分はサブフォルダに置いたweb.configで設定してエラーも出なかったのでOKか?と思っていたのですが、もしかすると効いていないかもしれません。cookielessの設定は、やはりアプリレベルとの記述がありました。ということは文字コードはどうなんでしょう?調べてみます。(でも表示は直ったから効いてそうですが)
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-02-15 05:52
引用:

見たところ、cookieless設定は使ってないようですね。
PC用サイトと共有しているようなのでやはりそれを考慮しての事でしょうか?


ご指摘のようにPCサイトと共有していますのでcookieLessに設定していません。

cookieLessにするとSEO(検索エンジン最適化)上問題があるので・・・


_________________
ASP.NET+Ajaxサンプル集

[ メッセージ編集済み 編集者: Access 編集日時 2007-02-15 05:57 ]
1

スキルアップ/キャリアアップ(JOB@IT)