In the May 2009 issue of the MSPA Newsletter, read about:
- Deliver Solutions Faster with Windows HPC Server 2008. SIMULIA delivers simulation solutions faster with Windows HPC Server 2008, and sees the advanced programming tool set as a critical asset.
- The “Velocity” Project. “Velocity” is the code-name for a distributed in-memory application cache platform for developing scalable, available, and high-performance applications.
- Tune Your Web Applications for Performance. Let us show you some Internet Explorer tips and tricks – we can show you how to troubleshoot and optimize the client-side performance of your web applications.
- SQL 2008 Opportunities abound! We have workshops, training and consulting engagements that cover the gamut of SQL 2008 features and technologies:
- SQL Server 2008 Analysis Services Development and Deployment. An engagement designed to take participants from level 0 to 300 using Microsoft SQL Server 2008 Analysis Services, with emphasis on design, implementation and deployment of OLAP cubes and analytical solutions.
- SQL Server 2008 Reporting Services. An engagement designed to take participants from level 0 to 300 using Microsoft SQL Server 2008 Reporting Services, with emphasis on design, implementation and deployment of reporting solutions.
- SQL Server 2008 for Administrators. Learn tools and techniques to install, configure, secure and maintain Microsoft SQL Server 2008 and benefit from an introduction to new features.
- SQL Server 2005/2008: Failover Clustering. This workshop provides database administrators the knowledge and skill on how to install, configure, secure, maintain and troubleshoot Microsoft SQL Server Failover Clustering. The workshop covers SQL Server 2005 and 2008 and points out the differences between them. It also includes various hands-on labs designed to provide the students with the practical experience and confidence required to manage SQL Server Failover Clusters in a daily work environment.
- SQL Server 2005/2008: Performance Tuning and Optimization. Accelerate time to resolution with proactive planning to keep your IT systems up and running. This workshop provides information on SQL Server general architecture, index and page structures, locking and concurrency, tools and monitoring of SQL Server performance using SQL Management Studio, dynamic management views, query optimization, and insight into SQL OS, memory architecture and programming efficiency. Students take an in-depth look at analyzing performance counters, Profiler events features, blocking, and key dynamic management views for performance tuning.
- Can I Redistribute that File? An FAQ for many ISVs. Read the newsletter to learn more…
- Upcoming Tech Talks and Local Events. Read about upcoming tech talks especially for our MSPA customers and find open enrollment workshops in your area.
In the March 2009 issue of the MSPA Newsletter, read about:
- Move to the Front of the Line. The Frontline program is a wonderful and unique opportunity to work face-to-face with Microsoft product groups. Read more about one such experience an MSPA customer had with the Frontline program to understand how this program might benefit you.
- Windows 7 Ecosystem Readiness Program. It’s time to get ready for Windows 7! This readiness program gives you access to builds, toolkits, support and lab testing at Microsoft.
- Enhance Your Debugging Skills. All software vendors must have debugging skills in their development and support arsenal… debugging is a survival skill that is absolutely necessary. We have a new offering for a debugging workshop that we have developed specifically with software vendors in mind. Review the agenda for this workshop and see if it is the right fit for your organization.
- Use Services to Secure Your Solutions and Servers. Security has to be front and center. We offer a number of services for various environments and states of the software development lifecycle: Application Threat Modeling, Application Security Code Reviews, and Security Health Checks.
- The Microsoft SDL Threat Modeling Tool. The SDL Threat Modeling Tool version 3.1 is now available for download.
- Learn at Your Own Pace (for FREE). Microsoft Press books and Microsoft E-Learning are great tools for learning at your pace… and especially so when they’re FREE. Don’t miss this opportunity to take advantage of FREE offers for learning about LINQ, Silverlight, and ASP.NET 3.5 to develop rich user experiences with Visual Studio 2008.
- Leverage Your MSPA to Help Your Customers. Learn how to leverage your MSPA contract to help your customers in those difficult and sometimes critical situations and improve your product satisfaction with your customers.
- Upcoming Tech Talks and Local Events. Read about upcoming tech talks especially for our MSPA customers and open enrollment workshops throughout the US.
ISVs should be excited with the release of two tools to the SharePoint community. SPDisposeCheck provides a static source code analysis tool to check for leaks that may be caused by not disposing of SPSite and SPWeb objects properly. While most people that have worked with SharePoint know of these perils, this tool can provide a second set of eyes on your code. For those new to the product, SPDisposeCheck will allow you to uncover those instances where improperly disposed objects would result in leaked memory. Instances where this occurs isn’t always obvious, so the tool can help reduce leaks that make it to production.
Another exciting tool is the SPDiag tool. This tool greatly simplifies gathering data required for troubleshooting issues in a SharePoint environment. When working on issues or performance problems getting a good snapshot if the farm environment can help uncover the root cause of the issues quickly and get customers back to work. Those ISVs with SharePoint customer bases may enhance the support experience by leveraging this tool.
Cliff Green
Sr. Application Development Consultant, MCSD.NET, MCTS
Enterprise Services, ISV Practice
There are a couple of items that have recently been released that are important to the SharePoint ISV community and to those that may become part of that community. An article referencing the 10 Best Intranets of 2009 show the growing trend around SharePoint adoption. Of the 10 best, five of those are SharePoint based sites. A quote from the article,
“Most impressively, fully half of the winning intranets used SharePoint, especially the recent MOSS platform (Microsoft Office SharePoint Server 2007). As the following chart shows, SharePoint use has grown dramatically in recent years. This is particularly impressive given that, from 2003–2006, the winning intranets didn't use earlier versions of SharePoint at all.”
We hope that tend continues and that it will continue to provide opportunities for the ISV community to increase revenue.
Another announcement is the latest CTP release of the Visual Studio Extensions for Windows SharePoint Services. This 1.3 version release will address several areas. A full list can be found at the SharePoint Team Blog. Some of the things that are particularly exciting include x64 support, command line build enabling continuous integration and build servers as well as a new project item template for SharePoint RootFile deployment. Final release is slated for Spring of 2009.
Cliff Green
Sr. Application Development Consultant, MCSD.NET, MCTS
In the January 2009 issue of the MSPA Newsletter, read about:
- Performance Challenges for a Social Networking Application. A partner who is developing a social networking application on MOSS 2007 to serve hundreds of thousands of customers around the globe came to us for guidance and assistance to improve their application performance. Learn about the challenges the customer faced and how the ISV team engaged to improve application performance.
- PDC Highlights. The PDC has passed, but you still have access to much of the content presented at PDC online and in person too! You have an opportunity to see live the “best of the PDC” at scheduled events at certain locations throughout the US – read more for details on registration information, dates and locations.
- Learn More – Briefings and Workshops. We offer briefings and workshop deliveries on the latest technologies and products to our MSPA customers. In this month’s newsletter, we highlight a few of these services that you can take advantage of today: Developing Claims-Based Identity Systems, ASP.NET 3.5, Silverlight 2.0 and Developing Workflow Solutions for SharePoint. Additionally, we are currently developing a readiness program for our ISV customer around Azure… this opportunity will enable you to learn Azure, adopt it early and lead the industry!
- Realize Savings with Microsoft Products and Solutions. We can all agree that the economy is at the forefront of many of our minds today; clearly, realizing savings is a leading factor in most business decisions. Microsoft products and solutions can be a key driver in helping your organization realize savings -- learn how.
- Windows 7. The beta is here! Read about how to get the bits now and learn about the new features you can expect with our next release of Windows.
- Virtualization. Virtualization is a key technology in today’s world; as you deploy solutions that use virtualization, you should understand how your solution falls within Microsoft’s support policy for virtualization.
- Internet Explorer 8. If you are a vendor for a web application, you probably already know that IE (Internet Explorer) 8 is coming down the pipeline – once it releases, it will be distributed to end-users via Automatic Updates and the Windows Update and Microsoft Update sites. Learn about the IE 8 Blocker Toolkit in the event you and/or your customers need to manage IE 8 deployments.
- Upcoming Events. Read about upcoming tech talks especially for our MSPA customers and open enrollment workshops throughout the US.
For those developers in the ISV community out there working with SharePoint the SharePoint team has recently made a significant announcement. A static source code analysis tool, SPDisposeCheck, will be made available to the public in order to help check for memory leaks caused by not disposing of objects properly in SharePoint. While the tool will not be made available until later in the year, "planned for release during the coming North American Winter", it will serve as a good starting point to uncover issues and potentially help build better quality code.
The tool leverages guidance from Mike Ammerlaan, Scott Harris and Roger Lamb which can be found in this whitepaper and this blog. To read more click here.
Cliff Green
Sr. Application Development Consultant, MCSD.NET, MCTS
ISV Practice
In the October 2008 issue of the MSPA Newsletter, read about:
- Helping Partners with Architecture and Design Challenges. Whether our partners are building a new solution or updating an existing one, they usually face critical architectural decisions that could impact their product as it gets built, delay the product or present adverse effects over time. Many of our partners have architects and senior designers in house to handle these challenges effectively. However, our partners often seek help and advice from Microsoft Services to make sure that they make well-informed decisions during the design stage, rather than spending extra time and effort to fix problems that crop up after deployment. Read more from Alok Srivastava about architecture and design and learn about the services that we offer our MSPA customers in this area.
- ALM (Application Lifecycle Management) and Silverlight are all the rage these days. In this month’s newsletter, we highlight some services that we offer around these key technologies.
- Application Compatibility. Naturally, with the releases of Windows Vista and Windows Server 2008, we have seen an increase in the number of requests from our ISVs around the topic of application compatibility on the newest operating systems. We have consultants that are dedicated to application compatibility; they provide guidance and advice to our partners on this topic and often engage in Application Compatibility Labs in Redmond, WA and throughout the United States. We have a number of videos where you can meet the consultants and learn from their experiences and advice.
- Upcoming tech talks and open registration workshops that you can sign up for today. In October, we have scheduled tech talks for VSTS/TFS 2008 and Silverlight 2 -- these are tech talks that we deliver exclusively to our MSPA customers. The newsletter also contains a listing of the workshops open for registration in various locations throughout the US.
Last week was a busy one regarding announcements and updates to SharePoint. Below is a quick summary of each of the announcements.
Cliff Green
Sr. Application Development Consultant, MCSD.NET, MCTS
ISV Practice
Welcome to the first volume of the Microsoft Services Partner Advantage newsletter. The objective of our newsletter is to provide our partners with information about our services and to tout the great work that the ISV Practice does every day to empower our partners using Microsoft technologies! In the MSPA newsletter, you will learn about actual engagements, get a sneak peek into services that we deliver, keep up to date on products, technologies and support and view scheduled offerings that you can take advantage of today. We want our partners to fully capitalize on their investments in Microsoft services, so read on!
In the September 2008 issue of the MSPA Newsletter, you will learn about:
- How a partner used MSPA services to jumpstart a SharePoint deployment. The ISV Practice of Microsoft Services counsels independent software vendors on “all-things-Microsoft” by way of our Microsoft Servicers Partner Advantage (MSPA) program. In a typical day, one of our partners comes to us and requests an engagement that is tailored very much to their specific business needs and objectives. Recently, Cliff Green, an ADC (Application Development Consultant) in the ISV Practice, embarked upon one such engagement to assist our partner with extending their SharePoint Server 2007 production environment. Read the full article to understand the partner's objectives, the services that we delivered and the value provided.
- Services in demand. Take a sneak peak at our testing lab services and the content for a WCF workshop.
- New products and technologies. We touch on products and technologies that are the buzz right now: Visual Studio 2008 SP1, SQL Server 2008, Software Licensing and Protection (SLP), and the newest Composite Application Block (CAB) for WPF.
- Important Support Updates. Internet Explorer 8.0 is right around the corner – is your Web site ready?
- Upcoming events you can sign up for today. We have a compilation of upcoming tech talks that we deliver exclusively for our MSPA customers and a listing of the workshops open for registration.
As an ISV you may be asking yourself why to integrate with SharePoint. Aside from being one of the hottest products in Microsoft history there are benefits outside of the market adoption. Windows SharePoint Services is not only a collaboration environment, it is a development platform. Because of that it offers multiple opportunities to expand the current scope and market for your product.
An ISV I recently worked with mentioned limited adoption of their desktop application within a particular user segment because of the licensing costs. This limited the visibility this important user group had to their application and its capabilities. They plan to leverage web parts in SharePoint to expand the reach of their product. Web Parts are containers that can expose information or functionality to people in SharePoint or an ASP.NET 2.0 application. The information that is surfaced within the web part can come from just about anywhere. Because web parts are built using the ASP.NET 2.0 framework the cost of development is typically fairly low. This, of course, depends on the complexity of integration. By leveraging this technology a company can provide visibility to users that may not otherwise be aware of the functionality provided by a product and potentially increase product adoption, awareness and even increase revenue by charging an additional license for the web part integration.
If your company uses SQL Reporting Services, SSRS, to provide reports and information to your user base those reports can be delivered to SharePoint if your customers are using SQL 2005 SP2 or higher. Leveraging your existing reports you can maintain and distribute the reports to a SharePoint document library using the SharePoint Delivery Extension if they are running in SharePoint integrated mode. This allows customers to take advantage of the version, security and other content management capabilities of the SharePoint platform as well as exposing the reports in a portal environment where the users already have some familiarity. If your customers are running in native mode a custom delivery extension could be developed relatively easily using out of the SharePoint web services to upload the document to a SharePoint Report Library.
This just scratches the surface of the ways you can leverage SharePoint as a platform to deliver information, but hopefully gets you thinking about ways it may enhance or drive revenue to your business.
Cliff Green
Sr. Application Development Consultant, MCSD.NET, MCTS
ISV Practice
One of the challenges of developing in the Software + Services/SOA world we now live in is creating a developer environment that mimics a real-world network. This is especially important for ISVs that need to deploy onto a variety of client and server machines.
In the past to build client/server software I would ask my boss for a second machine and a KVM switch or just build the entire solution on one machine and hand it over to QA for proper testing. This worked so-so but had some shortcomings:
- Testing redundancy and failover was nearly impossible. For example testing to make sure SQL Server could fail over to another node and the application would stay healthy.
- Testing against client machines with different patch levels (e.g. does it work the same with SP1 installed?)
- Building software that used Active Directory and other big network services
- Making sure cross-machine security worked. Remember moving something to DCOM and then never having the knobs turned the right direction in dcomcnfg.exe?
With virtualization support in the hardware and OS you can build a sandbox with multiple clients and servers along with your own virtual network and the shortcomings I listed.
Configure Server 2008 As A Workstation
To start, I needed to move my main development workstation from Vista to Windows 2008 Server in order to use Hyper-V. Vijay has a nice post on how to get turn Windows 2008 Server into a workstation. There's also this entire site dedicated to running Server as a workstation
The requirements for Hyper-V include a x64-based CPU that supports virtualization (this is just about any chip you can buy now), the 64-bit version of Windows 2008 Server, and enough memory to run your virtual machines (VMs). I have 4GB in my older Xeon based workstation and it seems to hold up nicely although I need to enable virtualization in the BIOS before it would work. Hyper-V in a developer scenario seems to be more memory intensive than CPU so go for 4GB or 8GB of RAM if you can swing it.
Install Hyper-V
Once I had Server 2008 humming along nicely, it was time to install Hyper-V the Hyper-V role. One of the cool things about using Server as a workstation is that you can choose which roles and features you want installed and leave off things you don't want. Hyper-V is a role you install so simply go into the server manager and choose add role

Once you have Hyper-V installed it will show up in the list of installed roles:

Create Virtual Machines
After that it's time to build some virtual machines. You have quite a few options here. I know there are some free trial ones posted on here or you can opt to build your own. I decided to create my own just to gain the experience of creating virtual machines. The New Virtual Machine wizard lets you choose how to install the OS. If your network has Windows Deployment Services (formerly "RIS") you can choose that and Hyper-V is smart enough to catch the RIS packets and pass them through to the virtual machine. Or, you can choose an ISO file or DVD and install from there. The nice about virtual machines is that once you go through the trouble of making them, they can be saved off as VHD files for easy reuse.

Create A Virual Network
The other task besides creating VMs is to create a virtual network. Choose the Virtual Network Manager from the Hyper-V Manager. Your choices are:
-
External - network that can see the real physical network
-
Internal - network between VMs and the physical computer
-
Private - network for only the VMs
Typically you will want to start with an external network so you can load software and patches onto the VMs and then convert the network to Internal or Private as needed for your development environment.

Install Applications
To get started, I created two virtual machines that replicate a web server and database server. The web server has IIS7 and ASP.Net installed and the database server has a beta of SQL Server 2008. This uncovers another neat benefit of using virtual machines. I'm not too worried about what the beta might do to the stability of my machine because it's as easy as creating a new VM if any issues arise.

With my two servers in place I can start to think about clients. I could potentially create an XP client, Vista client, and Linux client. I'm also keen on trying Windows Server 2008 Core (the command-line only version of server).
In part two I'll explore creating some clients as well as deploying an application from Visual Studio onto the various servers.
Alok Srivastava, Solution Architect ISV Practice, Microsoft Corporation
During all my years in the software Industry, I have architected, designed, developed and managed many applications. Many of these projects started from concepts and many were simply addition to an existing system. The only thing I found common in all these projects is that they were all different and required different approaches to architecture, design and development to finish on time and under budget. Recently I have seen a surge into adopting “Agile” methodology for developing software. This is a very positive shift and it is paving the way for development teams to deal with shorter development cycles and it is enabling them to release features faster rather than waiting for multi-year release cycles. Overall, the benefits of agile development outweigh any additional efforts that may be needed to make it work.
Agile methodology, however, requires a different kind of focus. Before entering into agile development, it is important that development teams have a good understanding of what needs to be in place for them to successfully adopt this methodology. Feature addition to an existing product or building a brand new product, SaaS delivery, on-site deployment or shrink-wrapped product all have impact on the pre-condition that must be met to make agile development painless and effective. Over time I have seen many projects get delayed or not gain any benefit simply because they started using agile methodology prematurely.
In this Blog I would like to focus on the challenges of using agile methodology for developing a new product. Other scenarios will be discussed in my future Blogs on this topic.
Agile Methodology and New Product Development: Taking a new product idea and turning it into a delivered product is quite challenging and it has lots of unknowns to deal with. Using agile methodology for these projects is desirable but very challenging due to a number of risk factors. Most common risks that are likely to impact a new product development using agile methodology are:
1. Changing core requirements
2. Unknown technical challenges that have not been verified with a prototype
3. Incomplete system architecture
4. Lack of framework for continuous integration
All of these can prove to be the stumbling blocks that can derail the project and make the agile development totally inefficient. Let’s take a quick look at the impact of each of these:
1) Changing Core Requirements: Agile methodology works very effectively in managing changes to feature level requirements as long as the core architecture can stay stable. Any requirement changes that impact the core of the system or require changes in the architecture will impact agile development adversely. In a new product, this is quite common and many times the time pressure forces teams to jump into development without waiting for the core to stabilize. During this phase, some of the development work can make progress but the risk of change is too high during this time. Typically development teams can work on prototypes or base platform features (such as utility libraries and such) without risking their development efforts from being rendered useless as major changes occur in core requirements.
2) Unknown Technical Challenges: In my many years of new product development, I have found the need to address unknown technical challenges as absolutely critical no matter which development methodology was being used. For a new product, the number of unknown technical challenges (ideas that have not been proven to work) is way bigger than for an established product. It I usually necessary to identify these challenges, understand their impact, plan contingencies and prove the ideas sooner than later. If one of these efforts ends up falling in the later phases of agile development, this could have devastating effects on the overall delivery plans for the product.
3) Incomplete System Architecture: This proves to be the biggest challenge that an agile development project faces. Typically any of the issues listed above could contribute to this but the eagerness to start working on a small piece of a project without knowing how it fits together with the bigger picture is absolutely dangerous. System architecture provides guidance and framework to make sure that the individual pieces of a new product are coming together the right way. Not having complete core architecture is like a bunch of people walking on their own paths with a “hope” that they are going to meet somewhere. In reality they may be going away from each other, never to come together. Agile methodology has provisions for bringing different parts of the project to sync-up together at the end of each phase. Having a framework to assess where the overall project is going and how it can come together is a key to ensure timely delivery of the entire product (especially when the product is being developed for the first time).
4) Lack of Framework for Continuous Integration: Agile methodology requires that there be a way to continuously integrate the features being developed. Not having a framework to integrate, test and verify that the features are working together as intended could seriously hurt the project and may make integration effort a whole lot more challenging than it needs to be.
Taking advantage of agile methodology to roll out a new product in shorter cycles is something every product team should strive for. However, there are several pre-conditions that are essential for a new product development and should not be ignored. Adding a common pre-start phase to agile development to ensure that the framework is in place usually helps kick off parallel development of small features and continuously release them to customers. A little care before the development is in full swing can help minimize risks to a project and also make sure that the whole product comes together well without any major surprises.
Just a quick link to the new Microsoft Partner Advantage site. Think of Partner Advantage (or "MSPA" because we, of course, have to have an acroynm) as the counterpart for Premier. Instead of an IT focus for the enterprise, MSPA offers developer focused consulting and support for our partner community.
As discovered and documented by Daniel Larson, SharePoint MVP, the SharePoint Infrastructure Update changes the availability of SPContext. Previously one could leverage the IHttpHandlerFactory in order to obtain a reference to SPContext. Now it must be done in the IHttpHandler.ProcessRequest method. For more details please see Daniel's excellent explanation. This is actually not a bug, but a fix that was by design. If you are leveraging the SPContext in the IHttpHandlerFactory that logic should be transitioned over to IHttpHandler.ProcessRequest as this will be the supported method moving forward.
Cliff Green
Sr. Application Development Consultant, MCSD.NET, MCTS
ISV Practice
An infrastructure update for SharePoint 2007 was released yesterday. This post will be number 10,001 on the topic, as I am sure it will be blogged about heavily. This update includes several things that are of interest to ISVs, especially the ability to federate searches. The release includes not only a rollup of hotfixes post SP1, but several platform performance improvements as well as search enhancements to support federated searching.
- Enterprise Search Feature enhancements include federated search capability and administration dashboard that unifies the experience between Search Server 2008, Search Server Express 2008 and SharePoint 2007.
- Several search related performance improvements as well as a new index format create more efficient and faster crawls and query speed.
- Several fixes have been made to the Content Deployment process. This improve reliability, content and settings fidelity and prevent import failures.
- The Profile and Profile Service have been improved to speed performance.
- Investments in the Upgrade and Path process have been made to improve the process for future updates. This should mean less downtime and a quicker upgrade process moving forward.
This should be considered an important update for all customers on the SharePoint platform.
For more information please refer to these KB articles:
Description of the Infrastructure Update for Windows SharePoint Services 3.0 (KB951695)
http://support.microsoft.com/kb/951695
Fixes Included in the Infrastructure Update for Windows SharePoint Services 3.0 (KB953749)
http://support.microsoft.com/kb/953749
Description of the Infrastructure Update for Microsoft Office Servers (KB951297)
http://support.microsoft.com/kb/951297
Fixes Included in the Infrastructure Update for Microsoft Office Servers (KB953750)
http://support.microsoft.com/kb/953750