I’ve grown quite fond of my EAS MD utility, and it’s also been great fun sharing the code powering it for the past weeks/months. When I originally started out coding it I was fueled by what I felt were shortcomings in the official diagnostic utility provided by Microsoft; http://testexchangeconnectivity.com. It only supported Exchange 2003 protocol level, had no means of dealing with security policies, and in general didn’t provide a whole lot of options. It worked OK, but not for the scenarios I wanted to test.
When you’re a programmer at heart this means there might come a moment when you get a feeling of “why not build what I want myself instead of accepting the tools available as is”. Not to mention that other people aren’t going to accept your “whining” either and will eventually challenge you to do better. (I wasn’t pressured by anyone else than myself when it came to this issue though.)
So I sat down with the intention of providing a tool for myself with the options I wanted, and decided quite early in the process that it would be something available for everyone (if I got it working that is). After deliberating the matter with myself I eventually decided that I would do it as a Windows application which seemed like the easiest implementation to do. ActiveSync basically being a plain web service it could obviously have been done on other platforms as well, but often the supporting APIs have less features in mobile frameworks than full desktop .Net, and if I had wanted to do it for something like the iPhone I would have had to learn Objective-C at the same time. It’s easier to just have to learn one new technology at the time 🙂
Today I have come full circle, returning to where we started, and present a web version of EAS MD to you 🙂
I didn’t do it just to get more familiar with other templates in Visual Studio; there are a couple of benefits in the web version:
– It’s possible to run the tests on the iPad 🙂
– It’s easier for me to add and deploy new features. (This isn’t necessarily because it’s a web app as such, but comes partially from using the MVC pattern.)
– When I deploy a new version it’s instantly available; you don’t need to download new builds. (Not that’s it much fuss since you don’t need to install EAS MD, but there isn’t a notification letting you know there’s a new build so you might miss out on it.)
I’m not saying it’s perfect though, there are a few cons:
– It is not suitable for behind-the-firewall testing. This being one of the strengths of the native app which will obviously run on whichever network you happen to be connected to. My web version will run on the Interwebs and have to obey ordinary routing and firewall rules. (I don’t assume anyone will want to set up a dedicated web server to run it in-house.) For this kind of testing you still need the “regular” version.
– Currently there’s less features than the native app. To avoid building a user interface that would completely overwhelm the user I took away “everything” so I could rebuild the view and try to get rid of unnecessary features. I hope to improve upon this, and add all relevant features in upcoming iterations. However there might be features that are more tricky to do in a web app that will be reserved for the native app.
I currently have no plans to abandon the native app, and will develop both as long as it makes sense to do so.
Although the code is tried and tested, and just slightly reworked to fit into MVC, I consider this online version to be a kind of beta. I haven’t done major testing to see how it scales, and for all I know other and slightly different bugs might have sneaked into the code somehow. And although I have checked that the interface works both on the iPad and Windows Phone Mango I have not tested it in all available browsers. (Amazingly enough it does validate as proper HTML5.) It’s hosted and running in Windows Azure, and I don’t have much first-hand experience with Azure other than minor tests before this so I do not know if the extra small instance I’m running now is enough. I want as many people as possible using the site (even though it’s a niche product), but if I have to scale out to handle the load I will probably have to reconsider the offering. I know that Azure has no problems scaling; it’s not a technical issue, but the financial part of it might not scale accordingly
I don’t believe these issues will be major, but until I’ve had it running for a while and learned some numbers I still have to consider it a beta. (There’s no label affixed to the site with a big beta logo so it’s not like you’ll notice this.)
So check it out:
The native app is still available in the downloads section:
Feedback in the usual way – either through the comments section or by mail.