Migrating IE Web Apps to Mozilla
PabloHoffman writes "Have you ever wondered what would it take to make your (unfortunately) IE-only web app to work on Firefox?. IBM published an interesting article about migrating Internet Explorer specific web applications to Mozilla-based browers. It covers basic cross-browser development techniques, and some developing strategies for overcoming the differences between both browsers."
Porting IE-only apps to Mozilla/FireFox is easy thanks to the extensive set of DOM and JavaScript debugging tools. It's going the other way that's the hard part. IE is completely unhelpful in diagnosing issues with document.addEventListener (a standard that IE doesn't support), or passing an event instead of using the stupid document.event, or showing you the DOM to find out where (or why) that specific DIV isn't showing up right.
Meh. Somebody needs to either fix IE, or take it out back and shoot it.
Javascript + Nintendo DSi = DSiCade
The title of the article should say "Migrate apps from Internet Explorer to Mozilla ... with valid business reasons". ... Might be easy to do so with small apps.. but with the size of the apps we've written for intranet based sites... there's no reason to make the switch to Mozilla. We simply tell our clients (who are all windows users anyway) to use IE. Not giving further choice means less headache for us when it comes to supporting our product.
_Vishal www.squad9.com
True developers test for compatibility.
Not if the requirements document says build this app for IE only and don't worry about interoperability.
No, no matter how much I love RoR, this is just fanboyism. RoR is server-side, XHTML, css and cross-browser compatible javascript is the answer.
I agree, but a large reason that some developers didn't use server-side code was that it was claimed (rightly so or not) that it took longer to get a result. Now, on the other hand, we can use technologies that like AJAX to speed up the process of getting certain pieces of data back. Now, it's a matter of people putting it all together.
Perfecting Discordia
www.stevenvansickle.com
Having server processes deliver content does nothing to eliminate browser compatibility issues.
These issues lie with the developer at heart, and the QA engineers. One needs to ensure compatibility at the unit-testing stage, having followed standards (as in the IBM article) in the design and coding stages...
It all depends on the target audience. If the company is making Windows only software, then they never had to test something on Safari or IE 5.2(mac). Some companies, also, don't see a point in catering to those that aren't in the majority. If the loss of one or two users that use non-IE browsers is negligible at the time, then why waste the money on cross-platform testing? Too many businesses run thier web sites like a democracy: 3 wolves and 1 sheep voting on what to have for lunch. Mob wins.
On the other hand, if IE starts falling out of power, then some companies may regret those poor choices, and some already are.
Perfecting Discordia
www.stevenvansickle.com
and get iNotes to work better in firefox
Supplies!
It's called the W3C.
Sadly, despite the W3C's efforts, it seems that the Browser Pissing Contest rages on.
"Ask not what your country can do for you." --John F. Kennedy
Don't forget the cardinal rule of data validation: "Use javascript to make things work well for the user and server side validation to prevent hacks."
I pity the pour souls who were forced to use your "huge and widely used" web app that was compatible only with IE. It's clear you didn't do your homework before starting the project. ASP.NET web apps do not require having the .NET runtime on the client any more than PHP web apps require installing PHP on the client. (read: they don't)
.NET equivalent of browscap.ini). The default values stored in the machine.config basically only recognize 5.x+ versions of IE as "uplevel" browsers.
All of the native framework web controls have two distinct rendering modes. One is for "uplevel" browsers which includes any javascript/DHTML/etc. goodness that the latest browsers support. The other is for "downlevel" browsers and basically renders everything in something like HTML 3.2 compatibility. The server runtime detects which mode to use based on a section of the machine.config called browserCaps (essentially the
Updated versions of the browserCaps info can be found here:
http://www.codeproject.com/aspnet/browsercaps.asp
It should be noted you can choose to either replace the data in your machine.config to make it a system-wide update, or just add the same data to your app's web.config file.
On a related note, you can find an updated version of the original browscap.ini here:
http://www.garykeith.com/browsers/downloads.asp
On it's way out? Do tell, where are you getting this from as in my experience .NET is one of the greatest things since sliced bread when it comes to coding windows or web based applications.
Help Brendan pay off his student loans
A good developer will recognise that the requirements doc is tremendously short-sighted, and code for compatability anyway. He'll save the customer a surprising amount of money when they inevitably decide to support Firefox after all, though no-one will realise this.
And that's how shit like Code Red and Nimbda spreads. The "Leave it alone" attitude is generally bad - and a good IT person should spend their time preventing that crap.
Problem is that patching servers is boring, and they have more interesting things to do like deploy something new and noteworthy.
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
Websites that require IE only are very unprofessional IMHO.
If I have to use IE to use a website, my opinion about the company's website I'm on is usually changed. In this day in age, you have to be proactive, not reactive.
Valkyrie is about to die! Wizard needs food -- badly!
Besides, passing processing off to the client makes the entire application more robust. There is only one server, but there is an unlimited amount of procsessing distributed among the clients.
And an unlimited amount of dodgyness. It doesn't make the application more robust at all but it might give a better user experience.
Any validation the client does MUST also be performed at the server end because
(1) How do you know the client DID validate it
(2) correctly
for some ill specified and overly cached version of "correctness"
Sam
blog.sam.liddicott.com
Actually, his position is not unreasonable, although he did state it in an undiplomatic fashion. I, personally, do not and will not connect to the internet (or even the local net) with MSIE installed on my computer. I consider it excessively dangerous. So if I cannot test or use the proposed application, I would not be willing to do business with them. If I had to go to a special computer that was specifically isolated from the rest of our network for security reasons to use their applications... well, it had better be an important application that I won't need to use very often.
I have not yet been able to ensure that the others that I work with do not have MSIE installed, but that is one of my goals. In furtherance of this goal, I will not suggest any application vendor that I know provides MSIE only applications. And I will not recommend any MSIE application. And I will recommend against the purchase of or use of any such application. (This doesn't mean that I'll always come right out and say why I'm against the application. Those who know me well will know my attitude towards MSIE, and they will need little explanation. For others, I'll find some easier to understand reason that is also correct..or I'll be silent...but security issues are almost always present, if I can't find any other valid reasons. A better approach, when there is time, is to come up with a competing product that I find superior.)
I consider MSIE to be a security nightmare, and we will have as little to do with it as I can manage.
I think we've pushed this "anyone can grow up to be president" thing too far.
It's not hard to code cross platform. Developers are just lazy. If web developers stuck to W3C standards than this wouldn't even be an issue. If game developers used OpenGL instead of DirectX than it would trivial to port games between platforms. And so forth.
The problem arises when you depend on proprietary extensions.
Also, based on your argument, what do you consider an acceptable loss from potential sales revenue? Do you consider excluding 10% of the market to be acceptable? What if that 10% had a large chunk of disposable income and would be more likely to buy your product? Just because the "majority" uses IE doesn't mean it's right to exclude the minority who choose not to or cannot.
If anyone's being moronic, it's you.
OCO is Loco
Javascript has plenty of uses, but relying only on client-side code to validate data is a recipe for disaster.
Yes and no. If that is your only method for validating data, yes it is a recipe for disaster. However it can be very handy to validate data before a form is posted to make it easier to alert the user. Of course the server side componants should also validate what they receive as you state. A good three tier design needs to check validity on all three tiers.
I use a lot of javascript to make the UI cleaner (usually simple scripts), to make small changes to objects without having to reload a large page, and to validate form data before it is submitted. Since this is a company internal site I have the advantage of a limited number of browsers, nearly 50/50 between IE and Mozilla. Under these circumstances I can make use of javascript to a much greater extent than if I were creating a public face.
Sig is on vacation
Not when we have $$$ to spend. I do, and if your site won't let my browser through, you lost a customer.
It's also a good harbinger of how good their customer support is in general, I've found.
I would also point out that the ones with the small "world view" are the ones supporting only one browser.
Standards-compliant code works on all modern browsers,
Bwahahaha!
You obviously don't do professional web design. Getting the code to validate at W3C is the easy part!
$x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
$x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
This is a blantantly uninformted opinion. .NET is anything BUT going away. Heck, the new .Net framework 2.0 is out November 7th, VS.Net 2005 (and it's "express" counterparts), VWD 2005, SQL Server 2005 in the same time frame (some the same day).
This brings us ASP.Net 2.0, which is so much of an improvement over the old ASP.Net, it's just amazing. Honestly I didn't care much for ASP.Net until I tried v2.0. It amazed me FAR more than everything else I've seen (like RoR, Zope, Plone, etc). Its good enough that I don't even wanna use anything else anymore (asp/php/whatever? no thanks!)
It's anything but deprecated/on it's way out or being replaced by something better (much the inverse - other platforms are adopting it - ever heard of Mono? I guess not.). It's currently THE best platform to develop for (web wise) and that has the best tools (VS.Net 2005 rocks).
See for yourself!
Clearly, you have no idea at all about all this. No wonder you posted as AC.
///<sig
IE compared to Firefox plus some web development specific extensions (webdevelopper, html debugger, javascript debugger ) is like notepad vs Vim. And my experience is that web application developped with firefox generally works very well in IE, but not the contrary.
Don't rely on it, and don't dare trust it. Think of it as a service to your users. Oh, and add it on last, once the rest of the system works.
Client-side validation of a big long ugly form that the user has to submit along with, say, a few MBs of files - is a way of saying "We don't hate you, and don't want you to hate us".
Don't dare trust it though. Don't trust a damned thing - make no assumptions about the correctness of anything the client sends.
cyn, free software and *nix operating systems enthusiast.
"As far as using onload is concerned, you need to keep in mind that it only fires once all the parts of a page have been loaded - so, for example, if you have ads and the ad server is a bit slow, your onload element might fire thirty seconds after you think it should. This is a big deal when you are manipulating the page content - imagine typing something into an input control, only to have the onload set the focus to the control - in many browsers this will automatically select the text, which means you'll be typing away and suddenly the second half of what you are typing overwrites the first half."
For a good example of this, try logging into Yahoo! mail on a slow internet connection.
Username: usernameLastHalfOfPassword
Password: FirstHalfOfPassword
Let's say you are implementing a feature and are faced with two approaches, the IE-only approach and the standards-compliant approach.
Even if you know your audience is IE users with no choice in browsers, it would still be unwise to choose the IE-only approach. You may be relying on some undocumented side-effect of IE that will get "fixed" in their next release/patch.
As an example, I had to support an app that provided a list of items as anchor tags. IE did not require the anchor tag to be closed since it would automatically close it on the next "</p>" tag. After upgrading to IE 5.5, this "feature" started causing stack overflow exceptions.
Most people, when they say "IE-specific" they actually mean "IE version x/windows verion y/service pack level z"-dependent.
I quit that job, AC. But just out of curiosity, what would you have had me do during downtime, retard-manager?
This is exactly why I always fire a function onload that checks to see if the field to get focus has content first. If it does, then I don't focus it.
Yeah- it's a very big 'can`t we all just get along' comment. I'll admit it.
I guess the comment is just trying to point out that there is no BENEFIT to not keeping to the standard and setting it. If they want to do something other than what W3c says, why not suggest it and let everyone adopt it or provide better solutions- as another pointed out, this is what w3c is for.
And you think people will listen? HA! Who cares? For the user, IE displays pages fine, so why would a user care about such technical detail of making it right? As long as 10-95% of people are using IE (yes- that means until eternity), people will make their pages compatible for it, so end users will never notice the difference, and never care what some hippie spouting open-source thinks. So no bank or major site is going to let their pages look horrible in IE due to some code changes, so they'll update it.
And M$ will say that IE is better for A B and C. And then you have a bit war. If there was a right answer, we wouldn't be having this discussion. If there was a superior OS in every way, we wouldn't need two... but each has it's advantages and market.
-M
when you see the word 'Linux', drink!