Web Development

There are 36 entries for the tag Web Development

Some quick Azure observations

Here’s a couple of quick observations and reminders that came to mind while doing some recent work to convert a legacy application from being hosted on a customer’s VPS up into Azure. Working with Azure places a large emphasis on your DNS registrar of choice Your domain names are important, you want to protect them and choose a good registrar. Your #1 criteria should probably be security (which I something I’ve talked about before), but you also want a good and flexible user interface. A number of registrars have UIs that try to hide the complexities of how domain names work...

50 Javascript Tools & Resources from 2013

As the end of the year approaches it’s time for those end of year round up posts to start appearing. Here’s one I came across that contains 50 Javascript Tools & Resources from 2013. There’s a real mixed bag of tools and plugins contained in this list - have a scroll through and odds are you’ll find something interesting or useful. Some of my picks for things that look interesting (which I can’t think of uses for right now, but am pretty sure I could on a long enough timeline): Midway.js - Midway.js makes it super easy...

To crawl or not to crawl, quickly crawling a site for fun and profit

Today I wanted to compare the page structures for 2 sites – one was a new version about to go live, and I wanted to compare it with the current version. I basically wanted to check that in doing our updates we’d left the URL structure fairly untouched (a few things had been added), and figured crawling them both then comparing the output would be a fairly sane way of doing that. I’ve previously used http://www.xml-sitemaps.com/ – their free service is handy for small sites with under 500 links, but the site I wanted to compare had a pretty...

Analytics.js

Late last year I came across Google Analytics on Steroids, and the other week I came across Analytics.js. Analytics.js looks more like an abstraction, handy for those who use multiple different providers and want to use consistent calls throughout their applications (whereas Google Analytics on Steroids added some pretty handy functionality to things). Analytics.js could be very handy if you’re dealing with some of the providers that it supports (although it looks like more are coming all the time), and it also seems to have a pretty good future roadmap in the works. Tags: Web Development

The future is cloudy–15 minutes with Azure

Azure has been getting a lot of love lately, and I took a few minutes this evening to have a quick (I’m not joking, detailed review this is not) play around to see what’s changed. Firstly, the new management portal – it’s very shiny. That’s not an overly technical review, but once you play with it you’ll see what I mean. It’s nice and clean and littered with pleasant pieces of user experience engineering. Simple overviews, clean graphs and options, easy to use toolbars, and so on. I noticed some of the new options (such as Web Sites,...

Google Analytics on Steroids

GAS, aka, Google Analytics on Steroids looks like it adds some pretty handy functionality to Google Analytics. If you’re not afraid of adding another dependency into the mix, then it could be just what you need to help track more metrics on your sites. Wrappers like this always feel like a double edged sword to me. On the one hand, they offer tempting functionality or features, while on the other hand you really don’t ever know how well supported they’re going to be, so it’s a gamble getting too used to using them – which of course would...

Link Roundup - October 14th 2012

What's new in ASP.NET WebForms 4.5 (Video) – A short video from Microsoft’s Damian Edwards. <3 typed databinding, I've been bitching about Eval for so many years and it’s nice to have it addressed. Visual Studio 2012 and .NET Framework 4.5 is RELEASED – A collection of 5 minute videos to get you up to speed. <3 new bunding options, <3 Web API. Introduction to Windows Azure Mobile Services – while it looks handy, there’s not a lot of new stuff here, it’s simply functionality that already exists (layering REST functionality quickly on top of a data store)...

Living with HTTPS

Last month I touched on HTTP/HTTPS and protocol relative hyperlinks. At the time I was kind of amazed how I’d not come across it before, but this month I’ve come across event more reading on the subject of HTTPS in post titled Living with HTTPS. The post is written from a security/protocol perspective, and it’s probably not as practical for day to day development as knowing about protocol relative hyperlinks, but it’s all good information for web developers to know, even if they don’t retain all of it. Information like an understanding of HSTS is useful to know,...

2 small random but useful tips for web developers

Did you know about protocol relative hyperlinks? Seems they’ve been around for a long time, and I’d certainly never seen them used before. Incredibly easy to make sure users never see any mixed content warnings. I seriously can’t believe I’d not heard of this sooner – is it news to anyone else? Make a div into a link – this is something I’ve needed to do a few times, often when a designer has delivered a design that includes a top div as a logo area using an image as a background where it just feels natural to want...

Adjust an iframe element’s height to fit its content

Anything related to iframes falls into the category of “things you wish you’re never going to have to know”, but odds are at some point you might. Given that iframes are now being used by many modern sharing technique there’s a much higher chance that you’re going to run into them – just when it looked like they were going away. All of this preamble is basically an excuse as to why I’m much more prone to pasting the occasional iframe related link these days.. and speaking of those, here’s one I prepared earlier! Link: How to adjust...

Gotchas (and workarounds) with ASP.NET double submit prevention using jQuery

Double submit prevention is one of those things that developers sometimes have a hard time “getting”. It has an obvious fix – JUST CLICK THE BUTTON ONCE! No matter how obvious that fix is for us developers, chances are that at some point you’re going to be asked to go a little further and add code to prevent people from clicking your submit buttons twice – as was the case for me recently, when I had to look at this issue in  2 separate legacy codebases that we were lucky enough to inherit from other dev teams. ...

Mobile Frameworks Comparison Chart

This Mobile Frameworks Comparison Chart is currently in development, but it’s a quick and useful way to compare a large number of frameworks before starting on a project to find the one that’s most suited to your needs. Allowing you to select the platforms you’d like to support is obvious, but the chart goes deeper than that, allowing you to specify things such as which hardware features you need (i.e. Accelerometer, Camera, etc.), what languages you’d like to use, and even what sort of license you’re looking for. Tags: Web Development, iPhone, iPad

2 options for testing with older versions of IE

If you’re unlucky enough to need to test web applications or sites against older versions of Internet Explorer, then using virtual machines is the obvious way to go, with the only downside being they tend to eat a lot of disk space. If you’re a Mac/Linux user, or simply don’t want to create a VM just to install a legacy browser, then you can use these Microsoft VHDs (one for IE 7, 8 and 9), which run on VirtualBox. Of course there’s no IE6, because we’re not too concerned about how our websites look for people in China running...

More mobile Boilerplates and templates

The mobile boilerplates and templates keep on rolling in. Magazine Grid looks like a great starting point if you’re looking to present some text/images in a clear, easy to read way. It’s from the folks at Asidemag, which is a pretty impressive iPad tuned HTML5 magazine. My initial reaction is that it’d be even better if it had a bit of navigation/transition support built into it, but I guess the whole idea is that it’s nice and lightweight so you can combine it with whatever you like. Touchy Boilerplate (according to the website) “goes beyond just an...

Mobile Development titbits–jQuery Mobile, Appcelerator, and iOS boilerplate

This week has been less than satisfying from a developer’s point of view, and I’ve found myself stuck hanging out with my good buddies Outlook, Word and Excel a lot more than I’d have liked However despite that I’ve still managed to pick up a few useful bits of mobile development information. Allow me to share, if you will.   jQuery mobile – resizing to landscape mode doesn’t work properly. Basically when rotating the device, the windows new size wasn’t quite correct. While it felt like a minor annoyance at first, it quickly became pretty clear it...

Fixes for a couple of SSRS issues

I’m not a huge fan of SSRS, but as far as reporting solutions goes it seems to do the job most of the time. Here’s a couple of useful links to fix issues I’ve run into recently – the first courtesy of the LavaBlast Software blog, and second courtesy of Doug. Gotcha: Reporting Services Viewer bugs on Google Chrome – The Report Viewer control has always had many cross compatibility issues. This post details adding some JavaScript hackery to fix a couple of specific issues with Google Chrome (Each button in the toolbar takes a separate line - you...

iPad versus ASP.NET

Gotcha: iPad versus ASP.NET - Your web app looks awesome on the iPad, until… You decide to save it to your home screen. Useful stuff to know. If you’re doing this with a web application you’ve developed, you probably want to make it appear a bit more like a native app,  so you’ll add two meta tags to make the experience nicer (add an app icon and remove the navigation bar). Remember: Safari caches these tags when creating the shortcut, so you will need to delete/recreate the shortcut to force it to refresh. ...

IIS Express, Rewrite rules, IE9, and a whole lotta fun

IIS Express is great for web developers. Being able to test things using a “proper” Web Server rather than Cassini with it’s quirks but without needing the hassle of running a full IIS setup is a great timesaver, and plus it means you have the ability to use additional IIS modules locally, such as the IIS Rewrite modules. Today I accidentally left a production ‘non www to www’ redirection rule enabled locally on a site I was working on, and so of course when I ran it up I was redirected through to www.localhost – I went and disabled...

DepthJS

DepthJS allows any web page to interact with the Microsoft Kinect using Javascript. Tags: Microsoft, JavaScript, Web Development

Essential Developer SEO

There are many things that fall under the wide umbrella of SEO/SEM, and as a developer chances are high that you don’t really want to know about a large number of them. However like it or not if you’re creating web sites or applications there are some things you absolutely need to understand. All of what’s contained in this post is pretty simple stuff – but it’s absolutely essential. There are so many resources out there covering SEO, and yet I keep seeing sites which ignore some or all of the basic things I’m going to mention, and I...

You down with MVC? Yeah you know me!

I resisted ASP.NET MVC for quite some time. Not intentionally, and not for for any real compelling reason, but for a while WebForms coupled with my version of an MVP implementation was doing its thing pretty nicely, and a few of the WebForms projects I was working on had customers who really had no reason to shift technologies. Whether you’re charging by the hour or working in a fixed price scenario it can be a little hard to justify jumping into new technologies (although at this point you could hardly call MVC ‘new’) without good reason. Having said that,...

Best Practices for Form Design

Best Practices for form design is a slideshow on the topic of… form design! Boom! Hopefully not a surprise, however I did find a few things in the slides a little surprising. Vertical labels often lead to the fastest form completion times – I like vertical labels because they usually require simpler HTML, so I’m happy now to have another reason to recommend them. The pros and cons for the other layout options also make for interesting reading. Avoid optional fields – when you read this as a best practise recommendation you stop and pause for a moment...

MVC Radio buttons

While working with radio buttons in MVC2 I’m seeing some strange behaviour. I suspect I’m overlooking something obvious here, so please jump in dear reader and laugh at my expense. The scenario involves radio buttons, and wanting to set one of the options as being selected (“checked” for a radio button). According to logic and many Stackoverflow posts, you should be able to do something with the checked property, however this seems broken for me – consider the following, where none of these three attempts at setting check should be valid, however all three of them result in the...

Riddle me this

Here’s a couple of browser inconsistencies I’ve come across lately – can anyone tell me.. Why Internet Explorer shows the resulting JavaScript of ASP.NET’s (nasty and horrible) RegisterStartupScript calls in the page’s source, whereas Chrome does not? Why placing an img tag on a page with height=”0” and width=”0” absolutely kills the page performance in IE8, turning it into a slugging non-performing mess, however Chrome and Firefox handle it without a problem? Finally, does IE9 hide the JavaScript and fix the image? That’d be kind of funny/sad/ironic. Tags: Web Development

Another useful tablesorter plugin

This timespan parser is a handy addition to your tablesorter toolbox, useful for calendaring / scheduling applications. Tags: jQuery, Web Development

GridView Tips and Tricks

Apparently the ASP.NET GridView is the most commonly used data control in the ASP.NET control toolkit! I’d also wager a bet that it’s one of the most abused controls, and I know that it’s certainly responsible for generating some of the worst excuses for ASP.NET code I’ve seen. My personal nemesis is the overuse of FindControl - in my ever so humble opinion, if you have to use FindControl at all then you’ve probably failed. Sure there are exceptions, but as a general rule that’s a good one to go by. However the ASP.NET GridView Tips and Tricks...

TinyMCE’s fullpage plugin + ASP.NET request validation

Even though some people debate the effectiveness of the request validation that comes built into ASP.NET, you get it for free so it makes sense to use it. So when working with a HTML editor which is going to be posting back “potentially dangerous HTML” you’ll probably want to use an editor which lets you encode its content, like TinyMCE does via its XML encoding. If you’re interested and haven’t used its XML encoding before then you can read more about it here) in order to avoid disabling request validation. Normally this all works well, however it seems that...

Microsoft.Data.dll - “Someone on the Internet is wrong!”

I’ve had a few posts on the topic of Microsoft.Data.dll sitting open in my browser for a few days, and I keep coming back to them trying to work out what I think of it. In some ways it doesn’t matter, because I’m never going to use it – which is fine, because I’m not the intended demographic. If you’ve not seen it already and want to get enraged/interested (pick one!), then basically the syntax is a simplification of ADO.NET and LINQ allowing queries such as the following: using (var db = Database.OpenFile("Northwind")) { ...

jQuery tablesorter options and useful info

I’ve recently been using a lot of the jQuery tablesorter plugin across many tables containing many different types of data. It’s a great plugin, but occasionally its documentation can be a little lacking in parts. One of the first useful things you might want is the list of inbuilt data types that it handles. Most of the time these will be auto detected, however sometimes you’ll need to specify them manually (either in your jQuery, or by adding some markup to your table header, i.e. <th class="{sorter: false}"> ). Here’s the list of built in data types: ...

Firebug Lite for Chrome

Firebug Lite 1.3.0 beta for Google Chrome is making it easier for me to live without Firefox. It’s still missing a few features, but it’s a start! Firebug Lite is not a substitute for Firebug, or Chrome Developer Tools. It is a tool to be used in conjunction with these tools. Firebug Lite provides the rich visual representation we are used to see in Firebug when it comes to HTML elements, DOM elements, and Box Model shading. It provides also some cool features like inspecting HTML elemements with your mouse, and live editing CSS properties....

Looking back on the past couple of years as a freelancer

It's coming up to the 2 year mark since I resigned from my full time job and went into freelancing / owning my own businesses. After many years of working as an employee, a contractor and doing small bits of freelancing on the side I probably thought that switching to freelancing would be a bit easier than it ended up being, which is part of why I wanted to write a little about my experiences. There's plenty of material out there offering freelancers helpful tips or things to avoid - this post is similar to many of those, but it's...

An alternate fix for 'WebForm_PostBackOptions' is undefined

“'WebForm_PostBackOptions' is undefined” is one of those errors which can have a variety of causes. Here’s another one to add to that list – it’s pretty obvious, but easy to overlook if you’re in a rush. Firstly, check your httpModules, as custom modules can often cause this issue. However in my case I didn’t have any custom modules, in fact I’d just removed a couple – ripping out Intelligica’s ReWriter to replace it with the stock functionality provided by System.Web.Routing.. which of course was where the problem lies. I’d forgotten to add the StopRoutingHandler for all *.axd calls....

IE7 now available to non valid Windows users

In an interesting move, Internet Explorer 7 is now available to users not running a genuine copy of Windows. Previously IE7 required the Windows Genuine Advantage validation process be completed before download. This could easily be a strategy tactic in the ongoing browser wars. Having a single (larger) number for one browser is going to look a lot healthier than having 2 smaller numbers. It could also be something that Microsoft are doing for the general good of the Internet community, which is certainly the tone that the blog post tries to convey - however you can make your...

Thursday Linkorama

I've had a load of tabs open in my browser for the last week, all of which are useful and interesting, but none of which justify a full post. Here they are: Scott Guthrie talking about the asp:Listiew Control which is coming in ASP.NET 3.5 - I've been working with GridViews and Repeaters over the past couple of weeks, and doing so is making me really look forward to the ListView! As welcome as the control will be, you have to think that it's been a loooong time in coming (thanks for the link Doug, even if I did forget...

Fun with Forms

"Fun"! This weekend I was working on some basic ASP.NET input forms inside an existing application. The forms can be opened for read mode, or for edit mode - as you might expect from a form! There was some C# code which was setting the textboxes to be enabled or disabled (but still visible) depending on the appropriate edit mode, and I naievely figured it'd be pretty easy to throw in some css to simply remove the textbox borders when the form was being viewed, which would make the data look like labels. Labels being what should have been used in this...

Adding tooltips to GridView headers

Recently I had a need to add some simple tooltip text to a header of a Gridview. Nothing fancy, just a quick sentence explaining the column headers as they all contained abbreviated text. My searches all turned up overly complex dhtml samples, involving large chunks of JavaScript. These were all fine, but I was really after something a lot more simple than that. It's easy to achieve using some basic HTML with the GridView, so here it is for anyone who wants to do something similar. After the simple example, I'll show you how you can make things...