Skip to main content


Showing posts from March, 2008

Server Controls, UniqueID and Master pages

Recently I was updating some ASP.NET pages for a client. They had a set of custom-built server controls that worked very happily, binding data to and from domain objects. I modified some of the ASP.NET pages so that they became Content pages that shared a common Master page. Then suddenly all the Server controls stopped working - they were not processing postbacks properly or firing events. That is, Server Controls that had worked in normal ASP.NET pages suddenly stopped working in Master-Content pages. Eventually I tracked the problem down to the overridden Render method in the Server Controls, and the id that was rendered to HTML. If you Render your Server Controls like this: protected override void Render(HtmlTextWriter output) { // . . . output.AddAttribute("id", this.ID); output.AddAttribute("name", this.ID); output.RenderBeginTag("input"); output.RenderEndTag(); // . . . } ... and the control also implements IPostBackDataH

Bug Hunter in Space

In 1987, Acorn launched the Archimedes home computer. At the time, it was the fastest desktop computer in the world, and at the time, I was fortunate enough to have one to experiment with. The Archimedes was great, but it never really took off commercially. However, it was built around the ARM processor, which Acorn had designed itself when it could not find any existing processors suitable for its 32-bit ambitions. The ARM processor was a masterpiece of simple and intuitive design, and its still around today, with most of the instruction set pretty much unchanged. In fact, you've probably got one in your pocket right now. Its design makes it process very efficiently on low energy intake, and hence it is estimated that about 98% of all mobile phones contain an ARM chip. Over 10 billion ARM chips have been shipped, and they outnumber Intel's long running x86 series of chips by a factor of about 5 to 10. I had learned programming on the BBC Model B , and when we got the A