Infosys Microsoft Alliance and Solutions blog

« April 2010 | Main | June 2010 »

May 31, 2010

Virtualization and Private Cloud - Draw a line

Many a times you might get this question, where do I draw a line and say what's virtualization and what's private cloud? While setting up a private cloud lab we had similar question. Though, there is no clear answer, we tried to take out a few characteristics which might help.

There are a lot of definitions of virtualization and cloud as such, let me try to explain it in a simpler way. There are multiple types of virtualization like hardware virtualization, application virtualization, storage virtualization etc. From private cloud perspective we are more interested in Hardware virtualization. Hardware Virtualization technique helps us to simulate multiple hardware boxes out of one single box. It helps creating multiple servers from a single hardware box. The software program which helps achieving this is called as hypervisor. So virtualization helps creating multiple servers from one to improve the utilization of physical boxes in the data center. A physical box which is used for virtualization is referred as Host where as the simulated virtualized boxes within that are referred as Guests. For further discussion let us consider these hardware boxes as resources.

                From simplistic point of view Cloud means unlimited externally located and managed resources available on demand and supports pay as you go model. This definition can be true for public cloud but from private cloud point of view we will have to tweak it a little. Private cloud, as name implies is part of the organization's data center and hence it is referred as private. Practically we cannot apply the characteristic of public cloud saying that it provides unlimited resources. Though, Private cloud has some known limits in terms of resources but it can provide dynamic - on demand resource allocation, management of resources and pay as you go billing/usages.

                Private cloud can be achieved using virtualization but not always necessary. You could create private cloud without virtualization, using a large set of commodity hardware. Private cloud has management, billing and dynamic allocation layer over the virtualized or non-virtualized resource pool. Resources here could virtualize machines, RAM and hard disk allocated to the machines, network bandwidth etc. In nutshell not correct to compare virtualization with private cloud. Virtualization can be used as a building block to achieve private cloud.  Following images should help clarify it better.

PrivateCloudWithVirtualization.jpg

 

PrivateCloudWithoutVirtualization.jpg

 

Characteristics of Virtualization:

1.       Helps in optimizing resource utilization by emulating multiple resources using one

2.       Manual management of resources like upgrades, patches and maintenance etc.

3.       Manual monitoring and usage

4.       Doesn't provide self service commissioning of resources

5.       It's about infrastructure

 

 

Characteristics of Private Cloud

1.       Provides dynamic commissioning and de-commissioning of machines/resources

2.       Automatic and centralized management of available resource pool

3.       Automatic management of resources like upgrades, patches and maintenance etc.

4.       Provides self service commissioning of resources

5.       It's about service delivery

Hope this blog helps in clearing the haze while looking at virtualization and private cloud.

May 27, 2010

Whitepapers on SharePoint 2010

We recently published two whitepapers on SharePoint 2010. Check them out at

1. Empowering Power Information Workers Through Composites Workload of SharePoint 2010 

2. Enhancing Search in SharePoint 2010 Using Managed Metadata Services and Analytics

Share your feedback with the authors directly or insert comments to this post. You can check more publications on MS technologies at our resource center.  

May 20, 2010

UI Prototyping with SketchFlow - A Viewpoint

I have written about SketchFlow earlier here and here. I and my colleague, Sakshi, spent some more time on it and have written a viewpoint paper on SketchFlow (version 3), its key features and how do we compare it with other prototyping techniques. You can access the paper from here, and in case you are interested in other papers from my other colleagues, those can be found here.  

Do have a look at the paper and share your comments. With the release of Expression Suite 4 round the corner, we will soon provide an updated version of this paper, that covers the new features of SketchFlow in version 4.  

May 19, 2010

Silverlight - Using x:Key or x:Name

The other day I was discussing new features of Silverlight 3 and 4 with a colleague and we were talking about the ability of specifying styles in Silverlight 4 without using the x:Key attribute. To this my colleague responded that he has not been using x:Key at all, but always has used x:Name.

This sounded strange to me as this isn't the behavior I had seen with my working with WPF. So I did a bit of scanning around and found that this is a special behavior of Silverlight. Having migrated from WPF to Silverlight, I was always in the habit of writing resources with x:Key attribute and not x:Name. In Silverlight, if x:Key is missed out x:Name is used instead, to reference the resource. The following figure shows the relevant portion from the MSDN documentation

SLResName.jpg

[Source: MSDN Documentation - http://msdn.microsoft.com/en-us/library/cc903952(v=VS.95).aspx]

The reason for this behavior, it seems is really to support how the storyboard resources were introduced in Silverlight 1.0 XAML. I believe (I haven't worked with Silverlight 1.0 and hence haven't really validated this), that at that time storyboards were referred to by x:Name so that they could be accessed in the java script code to start/stop them. If you know more about this, do add a comment. 

While this auto replacement between x:Key and x:Name works, as a best practice I would suggest that the usage of x:Name should be limited to those cases, where you want access to the object in question in code behind. If the object/resource in question is a pure XAML only resource (XAML and resource dictionaries), you should look at using x:Key. This is more consistent with the purpose of x:Key and x:Name and tomorrow if this behavior is changed, your code will not break. Do also note that the FindName API used to get access to XAML based instance objects in code behind, will not return any value if the instance in question is identified using an x:Key.

You could however be wanting to omit the x:Key value on a purpose, which would be using the new implicit style feature with Silverlight 4. However, in that case, don't mention the x:Name attribute as well, for if you do, the implicit style will not work.

May 18, 2010

Two-Tier ERP for the new business

Microsoft has recently announced announced a new connector that accelerates two-tier enterprise resource planning (ERP) deployments between Microsoft Dynamics AX and SAP Business Suite. Check the press release here.

 

This new connector enables IT organizations to use Microsoft Dynamics AX across subsidiaries, divisions or branch entities to facilitate cost-effective business process integration and easily connect with SAP installations at the corporate headquarters location.

This connector will enable common business process integration scenarios for headquarters and subsidiary locations across - 

  1. Financial consolidation.
  2. Intercompany supply chain integration.
  3. Plant automation.

The strategy has been in place for some time and we had seen traction for "Hub & Spoke" implementations where the "Hub" was a Tier-1 ERP with one of the Microsoft Dynamics Products being used in the "Spokes" to provide a "Flexible, Scalable, Nimble, Compliant, Lower TCO,  Simple and Adaptable" system.

The reason is simple -

  • Head Quarters systems are too complex or customized to meet needs of smaller subsidiaries / local units (called 'Local Entity').
  • HQ grow inorganically and need to bring new entity into the overall business landscape; the model helps in maintaining a 'loose' technology link while ensuring a 'strong' business tie.
  • Sometimes the business line and operations are specific to the Local Entity and it does not make sense to build each of these into the HQ system
  • The vertical flavour needed in a Local Entity may not be needed in same manner across all entities while the reporting needs might be common
  • The local entity may not have a stable business model, leading to a need for a 'flexible' solution that can grow and adapt as the business undergoes change
  • The need for managing local tax, regulatory, and market requirements are better handled in a Local Entity seperately without affecting global business
  • Needless to say the TCO is lower with greater local control and accountability.

This sure is a new area opening up new solution architecture for the enterprise...

May 12, 2010

Working with Images in Silverlight Application

Working with images is fairly straight forward in an Silverlight application and there are already many articles about this on the net. So I am not going to get into that. However recently my team faced an issue and that is what I will share here.

The scenario is that we needed to load image programmatically from a file folder and these images are not embedded in the application are resources. Assuming that the images are inside of a folder called Images, this is fairly trivially handled using some code like this (where image1 is the Image control that will display the image) 

            BitmapImage bmp = new BitmapImage(new Uri("Images/Atul.jpg", UriKind.Relative));

            image1.Source = bmp;

 

However when we tried with this code, nothing happened, i.e. no image got displayed on the UI. With some debugging, we realized that while we gave the path as Images/Atul.jpg, the files was actually being searched at ClientBin/Views/Images/Atul.jpg.

The ClientBin part, is easy to understand. That is the folder from where the Silverlight XAP got loaded and hence relative URIs are being resolved related to this folder. But why this extra Views in between?

Our initial thinking was that this is due to the namespace the particular code was in. However a bit more deliberation and this didn't seemed like the right answer. Had this been the case, then the path possibly should have been ClientBin/SilverlightApplication1/Views/Images/Atul.jpg, as the actual namespace was SilverlightApplication1.Views.

Looking at the solution explorer, we then realized that this particular code was actually within a folder called Views. We were getting our hands on MVVM and hence had relevant folders created. But then shouldn't the folders be only for our code organization? Why was that impacting the path?

The answer lies in how the XAMLs are packaged in the assembly. Using reflector we opened the SilverlightApplication1.dll and the resources part of it showed the following.

 

SLImage.jpg

As you seen in the figure above, the particular XAML file, since it was inside the Views folder, got embedded as views/Silverlightcontrol1.xaml. It is due to this when relative URI is resolved, that the base path is taken as ClientBin/Views and not just ClientBin. So get the image to display, we could either of the following

            BitmapImage bmp = new BitmapImage(new Uri("Views/Images/Atul.jpg", UriKind.Relative));

            image1.Source = bmp;

OR

            BitmapImage bmp = new BitmapImage(new Uri("../Images/Atul.jpg", UriKind.Relative));

            image1.Source = bmp;

 

The second approach is possible safer, since in case you change the folder name, the relative path will still work. Do share any comments that you may have.  

 

 

 

 

 

Debugging .NET 4 Applications

From what I understand most of the changes in .NET 4 are towards better debugging support for production code. During development, the existing features with .NET 3.5 and Visual Studio 2008 usually suffice very well. Windbg is a debugger people resort to, if things go wrong in production and it typically is used to analyze dumps. However using it isn't trivial and needs specialized training and lot of experience. I got initiated in using windbg after I had attended an advanced debugging training conducted by MS and it had covered lot of windbg usage scenarios. 
 
VS 2008 offered some control on debugging a currently executing process and debug it by using the sos extension, that windbg uses for debugging .net managed code. However this was limited in its feature set. VS 2010 along with .net 4 makes this lot of windbg like and will mostly do away the need for using windbg in most scenarios.
 
A challenge in debugging production code is the size of dump files. They are huge and hence transferring them is mostly an issue. A new feature in .net 4 allows the profiler to attach to a running process, get access to memory data, help do the analysis and then detach, without having a need to take a memory dump.
 
While this is good, an issue with this is that since you would be profiling production process, it will cause the process to slow down. So use this feature sparingly.
 
Machines are dual core and above these days and more and more programs will start to do multi-core programming. .NET 4 itself adds support for Task parallel library, making multi-core programming easier. With VS 2008, one could do basic cross thread debugging. The debugger allowed you to figure out what thread is executing the current code and would also highlight when the execution would jump from one thread to other. Similar support is now possible for different cores and detailed reports on how cores were used during program execution can also be obtained.
 
Note that the debugging APIs have undergone significant changes. So you won't be able to debug .NET 4 code using VS 2008. There are a few other features as well, that might interest you. See the detailed article on this here.

May 11, 2010

SHAREPOINT 2010 LAUNCH EVENT

Hi,

Block your time for the official launch event. Yes you can be part  of history . http://sharepoint.microsoft.com/2010launch 

Learn about the next wave of productivity at the Office 2010 and SharePoint 2010 virtual launch event. Join the conversation, submit questions, and watch Stephen Elop, President, Microsoft Business Division, deliver the live, worldwide keynote. Plus, you can view on-demand breakout sessions focused on solving IT challenges, while moving your business forward.

This is great news, Microsoft officially released Office 2010, SharePoint 2010, Visio 2010 and Project 2010 to manufacturing!!!.

Volume License customers with active Software Assurance (SA) on these products will be one of the first to receive the 2010 set of products. They will be able to download the product in English, French, Spanish, German, Russian, and Dutch via the Volume Licensing Service Center starting April 27. Other languages will be available on a rolling timeline. Customers without SA will be able to purchase the new products through Volume Licensing from Microsoft partners starting May 1.

As announced by the product team earlier, an official launch will be on May 12 with a keynote from Stephen Elop, President of Microsoft's Business Division. Customers, Partners and individuals around the globe can participate in a virtual launch by going to http://www.the2010event.com. The virtual launch will include product demos, customer and partner testimonials, and interviews with product managers and executives. Several early adopter stories from the TAP programs will be highlighted during the event.

Looking forward to a great launch on May 12th !!!

 

Thanks and Regards

Azhar Amir

May 7, 2010

SharePoint 2010 and SilverLight

Hi,

SharePoint without silverlight had less compelling reason for adotption of building solutions with an better user experience. With seamless integration of sharepoint 2010 ,Visual Studio and Silverlight.life for developers is much easier and simpler. Here are few points i gathered .The next happening combination which is going to take your next solution to a different level of user experience is Share Point 2010 and SilverLight.So how does SharePoint 2010 Compliment SilverLight

 

  • Hosting of silverlight application with the new silverlight webpart in SharePoint 2010 is very simple, all you have do is point to an XAP file.
  • There is also a new media web part which is silverlight based and streams video
  • Developing the sharepoint applications with silverlight is easy with the new Client Object Model (OM)
  • When you start using the new Organization browserfeature of SharePoint 2010 the office web application like word Web app and solution gallery use silver light for creation of asset and gives and enhanced silverlight experince
  • Developers can easily develop and debug by using the new client OM (I am going to blog about Client OM later)

will try to blog more about this topic as i start exploring more on SP 2010 SL 4.0 and C (OM).

Thanks and Regards

Azhar

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter