ASP.NET & SQL Server contractor for hire
and EPiServer Developer
I've recently completed EPiServer developer training,
so I'm pleased to be able to offer EpiServer development services. EPiServer is a web Content Management System
in a league of its own. The product is very mature, having been around since 1997, and is based on ASP.NET
2.0 technology. The beauty of this CMS is that it gives all the power of an ASP.NET application to the
content managed site. The result is that the client gets a content managed site with very easy to use features
like right-click to edit page content, and they get the option to add community oriented features such as blogs
and discusion forums, whilst leaving open endless possibilities for customisations using ASP.NET.
It occurred to me recently that Microsoft's Sharepoint is not something anyone in the
Microsoft space can afford to overlook any longer. The core of Sharepoint, WSS 3.0, is free
assuming your organisation has a Windows 2003 or 2007 Server. And for that price tag you get
an entry level Enterprise Content Management (ECM) system that can scale up with your organisation.
You can add MOSS (Microsoft Office Sharepoint Services) to integrate MS Office applications
with Sharepoint for a price, but this is not essential.
Sharepoint is incredibly understated when you think about it. In fact I suspect there's a great many
organisations with Windows 2003/2007 that don't even realise that it is free, and that they could be using it today. Sure, it
is a 'commoditisation' of content management, but thats what Microsoft are good at. It doesn't claim
to cater to all the fringe cases, it just does the basics really well, in a way that anyone can understand.
It also happens to be scalable and extensible is a way that puts it clearly in the ECM space.
Where I find Sharepoint most interesting is as a platform to develop enterprise applications
from. As Sharepoint uptake and awareness spreads, there will be huge
opportunities for sharepoint software development, when people look to integrate their existing line of business
applications with Sharepoint. It is also an alternate platform to deliver software products
into the enterprise, including Software as a Service. Sharepoint development is done in ASP.NET and uses
the Web Parts programming model, so ASP.NET developers are basically already Sharepoint developers.
Food for thought.
I've seen inside a number of ASP.NET projects over the years. While some have been
very successful, some have been outright disasters. Sometimes I've come in
to help sort out a mess, or because the previous developer has left in a hurry.
I've thought a lot about why ASP.NET projects go wrong, and here are some of
the top reasons.
#1. Don't hire a student or inexperienced developer
Students are often keen, willing, cheap, and seem to be technically capable.
But lack of experience really shows in software development projects. Important
architectural design decisions needs to be made early on in any software project.
When the wrong decisions are made, the project is lauched into a direction
that can be extremely costly to change later on. Students and inexperienced
developers need to operate under the guidance of a software architect. You
wouldn't go to a builder without a set of plans and ask them to build
you a house would you?
#2. Respect OO Priciples
When you are developing in ASP.NET you are developing an object oriented software
application - not a website, but a software application. Developers need to understand
object oriented software in order to write good, maintainable ASP.NET applications.
ASP.NET is not an extension of ASP, its a whole new way to build web applications. ASP
Classic skills are not transferable to ASP.NET any more than PHP skills are.
#3. Use a Tiered Architecture
It is often tempting to write your whole ASP.NET web application in the aspx page's
code behind. Don't! Especially with data-driven applications. No data-driven ASP.NET
application worth developing can be without a business logic layer (BLL), and a data
access layer (DAL), in addition to the user interface (UI) layer code. I guarantee
your project will be more open to future changes, and code will be of a higher quality
if you use a layered architecture. Resist the temptation to use the ASP.NET datasource
controls and databind declaratively.
#4. Use Master Pages
ASP.NET has had Master Pages since 2005. Master Pages make it easier to keep a consistant
look and feel across all the pages in a web application. When you want to change the layout,
there's only one place to change it and all pages are changed. Its basic stuff, but its no
joke when you have to retrospectively attempt to add Master Pages to a web application where
every single page has subtle differences in the layout. Do it right from the start and use
Master Pages and you will save a lot of time.
#5. Avoid DataGrids or GridViews
These controls are great for quick mock up applications when you just need something going
quickly. For any real-world scenario they should be avoided. Experienced developers
tend not to use them because they are aware of the pitfalls (lack of flexibility, slow, extremely
large page sizes due to ViewState), while the inexperinced seem to pick them every time, for every problem.
Experienced developers use DataLists and Repeater controls. These are far superior in terms of the
control you get over layout, and performance. For example you can display hierachical data
in a tree-like manner using nested Repeaters - try doing that with a GridView.
#6. Use User Controls
ASP.NET provides a powerful way to make user interface components re-usable within
a project. E.g. you may need a drop down list to select a customer in your application.
There's certain logic and code associated with the process of populating that drop down
with data from the database, validating it, displaying it, and so on. Now consider that
your application may require the user to select a customer in 6 different places.
User Controls allow you to encapsulate that code and re-use it. A common mistake is to
end up with 6 copies of the same code which end up being 6 different versions of the same
thing. Thats a big problem because when we want to change the way a customer is selected,
we need to change code in 6 places.
#7. Use Membership
ASP.NET Membership allows you to build in role based security with practically
no code. Don't re-invent the wheel, let Microsoft write your application's security layer.
If you need to link actual users into data in your database, consider using the Profile to
store linkage data.
One of the most interesting peices of technology to come out of Microsoft
recently is Linq. Linq is a language for querying just about anything (XML data,
SQL Databases, Lists of objects). Regardless of the type of data you are querying,
Linq works the same way, meaning developers only need to learn one API to query
many data sources.
For developers of data-centric software, Linq is of huge importance as it offers
an entirely new way to interface application software with a database. For n-tier
architectures built using rapid application development (RAD) techniques, you cannot
afford to overlook Linq - it essenitally offers the option to elimate writing a
data access layer (DAL), saving huge amounts of development effort. Linq can return
strongly typed data objects from database queries. From there you can build your
business objects, or bind the data directly to user interface controls.
I've taken the plunge & upgraded to Visual Studio 2008. The experience was painless
& upgrading 2005 projects has proven to be very easy. I look forward to taking
advantage of new .NET 3.5 features like LINQ to reduce coding effort.
I would like to welcome PDSL Ltd. as a new client. PDSL has
many excellent solutions for the Human Resources market & together
we will be developing software tools to streamline the delivery of these
services over the web.
16-18th October 2007, Waipuna, Mt Wellington
A web development community event not to be missed
is the
WDANZ Auckland Conference. This is
3 action-packed days with great speakers, networking
opportunities, training seminars and much more.
Anyone can register on the WDANZ website above.
Why not take to opportunity to join WDANZ while
you're there and receive a free ticket?
for "ASP.NET Developer" in New Zealand.
This is a great result and has only come about in the last few days, probably since
this site has now come out of the Google sandbox. Ranking
#1 for "ASP.NET Developer" was my goal in setting up this site earlier this year.
I've got to think of a new goal now!
I've achieved this through some basic techniques that any website owner can employ, getting
good, relevant links into the site, and Search Engine Optimisation (SEO) on this page, which involves
having a suitable page title, meta description, <h1> heading, opening paragraph,
and original body text.
- Fact: 92% of websites fails these SEO basics
- 62% double traffic in 6 months upon implementing SEO basics
- 47% triple traffic in 6 months upon implementing SEO basics
Source: WDANZ
Big thanks to Michael Brandon at SearchMasters for opening my eyes to SEO.
If you're looking at ways to improve the way people experience your website,
I recommend this book highly. It's a quick and easy read, and I guarantee
it will change the way you think about the way people use the web.
"Get rid of half the words on each page, then get rid of half of what's left."
Krug's Third Law of Usability
I've been getting a vibe from website owners that their Content Management Systems (CMS)
are frequently failing to deliver on the promise of having a great website for users
& owners alike. I have come to agree wholeheartedly. There's many reasons why large complex software
projects fail, and I intend to write an article on the pro's & cons of CMS very soon.
My belief is that CMS systems are either low-cost + low-flexibility or high-cost + high-flexibility.
Neither of these cases is desireable. In many scenarios, I believe website owners would be better
off with a well architected web-application, tailored to their exact needs.
I've just added an E-Newsletter application to the BuyBigPrints.com site.
This application allows targetted Newsletters -
eg. Photographers get a Newsletter with information & special offers likely to be of interest to them.
This website has had a facelift! I've changed the default colour scheme from
a black-based theme to a white-based theme. Thanks to ASP.NET Themes, this is
very easy to do.
I am looking to align myself with web designers & graphical designers to provide services that complement
traditional web design. For example, I can take care of database interaction for an otherwise static
html site, or I can set up a Content Management System (CMS) behind a web site. Basically I can
take care of the back end work and help free up web designers to focus on what they do best.
As of February 2007 I have become a Profesional Member of the Web Developers
Association of New Zealand (WDANZ). Find out more about WDANZ.
This website is brand new as of early 2007.
This site has been developed by me, in ASP.NET to showcase my skills.
Have a look around & feel free to contact me.