Coolest new technology at the PDC

Posted by Kenny on September 17, 2005

OK, so Visual Studio 2005 and the .NET Framework 2.0 are scheduled to be released on November 7. There’s a lot of cool stuff there, but we’ve known about that for quite a while and with the beta already in Go Live it hardly qualifies as “new” anymore. There’s Windows Vista which includes some cool enhancements to the end-user experience and provides opportunities for developing some new types of OS add-ons, but it doesn’t seem like a huge win for general development. There’s “Avalon”, now called Windows Presentation Foundation, which is great for UI developers and graphic designers, but I work more on the back-end stuff. “Indigo”, now called Windows Communication Foundation, has some improvements to the development model for Web Services and some efficiency improvements if you’re doing WCF to WCF and aren’t concerned about interopability. Other than that, I don’t see a lot of difference in the development effort required.

So what is the coolest new technology that Microsoft showed at the PDC? My vote goes to LINQ, which stands for Language Integrated Query. I’m sure there will be lots of details written about LINQ in the near future, but in a nutshell LINQ allows you to write SQL-like queries in a consistent and type-safe way against .NET collections, SQL data sources, or XML documents. Syntax for the LINQ query language will be handled by the C# 3.0 compiler, but according to Microsoft’s Anders Hejlsberg, LINQ will not require any changes to the .NET runtime. All the runtime features needed to implement LINQ are already part of the 2.0 Framework.

The LINQ query language is based on a function pattern that developers can implement for any object type to provide custom query support. Standard implementations are provided for IEnumerable<> collections, Microsoft SQL Server databases, and XML data. The function pattern approach also allows other .NET languages such as Delphi to develop their own query syntax that will support the LINQ functionality.

For SQL Server databases, LINQ provides new attributes that can be applied to class definitions to define an object-relational mapping, allowing the developer to view the SQL tables as objects and properties. The LINQ preview also contains a tool that will generate the mapping classes for an existing SQL Server schema. For XML, LINQ provides a new object model for XML data that is much simpler and easier to work with than the XML DOM model. In the PDC preview version, there is no way to create a strongly-typed object view of the XML data like there is for SQL, but I expect that a similar tool to generate classes based on an XML schema will be added eventually.

I think LINQ will be especially useful with collections and XML data where all the data manipulation has to be done in C# code already. The LINQ syntax is much simpler and easier to read than the code that is required today. For SQL databases, there will always be a place for stored procedures on the database server, but LINQ will provide an excellent alternative to building custom SQL query strings or writing hundreds of stored procs for all the different variations of simple SELECT queries. I’m looking forward to giving it a try.

VSIP event at Dodger Stadium

Posted by Kenny on September 13, 2005

The company I work for, SPI Dynamics, is a Microsoft VSIP partner. The Visual Studio Integration team from Microsoft held a special partner-only tailgate party last night at Dodger Stadium with tickets to the Los Angeles Dodgers vs. Colorado Rockies game. I’m not a sports fanatic, and being from Atlanta I’m definately not a Dodgers fan (Go Braves!), but sitting in the second row of the field level just inside the right field foul pole was a pretty cool experience even for a geek.

Heading to PDC 05

Posted by Kenny on September 09, 2005

Next week I’m heading out to Los Angeles for the Microsoft Professional Developers Conference. I’m sure I’ll learn about a lot of cool new technologies that I won’t be able to take advantage of yet, but hopefully I’ll at least be able to find some time when I get back to blog about a few of them.

Google Talk tips

Posted by Kenny on September 01, 2005

Philipp Lenssen posted some tips for Google Talk. Be sure to read the comments, too, for additional tips discovered by readers.

My favorite tip is adding emphasis in messages using the *bold* and _italic_ convention that has been commonly used in plain-text e-mail and Usenet posts for years. I’ve never been one to use a lot of formatting in IM’s, so this is perfect for me. Simple, clean, gets the job done.

Google Talk is here

Posted by Kenny on September 01, 2005

I’m a little behind the times in blogging about this, but I needed to actually have a blog first. Rumors have been flying for a while that Google was planning to release its own IM service, and now Google Talk is here. It is based on the Jabber XMPP protocol, but it isn’t yet linked into the Jabber server network.

You won’t find any fancy features in the minimalist client program, but that can sometimes be a good thing as it seems to use far fewer system resources than most other clients. If you want a more feature-rich client, you should be able to connect with any client that supports Jabber. You’ll also need to use a different client if you are not running on Windows, because the Google Talk client is currently a Windows-only application.

Currently, you can only chat with other Google Talk users, although Google promises that they are committed to interoperability. Unfortunately, I don’t know of any friends that are on Google Talk yet, so I can’t give it a thorough test in daily use.

New tech blog

Posted by Kenny on September 01, 2005

My name is Kenny Pitt. Very few people have ever heard of me, and I don’t expect that to change just because I started a blog. I’ll probably lose interest in this after a month or two and stop posting, but who knows?

I created this blog for all the geeky, technical stuff that nobody over on my family blog is going to want to read. It’s a place for me to capture links to cool applications, useful technical info, occasional thoughts about programming, and maybe even a code snippet or two. If anyone but me finds this interesting or useful, I’ll be amazed, but please let me know if you do.