Welcome

You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

.Net 4.0 – Start Reading Between the Lines – Learn Silverlight and Entity Framework

Posted by Keith Elder | Posted in .Net, Asp.Net, C#, Internet, Mobile Devices, MVP10, PC Software, Smart Clients, SQL Server | Posted on 30-11-2009

I started writing this as a general recap of PDC for team members but the more I thought about what was announced at PDC, the longer the email got.  Ultimately I decided to put it out so you dear reader could also gain some insight from things announced at PDC. 

For starters listen to the podcast we recorded with Scott Guthrie or “The Gu”, or “His Guness”, or “ScottGu” about Silverlight 4 announcements among other things while at PDC. 

The big stories out of PDC that I think everyone should take note of are Silverlight 4, Entity Framework 4 and Windows Mobile. Wait Windows Mobile 7? Yes.  Wait… I didn’t hear anything about Windows Mobile 7? Well I didn’t either and that is why this post is called “read between the lines”.  Call it speculation or whatever, but I think I can bring you up to speed on what is about to happen (and no I have no official behind the scenes information, I’m just a guy with a brain).  Before we get to Windows Mobile 7, let’s start with Silverlight.

Silverlight

Silverlight 4 had tons of announcements including:

  • Camera and microphone support
  • Trusted out of browser support.  This means one can access COM (for example, an application could access Outlook APIs)
  • Lots of line of business app controls
  • Added support for drag and drop
  • WCF RIA Services (this is basically what I’m calling the new CSLA, if you listen to the podcast you’ll find out that Rocky worked with the team closely on RIA Services)
  • Print natively
  • More…

Tim has a great recap of all the Silverlight announcements here with links to videos:

http://timheuer.com/blog/archive/2009/11/22/pdc-silverlight-resources-link-dump-learn-silverlight.aspx

Now what does this all mean? It means the line is blurring between client and server applications. It also means we are coming back full circle to “Smart Clients” (which were hot in 2005/2006 but were forgotten due to the Web 2.0 hype.  The only difference is this new breed of application (Silver Clients?) can run directly from a web site, or on a client’s machine.  It also means that Silverlight is going to finally fulfill the vision we heard about a long long time ago that was called WPF/e (WPF Everywhere).  A lot of people have forgotten this but we are seeing it take full shape now.  For businesses that are writing applications internally, I think we are going to start seeing a huge shift away from writing Asp.Net/MVC apps and a move towards the rich model with Silverlight.  I mean seriously, why wouldn’t you? If you get cross platform compatibility, rich data binding, write once and work in any browser, why would developers that are trying to build internal business applications continue to kill themselves writing JavaScript, fighting CSS and browser compatibility?  I can’t think of a reason either.  In my opinion this is just a waste of time (and always has been).  There is something extremely powerful putting a variable in memory and having it be there when you need it without having to worry about sessions, state, etc.  Yes we are FINALLY getting back to the client programming model, just coming at it a different way. 

Entity Framework

Let’s talk about Entity Framework 4.0 for a moment.  This is another big piece of news.  It is big because as .Net developers we will finally have one true way to access data that fits the multitude of ways we have to work.  Here’s a recap of announcements (not a complete list, watch the videos from PDC):

  • POCO – supports plain old clr objects
  • EDM designer enhancements
  • Better stored proc support
  • Model first (then gen database model)

Doug Purdy (who we also interviewed for Deep Fried Bytes while at PDC) has a list of the sessions that cover the Entity Framework 4.0.  Just start at the top and work your way down as far as you can.  At least watch the first video as it shows off all the features of EF.

http://www.douglaspurdy.com/2009/11/22/pdc-2009-data-and-modeling-talks-2/

With the number of features that were announced in EF4 I think we are on the verge of seeing the demise of NHibernate usage by developers in the .Net stack.  For those that have used NHibernate in the past, it is worth another look at the Entity Framework to be released in .Net 4.0.  About the only thing EF4 doesn’t do that NHibernate does do is built-in caching (which hey, there’s this caching thing that AppFabric does, hmm, wonder if they’ll use that? Why not! 🙂 ).  But the big thing to note between EF4 and NHibernate is we are starting to see where this whole modeling thing with OSLO is going (edm files are m fles and so on).  And of course there is the bigger picture of reusing this model in report services, BI and other areas (although we haven’t *seen* that really working yet, it is coming though see next sentence).  As EF4 makes it way into other products throughout the Microsoft ecosystem it is going to be extremely hard to avoid the Entity Framework.  Read between the lines, the writing is on the wall, LEARN THE ENTITY FRAMEWORK.

Just a side bar here because I know someone is going to ask me this at a later time.  Will the Entity Framework kill NHibernate? Answer: Nope I’m not saying that. 

Out of band developers that seem to have a knack for yelling the loudest will continue to use NHibernate but a much larger ecosystem will leverage the out of the box Entity Framework in .Net 4.0.  Think back for just a bit.  History is about to repeat itself all over again.  Remember when we got MSTest and or MSBuild?  Same thing is happening again. There is now an out of the box product for standardizing data access.  Are their alternatives? Sure.  Just as MSTest didn’t kill NUnit or MBUnit and MSBUILD didn’t kill NAnt, EF4 will not kill NHibernate.  However, if you look at the number of developers using MSBuild or MSTest it is high. Extremely high.  Why is that? Answer: pain, ease of use, integration, documentation.  MSTest is not the best testing framework out there (this is a proven fact), but it is good enough for 90% plus test cases.  Entity Framework 4.0 is going to put an ORM in the hands of developers.  And you know what, it doesn’t suck either. 

Windows Mobile 7

And now onto Windows Mobile 7. 

Is this WinMo 7 above?  I honestly don’t know, I found these screen shots on http://windowsphonemix.com/ web site.  BTW, notice that URL?  Mix? Yes Mix.  Mix is the first of the three major conferences Microsoft puts on each year.  The very last slide at PDC during the last keynote said, “Come to Mix 2010 for Windows Mobile 7 futures”.  A lot of people missed this because they were tuned out from the SharePoint demos and already packing to leave.  But there it was on the big screens.  Thus we know Mix is when we’ll see Windows Mobile 7.  Again, listen to the podcast to get some other insight. 

Here’s a quote:  “Three screens and the cloud”

We heard this over and over at PDC.  Let’s read between the lines a bit shall we?

I have three screens:  Windows Desktop, Web, Mobile.  Ok, if I want to write an app that will run on all three what do I as a developer have to do today?  Let’s see, well, we could write a ClickOnce deployed Smart Client for the Desktop that uses WPF.  For the web, well, we would have to switch gears completely and rewrite our app in Asp.Net or Asp.Net MVC to get that screen.  For mobile, even tougher, we have to rewrite the app again to get the mobile version.  Let’s think about this differently again.  Think about it, how many technologies would a developer have to know in order to an application for these three different screens;  WPF, JavaScript, HTML, and CSS will be used just to name a few.

Now, let’s switch gears.  What if I used Silverlight 4 to write my app?  Well, it could work in the browser no doubt.  Hmmm, it could also work on the Desktop using the out of browser experience with elevated permissions.  What about mobile? 

“Wait, didn’t you just say Keith that at Mix we’ll get to see Windows Mobile 7?”

Yes! 

“And hasn’t there already been talk of using Silverlight for mobile?”

Yes!

“Aha! Three screens with Silverlight, I get it!”

That’s right my friendly .Net developers the writing is on the wall. The vision of WPF/e (WPF Everywhere) is about to come true.  We’ve waited for years but it is just around the corner as I predicted would happen years ago.

http://www.keithelder.net/blog/archive/2007/01/12/Microsofts-Response-To-The-iPhone-Is-Right-Around-The-Corner.aspx 

(ok, so it wasn’t right around the corner but 3+ years later)

Moral of the story?

LEARN SILVERLIGHT so you can make millions of dollars building Mobile applications just like the iPhone devs.  There, I just made you rich by putting this puzzle together for you, please send me 20% of all profits.

You are welcome.

Change Group Policy – How To Change Screen Save Time Out in Registry

Posted by Keith Elder | Posted in Windows | Posted on 25-11-2009

Before I start this post let me say that if you follow what I’ve outlined below and it doesn’t work, don’t call me! I did this to my virtual machine and it “works on my machine”.  My virtual machine is managed by group policy at work.  Every 5 minutes the screen locks and I have to log back into the machine.  It is the most annoying thing in the world.  Thus, this is my fix for it.  Also note that I work at home and am not physically in the office.  Since I am the only one that has access to this machine I can live with myself.

Now you may say, well, if you were working Keith then you wouldn’t have to deal with the annoyance of the computer locking your screen and then having to login.  The fact is though that I read documentation on another screen outside of my VM, and am on the phone a lot and thus it locks.  Even when pair programming it locks.  Here’s how I got around this group policy to make my life normal again. 

First is open the registry editor (regedit).  Then go to this path:

[HKEY_USERS\{your SID}\Software\Policies\Microsoft\Windows\Control Panel\Desktop]

The hardest part of this is determining which one is your account where the SID is.  Look in the Volatile Environment folder under each one.  There you should see your username.  This way you know you are in the right one.  Once found, modify the “ScreenSaveTimeOut” value.  The value is the number of seconds until the screen saver times out.  I set mine WAY out.

image

Once saved you can open the screen saver settings and see it will wait for virtually ever now before it times out.  Notice that because of group policy I cannot change this setting through the UI but my new value is now saved.  Hooray! 

image

I’ll also note, that yes I do have an admin account on this machine which makes this possible.

Of course group policy is going to reset the value so export the registry setting and save it so it can be re-run easily. 

How to Get Table Sizes in SQL Server

Posted by Keith Elder | Posted in MVP10, SQL Server | Posted on 25-11-2009

Before I get old and forget this little trick I thought I’d blog it. I’m sure someone else out here on the Internets can use it as well.  Especially if you are hosting your database on a hosting company that charges you by the MB and you want to know how much space you are taking up.  Hope it helps.

EXEC sp_MSforeachtable @command1=”EXEC sp_spaceused ‘?'”

Here is a sample of what it returns.

image

Deep Fried Bytes Episode #40: Silverlight 4 and Behind the Scenes at PDC 2009 with Scott Guthrie

Posted by Keith Elder | Posted in MVP10, Podcast | Posted on 24-11-2009

 
http://deepfriedbytes.com/podcast/episode-40-silverlight-4-and-behind-the-scenes-at-pdc-2009-with-scott-guthrie/

 

 

What better way to find out what is going on in .Net development than to get it straight from The Gu himself?  We were invited back to PDC 2009 to cover all of the announcements and get the scoop on what the future is for Microsoft developers. We sit down with Scott Guthrie, Corporate Vice President of the .Net Developer Platform, and discuss the future of the web and especially Silverlight 4 and ASP.NET Webforms/MVC. We also discuss some interesting behind the scene moments of PDC.  But the most important question is what is The Gu’s favorite fried food? Listen in to find out!  This is the first of many shows recorded live at PDC 2009, stay tuned for more.

Deep Fried Bytes Episode #39: Building Composite WPF Applications with Claudio Lassala

Posted by Keith Elder | Posted in MVP10, Podcast | Posted on 24-11-2009

 
http://deepfriedbytes.com/podcast/episode-39-building-composite-applications-with-claudio-lassala/

 

 

In this episode, we sit down with Claudio Lassala to discuss Composite Applications in Windows Presentation Foundation. We chat with Claudio about how developers can build more robust applications through modular approaches. Composite applications use loosely coupled, independently evolvable pieces that work together in the overall application. Claudio also discusses how Composite applications can allow for better testing and distributed development teams.  Ultimately we talk about Prism for WPF and Silverlight.