Technology 

Technical Blog Posts?
Hello everyone.  We're been working on new ways to actively engaged our website visitors with current technical posts.  While we do have some new projects along these lines in the works, we did want to make sure you are aware that one of our Vice Presidents, Kevin Dostalek (yes that would be me), has a recently taken his internal corporate blog and made it publically available.  You can get to it here:
 
 
Blog Screenshot
Creating a Base PowerShell Profile for SharePoint
If you haven't yet started using PowerShell with SharePoint to manipulate administrative and developer tasks (especially when trying to debug things) you really should.  It's a nice replacement for all of those things that in the past you might write a ton of little command line apps for.  Additionally, if there are repetative tasks (such as with administration) that you do repeatedly, you can use this as a means for automating them easily with PS scripts.
 
Now, one of the irritating things I found as I started using PowerShell in this way is having to always "prepare" my PowerShell environment everytime I fired it up (loading the SharePoint assembly and getting my initial site object).  Another peeve was that I keep forgetting to type new-object instead of simply new like I'm used to from C#.  So I wrote a quick profile script to take care of these basics for me and I wanted to share that here so others can get moving more quickly.
 
The first thing you need to do is reset the execution policy from Restricted to RemoteSigned.  Before doing this, type:
 
PS C:\users\kdostalek> get-help about_signing
 
And make sure you understand the security ramifications of making this change.  If you are comfortable proceeding, type the following:
 
PS C:\users\kdostalek> Set-ExecutionPolicy RemoteSigned
 
Great, now we can add our own startup profile script.  There are a bunch of places you can add this file... a good reference can be found here, but if you want your scripts available to any user that logs on to the server you should put it here:
 
c:\windows\system32\windowspowershell\v1.0
 
Create a textfile in that directory named, profile.ps1, and open it up in notepad.
 
For this post, I just want to highlight 3 things to put in here that will make you life easier.  The first is setting up an alias for the keyword new, and mapping it to the command new-object.  The second is to automatically load the Microsoft.SharePoint assembly into the AppDomain so you can create objects from it.  The third is a little helper function that takes an URL as a parameter and returns a SPSite object for you to start manipulating.  Here is the script in total:
 
set-alias new    new-object
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
function getsite {
    $site = new Microsoft.SharePoint.SPSite($args)
    return $site
}
 
Save the file, then fire up PowerShell.  You should see it loading the SharePoint assembly from the GAC and you are ready to go.  Now if you type in something like this:
 
PS C:\users\kdostalek> $s=getsite(http://intranet)
 
You will now have an instance of an SPSite object in the variable $s, all ready for you to start hacking away at.
 
There is obviously much much more you could add in the way of helper functions here for things you find yourself repetedly doing in your "interactive" sessions.  And of course, anything you truly need to automate can be captured in a script.  I'll try and post some of my favorite and most useful functions and scripts here in the future.
TechEd Themes
Having returned from TechEd last week (and recovered this week) I wanted to share with everyone some general themes from the conference.
 
A big theme of the conference was on "Agility".  Many of us groaned at the use of this buzzword because it just confuses the definition even more, but it certainly made many appearances throughout, including the Keynote.  The context this was put in was a sort of maturity model which goes something like this: COST-QUALITY-AGILITY.  This maps pretty close to what Gartner and Microsoft have been talking about in the Infrastructure Optimization models this past year (CoreIO, BPIO, and AppIO).  It encompasses just about every MS initiative from their virtualization strategy to people ready marketing to agile development.
 
Another theme was "we've got the stuff here and now, vision-speak begone".  This was manifested in a cutesy Back-to-the-Future movie at the start of the keynote, culminating with an onstage appearance by Christopher Lloyd and a Delorian.  Again, this relates to the first theme in that MS of course has visions, but they've been burned in the past by making them public because in today's world, technology changes so rapidly that you end up changing your visions pretty quickly (to keep your business agile).
 
If you want to watch the whole keynote yourself you can find it here:
 
Here are some timings if you are interested in only particular sections:
00:00 Back-to-the-Future Vision Movie
10:30 IT Challenges/Infrastructure Optimization
17:50 Energizer Batteries Case Study Video
21:00 Tom Bittman, Gartner - Dynamic/Agility
33:15 Areas of Focus
39:10 Virtualization
40:30 Server 2008 and SCVMM Demo
49:28 Processes and Models
53:30 SCOM Demo
60:01 Service-Enabled App Platforms
63:40 BizTalk 2008 / SQL 2008 Reporting Services Demo
70:25 User Focused Software
71:55 OBA and VS 2008 Demo
79:30 Silverlight Demo
87:00 Product Releases and Roadmaps
89:50 TechEd 15th Aniversary Video