VSLive! Dallas is approaching (Dec 8 - 11 2008). I'll be there, again, along with many other excellent speakers. 

If you use the priority code SPGET, you'll receive $300 off your registration!

Here's the info:

VSLive! Dallas – The Adolphus Hotel, Dallas, TX – www.vslive.com/dallas
December 8-11, 2008

Register online or call 800-280-6218 using Priority Code SPGET and receive $300 off the package of your choice.

VSLive! Dallas

For 15 years, VSLive Events have led the ranks as the trusted independent conference for .NET professionals. No other conference, no corporate trainers, no one else will compare to VSLive's standard of editorial excellence and commitment to real-world, practical information designed to take your skills to the next level. Join me and other professional developers, Microsoft product teams and executives at VSLive Dallas, December 8-11, 2008.

At VSLive! Dallas, the old Windows/Web/SQL delineations are gone and we have 50% more breakout sessions to choose from. This improved format allows us to offer a huge range of topics, including cloud computing, WPF, ASP.NET ALM, and SQL Server Data Services.  Deep material on mainstream Web development, Architecture, and Data Management honor our tradition of supporting your production needs with today’s technology.

If you’ve only one opportunity to attend a conference this Fall or Winter: VSLive! Dallas is it!

www.vslive.com/dallas


 

 

Posted by KenG | with no comments

In case you were looking for the two articles I wrote on the System.Linq.Enumerable class (taking into account the fixes in the recent blog post here), you can find the articles here:

 

http://msdn.microsoft.com/en-us/magazine/cc700332.aspx
http://msdn.microsoft.com/en-us/magazine/cc793963.aspx

Posted by KenG | with no comments

Yes, it's true. I have become an iPhone fanboy. I love this thing, and feel totally disconnected when I don't have it with me (which isn't very often).

There was originally one single feature that I felt Windows Mobile did better than the iPhone: Dialing contacts based on just typing their names. For some reason, on the iPhone, you need to look up contacts, or have them in your Favorites list, to dial them (other than memorized numbers, of course). Finally, the gap has been closed: QuickDial for the iPhone is out, and it's a gloriously simple (and effective) piece of $0.99 software. You can find information here: http://iphone.pinpointsolutionsinc.com/, but just take your iPhone, head to the App Store, and search for QuickDial. 

I've replaced the Phone icon with the QuickDial icon on the bottom of the home screen. That's how much I like it.

Posted by KenG | with no comments

I finally worked out the details to fix the errors in the Enumerable article on MSDN because of breaking changes in the .NET Framework 3.5 SP1 (thanks to Bob Schild for pointing out the problem!)

In Part II of the article, replace Figure 6 with the following:

    Dim items As New ArrayList
    items.Add("January")
    items.Add("August")
    items.Add("October")
    items.Add("April")

    ' Cast the ArrayList as a queryable group of strings
    ' (if the cast to String failed for any element,
    ' this would raise an exception):
    Dim query = items.Cast(Of String)()

    ' Now, use the Enumerable class to query the data:
    Dim results = _
      query.Where(Function(item) item.StartsWith("A"))

In Part II of the article, add the following paragraph, near the discussion of the Enumerable.Cast method:


(The behavior of the Enumerable.Cast method changed between the original version of Visual Studio 2008 and SP1. Originally, the Cast method performed a conversion from the original type to the type specified in the generic parameter. Starting in SP1, the Cast method performs a cast, not a conversion.  In other words, if the TryCast method would return True in an attempt convert from the original type to the new type for each element of the collection, the Cast method will succeed. The Cast method triggers an exception when you execute the query if any element within the collection can’t be implicitly cast to the new type.)

In the sample application, replace the CastDemo procedure with the following:

  Private Sub CastDemo(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim items As New ArrayList
    items.Add("January")
    items.Add("August")
    items.Add("October")
    items.Add("April")

    ' Cast the ArrayList as a queryable group of strings
    ' (if the conversion to String failed for any element,
    ' this would raise an exception):
    Dim query As IEnumerable(Of String) = items.Cast(Of String)()

    ' Now, use the Enumerable class to query the data:
    Dim results = _
      query.Where(Function(item) item.StartsWith("A"))

    DisplayResults(GetList(results))
  End Sub

Replace the GetList and GetCommaList procedures:

  Private Function GetList(ByVal items As IEnumerable) As String
    Dim newItems = From item In items Select value = item.ToString()

    Return newItems.DefaultIfEmpty(). _
      Aggregate(Function(current, item) _
        If(String.IsNullOrEmpty(current), _
           item, current & vbCrLf & item))
  End Function

  Private Function GetCommaList(ByVal items As IEnumerable) As String
    ' Convert the list into a list of strings:
    Dim newItems = From item In items Select value = item.ToString()

    Return newItems.DefaultIfEmpty(). _
      Aggregate(Function(current, item) _
        If(String.IsNullOrEmpty(current), _
           item, String.Format("{0}, {1}", current, item)))
  End Function

Sorry for all the hassles--because of the long lead time, I hadn't even considered installing SP1 (nor was I concerned that it would break code!) when I wrote the article.

Posted by KenG | with no comments

I recently ran a two-part article on the Enumerable class in MSDN magazine. Unfortunately, there's a significant lead time on these articles, and I wrote it using VS 2008 RTM. VS 2008 SP1 introduced a breaking change in the Enumerable.Cast method, so the demo has a number of procedures that fail with exceptions. I'll post revised versions of those procedures as soon as I can, but for now, just know that I'm aware of the problem, and will need to fix the code.

 The article starts here:

http://msdn.microsoft.com/en-us/magazine/cc700332.aspx

 

Posted by KenG | with no comments

Finished up presentations today for VSLive Las Vegas--if you need to download presentation content for any of my talks, drop by http://www.mcwtech.com/2008/vslive to download the content for the sessions.

 In the "Build a WPF Application in an Hour" presentation, I mentioned that you cannot sort the Properties windows' content. This was, of course, true in the RTM version of VS 2008. If I had slowed down for a moment to look, I would have noticed that installing VS 2008 SP1 on my demo machine right before the conference, and not trying this particular demo using SP1, led me to not notice that the A-Z button appeared on the Properties window. In other words, you CAN sort the properties for WPF objects now. (SP1 also added the Events tab to the Properties window, giving you yet another way to add event handlers for an object's events).

 Sorry for the error, for those that were at the session. 

Posted by KenG | with no comments

As I have several times in the past, I'll be heading for New York City for VSLive soon. In the past, this conference has been a lot of fun, full of useful sessions.

The folks at 1105 Media created a video to help promote the conference, and you can watch it here.

I hope to see you there!

Posted by KenG | with no comments
Currently on the plane, heading to Orlando (again) for TechEd 2008. Tomorrow, I'm presenting, along with Marty Schaeferle (from Appdev), a workshop entitled "Exploring Visual Studio 2008". If you're interested in picking up the materials for this workshop, they're available here:

http://www.mcwtech.com/2008/teched

If you're attending, and find yourself in the audience, please introduce yourself. See you there!
Posted by KenG | with no comments
Currently at VSLive Orlando, where I did a workshop on Windows Workflow Foundation with Robert Green on Monday, and then three other sessions:

What's New in Visual Studio 2008 for ASP.NET Developers
Investigating LINQ to XML
Build a WPF Application in an Hour

If you're interested, you can view slides and download demos for those talks here.

In preparation for these talks, I entered the schedule for the conference, as it was at the time we first discussed it, many months ago, into Outlook. I had carefully scheduled each session, taking care of time zone differences, into the calendar. What I neglected to do was check the current schedule before heading down to my first session this morning. Yikes. I arrived at 9:44 for the session, thinking I had 30 minutes to hang out, when I noticed that the signage indicated that the session started at 9:45. And the room was completely full of folks eagerly awaiting wisdom on new features in Visual Studio 2008 for ASP.NET developers!

To add to the misery, I was toting a MacBook Pro for the presentation, and had just shut down the Vista VPC I was planning on using for the presentation. Oh, wait. I had also left the stupid VGA dongle in my hotel room. We frantically boot up the VPC, run around looking for an extra dongle (of which the show's speaker manager, the amazing Toby Malina, had an extra), and run sweating and out of breath up on the stage to give the session, which consisted of a demo with about a zillion steps.

Amazingly, once we finally got the video working, the session went fine. The audience was quite patient, and most waited out the five minutes of flailing onstage. Thanks to all who stuck with it!

In any case: the moral learned is to CHECK THE SCHEDULE at the conference. Very simple. D'oh.

Posted by KenG | 2 comment(s)

I can't speak for anyone outside the US, but here, we tend to get a lot of spam written exclusively in Chinese, Japanese, and Russian. Outlook seems to block this stuff pretty well, but we're using a web-based mail service (so that spam doesn't get to our server), which forwards mail as necessary (or people use POP3 to pick it up from our email host). In any case, way too much foreign spam gets to the server, which adds time to the download, and is just plain irritating. I don't mean to be xenophobic, but any email that isn't written using a character set I can interpret is spam, as far as I'm concerned.

After some research, we found a way to block much of the spam. This will only work for you if your email host allows you to create filtering rules based on any text within the email. In our case, I added rules that sent mail to the Spam folder if the following text appeared anywhere in the email:

 charset="GB2312"

I repeated, creating rules for the following character sets, as well:

charset="koi8-r"

charset="iso-2022-jp"

I'm sure there are others I'll need to block over time, but so far, this method has worked 100% effectively. The flow of Russian spam reaching my inbox has halted, finally.

Posted by KenG | 2 comment(s)

In case you happen to be in the area, on Saturday April 26, I'll be co-presenting a workshop titled "Exploring Visual Studio 2008" for the LA .NET User Group with Marty Schaeferle (from AppDev). The user group meets near UCLA. We'll be breezing through a large number of new features in Visual Studio 2008, including LINQ (to Objects, DataSets, SQL, and XML), WPF, WCF, Workflow, Data Enhancements, Client Application Services, and creating Office 2007 applications using VIsual Studio 2008.

For more information, drop by http://www.ladotnet.org.

(Thanks to AppDev for allowing us to use the material that I co-wrote for their Developing Applications in Visual Studio 2008: What's New course for this presentation.)

Posted by KenG | with no comments

Continuing a long association with VSLive (been doing this since 1999), I'll be again speaking at VSLive in San Francisco, March 30 through April 3. It's a busy few days, for me--I'm co-presenting a workshop (Gentle Introduction to Windows Workflow Foundation) along with Robert Green, and then four sessions as well:

* What's New in Visual Studio 2008 for ASP.NET Developers?
* Build a WPF Application in an Hour
* Investigating LINQ to XML
* Programming the Office 2007 Open XML File Formats

The folks running VSLive have created a special promotion code, SPGET, that you can use when registering to receive $695 off the standard Gold Passport price (that is, rather than paying the standard $2795 for the Gold Passport admission, using this access code, you can get the Gold Passport admission for $2100). Please join me at VSLive San Francisco, learn a ton about Visual Studio 2008, Visual Studio Team System, and much more! I hope you'll browse to http://www.vslive.com/sf and sign up now, and please stop by a session and say hello if you do!

General Conference Information:

VSLive! San Francisco – Moscone Center West, San Francisco March 30 – April 3, 2008

Register online (http://www.vslive.com/sf) or call 800-280-6218 using Priority Code SPGET and receive the Gold Passport for just $2,100.

2008 marks the 15th Anniversary of VSLive!, and we’re kicking the year off with our biggest conference of the year – VSLive! San Francisco. Meet industry gurus; network with other professional developers, Microsoft product teams and executives at San Francisco's Moscone Convention Center West on March 30 – April 3, 2008.  VSLive! San Francisco offers 160 hours of hard-hitting technical content over five action-packed days. VSLive! San Francisco will provide a depth of resources and perspectives to help you be productive now and prepare for the near future. Learn cutting-edge techniques for today and tomorrow in sessions on VSTS, ALM, Silverlight, AJAX, .NET Framework 3.0 & 3.5, SharePoint 2007, Windows WF, Visual Studio 2008, SQL Server 2008, and much more. Our speakers have years of experience mastering the tools you need to get your job done. www.vslive.com/sf   

Posted by KenG | 1 comment(s)

I recently presented a session at the Microsoft Office Developer's Conference, focusing on the Office 2007 Open XML File Formats, using the new Open XML SDK from Microsoft, and using LINQ to XML to interact with the parts within the document.

If you're interested in downloading the content from the session, please visit http://www.mcwtech.com/2008/ODC.

The conference was a big success, as far as I can tell, and I look forward to seeing how it evolves over time.

Posted by KenG | with no comments
Filed under: ,

Ever since seeing the moronic Senator Ted Stevens describe the internet as a series of tubes last year, I've been laughing about the stupid metaphor. (For more information: http://en.wikipedia.org/wiki/Series_of_tubes).

Recently, however, I noticed this site: http://www.tubesnow.com. Apparently, the Senator was correct. Tubes provide a nice file sharing metaphor, as a convenient place to place files for temporary online storage. Obviously, there are many such services, but this one actually meets a real need in my life. As a courseware author collaborating on writing the content, we need a place to pass files back and forth that doesn't clog our inboxes. I'm willing to try this one, if only to get a chuckle about the intelligence of our elected officials each and every time.

Revised (11/24/2007): The Tubes client doesn't run on Vista x64. So I didn't even get a chance to try it out. Never mind. No excuse for this. I love it when products say they run in Windows Vista, quietly not mentioning that they don't run in Vista x64. Ah, well. Strike this one off.

Posted by KenG | 5 comment(s)

Although completely off the normal topic, I find myself again spending evenings playing the piano for rehearsals of a local San Jose production of a musical theater production. I've been doing this sort of thing since, well, for about 40 years now. It's an expensive hobby, since I must schlep 180 miles from home (where I live, there aren't many community theater products that use full orchestras!), stay in a hotel during the day, and rehearse or perform at night. I figure everyone's got hobbies, and this is mine.

In case you find yourself in the San Jose area over the next three weekends (Sept 28 - Oct 13 2007), and are interested in such things, the Actors Theater Center is producing the 1991 show, Assassins, by the legendary Stephen Sondheim and John Weidman, at the historic Hoover Theater. (Yes, it's really a musical that attempts to explain how, and why, anyone would attempt to assassinate a president. It's unlike any other show I've ever seen.) Yours truly will be covering the Keyboard I book in the orchestra for the entire run. Come by and say hello!

Posted by KenG | with no comments
More Posts Next page »