Microsoft Most Valuable Professional

Chris Pietschmann

An MVP From Wisconsin

PietschSoft.VE mentioned during a Microsoft Webcast on Virtual Earth yesterday

Yesterday Marc Schweigert (Microsoft Developer Evangelist) did a webcast presentation titled "Adding Mapping Capabilities to your Applications with Virtual Earth and ASP.NET AJAX". Near the end of the presentation, he mentioned the PietschSoft.VE project and gave the link to it on CodePlex and the Live Demo site. This mention is located in slide 32 of the Powerpoint deck from the presentation.

You'll be able to view the webcast online, after the fact.

The presentation was top notch. It covered implementing Virtual Earth within HTML and using the different features of Virtual Earth. He then went on to domonstrate using VE with ASP.NET, and also did a demo of a prototype ASP.NET AJAX Control that he built as a control extender. He was going to demo my control during the presentation (I know this because he emailed me about it), but I don't have alot of the really cool AJAXiness implemented yet.

Microsoft's Interest

I am really seeing (based on interest in the control from Marc and others) that Microsoft isn't planning on creating an ASP.NET VE control any time soon. I figure, if they were, he wouldn't be giving a plug to my control during his presentations.

What about the AJAX Control Toolkit?

On a related note, you may ask why I don't see if they'll include my control in the AJAX Control Toolkit. Well, I actually did talk with those guys about that back in December, and they didn't want to include it because of its dependance on Virtual Earth. They don't want to have to put out a new version of the toolkit when a new version of VE gets released (therefore adding to the pain of managing the toolkit).

This encouragement to keep working on PietschSoft.VE just keeps on coming!!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by crpietschmann on Friday, March 30, 2007 1:08 PM
Permalink | Comments (0) | Post RSSRSS comment feed


DotNetKicks auto bookmarklet

Here's a bookmarklet for submitting a link to DotNetKicks that automatically passes in the URL, Title and Description. To specify the description to submit all you have to do is highlight text on the page.

Try it:
DotNetKicks (Auto Bookmarklet)

To add this bookmarklet to your favorites, just drag it to the favorites or right-click and select "Add to Favorites".

What is a bookmarklet?
A bookmarklet is a small JavaScript program that can be stored as a URL within a bookmark in most popular web browsers, or within hyperlinks on a web page.
http://en.wikipedia.org/wiki/Favelet

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: General
Posted by crpietschmann on Thursday, March 29, 2007 1:34 PM
Permalink | Comments (1) | Post RSSRSS comment feed


PietschSoft.VE got mentioned on DotNetRocks! episode #221

A couple weeks ago, I was listening to DotNetRocks! episode #218 with Dare Obasanjo when they were taling about Windows Live Services. They happened to touch on MS Virtual Earth, so I decided to email them and let them know about my PietschSoft.VE control over at CodePlex.

Well, I just listened to episode #221 (I know I'm a week behind), and they mentioned my PietschSoft.VE control on the show! And, they even pronounced my name right. This is way cool!

DotNetRocks! episode #221

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by crpietschmann on Wednesday, March 28, 2007 11:36 AM
Permalink | Comments (1) | Post RSSRSS comment feed


Why not make ASP.NET Web Matrix shared source?

ASP.NET Web Matrix was the Free ASP.NET editor back in the .NET 1.x days. The tool is actually still available for download. The other day, I was thinking...

Why doesn't Microsoft make ASP.NET Web Matrix available as Shared Source?

Web Matrix was a really cool tool, and it's obviously been rendered obsolete by Visual Studio Express. However, there are still alot of really cool things done in the code, and I think it would be beneficial to the community if the source code were made available.

So, I decided to email Scott Guthrie (I only chose him because I have no idea who else might have the correct authority to possibly make this happen.) the basic description and question stated above.

Within a day I got the following response from ScottGu:

That is a good question. I will send some mail to the team to inquire whether we could make this happen.

Thanks,

Scott

Now, we can all wait and see if it'll happen. Hopefully there isn't too much "secret" proprietary code within Web Matrix that prevents Microsoft from releasing it under a Shared Source license.

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by crpietschmann on Tuesday, March 27, 2007 12:44 AM
Permalink | Comments (4) | Post RSSRSS comment feed

Spring is finally here, and the Thunderstorms have begun...

Today is the first day of Spring, and in the Milwaukee area we are lucky enough to have some rain and a thunderstorm today. I like thunderstorms so I'm glad the season is here. The only bad part is it's also the beginning of Tornado season.

Update 4/15/2007: And, it also snowed about an inch a couple days ago. But, it seems to be getting warmer again... But, we'll see if it stays warm. You gotta love Wisconsin weather.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: General
Posted by crpietschmann on Wednesday, March 21, 2007 5:59 PM
Permalink | Comments (0) | Post RSSRSS comment feed

WI .NET Users Group - Having troubles finding meeting locations!

The turn out for each of the Wisconsin .NET Users Group meetings is really great. So great, there are regularly 100+ attendees. The reason for such great attendance can be attributed to two things:

  1. The presenters (mostly local talent) consistently perform really awesome, informative and educational presentations.
  2. There is a pretty large .NET community in the Milwaukee area

I've been a member of the group since 2003 and attend the meetings very regularly. I've also never been dissappointed with their quality and alway leave wanting to learn more!

As it turns out the Wisconsin .NET Users Group is having trouble finding meeting locations that can accommodate 100+ persons. If you are a local company, in the Milwaukee area, that has a meeting room with a capacity of 100+, please think about sponsoring a meeting or two. If you are a member of the group, please think about either donating money or talking to your employer about sponsoring the users group.

Here's a list of some of the topics discussed at recent meetings:

  • Feb. 2007 - ASP.NET AJAX
  • Jan. 2007 - LINQ and ADO.NET vNext
  • Nov. 2006 - Overview of Web 2.0
  • Oct. 2006 - Rapid Web Development with .NET
  • Sept. 2006 - Windows Workflow Foundation
  • Aug. 2006 - Ignore the Man Behind the Curtain - The ASP.NET Pipeline
  • Jul. 2006 - Introduction to Grid Computing

The Wisconin .NET Users Group really shows there is a great developer community in the Milwaukee area! And, I sure you agree when I say "I don't want to see it dissapear!"

A donation link can be found on the homepage of the Wisconsin .NET Users Group website.

Contact the Wisconsin .NET Users Group directly

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: General | WI-INETA
Posted by crpietschmann on Sunday, March 18, 2007 12:07 AM
Permalink | Comments (0) | Post RSSRSS comment feed

C#: Give your object a Default Indexer Property

I've seen/used objects within the .NET Framework that have default indexer properties (ie: SqlDataReader, System.Collections.Generic.List). Now how exactly do I give my own custom object type a default indexer property?

Well, it's actually rather simple. Heres an example of a Club object with a People collection of type Person that has a default indexer property set up:

public class Club
{
  /// <summary>
  /// Collection of Person objects in the Club
  /// </summary>
  private List<Person> _people = new List<Person>();
  public List<Person> People
  {
    get { return _people; }
    set { _people = value; }
  }

  /// <summary>
  /// The Default property of the Club object
  /// </summary>
  public Person this[int index]
  {
    get { return _people[index]; }
    set { _people[index] = value; }
  }
}

public class Person
{
  public Person(string name)
  {
    this._name = name;
  }

  private string _name;
  public string Name
  {
    get { return _name; }
    set { _name = value; }
  }
}

And, here's example code of using that object:

// Create instance of Club object
Club club = new Club();

// Add a couple Person objects to the Peopl collection of the Club
club.People.Add(new Person("Chris"));
club.People.Add(
new Person("Kate"));

// Change the name of the first Person in the People
// collection using the traditional method
club.People[0].Name = "Joe";

// Change the name of the first Person in the People
// collection using the Club objects Default property
club[0].Name = "John";

And, remember just like any other method/property the Default Indexer Property can be overloaded. For instance, you can define one that accepts an Index as type integer, and also have one that accepts an Index of type string that does a dictionary lookup.

Update 3/23/2007: I have updated this post and changed the title, since there seems to be some confusion as to what I'm describing is a Default Property or Indexer Property. I think I'll just refer to it as a Default Indexer Property. Sorry for the confusion.

For further reference: MSDN: Default Properties for your Components

Currently rated 5.0 by 3 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: General
Posted by crpietschmann on Saturday, March 17, 2007 2:40 PM
Permalink | Comments (2) | Post RSSRSS comment feed

PietschSoft.VE v2.0.1 Released

I just posted v2.0.1 of my PietschSoft.VE mapping control on CodePlex. It's been just over a week since I released v2.0.0. This new release adds support for Get Route and Polyline functionality. My initial goal to release v2.0.1 was 3/19, but as it turns out I finished the main functionality for it early. This fits right inline with my goal to put out small releases often.

PietschSoft.VE - ASP.NET AJAX Virtual Earth Mapping Server Control

Enjoy!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by crpietschmann on Thursday, March 15, 2007 1:19 AM
Permalink | Comments (0) | Post RSSRSS comment feed

C#/VB.NET: Extension Methods

Over a year ago I posted a question about doing a SQL-like IN operation in .NET. Here's the examples I posted of how it could work:

Dim arrNames() AS String = New Array{"CHRIS", "TOM", "TYLER"}
If strName IN arrNames Then
   'do something
End If

Now, this would be a powerful feature since you wouldn't be required to write code that loops through the array or collection. Well, I saw some good news today posted by Scott Guthrie.

Scott posted about a new feature in .NET "Orcas" (I believe it's going to be v3.5 but I'm note sure.), it's called Extension Methods.

Extension Methods allow you (the developer) to add new functionality to existing .NET object type. And, you can do it without inheritance or recomiling the original type. This means you can add your own custom fuctionality to any third party object or framework object you want. This sounds really neat!

I saw this, and I thought to myself, Sweet you will now be able to do something similar to a SQL IN operation just as easily as it's done in SQL. In fact, Scott even posted an example of how to do it. (however, he didn't compare it to SQL IN like I am.)

The code for the IN method goes like this:

namespace SqlInMethodExtension
{
    public static class SqlInMethodExtension
    {
        public static bool IN(this object o, IEnumerable c)
        {
            foreach (object i in c)
            {
                 if (i.Equals(o)) return true;
            }
            return false;
        }
    }
}

Now using the method is as simple as this:

using SqlInMethodExtension;
public class Test
{
    void Test(string myValue)
    {
        string [] values = {"Chris","John","Sam"};
        if (myValue.IN(values))
        {
            // Do something here
        }
    }
}

Isn't that cool!?

You've probably read about the new LINQ features that are also coming in .NET "Orcas". According to ScottGu LINQ uses Extension Methods pretty heavily. So, if you ever wonder why this feature is being added, just think about the coolness of LINQ.

To read more about Extension Methods:
New "Orcas" Language Feature: Extension Methods

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: General
Posted by crpietschmann on Tuesday, March 13, 2007 8:42 PM
Permalink | Comments (0) | Post RSSRSS comment feed

My Top 10 Tech Netcasts (podcasts)

There are alot of podcasts being produced out there. I've had trouble over the last couple years in finding good quality podcasts to listen to.

Here's a collection of the podcasts I listen to regularly:

Windows Weekly - A weekly look at all things Microsoft including Windows Vista, Office 2007, and Xbox from the foremost Windows expert in the world, Paul Thurrott of the Super Site for Windows

Security Now - Steve Gibson, the man who coined the term spyware and created the first anti-spyware program, creator of Spinrite and ShieldsUP, discusses the hot topics in security today with Leo Laporte.

Net at Nite - Live from Canada, California, and around the world... What's happening on the 'net right now? join Amber MacArthur and Leo Laporte live Sunday nights.

Futures in Biotech - Explore the world of genetics, cloning, protein folding, genome mapping, and more with the most important researchers in biotech. Hosted by Marc Pelletier and Leo Laporte.

FLOSS - We're not talking dentistry here; FLOSS all about Free Libre Open Source Software. Join hosts Chris DiBona and Leo Laporte every Friday as they talk with the most interesting and important people in the Open Source and Free Software community.

DotNetRocks! - An internet audio talk show for .NET developers. Carl Franklin and Richard Campbell interview .NET experts and other industry movers and shakers, and answer your .NET questions on the air, all for the purpose of bringing you insights into .NET technology, the marketplace, and the state of software development in general.

Hanselminutes - A weekly audio talk show with noted web developer and technologist Scott Hanselman and hosted by Carl Franklin. Scott discusses utilities and tools, gives practical how-to advice, and discusses ASP.NET or Windows issues and workarounds.

There are also a couple podcasts I listen to on occasion:

Polymorphic Podcast - Object oriented developement, architecture & best practices in .NET

ASP.NET Podcast - ASP.NET Podcast is geared towards the Microsoft .NET Framework and ASP.NET. The podcast is run by Wally McClure and Paul Glavich.

This Week In Law - Join Denise Howell and the TWiL panel, including Cathy Kirkman, Ernie Svenson, and John Palfrey as they discuss breaking issues in technology law including patents, copyrights, and more.

These podcasts generally provide me with just as much listening as I have time for. However, I am always looking for more good quality podcasts to add to my list. If you know of any others, please post them in the comments.

UPDATE 3/15:  I also listen to TWIT (This Week In Tech) regularly. I don't know how I missed adding it to the list. I guess, the title of the post should now be "My Top 11 Tech Netcasts".

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: General
Posted by crpietschmann on Tuesday, March 13, 2007 2:18 PM
Permalink | Comments (4) | Post RSSRSS comment feed

About the author

I'm Chris Pietschmann, go to the About Me page to learn more about me.

Search

Sponsors

Web.Maps.VE - ASP.NET AJAX Virtual Earth Mapping Server Control

Recent comments

Disclaimer


This work is licensed under a Creative Commons Attribution 3.0 United States License, unless explicitly stated otherwise within the posted content.
© Copyright 2004 - 2008 Chris Pietschmann