Adjust font size: [-] [+]

Internet Explorer 8 and Future Proofing your Website

March 3rd, 2008

Previously I wrote Internet Explorer 7 and Future Proofing your Website which was a primer for preparing the imminent release of Internet Explorer 7. Now we will soon see Internet Explorer 8 which will stir things up again. A couple of months back Microsoft floated the idea of creating multiple standards modes, with the more modern implementation being an opt-in mode that required pages to include a meta value that IE8 would use to switch over to the new modern standards mode. The proposed solution was widely rejected.

Today the IE team announced through the IEBlog, in post a entitled Microsoft's Interoperability Principles and IE8, that Microsoft is withdrawing that idea. There will be only two modes in IE8, quirks mode and standards mode. Initially Microsoft did not want to break all of the pages that were expecting the IE7 standards mode, much like pages were expecting IE6 standards mode when IE7 was released. Now after significant feedback from the community Microsoft will bite the bullet and happily move forward with web standards even if it means breaking many sites that should be updated anyway.

All in all this should not be a big problem. Given that Best Practices for CSS encourage developers/designers build their pages and sites with the most standards compliant browser first and then adapt lesser compliant browsers these cross-browser issues should not be much of a concern. Yet many sites were not built with techniques that are safe across browser versions. Techniques like the box model hack enable support across multiple browser versions that support different levels of web standards. Leveraging how CSS works in this way is how you can future proof your web site.

Read the rest of this entry »

JavaScript Browser - A Work in Progress

February 25th, 2008

I recently started work on small tool called JavaScript Browser which will run as a standalone Windows application as well as a Tool Window for Visual Studio 2008. I have made good progress in the time I have put into it. I now have the XML document format defined for the initial release. I am using XSD to constrain the XML document and to provide Intellisense as I write the XML documents. I am then using XSL and CSS to display the documentation in the JavaScript Browser which is using the WebBrowser control for the viewer.

JavaScript Browser - A Work in Progress

Read the rest of this entry »

Fixing the Jumping AJAX Rating Control

February 22nd, 2008

If you are using the Rating Control for the ASP.NET AJAX Control Toolkit on a long page you will notice that after selecting your rating the page jumps to the top of the screen. On a short page you will not notice anything but the hash sign appearing at the end of the URL. On a long page the jump is a big problem. It is due to the href attribute on the anchor tags being set to a hash instead of something like javascript:void(0); which would prevent the jumping. I fixed this with one line of JavaScript using jQuery to set the link value to ensure clicking does not have the unwanted side-effect.

In the below sample I have the Rating Control wrapped in a div tag with Rating set as the CSS class. This way I can have many ratings on one page and having this one line fix all of them.

JavaScript Browser for Visual Studio 2008

February 18th, 2008

As I work on JavaScript I often consult with Google to find documentation on which functions are available and how they work. Sometimes I find the answer right away and other times it takes more effort to find the right answers. I really want it to be easier and faster to find the right answers quickly so I started work on a Tool Window that I call JavaScript Browser that integrates within Visual Studio 2008. The work done by James Hart to automatically generate the XML Doc Comments from the jQuery XML documentation is compelling. I have been tossing around idea of making the format of the jQuery XML documentation the format that I would use directly for the JavaScript Browser, but it may be limiting for other script libraries that work in very different ways.

Read the rest of this entry »

Guidance Automation going Gold

February 17th, 2008

The Guidance Automation Extensions (GAX) and Guidance Automation Toolkit (GAT) are both going Gold. These packages are critical in creating software factories. These tools provide the base for tools like the Web Service Software Factory: Modeling Edition. I read the news from Tom Hollander. If you are not familiar with GAX/GAT think of these tools as Intellisense at the project level instead of the individual lines of code like normal Intellisense.

I have been experimenting with the software factories over the last year and have been anxious for the Gold release. As Visual Studio 2008 was released a stable version of WCSF for Visual Studio 2005 was released, but it was still built on a CTP release of GAX/GAT. A few weeks later a CTP of WCSF for Visual Studio 2008 was released. Now with a solid base I expect work on the software facotries to accelerate.

There has clearly been a lot of work put into getting these tools ready before the Microsoft launch events for .NET 3.5, Visual Studio 2008 and Windows Server 2008 that are starting at the end of this month. (see Heroes Happen Here for details on launch events) There are many projects on CodePlex for software factories and with a Gold release for GAX/GAT the projects should get a burst of activity.

I still think the UI for these tools need more work and there need to be many more training videos produced to improve adoption of these powerful tools, but the Gold release is the first step toward creating software in a new way.

You can read more details from Grigori Melnik, David Hayden and Jose Escrich. If you are interested in what happens next I suggest you subscribe to their blogs.

Code Generation, Software Factories and Visual Studio Extensibility - Madison

February 4th, 2008

[ Update: Due to the snow cancellations this presentation has been rescheduled for March 5th. ]

On Wednesday I will be presenting Code Generation, Software Factories and Visual Studio Extensibility in Madison. Back in October I gave this presentation to the .NET User Group in Milwaukee with a strong attendance. I really enjoy this topic because gaining an understanding of what sort of automation that you can do to not only reduce your manual workload but to also implement more features with higher quality on a regular basis is a killer combination. I am a big fan of using MSBuild to automate routine tasks but code generation and software factories go several steps past just saving time and effort.

The tools that are available to generate code are making dramatic improvements over the last couple of years. The Web Service Software Factory: Modeling Edition was released in November, just a month after my last presentation so I will now be able to cover what was not fully ready then. I expect this demonstration to be a lot more engaging than my last presentation on this topic. You will not want to miss this presentation.

Intellisense for jQuery in Visual Studio 2008

February 1st, 2008

These days I write more JavaScript than C#, or at least it seems like it sometime. To make my work a little easier I have started using the JavaScript support in Visual Studio 2008 that provides Intellisense support if you put Xml Doc into your JavaScript. The problem with working with jQuery in Visual Studio 2008 is that it fails due to how the jQuery script is written. For reasons why Intellisense fails, you can read more from Jeff King. Adjusting jQuery to make Visual Studio happy is not really a priority and not even necessary. I can simply reference the real jQuery script from the web pages and within my scripts I can reference a stub for jQuery that is simply a shell with Xml Doc.

[ Update: Hotfix for Visual Studio 2008 to fix jQuery Intellisense ]

Read the rest of this entry »

Web Deployment Projects Visual Studio 2008 - RTW

January 27th, 2008

The release of Visual Studio 2008 Web Deployment Projects - RTW is out. After working with the December CTP over the last month I am glad to see this release. I had several problems with the CTP which should all be resolved now. After a couple of tests with the new RTW release everything appears to be working.

Previously the biggest problem was the failure of the build to clear the output directory before attempting to move the temporary build directory. It caused many incomplete builds in a sporadic way which made it hard to figure out. The fix for the CTP was to implement the AfterMerge task to blow away the output directory and move the temporary directory in place, as it should have done automatically. Now all my scripted automation goodness is back on track.

Top “must have” Tools for Software Development

January 25th, 2008

Christopher Bennage wrote up a list of his "must have" tools for software development. Since his captcha system is broken for comments and for contacting him I will post my list here. Hopefully he can get his site fixed soon. I always find useful tools after posts like these.

Notepad2 - simple editor with color-coding support
http://brennan.offwhite.net/installers/NotePad2-2.0.16.msi

JSLint - for checking JavaScript syntax which integrates with Visual Studio
http://www.javascriptlint.com/
http://www.javascriptlint.com/docs/running_from_your_ide.htm

Packer for .NET - shrinks JavaScript with Packer or JSMin
http://svn.offwhite.net/trac/SmallSharpTools.Packer/
http://www.smallsharptools.com/Projects/Packer/

MSBuild Community Tasks - lots of helpful tasks, like zip
http://msbuildtasks.tigris.org/

Reviewing Software Design for Growing Applications

January 20th, 2008

Applications that live for a long time tend to grow to the point that they become unmanageable. It is a common problem. Large projects grow by adding new features continually. And when critical bugs are discovered they are fixed as quickly as possible without fully considering the impact on the overall system. It is too bad because even the most basic check on the design is a process that can be as simple as a 10 minute review.

Reviewing the application can be as simple as drawing up a diagram to represent all of the parts of the application with lines drawn between the dependent pieces. This diagram does not have to be a detailed UML diagram but can instead be simple circles and lines. The diagram will quickly reveal some obvious problems. Once you have the diagram you can ask yourself a couple of questions:

  1. Are the dependencies always moving down, or are there circular dependencies?
  2. Are the components too big or too small?

Read the rest of this entry »