Thursday, December 04, 2008

Parallel Development using VS.NET 2010, Why, and How?


As demands for application performance increased, customers have traditionally solved the problem by simply increasing the underlying power of the hardware that the application is running on. Over the last several years developers have seen the CPUs that their applications run on start to include 2, 4 or more cores. While the power of the hardware has increased, the transition to a multi-core environment has impacted the applications that developers write. The majority of applications will not be able to automatically take advantage of this multi-core hardware change. Developers will need to modify the way they write applications and the architectures they use for these applications. Creating parallel capable code using current technologies is unfortunately not trivial. Multi-thread programming introduces not only application architecture challenges to complexity and robustness but also exposes the tooling developers use as being optimized for single-threaded development.


Microsoft is making a major commitment to make parallel development accessible to a wide range of developers, whether they are using native code or the .NET Framework. With Visual Studio 2010 we are delivering:
• Visual Studio IDE support for Parallel development
• Native C++ libraries and compiler support
for Parallel applications
The .NET Framework 4.0 also provides the core framework support to build parallel applications through technologies such as P-LIINQ and parallel language semantics and framework components. Visual Studio 2010 provides integrated parallel development support. In Visual Studio 2010 the debugger is aware of the parallel nature of code and can present the state of the application execution during debugging across the different parallel execution units. The debugger also has custom displays for parallel code such as task & thread windows and a “multi” or “cactus” stack view window that graphically shows the execution path of the individual tasks.

Being able to develop and debug your application doesn’t mean that it takes advantage of all the available power. To help developers do this, Visual Studio 2010 also includes a parallel capable performance analyzer that enables you to extensively instrument you code to visually see the
concurrency issues that are in your applications. Combine this with the features of the Visual Studio IDE, and developers have a highly productive, visual environment for building the
best parallel capable applications available.

Microsoft’s goal is to simplify parallel programming by taking a holistic approach and providing solutions which span from local to distributed computing and from task concurrency to data parallelism. Microsoft plans to deliver a solution-stack consisting of OS resource management, a concurrency runtime, programming models, language extensions, libraries, and tools, which will make it simpler for both native and managed code developers to safely and productively build robust, scalable and responsive applications. This will also enable industry partners to complement Microsoft’s technologies in order to solve the complex problems associated with developing high-quality parallel software.
Microsoft’s goal is to increase productivity by encapsulating complexity, so developers can focus on solving business problems.

The CTP includes .NET Framework libraries such as the Task Parallel Library (TPL) and Parallel LINQ (PLINQ), as well as the Parallel Pattern Library (PPL) and Concurrency Runtime for developing native applications with C++, and parallel profiling and debugging tools.
This CTP is available for download as a Virtual PC image. Virtual PC supports only one core; a user will likely not see significant parallel performance benefits on manycore machines.

Wednesday, November 12, 2008

Finally VSTS product Team did it; Dynamically analyzing your Applications using Visual Studio.Net 2010Using the Threads Profiler

Actually this is a feature that I have waited two years, Since two years ago, I began to work with Intel people over the Intel Thread Checker, and Intel Thread profiler tools. I even have delivered the first course all over the world about how to use Thread Checker, and Thread Profiler. At those days, we in Compu Pharaohs (The company that I work for) has initiated an awareness campaign in cooperation with people at Microsoft Egypt in Order to evangelism for the VSTS 2005. I wished at these days to see some of those tools capabilities to get availed at the VSTS. Actually Intel People told me that there are working with the Microsoft VSTS team in order to include the thread profiler capabilities into the VSTS. Afterwards, I received lots of customers requests for availing the multi-threading profiler inside the VSTS. Sometimes, I replied to those people\s request by what Intel people told me, but inside myself, and as a developer for more than 15 years, I was looking to include the support of dynamic analysis for the multi-threaded applications inside VSTS, not to use the thread profiler. Why?
Because when this is getting included inside the VSTS, it will leverage the power of test case management, work item tracking, and bug tracking.

Today, What I always dreamed off has come true. VSTS 2010 is coming with Multi-Threaded Applications Dynamic Analysis. This means that you will be able to profile your threads, check whether your application is utilizing the parallel resources correctly, or not. If not, how is the workload is distributed over the different threads. How does each thread perform? What is the running code inside each thread…etc?

The above figure shows one of the thread dynamic analysis for a given application.

This actually, can help developers parallel applications developers to develop, and test their applications by an easier year. As many of you know that the parallel processing is nowadays a key factor in the success of many enterprise, as well as critical mission applications. The processors industry nowadays is scaling out by means of adding multiple core processors inside one box. This is due the physics of the processor bus clock speed capacity. Up till the Nano technology could be used into the processors production, the processing clock speed will not increase massively, instead Intel will increase the number of core inside the single-box processor (from 2, to 4, to 8 now,…etc). Developers need to understand this correctly, and design their applications in a multi-threading mode which is currently the only way that can utilize the real power of the multi-core processors. Microsoft he seized this opportunity and introduced at the VS.NET 2010 CTP a Thread profiler that can dynamically analyze the different running threads of the system during running the applications.

Tuesday, November 11, 2008

Tech ED Developer 2008 Keynote Speech VSTS briefing

Jason Zender Announcing the VSTS 2010 Lab Management
Jason Zander kick start Tech·Ed EMEA Developers with his keynote presentation. Jason discusses what the team is doing as the leader of the Visual Studio division at Microsoft to make a developer's job easier with Visual Studio 2010, the next release of the market leading Visual Studio toolkit, and provides extensive examples with Visual Studio 2010 demonstrations.
He has announced again the release of the first available CTP for VS.NET 2010. It is important here to highlight the new features that he has already talked about

Monday, November 10, 2008

What Happens in Tech Ed Developers 2008 This Year:

Welcome from Barcelona, Spain, one of the most attractive cities all over the world, at least for me :)
But what really makes it more attractive these days, is being the incubator for the most important technical event for all developers across EMEA (Europe, Middle East, and Africa) which is Tech Ed Developers 2008. This year, the event seems more blurring, lots of sessions, with higher level than last year (at my opinion). For the second year in row, I contribute at the event as an Expert which really pleased me.

It was nice chance to meet Brian Harry: the Team System GPM (Group Program Manager), Stephanie Saad; the TFS GPM, Mario Rodreguiz; the TFS Architect, and Work Item Tracking Program Manager, and Peter Prosovt; the Architect Edition Program Manager. We discussed many points regarding the coming VSTS 2010 version. And through discussions, as well as through attending there session and knew many important new things that are already have been released into the available CTP, or will be available at the final release but didn't finished yet. For people who didn't love VSTS yet, I promise you to fall in love this time with the release of the 2010 version. I can assure you that :)

Friday, October 24, 2008

VSTS 2008 Database Edition GDR RC Has Been Released

Wonderful News, VSTS 2008 DB Professional, commonly called Data Dude, has been Released today. The Father of this wonderful product (Gert Drapers) has just announced couple of hours ago in his PDC session that his Team has released the DB pro GDR (General re-Distribution Release).

One of the Most Wonderful features that is coming with this GDR is the SQL Server 2008 support through the usage of the provider Model. Actually this support has begun to be a hot question for many of the SQL Server 2008 early adaptors enterprise customers who uses VSTS as well inside their development Departments
you can download it from the following Link:

It is currently apparent that this release will have a massive changes of the initial DB pro 2008 release. Anyways this is not the GDR Final Release version. The Final Release is Expected to Get release before end of this year (2008).
Download Setup

Friday, October 03, 2008

Announcement of Visual Studio.NET 2010, and .NET framework 4.0

On 29th of September Microsoft has announced the first CTP of VS.NET code name Rosario under the commercial name of Visual Studio.NET 2010. This version will come along with .NET framework that gives major attention for many new aspects. This includes; Cloud computing which is the real implementation of the S+S (Software + Services), and parallel computing, and multi-touch applications, and Lab Management.

Moreover, it tries to enhance web development experience, code writing, AJAX based applications, and office, and SharePoint Integration, and surely my beloved part; the Team System (I will talk about this in more details at my next coming blogs).

I Invite you to download the CTP and get Impressed as a Coder, Tester, Architect, DB Professional

Download the Factsheet (pdf)

Download the Factsheet (XPS)

Thursday, June 12, 2008

New Release (3.1) of Teamprise Plug-in for Eclipse

This is a maintenance release free to everyone with a valid Teamprise 3.0 license and includes several bug fixes along with a few new features. For the proper release notes, take a look here. However I just wanted to point out a few highlights.

Improved Offline Support
With-out doubt, the biggest new feature in Teamprise 3.1 for most people will be the improved offline support. If you right click on a project in the Eclipse IDE, you are now presented with a "Go Offline" option which allows you to tell Teamprise not to bother trying to talk to TFS for a while (previously you had to restart Eclipse for Teamprise to ask you if you wanted to go offline, and only then after it had tried *really* hard to connect).
While offline, you can still perform all the file operations like you expect -- you can add, edit, move and delete files just like if you were online.
When you want to come back online (say when you have stepped back out of the plane, bus, meeting room), you can right click on the project and say "Return Online" and Teamprise will do it's best to detect what changes have happened while you were away, giving you the option to pend those changes.
There is even "return online" capability in the stand-alone client Teamprise Explorer which is very neat and makes working with tools that are not TFS aware a little easier too. The actual algorithm used by the return online feature is more sophisticated than just checking for read/write status in your local workspace, we also do some magic and compare checksums of the file contents etc. Fellow Teamprise blogger Ed Thomson was the lead developer for the offline work and he has some more details on his blog.

For detailed release features please check it on Martin Woodward Blog address below

Sunday, May 25, 2008

VSTS and Other Technologies: great future is waiting them together

During the Last Weeks I have spent notable time in studying the booming REST Architecture. Actually I think that there is increasingly booming interest about this architecture that has been first proposed in 2001.

What made me interested to deep dive into was the new support that has been introduced inside the WCF 3.5 for it.

Before that, I have spent another notable time in studying the Open XML standard during the fierce battle of ISO voting.

Today, I have a belief that combining them together can help VSTS to have new day over other platforms specially Linux (when using something like the Teamprise Plug-in for Eclipse).

1- If the MSF template documents could be availed in Open XML format, this will help in using it on Linux using one of the Open Source Linux based OXML editors.
2- Availing the TFS interface through RESTful web service may simplify the process of extending the VSTS especially for clients that works over Linux and non-windows platforms.
I think that I will try to explain the RESTful architecture at the next coming weeks.

Wednesday, April 02, 2008

Open XML Approved ISO Standard

As I have promised yesterday, here are the details of the Approval of Open XML ISO standard document format that has been published yesterday:

Tuesday, April 01, 2008

Open XML ISO Voting Result

Few hours ago, Open XML (OOXML) has been approved as an ISO standard. Today the results have been published by ISO at 14:00 Geneva local time. The approval came with a missive number of P as well as O members that votes yes.

The Open XML has been Approved by the majority of 75% of the P-members and refusal of only 14% of the overall voting countries (10 Countries)
As a member into the Egyptian ISO national body, I had the honor to vote by YES for this distinguished standard. As an Arabic guy I am really happy that today, Arabic normal users are able to write their own Arabic documents using an ISO standard document format. The Arabic governments can exchange their own documents using a standard document format. Moreover, the Arabic scientific conferences will be able to accept Word Arabic documents as a standard document format.
At my subsequent Article, I will begin to talk about how can Open XML ISO standard can affect the VSTS users. As VSTS MVP, During my support for the VSTS users across Middle East Countries, i have faced some challenges that Open XML can solve it now.
I will publish the detailed result tomorrow.
Congratulations for all Arabs, as well as Microsoft People.

Tuesday, January 15, 2008

What is new in TFS 2008: More Details - Part2


Continuous Integration builds –Supports the creation of build triggers that allows you to configure exactly when Continuous Integration builds should be started. For example, you can set a trigger so that every check-in starts a build, or you can set up a rolling build so that builds will start no more often than every X minutes.
Support for build queuing –Supports build queuing and queue management. This is especially useful for Continuous Integration as multiple check-ins may queue up multiple builds.
Scheduled builds –Supports scheduled builds, which can be configured to start at specified times based on your organization’s requirements.
Drop management –Supports drop management, which gives you the ability to set policies for when builds should be automatically deleted.
Specify build properties - Allows you to specify what source and versions of source should be built along with other build properties for a build type. There are many more exposed properties for customizing a build. Additionally, MSBuild command-line parameters can be passed when queuing builds.
Extensibility of build targets –Improves extensibility of the build targets. For example, you now have the ability to easily execute targets before and after each Visual Studio solution or project is built.
Build management –Allows you to stop and delete builds from within Visual Studio.
Build configuration –Simplifies the ability to specify what tests get run as part of a build.
Build project file location flexibility –Provides the ability to store the MSBuild project file (and its associated rsp file) anywhere in the version control hierarchy instead of forcing the use of the TeamBuildTypes folder.
Support for GUI tests – Allows running graphical user interface (GUI) tests as part of the build.
Check-in Policy – Supports a new check-in policy, which prevents users from checking-in code when a Continuous Integration build is broken.
Managing build server – Improves ability to manage multiple build machines.
Workspace mapping – Build definition can be associated with a "real" workspace, meaning code from multiple team projects can be retrieved, client mappings can be specified, etc. Working folder mappings will be managed in the GUI instead of in workspacemapping.xml

Thursday, January 10, 2008

What is new in TFS 2008: More Details - Part1

Microsoft Visual Studio 2008 Team Foundation Server(TFS 2008) introduces a number of new features and capabilities. The primary changes have been:

•Administration, Operations & Setup. Installation has been simplified to reduce setup time and improved to support more deployment scenarios.

•Build. Build includes Continuous Integration, scheduled builds, and build queuing solutions out of the box. Build management and extensibility has been simplified with more functionality available from the UI.

•Version Control. Version control includes much better support for offline work and has improved performance.

•Work Item Tracking. Work item tracking includes an improved query builder and improved support for work item attachments.
These product changes are listed and briefly described below, followed by a table explaining how the changes will impact the guidance in this guide. Use this chapter to aid in your Microsoft Visual Studio Team Foundation Server upgrade planning.

1-Administration, Operations & Setup

•Simplified installation –Installation is made easier and quicker compared to Visual Studio 2005 TFS. Improvements include the elimination of the separate data-tier installation as well as the elimination of the domain account requirement. Team Foundation Server 2008 supports built-in machine accounts (such as Network Service) wherever possible.

•Support for SharePoint 2007 –Adds support for SharePoint 2007 and Windows SharePoint Services 3.0. Team Foundation Server 2008 will support SharePoint on a separate server from the Team Foundation Application Tier Server.

•Support for Windows Server 2008 – Supports the next version of Microsoft Windows Server™; for example Microsoft Windows Server 2008 and Internet Information Services (IIS) 7.0.

•Support for X.509 Client Certificates – Supports the use of X.509 client certificates to improve authentication security.

•Large group synchronization –Improves performance and robustness and will be able to support large numbers of users — approximately 30,000 or more users in a single instance of TFS.

•Support for SQL named instances –Allows sharing of a SQL Server between multiple TFS instances, or with other applications. This allows different instances of TFS to use the same installation of SQL Server 2005.

•Support for non-default ports – Improves configurability to support alternate Web sites and ports