Monday, September 15, 2008

.NET devs in Vermont have a LOT going on this week (if I can call the next 9 days "this week" that is).

Monday : Tonight is our monthly meeting of VTdotNet with Mark Merchant from Microsoft's Virtual Earth Business Unit presenting on leveraging Virtual Earth's APIs and web services in your web apps and using the new SQL Server Geography data type. Based on the # of RSVPs, this is going to be one of our better attended meetings!

Thanks to GE Healthcare for hosting this meeting and to Mark for driving up from southern Vermont and to Microsoft for paying for the pizza. We also have gobs of swag thanks to CodeZone, Infragistics, Jet Brains and a number of publishers.

More info:

www.vtdotnet.org

 

Saturday & Sunday: This weekend is the New England Code Camp (number TEN!) in Waltham. Since we don't yet do a Code Camp in Vermont (if you want to organize one, let me know!), the Waltham Code Camp has been a popular choice for those of us who can make the road trip. I have some previous obligations and am very bummed that I won't be able to attend or present.

Registration and details:

http://blogs.msdn.com/cbowen/archive/2008/09/07/new-england-code-camp-10-update.aspx

 

Tuesday: The gift that keeps on giving! On Tuesday, Chris Bowen and Jim O'Neill, two of our Dev Evangelists from Microsoft's Mass office, are kicking off their RoadShow tour in Burlington. It's a full day of free training from two very knowledgeable guys. Chris & Jim have a crazy schedule to do 6 different sessions throughout the day. The event will be held at KnowledgeWave in South Burlington.

Registration and details:

http://blogs.msdn.com/cbowen/archive/2008/09/02/announcing-the-fall-2008-northeast-roadshow.aspx

Monday, September 15, 2008 12:00:17 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, September 12, 2008

Remember your first coloring book and the big challenge of staying inside of the lines?

Well, it's a problem with InkPresenter too. I've been using ClippingPath to solve this problem, but someone recently asked about using MouseLeave and MouseEnter instead. Here's what we learned.

[A New DevLife Post]

Friday, September 12, 2008 8:19:36 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Thursday, September 11, 2008

If you are thinking about going to DevTeach in Montreal (Dec 1-5), tomorrow is the last day to get the CN$300 early bird discount for the conference.

In addition to some EF talks during the conference, I'll be teaching a full day post con workshop on Dec 5th.

I'll be raffling off a full-blown MSDN Universal Subscription to a lucky attendee. That's the $10,000 subscription. The workshop is only $400. More info and register here.

Thursday, September 11, 2008 7:08:19 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Next Monday (Sept 15th at 6pm to be exact), VTdotNet is lucky to have Mark Merchant of Microsoft's Virtual Earth Business Unit (who just so happens to reside in Vermont) do a presentation on programming with the Virtual Earth API, services and controls.

It was a good opportunity to test out the new ASP.NET control for Virtual Earth which I have embedded into the group's Upcoming Meetings page.

I don't know how to embed it into my blog post so here's a screenshot instead.

veembedded

I couldn't figure out how to get the pin on there without doing some actual coding, so all this does is show you the general location. If there was a pin, it would be on the "X" in IDX Drive. By default, the control supports panning around and zooming and switching views. If you want to do things like map directions, you'd have to dig into the API and add that support in. That's why I also provided the "map it on local.live.com" link which opens up the map in Local.Live with the pin and all of the usual capabilities.

I expect to learn how to add more functionality to this at Monday's meeting!

Thursday, September 11, 2008 12:47:03 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [1]  | 

I forgot about this picture which I took quite a long time ago. After I signed the contract with O'Reilly for my book, they sent me a little packet of information with pointers such as what to do about writer's block, how to work with their templates, etc. Included in that were two classic writing books. On Writing Well by William Zimser and Strunk & White's The Elements of Style. It was a nice touch. Especially the ribbon which is a cute reference to O'Reilly's animal kingdom of books.

oreillybooks 007

Thursday, September 11, 2008 8:03:59 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [2]  | 

I don't know why I'm so special that my sample app has still not been put on the MSDN Magazine site to go along with my article,Write On! Create Web Apps You Can Draw On with Silverlight 2.

You can play with the app here: Silverlight Annotation sample

I finally put the download on my own website.

The download is for the sample application. It requires VS2008 SP1 and Silverlight 2.0.

I've pulled out all of the compiled XAPs and DLLs that made the file 30MB and now it's only 5MB.

You can download the sample code at

http://www.thedatafarm.com/docs/LermanSilverlightAnnotationSampleMSDN.zip

Thursday, September 11, 2008 6:42:49 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Wednesday, September 10, 2008

I picked my head up today from what I've been focused on and took a look at my blog feeds and was happy to see that Jarek Kowalski had a new post. He doesn't write a lot of blog posts, but they are generally pretty juicy.

This one didn't disappoint.

Persistence Ignorance (POCO) Adapter for Entity Framework V1

He has been hammering out a way to implement POCO in Entity Framework v1 which involves  a custom code generator that adds in some extra wrappers into the generated classes as well as some new APIs. His solution is called EFPocoAdapter.

One of the big problems for POCO is that you can't do much without the ObjectContext which means that you are tied to the EF APIs. For Unit Testing you can't fake the query (though TypeMock is working on an EF sample) which means you can't do tests without hitting the database.

One of the cool things Jarek has done is split out the EntitySets and given it the ability to do change tracking for you.

And some of the work he's done leverages the EF Extensions that COlin Meek created earlier this year.

It's all very interesting and though I'd love to dig into it, I can't at the moment.

Jarek has a nice long post explaining how he worked out the sample. EFPocoAdapter is available on CodeGallery. My RSS feed for the ADO.NET Team's code gallery indicated that there was an update there also. Now I know what it was.

Wednesday, September 10, 2008 3:39:15 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Tuesday, September 09, 2008

Experience Required:

Technical Specification Development 3 yr

.NET 2-4 years

ASP 2-4 Years

XML 2-4 Years

OS/400 1 Year

Role Description:

Developer to perform the following:

1.  Review Functional Requirements, Technical Specifications

2.  Code and Unit Test; document Unit Test Results

3. Analyze and resolve defects detected in Integration and UA Testing

Contact Information:

Andrew Reams

Andrew.reams@keane.com

Tuesday, September 09, 2008 9:11:38 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, September 08, 2008

Why oh why did I check out Instant VB after I spent  45 minutes trying to translate one line of code from C# to VB?

Read more...

[A New DevLife Post]

Tools | VB
Monday, September 08, 2008 10:01:28 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, September 06, 2008

Update 1 (I expect more...)

Progress:I did the rebuilddatabase again (http://blogs.msdn.com/psssql/archive/2008/08/29/how-to-rebuild-system-databases-in-sql-server-2008.aspx) and realized that I had a typo in the instance name when I first did it. But the error didn't indicate anything about that. Good thing I am persistent!

But I can't log in to sql server database engine, although I have no problem with the other services.. Pout.

Maybe next step is unintall and resinstall SQL Server so I can get the login lined up again.

Update 2

A complete uninstall and complete reinstall did the trick.

It all started yesterday when I realized that I needed to get the latest version of Crystal Reports 2008 onto my new computer. I wasted a few hours just trying to get the file. I had a license key so downloaded and installed the 30-day trial, but that turned out not to be the SP0 version. I followed some links to the Service Pack but they were broken. I finally found the file in the downloads section (duh).

I installed it and something was very wrong. None of the designers were in VS2008 any more. I spent about 5 hours of installing and uninstalling different versions of CR on my computer and verified that I wasn't going crazy. This was just not working with VS2008 SP1.

In the meantime, I needed to get back to the task at hand but SQL Server wasn't starting up.

Weird.

I went into Configuration Manager and attempted to start the service. It wouldn't start. The log files said I needed to rebuild my master file.

I found the instructions on this very recent blog post from SQL Server Engineering but it didn't fix my problem.

Then I decided to repair the installation. It took me a while to figure out where I had tucked the ISO away. It was on my external drive. I mounted that and started the repair. Along the way there was an error message saying that it there was something wrong with a file -  I can't remember the name but it was critical like THE SQL SERVER ENGINE file or something. (ahh - it the msi for SSCE Runtime - not a crisis for me).

The repair had a lot of failures.

I copied the file from the external drive to a local drive on the computer and tried again - same results.

So, I though, okay I'll go download the darned file again. It's 3GB. With my connection that's about 1/2 hour or so. What's another 1/2 hour after the current investment of about 10 (not counting the 2 hours I laid awake from about 4am to 6am this morning worrying about this).

Off I go to MSDN Subscriptions and lucky me - no downloads this weekend! I was trying to be a good citizen when I opted for the online download only subscription rather than getting piles of DVDs which is usually pretty wasteful.

Scheduled Maintenance

Due to scheduled release activities this weekend, MSDN, TechNet, and Expression Subscribers will not be able to use any of their online Subscription benefits, such as downloading files, or viewing or claiming keys. The Subscriber sites will be available for access, but functionality will be limited to that which a non-subscriber has.

Scheduled Start: Friday 5 September 2008 17:00 (USA Pacific Time, GMT-8)
Scheduled End: Sunday 7 September 2008 17:00 (USA Pacific Time, GMT-8)

That's it. I'm heading for the kitchen to the drawer with the BIG KNIVES.

It would be nice to say "okay, I'll just take the weekend off" but I can't afford it. I've got way too much to do.

Saturday, September 06, 2008 10:33:57 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, September 05, 2008

It took me a ridiculous amount of time to find this.

First of all, do not download the trial version that's readily available. It doesn't have the Service Pack in it. I figured that out after I did the 350 MB download, unzipped and installed, only to have the same old problems I had before SP0.

There are also a lot of broken links pointing to the pre-SAP takeover of Business Objects.

But I finally found it.

Start here:

https://www.sdn.sap.com/irj/sdn/businessobjects-downloads

Ignore the certificate request.

Click the link for Crystal Reports etc. Downloads

Fill out the form as shown

crdownload

Click Search and the file will appear.

If I had known I was going to waste all of that time today, I would have gone for that bike ride after all.

Friday, September 05, 2008 4:32:34 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [2]  | 
 Wednesday, September 03, 2008

O'Reilly has us .NET authors going to the birds.

I've got a Seychelles Blue Pigeon.

You can pre-order the book on Amazon.com.

Here's a link to my book web site also: www.programmingentityframework.com.

 

John Papa's new cover has a bird as do the other Silverlight titles he displays in his blog post.

Wednesday, September 03, 2008 8:05:45 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [1]  | 

by way of Alex

 

Andrew Peters is joining the EF team. Funny to see all of the comments about the growing numbers of kiwis (is it PC for a non-kiwi to use that term?) at Microsoft. :-)

Wednesday, September 03, 2008 7:41:09 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [2]  | 
 Tuesday, September 02, 2008

I'm actually leaving my house and leaving my road and even leaving my state today. And I won't be doing it on my bicycle. I'm heading down to Springfield Mass to do an INETA sponsored presentation at the Western Mass .NET User Group hosted by MassMutual.

I've spoken at this group before when they were meeting at Atalasoft's very hip offices in a renovated mill with a cool history.I also remember having a long conversation with someone from Atalasoft about the challenges of annotating on the web. So it was no surprise to me to read a blog post by Lou Franco from Atalasoft who, upon seeing my recent MSDN Mag Silverlight Annotation article [Write On! Create Web Apps You Can Draw On with Silverlight 2] said that "It's one of the more compelling arguments I've seen for Silverlight."

And coincidentally, I was asked to do a presentation on Annotation in Silverlight 2.0 tonight. Funny how I assumed they would request an EF talk. ;-)

I have a demo app on my website if you're curious to see this technology in action.

And for some reason, my code download for the MSDN article is still not online on the MSDN site even though they got it before the article ever went online. Apparently, somebody has been on a nice long summer vacation.

If it's not up there in the next few days, I'll just put it on my own web site. It's a big download because it has embedded images.

Tuesday, September 02, 2008 8:50:39 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Monday, September 01, 2008

I finally discovered OpenID when I wanted to leave a comment on a friend's blogspot blog. Google has recently adopted it. Read more about this open source service that lets you have one login identity which you can use on thousands of websites.

 

[A New Devlife Post]

Monday, September 01, 2008 1:00:57 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Sunday, August 31, 2008

Well, I never moved that sunflower that probably came from a seed in the nearby
bird feeder and it actually turned into the real thing! When it was really rainy there
were actually sunflowers sprouting in one of the bird feeder that you can see through
as it has plexiglass sides. It was pretty funny but I neglected to get a picture and now they're gone.

hanging sunflower

Here are some gratuitous pics of the front garden with the late afternoon sun washing out the house.

aug flowers 002 (Small)

aug flowers 003 (Small)

aug flowers 004 (Small)

Sunday, August 31, 2008 6:00:36 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 

Here's a little sidebar from my book that I think is pretty important.

Return Results, not Queries from the Business classes

While you can get away with binding a query when working directly in the code behind of an ASP.NET page, remember that the query’s job is to be executed and return results. Query execution requires an ObjectContext. If you returned the query itself from a business class, it will be detached from the context as soon as the business object is disposed (the business object, in turn, disposes the context) and you are very likely to get an exception when the query attempts to execute. If it is bound directly to a data binding control, that execution won't occur until the control is being rendered at which time the business object could be long gone. So in the business class, be sure to return results, not queries, and you wont' have to worry about how the methods are being used.

An additional benefit is that by executing the query and forcing the results to be iterated through (using foreach, First, ToList, etc), when the iteration is complete, the EntityConnection and its database connection are disposed. Therefore you won’t have to think twice about the database connection, which is an unmanaged resource.

efbookcover

Sunday, August 31, 2008 8:05:06 AM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Saturday, August 30, 2008

I'm safely tucked away in Vermont where we'll probably just get some good rainstorms as Gustav breaks up. But a lot of people who are at a very safe distance are still watching and worrying for everyone who is in its potential path. I cannot even imagine how terrifying it must be to be to anticipate this again after living through Katrina. While everyone is trying to get out of the way, I was happy to see this in the local paper this afternoon:

Eleven Vermont ambulances raced to the Gulf Coast on Saturday to ready for Hurricane Gustav, which has killed more than 80 people in the Caribbean and is due to make landfall early Tuesday morning along Louisiana’s coast.

We've got two spare bedrooms if any of you Gulf Coast geeks are looking to get FAR FAR away ...and we're dog friendly.

Saturday, August 30, 2008 7:06:57 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [4]  | 

For some background, check out a previous post called "Where's my Foreign Key?"

I came across a scenario where I have a foreign key for an entity in the form of an ID. And the scenario is in a web page. I need to turn that ID into an EntityReference, but I don't think that it's fair to ask the UI developer to know enough about EF that they should have to know how to create an EntityKey, much less know about EntityReferences.

Rather than force them to pass the ID up to the business layer, I finally gave in added foreign key support into the entities that I'm using in this web solution.

I've also gotten sick of having to write this code in many other places where I am creating relationships through EntityReferences. Especially when I make typos and then get this error at runtime.

Rather than futz around with a generic solution, I just manually created these keys in the partial classes for my entities.

As long as I was setting the EntityReference, I thought I would let the property provide the key on demand as well.

Here's an example from the Address class.

Public Property ContactID() As Integer
     Get
         If ContactReference.EntityKey.EntityKeyValues.Count > 0 Then
             Return CType(ContactReference.EntityKey.EntityKeyValues(0).Value, Integer)
         Else
             Return Nothing
         End If
     End Get
     Set(ByVal value As Integer)
         If value > 0 Then
             ContactReference.EntityKey = New EntityKey("myEntities.Contacts", "ContactID", value)
         End If
     End Set
 End Property
Saturday, August 30, 2008 2:20:25 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  | 
 Friday, August 29, 2008

Last Sunday's NY Times contained an article about multi-touch displays. "Turning Point for Touch Screens", which talks about iPhones, Dells' new Latitude and interviews the CEO of WACOM, who put the tablet in tabletpc.

But the only mention of Microsoft was when talking about the lack of software:

That could change if Microsoft delivers on multitouch technology that it has demonstrated and says will be in Windows 7, the next version of Windows, due in 2010. Such a move could galvanize software developers. Microsoft might also be able to spearhead a software standard that makes it easier for touch-enabled applications to work on the myriad kinds of touch technology.

Granted it's not a household item, but I was surprised that not one word was mentioned about Surface computing. This is multi-touch on a big scale with the benefits of WPF and oh so much more behind it. And it's a pretty nice prototype for laptops. Although it's more globally comprehended if I describe a Surface as a giant iPhone, I prefer to refer to iPhone as a mini-Surface. :-)

The Surface computing team already has an SDK - the beginnings of that software standard?  Here is the Surface team's blog if you are interested in the development side.

 

Screen_SnowBoard_00006 (Small)

Friday, August 29, 2008 7:14:24 PM (Eastern Standard Time, UTC-05:00)  #     |  Comments [0]  |