Skip to main content
Joe's Blog

Joe's Blog

Go Search
  

Joe Homnick Blog
Speeding up your Virtual PC (VPC) Machines with a Flash USB drive
For several years we have been speeding up the throughput on our VPC driven in-house Microsoft classes by placing the undo file on a separate physical hard drive from the hard drive that the virtual hard drive (vhd) resides upon.  This gives a simultaneous write to the undo files while reading the vhd file.  We’ve seen the biggest improvement during memory intensive situations such as the Just In Time (JIT) activation of .Net applications and the loading of services, such as during machine startup.  If anybody has gone through loading SharePoint or loading the Cassini web server along with an ASP.Net web application on a virtual machine , you can attest to how slow it can be.  We’ve seen increases in throughput of more than twice for these types of operationswhen comparing the separate physical drive approach to a single drive approach.

I’m currently working on a Metro training project for Microsoft teaching AX 2009 to ISV partners.  The vpc for this class is almost 20 gigs in size and has AD, AX 2009, SQL and Office SharePoint all running simultaneously in one VPC.  In an attempt to speed up the classes we had come up with a plan of me traveling the globe with 20 USB drives with the VHD files on them.  The thought of me carrying on the airplane 20 2.5 inch USB hard drives just didn’t appeal to me.  Enter the USB Flash drive approach.  I tested a Patriot 32 gb USB Flash by placing the VHD on it and the Virtual Machine Configuration file (VMC) on the C : drive pointing to the VHD on the USB Flash.  The undo file will then by default go on the same drive as the VMC file.  Launching the vpc and operations like loading the AX 2009 interface, which by design also JITs Office SharePoint, where well over twice as fast under the single drive approach.

The write speed of the USB Flash is terrible; however, the read speed is around 10 mbs (faster than most 2.5 drives).  In this scenario read speed was all we were concerned with since all writes took place on the local C: drive.  There was also the added bonus that no classroom setup was required.  All that was needed was a machine as it is normally delivered from the factory.  I then signed out the USB drives to the students, they inserted them and setup the vmc file on the local hard drive, if needed VPC 2007 was also on the USB Flash. 
 
We just finished this class at the Dallas and Reston MS offices and these were the first  AX 2009 deliveries that had no complaints about VPC throughput, even though lesser or comparable hardware was used than in the previous deliveries.  The only complaint from the students was that MS didn’t let them take the USB Flash drives with them and I have to agree with them on this point.

Give this approach a try and even though you probably aren’t working in as extreme a VPC environment that I tested in, you will see an increase in throughput.  Not to mention the ease and practicality of working with your VPC files.  Below is a picture of my 18 person VPC classroom fitting in the palm of my hand.
 
Flash Class
Top SQL Server 2008 Dev/BI Features from my Canadian Teaching Tour

I just finished up a three week tour of Canada teaching Microsoft Partners about the new SQL Server 2008 Developer and Business Intelligence features.  My tour consisted of four day classes starting in Calgary, moving on to Toronto with a final stop in Montreal and was part of Microsoft Corporate Metro early adopter program.   The SQL 2008 Dev/BI features resonating most profoundly with the classes are as follows:

-          TSQL - The speed and functionality of the new TSQL capabilities such as Merge, Table Value Parameters and Row Constructors.  These enhancements allow for consolidation from what used to take multiple TSQL statements into a much more efficient and powerful command stream.

-          Non-relational extensions - Sparse columns allow for flexible storage of values as a solution for name value pair scenarios. The Filestream type is another non-relational extension that makes storage of large blobs efficient.  Most of these extensions are implemented through SQLCLR types and also include Spatial data types, Hierarchy types and improvements in the XML type.

-          Client programming – The Synch services in SQL Server 2008 allow for synching client apps in a centralized or peer to peer manner without the overhead of Merge Replication.  By using the new Change Data Capture engine capabilities in conjunction with Synch Services a less obtrusive merge technology is available.  The new SQLCE 2008 plays into this scenario.  LINQ to SQL and the Entity Framework, which will ship simultaneously with SQL 2008 as part of Visual Studio 2008 SP1, are also compelling client programming features.

-          Reporting Services (SSRS)

1.       Design – Major overhaul of the Report Designer built into Visual Studio 2008.  Even though it is completely new, it is consistent with the previous designer so that the learning curve is not steep at all.  The designer is much better organized so that groupings can be easily edited and data, parameters, images and built-in fields are all part of a single data window.  Property builders, been completely rewritten in an Office 2007 style and are much easier to use. Data Sources and Datasets interfaces follow this theme and allow for accessing datasets from other reports along with Report Models as data sources.  The Tablix control is now a central core for the Table, Matrix and List controls and allows for very flexible placement of groups and totals.  You can start with a Matrix and turn it into Table or List and vice versa, they are simply a Tablix control now with different property settings.  Rich data visualizations have been added with a beefed up Chart and new Gauge/Indicator controls.  A new Report Designer client will be available sporting an Office 2007 interface and giving local report generation with about the same power as the Visual Studio designer, however, it is stand alone.

2.       Administration  – SSRS can now optionally be run as HTTP Endpoints within SQL so that Internet Information Services (IIS) is no longer a necessary component.  This allows for better memory management and creates several new interfaces to administer what used to be part of IIS.  There are also new memory throttling settings, improvements in the rendering engine (including rendering to Word).  Management tools of SQL Management Studio, Report Manager and SSRS Configurations are now more focused in their implementation.

3.       Programmability – The Report Viewer Control has new capabilities such Examples in Expressions, Print extensions and is central to a new Visual Studio 2008 Report Application template.  The Web Service and URL Access have been modified for rendering improvements and there is a new Windows Management Instrumentation interface

-          Integration Services (SSIS) – The integration pipeline has been streamlined and performance enhanced with several new Tasks, Sources, Destinations and Transformations added.  The Script Task is now a Visual Studio Tools for Applications (VSTA) implementation with full support for .Net references including Web Services and is now pre-compiled for speed.  There is a Cache Transform that allows for caching lookups including putting lookups into flat files that can be distributed with the package.  New ADO.Net Source and destinations extend the Extract and Load functions.  A new Data Profiler Task really extends the Data Inspection function.  You can now go way beyond Data Viewers to analyze your Extracts with a Profiler Viewer that gives a plethora of data pattern analysis.  Additionally, guidance is given on how to use the new SQL 2008 Change Data Capture (CDC) and Merge technologies to create Slowly Changing Dimensions (SCD).

-          Analysis Services (SSAS) – Building on the usability of Analysis Service Cube technology there are new Cube and Dimension Wizards that enhance the cube design process.  The Cube designer has a new tab for Aggregations, with a new Aggregation Designer allowing for multiple saved Aggregation designs and a much more granular settings capability of what and how much gets aggregated.  The Dimensions Designer has a new tab for Attribute Relationships with its own powerful visual designer with visualization of Rigid and Flexible relationships, no more setting these up inline in the Attributes list.  Attribute key columns are easier to access through the properties window.  All along the way there are Best Practice Warnings guiding you on how best design the cube, however, don’t worry because you can turn the warnings off if you don’t agree with them.  There is a new Personalization Extensions (ASPE) capability through the creation of Analysis Services Stored Procedure assemblies allowing for a secure personalization of individual Users/Groups access to specific objects.

This is just a few of the favorite things, there are even more!  I barely touched on Engine enhancements.  We’re investigating into turning the above into a two Hands On Seminar that might be coming your way shortly.

SharePoint 2007 Top Developer Utilities
I just finished our first Microsoft Official Course on Advanced SharePoint Development this last week and in almost every module we had some kind of utility that would ease our development implementation of the concepts.  I thought I would share a list of the top utilities we came up.  Most of these are free on http://CodePlex.com.
 
-Return of SmartPart - http://CodePlex.com/SmartPart.  The old classic from V2 days still really improves developer web part productivity.  It’s a SharePoint web part which can host any ASP.NET web user control.
 
-BDC Meta Man - http://www.lightningtools.com  If you are working with Business Data Catalogs, this tool is indispensible.  Yeah, I know there is definition editor that is part of the SDK, however, the free version of Meta Man blows that one away.  Even creates web parts you can customize for Create and Update operations.
 
-WSPBuilder http://www.codeplex.com/wspbuilder  A SharePoint Solution Package (WSP) creation tool for WSS 3.0 & MOSS 2007.  Just break out your features files into a pre-defined directory system run to gen WSPs.  No more coding manifests and DDF files.
 
-SharePoint Solution Installer http://www.codeplex.com/sharepointinstaller Distribute your SharePoint WSP solution files with this installation program instead of a raw script using STSADM.EXE to install and deploy the solution
 
-Useful SharePoint Designer Custom Workflow Activities   http://www.codeplex.com/SPDActivities - This project takes aim at making it easier to create advanced workflows using SharePoint Designer by providing a set of custom workflow actions.  Actions like Lookup User Info (eg. Lookup who a contributor works for) and Copy List Item (eg. Move doc into Records Center repository) really super-charge SPDesigner workflows.  Additionally, the code is available so if you want to create a Workflow in VS, have at it.
 
-SharePoint Content Deployment Wizard - http://www.codeplex.com/SPDeploymentWizard - Content is exported using the Content Migration API (PRIME) as a .cmp file (Content Migration Package) which can be copied to other servers for import. Unlike the out-of-the-box tools, the Wizard allows *granular* selection of content via a treeview.  Great way to create and import CMP files and move your content from production to test to q/a to production.
 
They really did a good job on this official courseware!  I’ve heard a lot of complaints about the “Roll Your Own” courseware out there on this subject and it was nice to see this courseware lived up to its “Official” branding.
Dynamics AX 2009 and CRM 4.0 .Net Developer Opportunities
I just got back from Munich, Germany where I led an internal Microsoft “Dry Run” training on the new Dynamics AX 2009.  I feel this product is Microsoft’s best solution for an Enterprise Resource Planning (ERP) system and it will be shipping this summer.  I’m heading to Redmond next week to lead the Trainer Prep for the Metro program, which targets getting new product information to earlier adopters, mostly Independent Software Vendor (ISV) partners.
 
I am extremely impressed with the opportunities that the new AX 2009 and CRM 4.0 implementations have for the .Net Developer professional.  Here’s an abstract of a presentation I am working on that covers this topic.  I will be presenting this at several “community driven” Florida Users Groups over the next few months, see http://GCUsersGroup.org for exact locations/times.
 
If you work with .Net Development, SharePoint 2007 or SQL Server Business Intelligence, come take a look at Dynamics AX 2009 and CRM 4.0 as a .Net development platform opportunity. You can now straight forwardly leverage your .Net experience to add functionality to these systems. Starting with a published Web Service API, each product integrates into the .Net Framework environment. Their Application Integration Frameworks allows for integrating client side .Net Web, Windows, WPF and VSTO applications into their respective systems. There are frameworks to integrate .Net components (Web Services, WCF, Workflow, etc) into the event structures of each product. All integration flows through the AX and CRM application layer, so that .Net extensions must adhere to each systems security and business rules structure. AX 2009 and CRM 4.0 are also richly integrated with Reporting Services, SharePoint 2007 and Analysis Services, so the BI and SP Developer can add functionality through these products. Come see each of these .Net Integration opportunities investigated in this session.

 
Using generic MDX queries in SQL Reporting Services

A common question I hear in Reporting Services training is related to implementing generic Analysis Services Cube Multi-Dimensional Expressions (MDX) queries into report datasets.  When you use the .Net Framework Service Provider for Microsoft Analysis Services to connect your Data Source to the Analysis Services Cube you are presented with a Query Designer that greatly simplifies the process of creating a MDX query against the Cube.  This designer is a great tool in creating new queries against a Cube, especially since many developers are intimidated when first presented with the MDX query structure.  However, the Designer requires that the syntax follow a standard pattern of measures only going in columns and dimensions in rows along with other requirements.  This required structure does not allow the import of many existing MDX queries or generating new queries that don’t follow the syntax requirements of the Designer.

A simple solution to this problem is to use the OLEDB Provider for Analysis Services in your Data Source instead of the .Net Framework Provider for Analysis Services.  When connecting to a Cube with this provider you are only presented with the Generic Query Designer and you can paste in or generate valid MDX to create a dataset.  When using parameters within these queries, you need to turn the query into an expression by building a string using the parameter values instead of the hard coded values.  Here’s an example MDX query with a filter element hard coded as ‘Mountain’ that returns values in the Member_Caption attribute with the string Mountain anywhere in that Member_Caption.

SELECT NON EMPTY { [Measures].[Internet Order Count] } ON COLUMNS,
NON EMPTY {([Product].[Model Name].[Model Name].ALLMEMBERS ) }
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS
FROM ( SELECT ( Filter( [Product].[Model Name].[Model Name].ALLMEMBERS,
Instr([Product].[Model Name].currentmember.Properties('Member_Caption' ),
'Mountain' ) > 0 ) ) ON COLUMNS FROM [Adventure Works])

Here’s what it would look like once you turn it into an expression and substitute the parameter named ProductFilter for the hard coded filter value.

=”SELECT NON EMPTY { [Measures].[Internet Order Count] } ON COLUMNS,
NON EMPTY {([Product].[Model Name].[Model Name].ALLMEMBERS ) }
DIMENSION PROPERTIES MEMBER_CAPTION ON ROWS
FROM ( SELECT ( Filter( [Product].[Model Name].[Model Name].ALLMEMBERS,
Instr([Product].[Model Name].currentmember.Properties('Member_Caption' ),
“ & Parameters!ProductFilter.Value & “) > 0 ) ) ON COLUMNS FROM [Adventure Works])

I am a Microsoft Regional Director for the next two years
The Regional Director (RD) program is Microsoft’s longest running community evangelism program and I am proud to announce that I will be part of this program for another two years.  The program first started out in 1994 as a vehicle to launch products through a one day long community Users Group (UG) meetings known as DevDays.   I was one of the original 8 RD’s that were selected from UG’s across the US to run the South Florida DevDays events. 

The RD program has expanded since that time to a group of over 130 RD’s worldwide and is now geared more to supporting these RD’s in their individual Microsoft evangelism efforts than a specific one day event.  I have had the opportunity to meet a great group of professionals through the years in the program and many have become close friends.  The networking through the program has allowed me to grow my training business and I’m looking forward to more of the same this next year.

I have the designation of RD Ambassador for Learning Solutions for the next couple of years and am hoping that it will allow me to travel internationally like I did in 2007.  Check out the RD program and look up your local RD at http://theregion.com.
BI Training in Cayman, I love my job!
I just finished up a week of training in Grand Cayman on Microsoft Official Course (MOC) #2793-Reporting Services for a group of private companies down there.  Additionally, I am negotiating for a return trip in the Jan/Feb time frame for the Integration Services course #2792.  I simply love my job of contract training on high end Microsoft products, it's given me the opportunity to travel the world this year and share great times in exotic places with my family. 
 
SQL Server 2008 is coming and I am working up a presentation that introduces the new Business Intelligence (BI) features.  I'll be presenting this at community driven events like the Gold Coast, Miami and Gator Users Groups during the first quarter of this year.  Here's the abstract, hope to see you at one of the events.
 
Introducing New Business Intelligence Features in SQL Server 2008.
Joe looks at the new capabilities in the SQL Server 2008 Business Intelligence toolset which includes Reporting Services (SSRS), Integration Services (SSIS) and Analysis Services (SSAS).  SSRS has new capabilities that include a Tablix Data Region for very flexible data presentation , Chart Elements that includes Series and Areas Elements that extend graphics capabilities, new RDL capabilities such as DeferVariableEvaluation and page control  elements enhancements, new Designer capabilities, server capabilities such as no longer requiring IIS and the capability of building reports directly in Office 2007.   SSIS boasts Enhanced Performance and Caching for the Lookup Transformation,  Change Data Capture, Data Profiling, Enhanced SQL Statements , New ADO Components and Enhanced Data Types in Import/Export Wizard.  SSAS has new Aggregation, Cube and Dimension Design capabilities, faster Performance through an Enhanced Storage Structure and Personalization Extensions.
Migrating Site Collections and Sites in WSS 3.0 and MOSS 2007
I just finished up another class on Microsoft Office SharePoint Sever 2007 (MOSS) which is built upon Windows SharePoint Services 3.0 (WSS).  MOSS adds capabilities to the “free” WSS for a licensing cost.  I’ve been giving these classes for 15 months now and one of the areas students find most interesting is the multiple deployment scenario’s available in SharePoint. 
 
The Web Servers, Databases and MOSS Shared Service Providers (SSP) that make up the working parts of a SharePoint installation can be distributed across a bunch of different servers, not only for configuration changes but also staging development.  To this end there is always the question of how do you physically move Site Collections or individual sites.  I am writing this blog as a central location to cover the different methods of moving site configuration and content.  Here are the different options and links where you find more information on them.

 
1. Export and Import either a Site Collection or Site, the export is performed by using the command stsadm.exe -o export -url <URL> -includeusersecurity .  You can then import into a blank site by using stsadm.exe -o import -url <URL> -includeusersecurity.  The content database that holds the data to be exported must be put into an offline state during the import.  This can be done right through the Central Administration tool.
 
2. Backup and Restore the Site Collection, the backup is performed by using the command Stsadm.exe -o backup -url <URL>.  You can then restore the Site Collection with Stsadm.exe -o restore -url <URL>.   Note that this only works with Site Collections and the Site Collection being restored cannot exist beforehand.
 
 
3. An option for developers is through the use of SharePoint Extensions for Visual Studio which can be found at http://www.microsoft.com/downloads/details.aspx?familyid=19f21e5e-b715-4f0c-b959-8c6dcbdc1057&displaylang=en. With these extensions you can download a Site Definition into a VS Solution.  You can then modify the components of the Site Definition and then redeploy this Site Definition to any Site you want.  This is on an individual site basis and you can also use the Setup capabilities built into Visual Studio to redeploy.  You would use this approach if you are only deploying the site structure and not the content.  A good reference for this is http://msdn2.microsoft.com/en-us/library/bb530301.aspx#WSSDevToolsTechs_P2_DeployingWSSSolutions
 
4. To automate the process, usually working within a staging scenario, use a Content Deployment job.  This job defines a source site collection to be copied to a destination site collection. The entire source site collection can be copied, or a subset of sites can be copied.  By default this is an incremental copy.  There is even an option to Quick Deploy of individual pages; however, this is a MOSS only capability.  Here’s a link on this method.  http://technet2.microsoft.com/Office/f/?en-us/library/16a7e571-3531-4a4e-baa7-f348a9f9d1d11033.mspx
What is a Hands-On Seminar (HOS) anyway?
Homnick Systems http://homnick.com has pioneered a method of high level IT instruction that scales the traditional method of Instructor Led Training (ILT) to larger audiences.   Traditional ILT is an instruction method that has the instructor present concepts through the use of demos and slide presentations and then assists the students as they work on supplied labs.  Due to the requirement of one on one lab assistance and the supplying of pre-configured computers for the students this approach will only scale to approximately 16 students.  

HOS is a seminar format where the Instructor uses demos to teach the attendee concepts originally presented in slide format.  The attendee can approach this learning solution as a pure seminar without a laptop and then work on the supplied courseware labs on their own time.  Optionally, the attendee can "walk along" with the instructor on their own systems running a supplied Virtual PC (VPC) image.  This "walk along" can be of varied involvement and should still be supplemented with lab work on their own time. Both approaches work very well in learning the concepts and the seminar attendees are usually evenly split on the approach they select.
 
Since the HOS works on the concept of the student bringing their computer and working in a Seminar format with a supplied VPC we have successfully scaled this approach for up to 50 students.  Upon completion of the HOS, the student takes the VPC and labs with them, we have feedback that suggests the labs are being successfully used after the seminar.  This is the only version of “Blended” learning that leverages Instructor Led and online training that I have seen succeed.

Homnick Systems has used this approach with new technologies before MS Official Courseware is available, starting with Reporting Services and then following on with Visual Studio and SQL Server 2005.  We have successfully delivered these HOS’s to thousands of students with class sizes ranging up to 50.  With Visual Studio, Windows Server and SQL Server 2008 all coming out this next year, look for a new series of these HOS’s.
 
Amsterdam and Visual Studio 2008 coming up in September

I have been given the honor of being selected as being a trainer for the Microsoft Metro and Enterprise Go programs on Visual Studio 2008.  We’re having the Trainer Prep in one of my favorite European cities, which is Amsterdam.  Yes, someone had to do it the last week of September and once again it is me!

Also, the Dynamics Customer Relationship Management software (CRM) 4.0 and AX 5.0 (used to be known as Axapta G/L) training programs will be starting up in October and I am looking forward to be part of those also.  The Dynamics CRM 4.0 (code named Titan) Ascend training program gave me the opportunity to travel the world the first half of the year and meet a lot of worldwide CRM partners.  It was an awesome experience.

Visual Studio expertise is a huge part of leveraging the Dynamics environment.  Microsoft has done a great job of opening up the development of their CRM 4.0 product through the use of Visual Studio and I am expecting the same treatment for AX.  Another great thing they are doing with these products and their whole line is integrating Business Intelligence (BI) as a core component.  Instead of requiring the customer to create a transformation system between the Online Transaction Processing (OLTP) data and Online Analytical Processing (OLAP) dimensions, measures and cubes; you are given an Analytical Framework that transforms the data into a Analysis Services Data Source View that ties right into a pre-designed cube.  Very cool stuff!

To get up to date on Visual Studio 2008, check out both the “Community Driven” Gold Coast Users Group http://GCUsersGroup.org in Boca Raton, Fl and the Gator Microsoft Users Group http://GatorMUG.org  in Gainesville, Fl  (at the championship University of Florida), which are having  meetings in November on the topic.  Oh yeah, SQL Server 2008 and Windows Server 2008 are also coming.  Keep your eyes on these Users Groups and this blog for more info.

1 - 10 Next

 Links

HSI Training

Gold Coast Users Group
  Community Driven
      Users Group

 ‭(Hidden)‬ Admin Links