For years I've been getting my ass-kicked with several of my asp.net sites. For reasons that remained unknown to me for several years, whenever I'd try to login to one of these applications from opera, opera would just fail to login.
There would be no error message. You'd type in your user and password, click the login button, the page would refresh, but you'd simply not be logged in.
Finally, I have discovered the cause and a solution to this annoying problem!
I always suspected the problem with Opera was related to the authentication cookie, but I was unable to really figure out why. All I knew was that on my apps that failed Opera wouldn't have an authentication cookie, while on other apps it would get a cookie just fine.
The particular applications where I have been having the problem all share some common unique attributes. They use some kind of URL Rewrting (though not always the same mechanism), they all use the built-in SQL Membership provider (or a customized variation of it), and they are are very complex applications. Most of them host multiple virtual sites within the same physical asp.net app.
I have other applications that work just fine with Opera though. Some of those were also just as advanced as the failing sites and used similar mechanisms.
So for years I've tried and failed to determine a common factor between the failing apps and the working ones.
In none of these cases though have I every had a problem with any other browser, and I generally test sites with 5 or more.
Google has been no help here either. While I find similar reports of this kind of problem, you have to dig very deep and when you do find someone reporting a similar problem there is never a solution offered.
But this week, I finally managed to track down and fix this annoying problem.
It turns out that Opera doesn't correctly handle cookie names that contain spaces.... or at least not when issued via the asp.net authentication system.
In web.config there is a <forms> element within the <authentication> section. This is where you setup details about how the forms authentication system should work. One of the properties is called "name" and this property sets the name of the cookie that will be issued to the browser with the user's authentication ticket. If you omit the name property, asp.net uses a default name of ".ASPXAUTH".
In all of my failing applications, I had manually set a value for the name propery, and that name contained spaces. In fact, most of these apps used the same name because I generally copied this section of configuration from one of the other apps.
Changing the cookie name to one that does not use spaces allows opera to correctly handle the cookie... login failure solved!
Three years of frustration all because of a space... but that's programming for ya!
Thursday, November 13, 2008
Tuesday, November 4, 2008
Review: ReliableSite.net and webhost4life for shared web hosting
[UPDATE - 2/7/2011] I have terminated my relationship with ReliableSite.net. I cannot recommend this hosting provider to anyone anymore. Over the years since I wrote this post initially, their service quality has degraded drastically, and the technical support is abysmal.
[UPDATE - 1/17/2010] after a year with ReliableSite.net, I have posted a newer review of them. You should still read this review, as I've not re-covered the same ground again in the update and what I wrote here still stands true.
As I posted last week, I am no longer hosting my sites with webhost4life. Once upon a time webhost4life offered a fantastic service at a reasonable price, but over the last few years I've grown increasingly annoyed with them.
Instead, I've moved my hosting over to ReliableSite.net. So, I thought I'd spend a little time describing my experience with both providers for the benefit of anyone else that might be considering either hosting provider.
I first considered a switch to ReliableSite.net last year after hearing about them on a forum somewhere (dunno where). What got my attention was their pricing model; you buy the base service then customize the plan by purchasing additional services and features one-by-one as you need them.
Brilliant!
With other providers, I end up having to buy a lot more than I really need just to get enough of one minor feature that I overuse a tad. With ReliableSite.net though, I'd be able to pickup and pay just for features I actually need.
But at the time, ReliableSite.net had only been around a year or so. It had good reviews, but I've been through at least a dozen providers that failed shortly after starting up or were unable to scale their services as they grew. So I'm cautious about jumping onboard with new providers.
Webhost4life was hosting my personal sites, and I was increasingly unhappy with them, but I decided to wait another year at webhost4life to see if they improved and to see if ReliableSite.net would survive long enough to be a viable alternative.
Five years ago, when I first started using webhost4life they were amazing!
They were one of the earliest providers to have a decent base hosting package under $20 and they were also the only provider at the time to have a fully comprehensive online management system. And my favorite part was that webhost4life offered early acces to new Microsoft platforms while they were still in beta.
But about 2 years ago, webhost4life started sucking.
Stuff that cost webhost4life my business:
- Starting about 2 years ago there was a noticable decrease in performance of my sites, and this has continued to worsen ever since. I have also seen my sites become inaccessable for no reason much too frequently. The worse part of this problem was that I often had problems maintaining a sustained connection while downloading files from the web site, or when uploading files over FTP. It is really annoying to have to restart a deployment of your web site 15 times because the connection keeps dropping.
- They abandoned support for SQL Express on the claim that it didn't scale well. Of course, the real problem was that they were putting far too many users on their servers without scaling out the hardware and decided to drop SQLExpress so they could squeeze in a few more users.
- They released a new control panel that was more convoluted than their older one, but added no relevant features or convieniences for their customers.
- They had botched two email server upgrades during the time I was with them, and in one case I had to wait over a year to migrate to a newer system because the new system couldn't handle email lists. This would have been fine, except that the old system didn't have any anti-spam protection.
- There was a significant decrese in the qualituy and response times from their support staff. I used to get a decent reply back in just a few hours, but the last few times I had an issue it took over 24 hours to get a reply and when the reply came back it was just some form-letter that had almost nothing to do with my actual question.
- Worst of all was that they stopped offering early access to new platforms. When .NET 3.5, Windows Server 2008, and SQL Server 2008 were in beta, I was left in the cold. Even after those platforms went into the public market, it still took webhost4life several more months to bring an upgrade option to their customers... and they still aren't offering SQL 2008 support yet.
I evaluate new platforms by upgrading my personal sites before the platforms are released. This way I can stay on top of new stuff before I'm asked to use it in my larger professional projects. Not having access to new platforms until months after they release to the public is not acceptable to me.
What I like about ReliableSite.net:
- Managment Tools:
Reliable uses DotNetPanel for their online managment. DotNetPanel is a pure joy to use compared to the clunky online managment tools I've used at other providers. Not only is it pretty, but it is exceptionally intuative to use. Managing IIS, web sites, file systems, databases, DNS, and email systems is NOT a very easy task, and I'm a certified expert in all of those areas. But most online tools for doing this kind of managment are even harder to deal with.
But I found that DotNetPanel makes things very simple, while not holding back on any critical options.
DotNetPanel is so good, Microsoft should consider buying out the company and getting their developers write their own native admin tools.
DotNetPanel is a shining example of what administering servers should be like!
This is the first provider I've seen use this system, but as you can tell I am very impressed. Perhaps the best thing about it is that ReliableSite.net hasn't done much to customize the stock DotNetPanel. This isn't a problem since it is more than capable enough to get the job done. It also means that ReliableSite.net will be more able to upgrade as new versions arrive. Even better, I'm not a the mercy of ReliableSite.net's own developers to maintain and improve a custom tool over time. Instead, they can spend their time and resources making my service reliable and fast, and leave the development to a 3rd party with a direct financial incentive to improve the product.
- Pricing Model:
ReliableSite.net allows you to upgrade nearly everything about your account on a per-feature basis. This allows you to incrementally ramp up your services as you grow without paying for stuff you don't need.
Another thing I like is the option to pay monthly, quarterly, or annually. I chose to take an annual payment option. Even better, when you add an upgrade to your service they pro-rate the charges to align them with your regular billing cycle.
- Performance:
So far, the site is fast... at least 10x faster than I was seeing on the degrading webhost4life account I had been using. It isn't like crazy fast, but it is certainly as fast or faster than I expected. I haven't had the account long enough to say much about reliablity, but so far I haven't had any downtime that I'm aware of and speed seems consistant even at peak usage times.
- Affiliate and Reseller Programs:
Though I no longer use these features, ReliableSite.net has a nice reseller system going. This is very useful if you are a free-lance developer or small site design company... you can offer your customers "hosting" as part of the deal, and still reap part of the reoccuring profits. And you don't have to deal with all the hard server and network stuff..
What I don't like about ReliableSite.net:
- Email Options:
The base plan is a little shy with emails, only giving 5 boxes and 5 aliases. They have well priced add-ons for increasing these but you can't buy just aliases or just inboxes... you have to buy both together.
The price isn't bad, and even the unlimited option is quite affordable. But I can't help but feel like I'm getting robbed on aliases... aliases are just redirectors and don't really "cost" the provider anything much. I had to buy additional email boxes just to increase the number of aliases.
They use SmarterMail, which is a fantastic and popular system. It is also the same system that webhost4life used. I like the system, but ReliableSite.net didn't enable the built-in admin tools via the SmarterMail web client.
Instead you are stuck using the simpler DotNetPanel tools to add accounts, aliases, and lists. The DotNetPanel allows you to create aliases, but it only allows one target email address per alias.
Had they enabled the built-in SmarterMail tools for "aliases" I could have had multiple destination addresses for a single email alias.
Due to this odd limitation of the DotNetPanel alias feature, I had to create a full mailbox for these kinds of addresses. fortunatly I was able to setup multi-target forwards on the inboxes via the SmarterMail personal account settings tools, but it sure seems like a waste to have to deticate an entire inbox just to forward mail on to multiple destinations.
None of these problems are deal-breakers, just minor annoyances... but they still seems like an artificial and unnecessary limitation.
- There are a few differences in password requirments for some services. For example, the password policy for database user accounts is stricter than the requirments for the billing system, FTP accounts, and online control panel. This is REALLY annoying because I like to keep the same user and password for all services related to my hosting provider. While I was able to create the same user, my password didn't quite meet the policy requirments for their SQL server, so I had to go back and change all the other passwords to adhere to the stricter policy.
On a similar note, there are too many user accounts and passwords. I have a billing account, a site managment account, an FTP account, a SQL user account, and an account for the online statistics feature. Too many accounts. Sure, I understand that each of these is a different system internally, but it would be nice if the system attempted to create the illusion of a unified user and password... at least for the primary account owner.
- Some of the base package seems extraordinarily generous, while other parts seem overly restricted. In the base package you get unlimited DNS domains and web sites, but you can only setup 1 sub-domain with the base account. This seems odd because sub-domains are just DNS tricks while web sites actually use resources.
You also have unlimited FTP accounts, but you only get 5 email aliases (and 5 email inboxes boxes).
Not a problem, just an odd choice. I would have thought that paying for additional domains, web sites, and FTP user accounts would make sense, but unlimited sub-domains and email aliases would be thrown in for free.
- When you buy packages, you get to choose a billing cycle (monthly, annually, biannually, etc.). When you buy add-ons you only get to choose based on a monthly rate. When you buy the add-on, it charges the monthly rate to your card. Then a few hours later another charge appears that is a pro-rated amount for the remaining billing term of the base package.
I don't mind this at all... I'd rather they pro-rate add-ons and sync the billing to the same cycle as the base package, but I did find it odd that the checkout process did not indicate that this would happen. From the point of view of the buyer, it appears as if you are going to be purchasing monthly. There is no mention that you will also be billed a pro-rated amount. Not a problem for me, but if you were on a tight budget and are just expecting to be billed for one month then this could be a major problem.
- I had to setup static machine keys in my configuration files. When I didn't do that, my sessions would just abruptly end and it would not persist logins. I assume that this must be a web farm setup, but nothing in the documentation or marketing mentioned that.
Not a problem, but had I known this was a web farm environment it could have impacted my decision to host here. Fortunatly my apps are all adaptable to web farms, but I've had sites that were not in the past.
Wednesday, October 29, 2008
Reddnet has a new hosting provider
[UPDATE - 2/7/2011] I have terminated my relationship with ReliableSite.net. I cannot recommend this hosting provider to anyone anymore. Over the years since I wrote this post initially, their service quality has degraded drastically, and the technical support is abysmal.For 4 years, reddnet has been hosted by Webhost4life, but over the last two years I've been increasingly unhappy with them.
So I've moved on to a new provider, ReliableSite.net.
I'll write up a full review after I've had a while to really get to know the new provider...
Saturday, October 11, 2008
Developing a custom web application with an eye towards a potential retail market too
I frequently take on custom software projects... you know, someone needs a web application to do X, Y, and Z and there just isn't anything already on the market that does the trick.
But the truth about software development is that it takes a lot of time and is very expensive. So it isn't unusual that I'm asked to design the app in such a way that it can be re-sold to other people that might have similar needs.
In other words, one client will bankroll the costs of the custom software, but they'd like the option to recoup those up-front costs by re-selling later.
If you get asked to do software like this, here is my advice...
You have two choices.
Take Option 2!
Things to keep in mind for version 1.0:
And that's it... once you get to 2.0 you will know far more about what you need to do in 3.0 than I do. 3.0 should be sitting on a core application that does a good job, and has been re-designed to be easy to code against. So 3.0 is where you can unleash new features that impress users and improve their lives.
But the truth about software development is that it takes a lot of time and is very expensive. So it isn't unusual that I'm asked to design the app in such a way that it can be re-sold to other people that might have similar needs.
In other words, one client will bankroll the costs of the custom software, but they'd like the option to recoup those up-front costs by re-selling later.
If you get asked to do software like this, here is my advice...
You have two choices.
- You can design for the potential mass-market first, then customize an instance of the application for the specific needs of your paying client when you are done.
- Write for your paying client's needs first, then extend and expand the initial design to meet the likely requirements of other clients later.
Look... If you are very experienced with reusable platform development, you have a lot of time for design before you start writing your code, and you have a large team then you might actually consider option 1. Otherwise you are about to embarke on a dissaster.
You only have one known customer and you are only guessing that there could be a wider market out there for the product... a product that doesn't yet even exist. You can make some guesses about your phantom market's needs, but stop kidding yourself...
It is hard enough to get decent requirments out of known customers. Expecting to find usable requirments from a phantom market is just moronic.
I know, your paying client really belives there is a market for the product. They might even be right. But just nod your head and say you'll write something they can re-sell. Then forget about any customer other than the one who has commissioned your project.
Take Option 2!
Assume that the customer bank-rolling your project is the only customer that will ever buy the product. Not only is this probably true, you also have to keep in mind that most custom software projects fail even when you only have one customer to contend with.
Your primary goal is to make a successful product that can get the job done. If you can't produce software that does the job for your paying customer, then you aren't going to have a reatil market to worry about anyway.
Despite how careful you might be to gather good requirments, create a fantastic design, then code you ass off... you will not know if your software can do the job until you deliver it to a customer and get to see it succeed in a production environment under regular usage.
If you are successful, and your software meets your paying customer's needs... then can you start thinking about a potential retail market.
The good news is that by the time you get a workable product for your paying customer, you've probably already built an application that is likely to meet the majority of your potential customer's needs too!
Things to keep in mind for version 1.0:
- Use an agile process. You don't have to use a formal methodolgy, but stick to the agile ideals. Code the bare minimum you can get away with, deploy it to your paying customer for testing, get their feedback, then go back and code a little more.
Repeat this process until you get all of the 1.0 requirements implemented and deployed. I also suggest that you price your deliverables this way too. Embrace your customer's tendancy to feature creep and shift the requirments as you progress towards the 1.0 release. Be willing and eager to change the design as you progress towards 1.0.
If you are not directly employed by the paying customer, you do need to make sure you are getting paid immediatly after each delivery, and that you keep the customer informed of the exact price of the changes they request at each iteration.
- Brutally cut everything you can from the customer's requirments for early iterations. Keep it as simple as possible and implement only the absolute bare essentials.
Your client will insist that some fluffy features are "essential". Ignore them and cut those features anyway. You don't have to tell the client you are cutting the features, just tell them you have them scheduled for a later iteration... even if you don't.
As you deploy iterations towards 1.0, your client will forget about a lot of those fancy features, and you will start to get an idea as to which things are "really" important to them and which ones aren't... all without having wasted time writing the stuff you don't need.
- Avoid over-architecting your application. It is tempting to layer and componetize everything and follow all those best practices and academic OO techniques. You may also be tempted to split the app into a dozen different assemblies too.
For version 1.0 you want to deliver the minimum necessary features that get the job done, and you want to deliver it as fast and as cheap as possible. Where OO techniques and best practices will reduce the effort it takes to write your 1.0 code, go for it... but if you can't say for sure exactly how your architecture is getting you to the finish line then scale it back.
- Avoid 3rd party code as much as you can. This includes 3rd party frameworks as well as 3rd party UI components and code libraries. If you cannot produce an essential user facing feature with a built-in component or the stock framework libraries AND you cannot write the code for that user facing feature fairly easily... then you can consider using a 3rd party component.
If you do use 3rd party code, be sure you have a cheap or free license to redistribute it. While you aren't yet worried about a retail market, you don't want to trap youself by using stuff you can't legally redistribute.
- Don't worry about making everything configurable via online admin tools. Sure, it is nice to allow the client to use an admin tool to change page titles and text without having to change code... but remember that each and every configurable feature adds complexity to the code and is a potential bug.
Also remember that admin tools are also features that you have to design, test, and debug... but they don't add much value to your application's core functionality directly. These tools can wait until a later version after the core application is deployed and proven successful.
- Stick to the simplest data access mechanism that meets your needs and don't worry about supporting multiple database platforms. Pick a database platform that your paying client can live with, and stick to it. In your code though, you also need to make sure that it can adapt to changes in your database's design without you having to spend too much time fixing up existing code.
- If there is one area you have to totally kick-ass with in version 1.0, it is reporting. If your application has any reporting needs, and most do, you need to be sure you start off with reports that dazzle your customer from day 1.
Be sure the reports are pretty, interactive (sorting, filtering, paging), and most of all printable.
Reporting is the part that your paying customer's management will use the most, and they are the ones that hold the purse strings. You HAVE to knock them dead with killer reports!
Later, if you get a retail market for your app, it will be the reporting features that make or break the sale.
I can't tell you how to find and convince other people to buy the application.
What I can tell you is that if you have a 1.0 product that makes your initial paying customer happy, then the odds are good that you also have an application that other similar companies or individuals will be pretty comfortable with too.
You can probably make a few minor adjustments and take 1.0 to the market as is; and I highly recommend that you get it to market as soon as you can with as few changes as you can.
Why the rush?
- You want to recoup the sunk costs of the initial development as soon as possible.
- You need some real clients so you can guage if there are additional requirments that need to be addressed in the next version that you don't already know about.
- You can learn from potential clients that decline to buy your application too, just politely ask them why. Is it too expensive? Do they have some competing software already in place? Does your app lack essential features?
If 1.0 was successful with your paying customer, you will likely be heading towards 2.0 even if you don't have a 3rd party market... but by now you should actually know if you have a 3rd party market or not.
If you don't have a retail market then you should consider abandoning the idea of having one later. This will keep the costs low for your paying customer and reduce the scope of your 2.0 project. You can concentrate on enhancing the application for your paying customer's more advanced and ambitious needs as well as shoring up any weaknesses in your 1.0 application's architecture without complications from other customers.
If you do have a 3rd party market, you will want to trim out as many new features as you can and stick to just the ones that are essential to your retail market and paying customer's needs... and I mean essential here... skip the nice-to-have stuff still.
If there is a retail market buying your product though, you should keep in mind that you have two kinds of customer. Users and management are are one customer, but don't neglect other developers employed by your customers that may need to customize or extend your application. Make sure 2.0 has good developer documentation, a well documented and consistant API, and consider exposing APIs over web services too.
Either way, 2.0 should be about fixing up sloppy code in 1.0, improving the underlying framework's design with an eye towards supporting all those new features on your client(s) wish-lists. The goal is to re-design, re-architect, and re-code now to support easier and faster development going forward.
In 1.0 you will have identified some fundamental architectual and design mistakes. Fix these in 2.0 to get it out of the way. If you don't, you'll just make it a lot harder to expand your application to meed new requriment later.
In 1.0 you will have identified some fundamental architectual and design mistakes. Fix these in 2.0 to get it out of the way. If you don't, you'll just make it a lot harder to expand your application to meed new requriment later.
And that's it... once you get to 2.0 you will know far more about what you need to do in 3.0 than I do. 3.0 should be sitting on a core application that does a good job, and has been re-designed to be easy to code against. So 3.0 is where you can unleash new features that impress users and improve their lives.
Monday, September 15, 2008
StackOverflow is open to the public!
Stackoverf
>low
StackOverflow is open to the public!
StackOverflow is a community driven developer Q&A site... the general idea is to be an Experts Exchange type community that doesn't charge for sharing information and doesn't use dirty tactics to link-whore search rank. If you are interested you can read my previous rant about ExpertSexChange.
The StackOverflow site is a joint venture between the famous Joel Spolsky of Fog Creek Software and Joel on Software and Jeff Atwood of the also famous Coding Horror blog, though a lot of the development effort for the site involved some other people that I don't know too much about too.
So far, I like the general feel of the site. I honestly can't say yet how useful it will be since there aren't enough questions or users yet... but if anyone can pull together a definitive software development wiki-forum kinda thing, it would be these two industry heavy-weights.
My only complaint so far is that it uses OpenID... and I absolutely HATE OpenID... whatever... a minor issue.
>low
StackOverflow is open to the public!
StackOverflow is a community driven developer Q&A site... the general idea is to be an Experts Exchange type community that doesn't charge for sharing information and doesn't use dirty tactics to link-whore search rank. If you are interested you can read my previous rant about ExpertSexChange.
The StackOverflow site is a joint venture between the famous Joel Spolsky of Fog Creek Software and Joel on Software and Jeff Atwood of the also famous Coding Horror blog, though a lot of the development effort for the site involved some other people that I don't know too much about too.
So far, I like the general feel of the site. I honestly can't say yet how useful it will be since there aren't enough questions or users yet... but if anyone can pull together a definitive software development wiki-forum kinda thing, it would be these two industry heavy-weights.
My only complaint so far is that it uses OpenID... and I absolutely HATE OpenID... whatever... a minor issue.
Friday, September 12, 2008
Google Chrome: Under the hood!
Google's new Chrome browser, which I reviewed earlier this week, is planned as a platform on which Google will build out more ambitious web applications...
My own review covered Chrome mostly from the user's perspecive, but I didn't get too deep into the internal mechanics and future possibilities that Chrome offers... mostly because I'm still playing catch-up myself.
For a reasonably in-depth overview of Chrome's technical design, e-week has posted a fantastic overview. This article hits the technical highlights of the new design. If you want to dig deeper, Google has a decent start on developer resources... but hopefully we'll see more coherent and comprehensive developer documentation in the near future.
I should be interesting to see where Chrome goes in the next couple of years.
I also wanted to point out that, while Chrome is getting a lot of press related to the technical design and future plans Google has for making Chrome a full application platform, there is a lot of very similar stuff going on with Internet Explorer 8 too... it just isn't getting the same level of press coverage. If anyone falling behind in this area it is Firefox and Opera... though Firefox has a very good development team and a reputation for very rapid development, so I'm sure they should be able to keep pace. With Opera I'm not so sure though.
My own review covered Chrome mostly from the user's perspecive, but I didn't get too deep into the internal mechanics and future possibilities that Chrome offers... mostly because I'm still playing catch-up myself.
For a reasonably in-depth overview of Chrome's technical design, e-week has posted a fantastic overview. This article hits the technical highlights of the new design. If you want to dig deeper, Google has a decent start on developer resources... but hopefully we'll see more coherent and comprehensive developer documentation in the near future.
I should be interesting to see where Chrome goes in the next couple of years.
I also wanted to point out that, while Chrome is getting a lot of press related to the technical design and future plans Google has for making Chrome a full application platform, there is a lot of very similar stuff going on with Internet Explorer 8 too... it just isn't getting the same level of press coverage. If anyone falling behind in this area it is Firefox and Opera... though Firefox has a very good development team and a reputation for very rapid development, so I'm sure they should be able to keep pace. With Opera I'm not so sure though.
Thursday, September 11, 2008
Browser Reviews: Internet Explorer 8
Part 3 in my roundup of the new breed of web browsers. In this installment I'll discuss the beta version of Internet Explorer 8...
Ever since IE 5, Microsoft has been letting me down with each release of Internet Explorer... but I think with IE 8, Microsoft may have redeemed themselves.
IE 8 could, possibly, restore Microsoft to legitimate technical dominance, instead of just having the inherited market-share dominance that allowed previous versions of IE to skate by for so many years.
First off, IE 8 has finally dropped automatic backward compatibility with pages that make use of poor HTML techniques that run counter to W3C recommendations.
This has been the biggest problem that IE has faced over the years. IE is the only survivor of the original browser wars, and so it carried a lot of baggage with it. There was a time before there was a W3C to "decided" what was going to be "standard", and back then browsers were making their own rules.
IE has always had to maintain a certain level of backwards compatibility for those non-compliant pages simply because there were so many popular sites using them. Making things worse was the fact that some of those techniques made more sense and worked better than the official W3C way; so a lot of lazy developers continued to use non-standard IE specific techniques long after they had became obsolete.
I'm guilty of this myself.
Then making it even worse... newer browsers entering the market also had to support some of those non-compliant mechanisms too... which gave lazy developers even more room to continue using the IE specific techniques.
The result... 10 years later, there are still a LOT of crappy sites out there.
Microsoft has always felt compelled to tread carefully when adopting newer W3C recommendations where adoption would break backwards compatibility. They didn't want to "break" half the internet when IE users upgraded to a newer version.
But finally, IE 8 will embraced the W3C recommendations full on with the new "super-standards mode". Futher, this will be the default mode for IE 8.
For those sites that still suck, there is button at the address bar that reverts to the IE 7 style of rendering. .
IE 7 was a good step in fixing the security and privacy issues that plagued IE 5 and 6. But IE 8 has taken this to a whole new level. If you want a more detailed summary check out this post at the IE blog.
There are major improvements in every area of security, but my favorite part is in how IE 8 keeps the user aware of privacy and security conditions as they browse around. The security and privacy settings are also much friendlier this time around too.
Like Google's Chrome, IE 8 has a special super-privacy mode. IE calls it "InPrivate" while Chrome called it "Incognito", but they are essentially the same feature. It handy for those times when you don't want to leave a trail of history, cookies, or saved passwords behind you as you browse. Useful when you check your bank accounts on a public computer, but we all know that the REAL reason this will be popular is for surfing for car-bumper porn without anyone else finding out about your "special interests".
While it remains to be seen how secure the underlying browser actually is, the user features around security and privacy are much improved compared to previous versions and in most ways are better than those of rival browsers.
IE 8 has a mixed story with add-on support. IE has always had decent extensibility and support for add-ons, but security issues have been a bit of a problem in the past. IE 7 didn't really try to do much with add-ons except lock them down against abuse. This gave the competition, especially Firefox, a lot of time to gain ground with much newer and more modern add-on architectures and management features.
IE 8 still has the classic add-on mechanisms they've always had, though much improved under the hood. Management of add-ons is quite a lot better in IE 8 though. Compared to Firefox though, the add-on system still kinda sucks overall.
The good news is that "most" of the popular toolbars and media plug-ins for IE 7 will still work in IE 8 too.
Instead of a major overhaul with add-ons, IE 8 has added some features that are totally new in IE, and are a bit different from what you find in most other browsers.
"Accelerators" are a new type of add-on. What these do is allow you to select (highlight) something on a page and a semi-transparent button will appear. This allows you to select an accelerator. The specific accelerators that will be shown will depend on what exactly you selected on the page; it is pretty intelligent about not showing options that don't make sense for the selected text. I'm particularly fond of the "Define with Wikipedia" accelerator.
The other new type of add-ons are Web Slices. Web slices sit on the toolbar, and when clicked they pop-up little mini-windows that show content pulled from a web services somewhere on the internet. A classic example is the "Facebook status" web slice, which just pulls recent status updates from your account. Web sites that have support for web slices can expose those slices very similarly to how RSS feeds are exposed so that when you browse a site with an available Web Slice, a button will appear at the address bar to allows you to install that slice.
You can get slices, accelerators, toolbars, and add-ons from an online add-on gallery too, and thisis very similar Firefox's add-on system. IE also has a centralized add-on manager that resembles Firefox's equivalent. Firefox's add-on system still remains better overall, but IE 8 is taking a pretty good step in that direction.
Probably the most important change in IE 8 for me is the increased performance and much improved visual quality of the rendering engine.
IE has always been a tad on the slow side, and the ugly rendering has been a source of constant frustration. But pages on IE 8 look are almost as good as those rendered in Firefox, and is very comparable to Google's Chrome. The speed is amazing, much faster than Firefox 3 and very comparable to Chrome.
The majority of the UI features remains the same, or are very similar to those in IE 7. It is clean and professional. The only down-side is that it doesn't feel very "new" when you first upgrade from IE 7... so IE 8 has a little less "wow!" factor for the users.
A highly marketed feature is the color coding of tabs. Tabs are color coded when opened from the same source tab. This is kinda neat at first, but overall I don't find it very useful after having used it for several weeks. I do; however, find that the color coding detracts from the overall visual appeal of the browser making the tabs area seem noisy and out-of-sync with the clean and crisp appearance of the rest of the user interface.
IE 8 also improves the pop-up prompts that you see when you type in the address bar. Pretty much everyone has improved this feature, but I think IE 8 has done the best job organizing items in the pop-up suggestion box. Unlike Chrome though, IE 8 doesn't include suggestions from online searches in the address bar's pop-up... Instead it still has the separate search box. Oddly, the search box has it's own pop-up suggestions that does show suggestions from an online search provider, as well as suggestions from history, favorites, etc. that are pretty much the same as the address bar's pop-up.
While I find that the suggestion pop-ups are incredibly well done in IE, much better than those in the other browsers, I also think they should combine the search box with the address bar like Chrome does... It seems crazy to have two different suggestion boxes that look almost the same, but behave differently. It's even crazier since it was IE that actually invented the "search from the address bar" feature in the first place. It wasn't until IE 7 that there was a separate search box.
One step forwards, two steps back I guess.
The beta of IE 8 still has some rough edges, but it has narrowed the gap with Firefox for the majority of users. Microsoft is clearly taking the renewed competition in the browser space seriously. It has plenty of advanced features, is very fast, renders pages much better, has an intuitive UI, and still manages to keep a clean and professional design despite the highly advanced and complex feature set.
IE 8 will compete very well with Google's Chrome simply because the two share so much in common, but IE has features that remain absent from Chrome (for now).
Power users and developers may still prefer Firefox for the add-ons and customization advantages though.
Browser Roundup Series:
Ever since IE 5, Microsoft has been letting me down with each release of Internet Explorer... but I think with IE 8, Microsoft may have redeemed themselves.
IE 8 could, possibly, restore Microsoft to legitimate technical dominance, instead of just having the inherited market-share dominance that allowed previous versions of IE to skate by for so many years.
First off, IE 8 has finally dropped automatic backward compatibility with pages that make use of poor HTML techniques that run counter to W3C recommendations.
This has been the biggest problem that IE has faced over the years. IE is the only survivor of the original browser wars, and so it carried a lot of baggage with it. There was a time before there was a W3C to "decided" what was going to be "standard", and back then browsers were making their own rules.
IE has always had to maintain a certain level of backwards compatibility for those non-compliant pages simply because there were so many popular sites using them. Making things worse was the fact that some of those techniques made more sense and worked better than the official W3C way; so a lot of lazy developers continued to use non-standard IE specific techniques long after they had became obsolete.
I'm guilty of this myself.
Then making it even worse... newer browsers entering the market also had to support some of those non-compliant mechanisms too... which gave lazy developers even more room to continue using the IE specific techniques.
The result... 10 years later, there are still a LOT of crappy sites out there.
Microsoft has always felt compelled to tread carefully when adopting newer W3C recommendations where adoption would break backwards compatibility. They didn't want to "break" half the internet when IE users upgraded to a newer version.
But finally, IE 8 will embraced the W3C recommendations full on with the new "super-standards mode". Futher, this will be the default mode for IE 8.
For those sites that still suck, there is button at the address bar that reverts to the IE 7 style of rendering. .
IE 7 was a good step in fixing the security and privacy issues that plagued IE 5 and 6. But IE 8 has taken this to a whole new level. If you want a more detailed summary check out this post at the IE blog.
There are major improvements in every area of security, but my favorite part is in how IE 8 keeps the user aware of privacy and security conditions as they browse around. The security and privacy settings are also much friendlier this time around too.
Like Google's Chrome, IE 8 has a special super-privacy mode. IE calls it "InPrivate" while Chrome called it "Incognito", but they are essentially the same feature. It handy for those times when you don't want to leave a trail of history, cookies, or saved passwords behind you as you browse. Useful when you check your bank accounts on a public computer, but we all know that the REAL reason this will be popular is for surfing for car-bumper porn without anyone else finding out about your "special interests".
While it remains to be seen how secure the underlying browser actually is, the user features around security and privacy are much improved compared to previous versions and in most ways are better than those of rival browsers.
IE 8 has a mixed story with add-on support. IE has always had decent extensibility and support for add-ons, but security issues have been a bit of a problem in the past. IE 7 didn't really try to do much with add-ons except lock them down against abuse. This gave the competition, especially Firefox, a lot of time to gain ground with much newer and more modern add-on architectures and management features.
IE 8 still has the classic add-on mechanisms they've always had, though much improved under the hood. Management of add-ons is quite a lot better in IE 8 though. Compared to Firefox though, the add-on system still kinda sucks overall.
The good news is that "most" of the popular toolbars and media plug-ins for IE 7 will still work in IE 8 too.
Instead of a major overhaul with add-ons, IE 8 has added some features that are totally new in IE, and are a bit different from what you find in most other browsers.
"Accelerators" are a new type of add-on. What these do is allow you to select (highlight) something on a page and a semi-transparent button will appear. This allows you to select an accelerator. The specific accelerators that will be shown will depend on what exactly you selected on the page; it is pretty intelligent about not showing options that don't make sense for the selected text. I'm particularly fond of the "Define with Wikipedia" accelerator.
The other new type of add-ons are Web Slices. Web slices sit on the toolbar, and when clicked they pop-up little mini-windows that show content pulled from a web services somewhere on the internet. A classic example is the "Facebook status" web slice, which just pulls recent status updates from your account. Web sites that have support for web slices can expose those slices very similarly to how RSS feeds are exposed so that when you browse a site with an available Web Slice, a button will appear at the address bar to allows you to install that slice.
You can get slices, accelerators, toolbars, and add-ons from an online add-on gallery too, and thisis very similar Firefox's add-on system. IE also has a centralized add-on manager that resembles Firefox's equivalent. Firefox's add-on system still remains better overall, but IE 8 is taking a pretty good step in that direction.
Probably the most important change in IE 8 for me is the increased performance and much improved visual quality of the rendering engine.
IE has always been a tad on the slow side, and the ugly rendering has been a source of constant frustration. But pages on IE 8 look are almost as good as those rendered in Firefox, and is very comparable to Google's Chrome. The speed is amazing, much faster than Firefox 3 and very comparable to Chrome.
The majority of the UI features remains the same, or are very similar to those in IE 7. It is clean and professional. The only down-side is that it doesn't feel very "new" when you first upgrade from IE 7... so IE 8 has a little less "wow!" factor for the users.
A highly marketed feature is the color coding of tabs. Tabs are color coded when opened from the same source tab. This is kinda neat at first, but overall I don't find it very useful after having used it for several weeks. I do; however, find that the color coding detracts from the overall visual appeal of the browser making the tabs area seem noisy and out-of-sync with the clean and crisp appearance of the rest of the user interface.
IE 8 also improves the pop-up prompts that you see when you type in the address bar. Pretty much everyone has improved this feature, but I think IE 8 has done the best job organizing items in the pop-up suggestion box. Unlike Chrome though, IE 8 doesn't include suggestions from online searches in the address bar's pop-up... Instead it still has the separate search box. Oddly, the search box has it's own pop-up suggestions that does show suggestions from an online search provider, as well as suggestions from history, favorites, etc. that are pretty much the same as the address bar's pop-up.
While I find that the suggestion pop-ups are incredibly well done in IE, much better than those in the other browsers, I also think they should combine the search box with the address bar like Chrome does... It seems crazy to have two different suggestion boxes that look almost the same, but behave differently. It's even crazier since it was IE that actually invented the "search from the address bar" feature in the first place. It wasn't until IE 7 that there was a separate search box.
One step forwards, two steps back I guess.
The beta of IE 8 still has some rough edges, but it has narrowed the gap with Firefox for the majority of users. Microsoft is clearly taking the renewed competition in the browser space seriously. It has plenty of advanced features, is very fast, renders pages much better, has an intuitive UI, and still manages to keep a clean and professional design despite the highly advanced and complex feature set.
IE 8 will compete very well with Google's Chrome simply because the two share so much in common, but IE has features that remain absent from Chrome (for now).
Power users and developers may still prefer Firefox for the add-ons and customization advantages though.
Subscribe to:
Posts (Atom)