Shine a (Silver)Light on Me
So you think you've got a handle on Orcas and .NET 3.0/3.5? Brace yourself as Microsoft casts everything in a new (Silver)light.
"Let me get this straight? You want to write a web plug-in VB .NET? that doesn't require the full .NET framework to be installed? and runs on the Mac? and Firefox ? but supports the full VB .NET language? Uh? Okay, let's chat."
—Joe Binder and the VB team, posted on the Web site, The Visual Basic Team, a blog hosted by—you guessed it!—the VB team.
So, you're a Visual Studio developer, and you think you've gotten your head around the crux of the new features that Orcas and Windows Vista/.NET 3.0/.NET 3.5 introduce.
You've come to terms with Language Integrated Query (LINQ); the Windows Presentation Foundation (WPF) and Extensible Application Markup Language (XAML); Windows Workflow Foundation (WF); the Windows Communication Foundation (WCF) and the way it unifies Web services, .NET remoting, distributed transactions, and message queues. You understand that you can use most of these features now in Windows Vista, but Orcas will simplify taking advantage of these features with tools that add higher level abstractions for manipulating these technologies.
Yes, yes, you know all this. But are you also aware that Microsoft is about to shake things up again?
At its MIX07 development conference held in Las Vegas in late April, Microsoft provided some new details about Silverlight, its new Web-based presentation framework intended to run on a variety of platforms (such as Windows and the Mac), in a variety of browsers (including Internet Explorer and Mozilla's Firefox). Silverlight's former name, WPF/E, where the "E" stands for "everywhere," provides telling clues about its purpose. It builds on WPF in the .NET Framework 3.0 to create applications that run, well, in a lot of places, if not exactly everywhere. You can find more information about this technology on Microsoft's developer Web site (http://tinyurl.com/39h5ce).
The quote that opens this article is taken from the VB team's blog (visit the entry at http://tinyurl.com/2rhgzc) on this topic and how it relates to Silverlight. (I recommend checking out the VB team's blog home even if Silverlight doesn't interest you, because it provides nice first-hand information on the direction of VB from the people responsible for implementing its features.) You should also be sure to check out Bill McCarthy's What's Hot department in this issue, which tells you where you can get many of the downloads to give Silverlight 1.1 a try.
Paraphrasing from the VB team's site, Silverlight will support many of VB's features, including late binding; implicit and explicit type conversions; LINQ for Objects; string utilities such as Len (), InStr(), Mid(), UCase(), and so on; as well as the VB Collection and generic collection types. Silverlight will also support all core VB-language constructs, such as type inference, anonymous delegates, and handles.
The Silverlight runtime is significantly smaller than the .NET runtime, so obviously it doesn't incorporate everything that the .NET runtime includes. According the VB team posting, Silverlight won't support the My namespace, XML literals, COM components, or the FileSystem Object.
———— * * * ————
The One and Only VB
At the MIX07 conference, an informational poster contained a reference to both Visual Basic and something called "VBx" that was shown with a "Soon" flag. Paul Vick, technical lead on the Visual Basic language, explained in a blog entry that VBx refers to the next major version of Visual Basic after Orcas (http://tinyurl.com/2lud9h). In a separate entry (http://tinyurl.com/2mctrx), Paul cautioned that planning for the next major version of VB is still in its early stages—Orcas isn't even feature complete at this time—but that didn't stop him from laying out some design goals for the next version, which I recommend checking out. For example, he mentioned that "Visual Basic should become a hostable language that can be used to do application scripting easily, ? [and that] this hostable language engine should be fully portable to all platforms supported by Silverlight..."—a message consistent with the VB teams' post on Silverlight.
It's worth emphasizing that there is but one Visual Basic language; VBx isn't a separate scripting variant. That said, you'll have to accept certain limitations when programming for Silverlight (as described above). I've heard some developers grumble that you'll have to keep different sets of capabilities in mind when programming for WPF versus Silverlight, but in all honesty, that isn't too far afield from where we are now, when developers must keep track of different requirements for programming against portable devices versus the desktop when creating applications that target both.
Editor in Chief
Talk Back: Are you excited about what Silverlight represents for the future of Visual Studio development? Write us at firstname.lastname@example.org .
Patrick Meader is editor in chief of Visual Studio Magazine.