Introducing Silverlight Tools
As you saw in the previous chapter, there is no kind of compilation or
binary data with Silverlight. All you need to create them are these three
kinds of files:
XAML files to contain the Silverlight content
JavaScript files with additional code for the Silverlight content
and code to control and access the Silverlight content
HTML files to present the Silverlight content
Generally, an XML editor would be enough to create Silverlight
applications. But that's the same thing as saying, "ASP.NET 2.0 applications
can be created in Notepad." Of course that's possible, but who would want to do
that?
Therefore, we will introduce three kinds of editors in this chapter that should be helpful
when creating Silverlight applications. For each kind of editor, we briefly
introduce one specific editor and also have a look at the competition, if
there is any.
1. XML Editors
For editing XAML, a mighty XML editor should be enough. There are many good
ones out there, including (http://www.oxygenxml.com/) and XMLSpy (http://www.xmlspy.com/). Even
Microsoft has a dedicated XML editor now, XML Notepad 2007 (available at http://www.microsoft.com/downloads/details.aspx?FamilyID=72d6aa49-787d-4118-ba5f-4f30fe913628&DisplayLang=en;
see Figure 1). Thanks to the availability of
an XML schema for XML, code completion is at least
theoretically possible. As you saw in the previous chapter, Visual Studio
2005 offers IntelliSense as well, and you get even more IntelliSense (including JavaScript code) in Visual Studio
2008.
The one thing pure XML editors are always lacking is WYSIWYG functionality. Many of them try to use CSS and/or XSLT to convert the XML into something viewable
(including the XML editor I am using to write this book), but for
Silverlight that's not a feasible option. An editor that does both is, of
course, a better option. You may want to have a look at Spket IDE from http://www.spket.com/.
It is free for noncommercial use and offers both JavaScript and XAML code
completion. Figure 2 shows the XAML editor of Spket
IDE in action.