- PR -

ASP.NET開発で複数のブラウザに対応する注意点

1
投稿者投稿内容
パンダ
ベテラン
会議室デビュー日: 2004/03/24
投稿数: 59
投稿日時: 2007-08-08 10:41
ASP.NETで複数種類のブラウザに対応するシステムを開発する予定です。
今まで私が開発したWEBシステムはイントラの仕組みが多く、顧客には使用するブラウザはIE限定にすることをシステム要件として定義していました。しかし、今回はブラウザやOSを限定することができず、どのような点に注意して開発をすれば良いか悩んでいます。
JavaScriptをなるべく使用しない事などを考えいますが、当たっているでしょうか。
良いアドバイスを頂けないでしょうか。
よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-08-08 11:08
引用:

パンダさんの書き込み (2007-08-08 10:41) より:

しかし、今回はブラウザやOSを限定することができず、どのような点に注意して開発をすれば良いか悩んでいます。JavaScriptをなるべく使用しない事などを考えいますが、当たっているでしょうか。良いアドバイスを頂けないでしょうか。


ASP.NET なるテクノロジはクライアント ブラウザに合った最適な HTML に展開してくれる (ということになっているw) ので、バリバリの W3C 崇拝者でなければ、それほど気にすることはないと思います。 このあたりの仕組みを担っているのが、たとえば Web サーバーコントロール群などです。

JavaScript 云々に関してですが、個人的には 'JavaScript が必須' などというのは全然ダメで、あくまでユーザビリティの確保などに使用すべきだと考えています。 ですので、"JavaScript なるべく使用しない" という考えは私の前提とはズレがあります。 JavaScript が無効でも問題なく動くのは大前提ですから。 その大前提があって、JavaScript が有効であればユーザビリティが向上する場面ならば使った方が良いです。(極端な話ですが && 工数が許す限りですが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-08-08 11:33
CSSの解釈とかはブラウザの種類だけでなくバージョンによって異なったりしますね。
できるだけ基本的な仕組みだけを使って作成し、対応する必要があるブラウザでの
動作テストをきちんとやる、といったとこでしょうか。。。
kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2007-08-09 00:02
何点か、思いついたことを。
#全ては要件次第なので、なんとも…なのですが、「ASP.NET」というキーワードに絡んだ点ということで……

1. Javascript周り
Javascriptを使う使わないは本当に要件次第なので置いておくとして、どちらにせよ、コントロールが勝手に吐く(?)Javascriptには注意しておく必要があると思います。
typeがsubmitなボタンで無い限り、コントロールのAutoPostbackがtrueなら基本的にはJavascriptの力を借りることになると思いますから、ブラウザの対応要件も含め気にしながら設計していくことになるのでは、と思います。
(Validatorは言わずもがなですし、DataGrid上のボタンのイベント等でも自動的にJavascriptが吐かれますから、そのあたりを注意することになると思います。)


2.回線速度のこと
今までの経験はイントラが主、とのことですが、もしある程度太い(100BASEのLANとか)のインフラが主戦場であったのならば、ページの重さについて今までよりも注意を払う必要があるかもしれません。
ViewStateのサイズ等、LAN環境だと気にならないケースも少なくなく、ついつい検討を怠って何でもかんでもデフォルトでViewState許可にしちゃうケースもあるのでは思いますが、PHSとかでつなげてると結構効いてきますから、DataGridなんかを使う際はちゃんと考慮していないと相当大きくなったりしますので、注意です。
また、デザイナでコントロールを配置してプロパティを設定していると、HTML要素に無駄に属性が増えたり、style要素がバカみたいにでかくなったりします。

CSSのクロスブラウザ対策などとのトレードオフも発生するかもしれませんが、CSSでうまくまとめて記述量を減らすような設計の必要性も増してくるかもしれません。

3.レイアウト
Visual Studioのデザイナでレイアウトしていくのであれば、ちょくちょく対象ブラウザで画面見えの確認は怠らないようにしたほうが良いと思います。
特にこのような場合だと、絶対値指定(GridLayoutでしたっけ)なデザインは避けたほうが無難と思います。(IEのCSSの実装は、positionの扱いがちょっと変だったりしますし)


また、作成時の注意とは少し違うかもしれないのですが……。

OSとブラウザが限定出来ないとは言っても、やはりある程度、少なくとも動作確認を行う環境についてはあらかじめ要件定義としてまとめておく必要があると思います。
概ね、主なターゲットとして据える利用者像からそのOS/ブラウザの使用率等を想定して決めることになると思いますが、余りに漠然としすぎたまま進めると、あとあと大変になると思います。
……というか、ぶっちゃけ、切れるところは切っておかないと、テストとか保守とか含めて、結構しんどいことになりますし、本来ターゲット的にどうでもいい環境に引きづられて本来のメインに想定している利用者向けの機能が低下するとかになると、本末転倒もいいところですから、油断は禁物です。

以上、長文失礼しました。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-08-09 06:41
クロスブラウザ対策で問題になるのは

・CSS
・JavaScript

の2点だと思います。

CSSに関しては、IEでもIE6とIE7で仕様が異なります。

私は、IE6、IE7のCSSを外部ファイルに作成してランタイム時にバージョン別のCSSファイルロードしています。

FirefoxとSafariも考慮するとCSSの検証が問題になるかと・・・


JavaScriptに関しては、クロスブラウザ対応のライブラリを利用するということで対応できるのではないでしょうか。

それから、SEOを考慮するときはJavaScriptが無効になっていてもWebサイトが正常にナビゲーションできるように設計する必要があります。


PS

よろしければ以下のリンクを参考にしてください。

ブラウザの違いを認識してイベントを登録する
http://jsajax.com/SamplesByID.aspx?id=298

PCにIE7,IE6,IE5.5をインストール
http://jsajax.com/SamplesByID.aspx?id=438

JavaScriptが無効なときも正常に動作させる
http://jsajax.com/SamplesByID.aspx?id=297

ブラウザ別のCSSを組み込む
http://jsajax.com/SamplesByID.aspx?id=436

univerdsal.domを使用してイベント処理
http://jsajax.com/SamplesByID.aspx?id=328


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-08-09 07:56
アクセシビリティ

ターゲットがよくわからんですが
1

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