Cross Browser?

C

CMM

So I'm half way through overseeing a large project in ASP.NET 2.0. My
superiors have decided that it would be nice if we ensured the site worked
on all the major platforms (as they see it: IE, FireFox, and Safari). We've
made heavy usage of the new MENU control and other intrinsic 2.0
controls.... nothing fancy! just using ASP.NET's built-in controls and very
nice, pervasive, and clean usage of CSS.

Now I find after more testing that the Menu control doesn't scroll in
FireFox if its submenus spill past view? What? It works fine in IE.

And now I read that there are even worse problems with Safari.... and that
these problems aren't the client browser's fault (which would render stuff
fine if ASP.NET actually sent the page to it) but ASP.NET's controls dumb,
retarded, not-thought-through browser "detection" mechanisms.

Is this true? Come on now! Anyone else have experiences with this.... ya'lll
can't be programming solely for IE I hope? ;-)
 
M

Mark Rae

nevermind ... wrong link out of my safari links... This is the one I was
looking for .. it actually references the first as well
http://forums.asp.net/thread/1125883.aspx

Safari is just awful - I've given up trying to get things to work in it.
Instead, if Safari is detected, I pop a message on the site's homepage
inviting the user to download and install FireFox instead...
 
J

Juan T. Llibre

And if just fixing the menu is not enough...

For 2.0, there's a new .browser file definition system, although browsercaps can still be used.

See http://slingfive.com/pages/code/browserCaps/
and http://slingfive.com/pages/code/browserCaps/browserCaps_spaces.txt

Test with :
http://slingfive.com/pages/code/browserCaps/requestBrowser_info.aspx.txt
( copy that whole page as "Browser_info.aspx" and run it. )

You can call that page with the browser you're interested in defining in browsercaps,
and create an entry for it with the capabilities reported by that file.

For the new .browser file definition system, open several .browser files in the directory:
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

with a plain-text editor ( Notepad will do ) and analyze the contents.

As long as you know which browser capabilities the browser you're interested in sending correct
html to has ( by running "Browser_info.aspx" ) , you'll be able to create a .browser file for it.

re:
ASP.NET's controls dumb, retarded, not-thought-through browser "detection" mechanisms.

Actually, it's a very granular -efficient- browser detection mechanism.
You *do* have to put some work into it, though.




Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
Greg Young said:
 
C

CMM

We'll probably just end up supporting IE and FireFox as well. But, from what
I've read, the Safari problems aren't so much Safari problems but ASP.NET's
controls' minterpretation of the browser's capabilities. I have no
experience first-hand. But, given all the other bugs and half-finished stuff
in ASP.NET 2.0, I wouldn't be surprised.
 
C

CMM

Actually, it's a very granular -efficient- browser detection mechanism.
You *do* have to put some work into it, though.

And, I don't have time for that.
ASP.NET was suppossed to (in my naive mind) be a Productivity enhancer. Not
a rehash, reinvention of stuff from the past. I don't know all of Safari's
capabilities (same as Mozilla's I suspect) nor do I have to figure out that
it supports a feature but is sending a UserAgent string the ASP.NET guys
chose not program for. I got ASP.NET for a reason.... and it wasn't to
still- after all these years- being doing crap like this.

--
-C. Moya
www.cmoya.com
Juan T. Llibre said:
And if just fixing the menu is not enough...

For 2.0, there's a new .browser file definition system, although
browsercaps can still be used.

See http://slingfive.com/pages/code/browserCaps/
and http://slingfive.com/pages/code/browserCaps/browserCaps_spaces.txt

Test with :
http://slingfive.com/pages/code/browserCaps/requestBrowser_info.aspx.txt
( copy that whole page as "Browser_info.aspx" and run it. )

You can call that page with the browser you're interested in defining in
browsercaps,
and create an entry for it with the capabilities reported by that file.

For the new .browser file definition system, open several .browser files
in the directory:
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers

with a plain-text editor ( Notepad will do ) and analyze the contents.

As long as you know which browser capabilities the browser you're
interested in sending correct
html to has ( by running "Browser_info.aspx" ) , you'll be able to create
a .browser file for it.

re:
ASP.NET's controls dumb, retarded, not-thought-through browser
"detection" mechanisms.

Actually, it's a very granular -efficient- browser detection mechanism.
You *do* have to put some work into it, though.




Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
 
J

Juan T. Llibre

re:
And, I don't have time for that.

I feel sorry for you, then.

*Nobody* supports cross-browser compatibility out-of-the-box.

If you don't write that functionality in, by assuring that you have
updated definitions for all the browsers you want to support, you're out of luck.

re:
I don't know all of Safari's capabilities

All you need to do is run the file pointed out while running Safari:
http://slingfive.com/pages/code/browserCaps/requestBrowser_info.aspx.txt

That will tell you its capabilities.

Then, you need to write a browsecaps entry...or a .browser file.
It's not too hard.

After all, it's *you* who wants to support that browser.

To give you a further example, would you expect Microsoft, if a new browser
were to be invented today which achieved 1% market penetration, to support it ?

Nonsense!

That's the developer's responsibility...even if you feel you don't have the "time" for that.
It is *you* who wants to support a browser...not Microsoft.




Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
CMM said:
And, I don't have time for that.
 
C

CMM

To give you a further example, would you expect Microsoft, if a new
browser
were to be invented today which achieved 1% market penetration, to support
it ?

If the browser supported W3C standards, yes. ASP.NET generated HTML and
controls should run on ALL browsers that conform to standards (barring bugs
on the browser's part), render suitable downlevel HTML if it wished, but
never ever blow up or cease to function.

The fact is that 2.0's new controls overuse the UserAgent information
(blowing up and throwing exceptions if its not provided or otherwise not
really working) instead of producing nice thought-through compliant code
through and through.
 
J

Juan T. Llibre

re:
If the browser supported W3C standards, yes.

Therefore, the foregone conclusion is that Safari doesn't support W3C standards.

Safari doesn't support neither "straight" 3.2 HTML, which ASP.NET is capable of sending,
nor does it support "straight" 4.0 HTML, which ASP.NET is *also* capable of sending.

It doesn't support DHTML either.
In fact, it doesn't support *any* of the "standard" W3C standards.

Safari is a browser designed for MACs...which is notorious for not supporting W3C standards.

OTOH, Safari *does* support HTML, XHTML 1.0, DOM, CSS, SSL, and JavaScript.
Maybe you should stick to those standards when targeting Safari.

re:
The fact is that 2.0's new controls overuse the UserAgent information (blowing up and throwing
exceptions if its not provided or otherwise not really working) instead of producing nice
thought-through compliant code through and through.

The fact is that you are trying to justify what can't be justified. See above.

Safari web browser shipped with certain versions of Mac OS X
may cause difficulties in browsing (especially in scrolling down screens).

In the meantime, other browsers (Internet Explorer, Netscape, Mozilla, Firefox etc..)
are compatible with most standards.

Check out Safari's long list of deficiencies :

http://discussions.apple.com/forum.jspa?forumID=876

re:
overuse the UserAgent information (blowing up and throwing exceptions if its not provided

There's no such thing as "overusing UserAgent information".
A UserAgent is the standard by which the W3C directives recognize browsers.

If a browser does not put enough info in it's useragent to properly identify it,
and therefore allow th identification of it's capabilities, that's not the browser
capabilities object's fault.

I dare you to find, on the web, exactly *which* HTML standard Safari supports.
Apple doesn't even make *that* information available publicly, AFAIK.

I'll welcome comprehensive information regarding the W3C standards Safari supports.



Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
 
C

CMM

Therefore, the foregone conclusion is that Safari doesn't support W3C
standards.

I defer to your experience on that one. I have no clue.

But, I will reiterate, that I (perhaps naively) expect any page I construct
using ASP.NET intrinsic controls, not a lot of my own fancy JavaScript, and
decent CSS, to display on all browsers. If it doesn't, or doesn't do it
properly, it is (IMO) ASP.NET's fault. We paid $$$.

That's it. But, I hear what you're saying.
 
R

Russell

It's worth pointing out that IE is not fully DOM2-compliant through IE
6, even though Microsoft participated in developing the DOM2 standards
shortly prior to the release of IE 5. I've been doing a lot of client
scripting for IE and FireFox and FF is definitely closer to full
compliance. Haven't tried to support Safari.

Juan, I am curious what % of market share you think a browser should
have before MS ensures that their controls work well with it? If not
1%, what, 2? 5? 10? As CMM points out, Studio ain't cheap if you end
up having to roll your own controls anyway...

--Russell
 
J

Juan T. Llibre

Hi, Russell.

Browsers will never be compatible with each other, imho.
Standards will never be accepted industry-wide.

Unfortunate ? Yes. Avoidable ? I don't think so.

*All* browser providers want to have their own, unique, features.
It's simply not possible for one browser to render all features of all browsers.

That's why it's unrealistic to expect that Microsoft, or any other company
which provides developer tools for that matter, provide cross-browser
compatibilty for all browsers out of the box.

It is up to the individual developers, or developer teams, to write the tools
which provide cross-browser compatibility across the board.

re:
I am curious what % of market share you think a browser should
have before MS ensures that their controls work well with it?

Like I just posited above, that's not Microsoft's,
or any other provider of developer tools', responsibility.

Whatever browsers Microsoft, or any other developer tool provider,
supports, I consider frosting on my developer cake.

For any browser which *I* want to support, I will research and write a custom
set of capabilities which I can identify and program for.

ASP.NET provides for a very clean way to send 3.2, 4.0, JavaScript and DHTML
to any browser whose capabilities are identified, plus, it provides additional features
which are renderable only by IE.

It's unrealistic to expect that Microsoft provide a way for all browsers to render everything.

For years I maintained an up-to-date browscap.ini for ASP ( Active Server Pages 2.0/3.0 )
which was far superior to anything which Microsoft or Browserhawk provided.

Did I complain because Microsoft didn't provide browscap.ini updated ?
No. That would have been silly.

I exploited that opportunity to make a name for myself in the Active Server Pages world.
At one point, I estimated that my browscap.ini had been downloaded over 3,000,000 times.

When you have a competitive advantage over others ( and having better browser identification,
so that you can reach a higher user base *is* a competitive advantage ) you should be thankful
that there's a niche for your developer skills.

If Microsoft provided everything for us, there'd be no need for skilled developers.

I hope this ( too long ) post explains a bit better how, and why, I feel like I do.




Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
It's worth pointing out that IE is not fully DOM2-compliant through IE
6, even though Microsoft participated in developing the DOM2 standards
shortly prior to the release of IE 5. I've been doing a lot of client
scripting for IE and FireFox and FF is definitely closer to full
compliance. Haven't tried to support Safari.

Juan, I am curious what % of market share you think a browser should
have before MS ensures that their controls work well with it? If not
1%, what, 2? 5? 10? As CMM points out, Studio ain't cheap if you end
up having to roll your own controls anyway...

--Russell
 
C

CMM

"It's unrealistic to expect that Microsoft provide a way for all browsers
to render everything."

Nobody said "render everything." But, there is a common denominator that
INTRINSIC controls should support. Lots of people have written nice cross
browser menus.... why can't Microsoft? YOU wrote a nice cross-browser caps
thingamagic, why can't Microsoft? I'm a little sick and tired of MS
apologists (and I'm a long time MS defender!) saying something is
unrealistic for a multi-billion dollar company. That they choose not to or
fail to do so is totally on Microsoft and shouldn't be dismissed.
Did I complain because Microsoft didn't provide browscap.ini updated ?
I exploited that opportunity to make a name for myself in the Active
Server Pages world.
At one point, I estimated that my browscap.ini had been downloaded over
3,000,000 times.

When ASP was nascent and standards brand new I can forgive it. I expect more
from Microsoft nowadays. You should too.
 
R

Russell

Browsers will never be compatible with each other, imho.

I don't expect browsers to support each others' extra features. But I
do very much hope that IE7 will be fully DOM2-compliant. This ought to
be a goal for ANY browser written today. Then I could just code to
DOM2, ignore all the extras, and be on my way.

But that's not the case today, and I'd agree that no one can target all
possible browsers. However, I do think that a company that sells web
development software should not sell components that aren't fully
compatible with at least 99% of the browser market. Otherwise the
controls are broken more than 1% of the time... for comparison, would
you accept less than 99% uptime from your ISP?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top