Showing posts with label JavaScript. Show all posts
Showing posts with label JavaScript. Show all posts

Wednesday, January 14, 2009

Welcome to 2009!

We are all fully back at work. Yes, I started early and did a Silverlight workshop with my most enthusiastic student, Mark Mann.

While there is a long way to go to become experts at Silverlight, we both learned so much! The most interesting project was to create a fully dynamic menu system, i.e. a menu that will work from data in a database.

Clearly some clever things were done by Microsoft's developers and it looks like Silverlight will have quite a following. But, whether it will be a Flash beater is yet to be seen. Flash has a long track record and has a lot of support. But it does seem that Silverlight has an edge when it comes to integrating into the back end, be it at this stage only really ASP.Net. But, I am sure some work will follow to provide support for other back end technologies.

PS: In case you are wondering what Silverlight is. It is primarily a front end (running in the browser) technology to provide what is known as a rich user interface (really meaning graphics and text that can move, zoom, fade in and out, play movies, etc.).

What is interesting about Silverlight is that aside from a plug-in (which must be installed on the browser) and a little JavaScript, is that the "Silverlight instruction set" gets sent from the server in XML format (the particular application is XAML). Though, now (from Silverlight version 2), the XAML file actually gets compiled to a XAP file. This does two things: (a) it compresses the file for quicker loading over the network and (b) the XAML isn't exposed for all to see (and steal).

Interesting stuff.

Thursday, December 11, 2008

What is XML?

Some of you will know what XML is. Some of you may even use it. For those of you who don't, this blog entry will be of interest to you.

Well, let's start by discussing what XML is.

XML stands for EXtensible Markup Language. It is called extensible because the language is extendable. See, while it can be compared to HTML (since the data is also marked up with tags) it really is quite different because:

a) The tags are not predefined (to put this simplistically, you create your own tags, hence extendable - one can add more tags as needed);
b) The rules are very strict (it would have to be because of point a above);
c) XML was not designed to display data, but rather to structure data;
d) HTML is restricted to be viewed in browsers (or similar software), whereas XML can be (and is) much more widely used.

XML is most often used to store data or transfer data. Either usage requires that the data is defined. E.g. this part of the data is the product name and this part is the price. This makes it possible for humans and computer programs to interpret the data.

So, what's the big deal? Well to start with, HTML is too restrictive (only has a limited set of tags) to be used to structure data. It does a great job in presenting data along with style sheets. But that is where its usefulness ends. XML won't replace it for this task, but it will work with HTML and, interestingly enough, it defines the latest version of HTML, called XHMTL.

What does this all mean? XML's job is to provide a way to store data in a structured and meaningful way that is not ambiguous. The design of XML is so clever that it can structure almost any data, including but not limited to electronic transfer data, mathematics, music, documents (of almost any kind), etc.

However, by itself, XML can't do these things. It is actually through the use of software written to use XML that its usefulness really comes out. And then it shines light years above anything else devised so far.

Therefore, to use XML one has to have at one's disposal programs (software) that are XML enabled. To the web developer it means that to benefit from XML you will need to know how to write programs (e.g. ASP.NET, JavaScript, etc.).

What software uses XML? Actually, quite a bit. Some word processing software already stores the documents in XML format. Many banking systems have already deployed XML to transfer financial information. From a web developer's point of view, you can use XML from inside many browsers using JavaScript. ASP can be used to create or read XML data. Technologies such as Java (JDEE) and ASP.NET have been developed to natively use XML as one of its array of data sources.

The question that may come to your lips is: Could you use XML inside your web pages? Yes, you can. Amongst the simplest functions can include using JavaScript inside the browser to display selected bits of info, make sortable columns, etc.

But, whatever way you want to use XML, you do need to get to learn it. There is really quite a lot to it and you should add that to your list of things to learn.

If you are interested in learning more about XML you may attend our XML course.

Find out more about web related training in South Africa visit http://www.workingwebs.co.za/.

Wednesday, October 22, 2008

Summary of skills needed to produce a good web site

I have been giving some thought as to what a designer/developer needs to know in order to produce a good web site. Here is a summary of my thoughts.

PS: You are welcome to comment on this.

A. Static Content Site
(Often referred to as a Brochure or an HTML site.)
  1. HTML/XHTML
  2. CSS
  3. Graphics manipulation and conversion
  4. Graphics creation
  5. Layout design
  6. Writing for the Web utilizing keywords
  7. SEO factors (make/keep pages search engine friendly)
  8. Web site marketing (includes social networking and how to convert visitors to the web site)
  9. JavaScript
  10. Web hosting fundamentals and related Internet and environmental factors
  11. Optional: XML
  12. Optional: Flash
  13. Optional: Silverlight
  14. Imagination and bright ideas
  15. Web authoring tool (Expression Web, Dreamweaver, etc.)

B. Dynamic Content Site
(Often, incorrectly, referred to as database site. Also referred to as an ASP or PHP site amongst other names.)

  1. All of the above skills listed in Static Content Site, especially points 1, 2, 3, 10 and 11
  2. Excellent programming ability
  3. Logic (being able to work out the logical flow and sequence of events and things)
  4. Understanding data and the relationships between data and types of data
  5. Understanding the Web environment very well (e.g. the web programming is stateless – storage wiped out for each client – server – client round trip)
  6. Know and understand the web platform technology (e.g. ASP.NET or PHP)
  7. Know at least one programming language that can be used in the environment chosen (in ASP.NET choices are C#, VB and others)
  8. Know Object Oriented Programming (OOP)
  9. Optional but key: Know the appropriate IDE (Integrated Development Environment – in ASP.NET it is Visual Studio or Visual Web Developer)
  10. Fundamentals of databases
  11. SQL (Structured Query Language) and T-SQL if using SQL Server or equivalent
  12. Database table design
  13. XML and at least four related technologies like XSLT, DTDs, XPath, Schemas
  14. Research ability
  15. Advanced: Security issues and how to handle them
  16. Advanced: Any feature that could be left out but would make for better performance, maintenance and stability
  17. Regular Expressions
  18. Project planning and management
Quite a list of diverse skills.

In some large companies specialists are employed to deal with specific skills. But, I know quite a few ASP.NET developers who know the whole gamut of skills presented here.