I recently gave an “Introduction To LINQ” presentation at the Microsoft event:  Data Access Firestarter.  That session was recorded and posted on MSDN’s Channel 9.  Here is the link so you can check it out.  If you want the content, you can get it from this post.  I’m really excited to be on Channel 9, it is such a great source of content!

I also gave the same talk at Philly.Net Code Camp this past Saturday.  That talk was also recorded and is available via Live Meeting replay.  I think it will be on Channel 9 too.  Both sessions went pretty well. 

I do feel the need to make a correction though!  In the presentation at Code Camp I answered a question incorrectly.  It was a subtle error, but one just the same.  The question was “Can you use LINQ to SQL against other databases?”.  I’m not really sure why I gave the wrong answer because I have been doing this stuff for a long time and I really do know the right answer.  My incorrect answer was that you can do LINQ to SQL as long as you have a provider to the other database.  This is completely wrong!  You can certainly do LINQ to a wide variety of data sources, including Oracle, but that isn’t “LINQ to SQL”.  LINQ to SQL is specifically an implementation of LINQ to a SQL Server Database.  I hope that makes sense.

My blog has been pretty quiet lately.  Things got a little hectic in mid February. 

More new technology:

After struggling to get the hang of Silverlight for a while, I was really starting to get comfortable with it.  Development on my project was moving along, the client was liking the results, and I was learning a lot!  Just when things were going well, my client informed me that he’d be dropping the project (hopefully temporarily) due to financial issues.  I was disappointed for many reasons.  I felt bad for the client (this economy is hurting a lot of people) and I felt bad for me, I had to find another client without much notice.

Lucky for me, I was able to get started on a new project pretty quickly.  I was very excited to dive into ASP.Net MVC too!  But from a blogging perspective, it meant another shift in direction.  I had been trying to focus on one thing and blog about it a lot.  I like the fact that my blog isn’t tied to a particular technology, but it is fun to get good at something and share information.  Oh well.  The fact is, I have been very lucky lately regarding new technology.  I was fortunate to start using VS2008/.Net 3.5 during the Beta at Orbius (lots of LINQ to SQL), then Silverlight 2 for my next client (and lots more LINQ to SQL) and now I’m doing ASP.Net MVC with jQuery, Dependency Injection, and other related stuff (and still lots more LINQ to SQL!) in my current situation.

What to blog about?

So now, no more Silverlight posts (unless I find some time to play around with Silverlight 3 which I am very excited about).  But I hope to continue blogging about what I am learning now.  There is one problem.  I typically try to blog about something that I struggled with and then resolved, hoping to spare others the frustration.  That was easy with Silverlight 2 which I thought was sort of painful to use (but I enjoyed it and liked the result).  But MVC doesn’t seem to be like that.  The switch to ASP.Net MVC was pretty easy for me.  And it seems to work pretty well.  The basics are pretty simple, in many ways less confusing that ASP.Net web forms, and I haven’t had too many issues yet.  Could it be that MVC really is the right way to go?  So far, it seems that way.  As I dig in more, I’m sure I’ll find plenty of blog worthy material.  As a matter of fact, I already have one, to be posted soon.

Business Update:

I’ve been pretty busy and haven’t been focusing on the “business side” of business.  A lot of independent consultants aren’t sure how to set up a business and I promised to write about it.  Here’s a quick update… I had debated back and forth about incorporating by forming an LLC or S-Corp.  I spoke with a lot of people including some accountants.  In the end, it seemed that there was no need to rush.  I had a client that didn’t care.  So I started to operate as a sole proprietor.  However, as a sole proprietor you can operate in several ways.  You can just mix up all of your personal and business money and confuse everything.  Or you can be a sole proprietor and act like a business.  That is what I am doing.  I have separate bank accounts and check books, I got a business credit card, and I record all of my income and expenses in QuickBooks.  Also, being a sole proprietor, I learned that you can also “do business as” some other name. It’s called DBA (not like a database).  This is a good idea for someone like me, since I do already have the my web site, blog and email on the domain IngenuityNow.net.  You don’t need to actually be incorporated to use a business name!

I also looked into insurance and learned about liability and E and O (Errors and Omissions) insurance.  You need liability so you can’t get sued if you knock over a server rack at a client, or a client falls walking into your house (nope, personal insurance doesn’t cover that).  E and O is to cover you if you screw up an application, trash a database, or find some other way to ruin a client’s business.  From talking to a lot of people, it seems that E and O isn’t so popular and most people only get it if the client insists.  It is also pretty expensive.  Liability insurance is much cheaper and seems like a good idea.

I also set up a web site and got business cards.  A little marketing goes a long way towards professionalism!  The web site is pretty simple so far but it will grow in time.  Please let me know what you think.

So what is next on the business front?  I’ve got to keep the networking up.  There are lots of clients out there, we just need to find them!  I also plan to get the incorporation thing going.  There are some good benefits to it (for taxes and liability) and I have spoken with a few clients that won’t work with you without being incorporated (although I know many consultants who never incorporate).  My only pain point so far on all of this is the accounting stuff.  QuickBooks helps, but it isn’t that easy to use if you don’t grok all of the accounting concepts, so I have a lot to learn

imageHere’s a brief description of MVC from the invitation to the event:

When it comes to design patterns, the MVC is the granddaddy of them all.  First described in the late 70s, the MVC pattern remains very popular in the world of web applications today. ASP.NET MVC provides a framework that enables you to easily implement the model-view-controller (MVC) pattern for Web applications. This pattern lets you separate applications into loosely coupled, pluggable components for application design, processing logic, and display.

The event takes place at the Microsoft Malver Office.  Click here for more details.  It is sure to be a great learning experience.

Philly.Net’s November meeting is a return to the "15 Minutes of Fame" format.  We had 10 speakers each providing a 15 minute presentation.  Sort of a geek sampler.  In addition to my duties as Swag Man (if you don’t know, I gather all of the prizes), I’m doing a 15 minute presentation on LINQ. 

With 15 minutes, I’m not getting into too much detail.  Just a bunch of cool code sample to show what LINQ is capable of.  Mostly, LINQ to SQL.  If you are interested, here is the code sample solution.

If you want to learn more about LINQ, here are some site to check out:

Scott Guthrie’s Blog:  http://weblogs.asp.net/scottgu/  (Of Course!)

Wes Dyer’s Blog: http://blogs.msdn.com/wesdyer/  (this guy knows his stuff on LINQ!)

Check out this great video by Wes.  It explains a lot, it is definitely worth watching:  http://wm.microsoft.com/ms/msdn/visualcsharp/wes_dyer_2007_01/WesDyer_0002.wmv

Last night I presented at the Lehigh Valley .Net User Group.  We had a small turnout but it was a good, interactive group.  I’m definitely looking forward to going back there to present again, if they’ll have me!  One thing I found out – it is not as far as I thought.  It took about an hour to get there.  That is a little far to drive for a user group meeting but if there is a topic that you really want to learn, it would be worth it.  I’d advise the Lehigh members and the Philly.Net members to keep an eye on each other’s schedules.  Of course, for a full day event like a Code Camp, it is definitely worth the drive to come from Lehigh down to Malvern (where Philly.Net hosts Code Camp).

Anyway, in case you forgot, here is where you can get the source code for the presentation.  Even though I used VS2008 for the demo, the zip file contains a VS2005 solution.

Also, here is where you can get some more explanation on the CreateChildControls() vs Render() situation discussed last night.

Once again, thanks to the guys who came out last night.  Hope to see you again soon.