Thursday, July 24, 2008 #

Creating a WSS / MOSS Command Prompt on the Desktop

UPDATED: 8/6/2008 - Minor issue on Path

I've built quite a few WSS / MOSS machines and one task that I always seem to do is create a simple CMD shell prompt on the desktop (quick launch, etc.) that gives me easy access to STSADM and has the path set correctly.  So in the interest of saving time I've created a simple VBScript file located here as well as the full listing below

wsscmd 

Set Shell = CreateObject("WScript.Shell")
Set Env = Shell.Environment("PROCESS")
DesktopPath = Shell.SpecialFolders("Desktop")
Set link = Shell.CreateShortcut(DesktopPath & "\WSS CMD.lnk")

cssHive = Env("CommonProgramFiles") & "\Microsoft Shared\web server extensions\12"
currentPath = RTrim(Replace(WScript.ScriptFullName, WScript.ScriptName, ""))
envBatFile = "setWssPath.cmd"

CreateBatFile currentPath & setWssPath & envBatFile, cssHive

link.Arguments = "/k " & " " & Chr(34) & currentPath & envBatFile & Chr(34)
link.Description = "WSS Command Prompt"
link.HotKey = "CTRL+SHIFT+W"
link.IconLocation = "%SystemRoot%\system32\SHELL32.dll,94"
link.TargetPath = "%comspec%"
link.WindowStyle = 1
link.WorkingDirectory = cssHive
link.Save

Sub CreateBatFile(fileName, cssHive)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file = fso.CreateTextFile(fileName, True)
    file.WriteLine("@SET PATH=%PATH%;" & cssHive & "\bin")
    file.WriteLine("@ECHO WSS CMD Shell - Shawn Cicoria")

End Sub

posted @ Thursday, July 24, 2008 3:13 PM | Feedback (0)

Tuesday, July 15, 2008 #

Using Virtual.Server COM interfaces on an x64 Machine and Visual Studio

Recently, I messed up a set of VHD files that were based upon differencing disks.  Basically, I killed the parent drive - so, any child drives are useless.

So, how do you know which drives are differencing disks and what is their parent?

One way is through the COM interfaces (that call into an out-of-process server).  Virtual Server must be installed and the service running for these interfaces to work.

However, on an X64 machine you won't be able, in Visual Studio 2005 or Visual Studio 2008 see the Typelib registered via the Add Reference -> COM tab.  Why? Because Visual Studio is 32 bit and the COM registration on x64 machines is not visible via the WOW64 Registry redirection.

So, a simple fix is to create (copy) the same sub key for win32.  A merge of the following will then allow you to set a reference and call into the interfaces

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\TypeLib\{D7526A6D-CF83-48A4-87FD-4FBE2AEC5D93}\1.1\0\win32]
@="C:\\Program Files\\Microsoft Virtual Server\\vssrvc.exe"

What you then need to do is ensure you follow the steps in the MSDN article below to ensure proper COM initialization and setting of the apartment model to MTA instead of STA which is the default attribute applied via the VS templates.

Connecting to the Virtual Server COM Object

posted @ Tuesday, July 15, 2008 1:16 PM | Feedback (0)

Saturday, May 03, 2008 #

Well, already messed up National Shutdown Day...

I had heard on the radio a short blurb about "National Shutdown Day" being Saturday May 3rd (today).  Only problem is I didn't hear about what we were shutting down.  I had initially thought it was something like "National Lights Out day" (which I also missed).

So, today, I light up my computer and do a Live search on what it's all about.  Well, I blew it.  It's about turning off your computer for 1 day - as I'm reading that on my turned on computer (haven't figure out how to use it w/ out the power on) and typing this and also checking weather, some blogs, and my calendar. 

http://www.shutdownday.org/

posted @ Saturday, May 03, 2008 7:34 AM | Feedback (0)

Thursday, March 13, 2008 #

Learning LINQ - No excuses

There are really a whole bunch of great resources out there that help the community get up & running with LINQ.

Personally, with all the additional providers that I've seen (Qak Leaf List) - several of which I see great use for - LINQ to SharePoint and LINQ to LDAP / LINQ for AD.

In regards to tools, LINQ Pad is the tool that allows you to toil with the syntax, etc.

LINQ Pad

And now, here's a good 100+ pages on LINQ syntax in C# 3.0.

Book Preview: C# Query Expressions and Supporting Features in C# 3.0

All of this is free!!!

posted @ Thursday, March 13, 2008 9:59 AM | Feedback (0)

Monday, February 25, 2008 #

Visual Studio Gallery

Here's something that I just came across, perhaps I just wasn't looking.

It's in Beta but it's ultimately a 3rd party library of add-ins, etc. for Visual Studio. 

No search, but you can sort on the columns in the categories.  Search is there, down to the category, but I'd also like to search by some attributes (such as free :) )

Visual Studio Gallery

posted @ Monday, February 25, 2008 6:10 PM | Feedback (0)

Prototype, Proof of Concept, Pilot, and Production - What's the Difference?

Before going full blown production with a Solution, there are times that you want to validate technical, functional, acceptance, or even general interest in a solution.

I find it helpful to clarify what the terms imply and what the primary focus is of each along with what impact on overall delivery risk it may have.

Overall, the ideal path to follow that helps mitigate risk, refine scope, and provide greater confidence in planning is:

PoC --> Prototype --> Pilot --> Production

This also helps both the delivery team and the customer make tollgate decisions as the project progresses.

Proof of Concept (Poc)

A prototype generally should be done early in the development cycle. It is used to validate technical feasibility, helps identify potential stumbling blocks, identifies what a platform can or can't provide, helps determine the scope and level of customization necessary to complete the project.

The prototype can also help identify performance issues.  Generally, today, we assemble many of our applications / solutions in a "composite" fashion.  We're re-using services, functions, etc. from other applications.  This re-use requires integration points.  It's these integration points in our overall "context" that we're vetting with the prototype effort.  While also validating assumptions regarding what the platform or framework can or can't provide.

The outcome is a technical feasibility confidence factor along with factors that impact overall scope and estimate of effort.

Prototype

A prototype, sometimes called "Proof of Concept Prototype" generally provides a more "complete" implementation allowing further examination on the feasibility of the solution, in my mind, from a functional perspective as it is "layered" on the technical solution.  Hopefully, we've tactically created Skeletal PoCs to validate our technical approaches on key parts of our technical solution.

This is where the terms become juxtaposed.  I've heard the inverse sometimes.

However, neither a PoC nor a Prototype should be considered production quality.  These are solely for early determination of the feasibility of the technical or business solution.

Pilot

A Pilot is intended to be production quality - albeit on a smaller scale.  Hopefully, we've completed any PoC and Prototypes to validate our approach, minimize risk, and help determine scope and effort.

The pilot is ultimately useful in getting real user feedback.  Here, we pick-off a hopefully friendly group - if we're gun shy, that can provide constructive feedback but also help mitigate risk.  Doesn't need to be a friendly group, if you're looking for the fire, a more critical group could be the target, however, it may have a negative impact on the next tollgate decision on whether or not to proceed to full build-out and full production.

posted @ Monday, February 25, 2008 6:03 PM | Feedback (0)

Thursday, February 14, 2008 #

Extract DDL and Data - SQL Server Database Publishing Wizard

Here's a tool that completely slipped by me.  I've been using ApexSQL for generation of SQL scripts for creating schema and data.

Turns out, during the Visual Studio 2008 installation I see "SQL Publishing Wizard" pop up on the list.

This tool, can extract schema and data and create a SQL script.

Download details: SQL Server Database Publishing Wizard 1.1

posted @ Thursday, February 14, 2008 4:47 PM | Feedback (0)

Monday, February 04, 2008 #

MSDN Code Gallery - Home

Now that GotDotNet has been mothballed and CodePlex is more project oriented, Microsoft has gotten back into the mix with Code Gallery.

This is a community site, the content is minimal for now, and quite frankly, the interface is lacking.  While there's search, there's not much meta-data associated with the uploads.

We'll see how it pans out...

MSDN Code Gallery - Home

posted @ Monday, February 04, 2008 6:21 PM | Feedback (0)

Tuesday, January 15, 2008 #

FreeConference.com - Free Telephone Conference Call Service

For those of us that are cheap value minded, here's a service that provides conference calling, albeit using a long distance call.  But with all you can eat phone pricing we have today, who cares.

They also have a Web Desktop Sharing tool, in Beta - haven't tried it but the basic service for voice conference is great.

Some outlook integration, of which I've only used the VCS file download, but they apparently have an Outlook Add in too.

FreeConference.com - Free Telephone Conference Call Service

posted @ Tuesday, January 15, 2008 8:44 AM | Feedback (1)

Wednesday, January 09, 2008 #

DirecTV HDPC-20 Dual USB Tuner Shakes Hand with Vista

Finally, I can get my DirecTV signal down to Media Center without a whole bunch of crap.

I've been waiting for DirecTV's MC compatible capability for some time, this finally looks like I can get TiVo like function well integrated with MC.

Using TiVo now, but resistant to moving to the DirecTV DVR as it's interface just plain stinks.

DirecTV HDPC-20 Dual USB Tuner Shakes Hand with Vista

posted @ Wednesday, January 09, 2008 8:43 AM | Feedback (0)

Monday, December 17, 2007 #

Parallel Computing - NY Times Article and the .NET Parallel Extensions.

A timely article appeared in the NY Times today (link) regarding Parallel computing as the next key factor in keeping up with the ever demanding needs of getting things done faster.  As the article points out, the single CPU processor can't address our needs for faster computational capability without literally burning up or melting.  I've seen this personally with Vista and the stressing of the GPU on some older notebooks.

So, what's the solution, well, it's been around for decades, it's just now getting great support in .NET with the Parallel Extensions to .NET now in CTP form

http://www.microsoft.com/downloads/details.aspx?FamilyId=E848DC1D-5BE3-4941-8705-024BC7F180BA&displaylang=en

Check out the teams Blog here: http://blogs.msdn.com/pfxteam/

More importantly, check out Daniel Moth's screen casts (this guy rocks)...

http://www.danielmoth.com/Blog/2007/11/parallel-extensions.html

Now, what application will benefit from parallel processing? Physics still rules here, and all the issues of cross thread synchronization, concurrency, race conditions, deadlock, etc. - well, they all still exists.  But the library is making some of the decisions (partitioning, communication, synchronization, etc.) for you and optimizing based upon the task at hand vs. the hardware present.

One thing to note is they've done tight integration with LINQ, which can provide strong candidates for parallel tasks against sets where the greatest results are gained with in memory processing. 

posted @ Monday, December 17, 2007 5:38 PM | Feedback (0)

Sunday, December 16, 2007 #

Verizon FIOS and Search Jacking - and a Verizon Opt-out.

Well, Verizon seems to be high jacking the search part of my web experience.  And this is not just failed DNS lookup - these are 404 errors (not found) as well.

Which to me is really going to screw up support for all.  I can see my 77 year Old Mother complaining that some web site that I know exists seems be lost in the ether when the "Can find - did you mean" crappy Yahoo search results comes back. 

Really BAD Verizon - Wake UP!!!!

You can work-around it by changing the auto-assigned DNS servers in your router.  That means you need to switch to static DNS and using the known dynamically assigned static DNS ip addresses, you just up the last octet by 1

So, in my configuration shown below my new "static" DNS servers would be 71.250.0.14 and 68.238.96.14 respectively - and to be sure "ping" the addresses or do a lookup with nslookup or a similar tool.  You want to make sure they're listening or you'll have more frustrations.  I had at first, used 13 as the final octet - didn't ping and no lookups worked...

 

Instructions here:

http://netservices.verizon.net/portal/link/help/item?case=dns_assist&partner=verizon&product=fios

posted @ Sunday, December 16, 2007 9:03 AM | Feedback (0)

Saturday, December 15, 2007 #

Query SQL (or any LINQ Provider) Using LINQPad...

Here's a cool tool that provides an interactive LINQ environment that you can use to develop queries against LINQ sources (SQL, Objects, XML, etc.).

If you're working with LINQ and need an environment that supports both expression and language statements in C# or VB.NET, this tool can handle both.  The below shot is using C# statements.

A few bonus items included:

1. provides a view of both the resulting SQL and Lambda expressions used in the query.

2. Provides SQL execution as well

3. A whole bunch of samples for learning LINQ

 http://www.linqpad.net/

Conceivably, you could leverage this in place of SQL Management Studio or for those still stuck on 2K, Query Analyzer....

 

posted @ Saturday, December 15, 2007 4:46 PM | Feedback (0)

Thursday, December 13, 2007 #

Windows Updates - almost 1/2 a GIG?

What's up with the huge update?  Turns out the biggest is Office 2007 SP1 at 390 Meg...

I'm guessing the Vista SP1 will be 3 Gig at this rate...

 

posted @ Thursday, December 13, 2007 8:35 AM | Feedback (1)

Thursday, December 06, 2007 #

Windows Server 2008 RC1 and SharePoint

If you're installing Windows Server 2008 RC1 and expected to use WSS 3.0 or MOSS 2007 you'll need to wait until 12/11/2007...

It's blocked from running - I read somewhere it's due (WSS & MOSS SP1) December 11, 2007.

posted @ Thursday, December 06, 2007 8:28 AM | Feedback (0)