Microsoft Corporation Facts and Statistics

Some Facts, Statistics and Figures about Microsoft Corporation:-

Revenue and Headcount

Headcount & Revenue Growth
Microsoft’s worldwide headcount and revenue growth for the past 10 fiscal years are summarized below:

Fiscal Year Ending *

Head Count *

Net Revenue (US$) *

Growth *

Net Income (US$) *

Growth *

June 30, 2009 92,736 $58.44B -3% $14.57B -18%
June 30, 2008 91,259 $60.42B 18% $17.68B 26%
June 30, 2007 78,565 $51.12B 15% $14.07B 12%
June 30, 2006 71,172 $44.28B 11% $12.60B 3%
June 30, 2005 61,000 $39.79B 8% $12.25B 50%
June 30, 2004 57,086 $36.84B 14% $8.17B 8%
June 30, 2003 54,468 $32.19B 13% $7.53B 29%
June 30, 2002 50,621 $28.37B 12% $5.35B -28%
June 30, 2001 48,030 $25.30B 10% $7.35B -22%
June 30, 2000 39,170 $22.96B 16% $9.42B 21%
June 30, 1999 31,575 $19.75B 29% $7.79B 73%
Employment Information
Last updated: Dec. 31, 2009
Current Employment Headcount
Location Employees
Worldwide 88,214
USA 53,274
Puget Sound (Washington State) 39,637
Reported Gender Breakout (USA)
Gender Employees Percentage
Male 40,447 75.9%
Female 12,827 24.1%
Reported Age Breakout (USA)
Age Range1 Employees Percentage
29 or Under 8,650 16.2%
30-39 23,375 43.9%
40+ 21,249 39.9%
1Average age: 37.6 years.

Functional Breakout (Worldwide)
Role Employees
Business Group 42,258
Sales & Marketing Support Group 36,875
Operations Group 9,347

Microsoft data centers go beyond the container

Microsoft’s data center of the future will be more like a trailer park.

Only the concrete pad will need to be built on-site, with everything else shipped in as a pre-manufactured unit. That’s a step beyond the current approach, used in places like the company’s massive new Chicago data center, where Microsoft has the servers shipped in a container but still requires a traditional building to provide water and cooling.

A proof-of-concept version of the prefab units that will make up Microsoft’s data center of the future.

Data centers are key to the economics of Microsoft’s future–everything from Bing to the cloud-based Windows Azure to the Microsoft-hosted versions of today’s software like Exchange and SharePoint

“Our plan for the future is to have essentially everything but the concrete pad pre-manufactured and then assembled on site: the IT, mechanical and electrical components are all part of pre-assembled components that we call an ‘ITPAC,’” general manager Kevin Timmons said in a blog posting on Tuesday.

Timmons said that the units will be made from standard recyclable parts such as steel and aluminum and will be able to be cooled with as little as a single water hose using residential levels of water pressure.

The units could house anywhere from 400 to 2,500 servers and draw between 200 kilowatts and 600 kilowatts. With automation, Timmons said that a single person could build a unit in just four days. The units could either be placed in a large building, or even placed outside as long as they had protective panels attached.

“We believe that by utilizing this new approach, Microsoft can reduce the time it takes to ramp up new cloud computing capacity in half the time as traditional data center infrastructures, as well as significantly reduce the cost of the building,” Timmons said. “This gives us the flexibility to grow without having to commit to a large upfront investment for a data center and hope that demand shows up later.”

The units also have significant environmental benefits over prior data center designs, using far less water–as little as 1 percent of traditional data centers–and using ambient air as opposed to requiring expensive chillers to cool the servers.

On the down side, Timmons isn’t expecting to win any beauty prizes for the new-look data centers.

“These facilities will not be pretty and might actually resemble the barns I spent so much time around during my childhood in rural Illinois,” he said.

Designing Application Prototypes using Sketchflow (Expression Blend 3)

Expression 3 — > Blend 3; wow! .. Download a 60 days trial version of Blend 3 and experience it NOW!.

Visio & others are a great tools but don’t actually target Prototyping and then i came to know that if i was suppose to build some phase1 (RE) diagrams it was perfect, but since i had to show prototypes which are suppose to be the simulation of actual software and need to give a look & feel of reality and have to be interactive and user should be able to provide their feedback on them.

Sketchflow allowed me to do the following:

Developing a site map which cleared the site flow

UI Screens using, actual controls and drawing tools
Programming & Scripting the controls & screens
Interconnecting those screens
Developing component screens, to be called on other screens
Running the output in a test player (browser)
Getting the end user ink feedback on my screens and saving that feedback and sharing internally
Automatically generated the document of my prototype project

.NET, C# Datatable get a Distinct Value

You can get it through a single line statement, which is as follows:

abcDataTable.DefaultView.ToTable(“abcDataTable”,True,”fieldName”)
first parameter is the name of the datatable,
second parameter is a boolean, by default it is false, on selecting true it returns distinct elements
third paramenter is the name of field from which we want to get distinct elements

Happy Programming!!

SFTP in SSIS using WINSCP

I had a requirement of fetching data files (.txt) from client server using sftp and insert them in our own databases. Initially i thought it would be easy, i just have to configure FTP task in SSIS and get it going but later i realized that SFTP is not supported in SSIS.

A little googling / binging (i have started prefering bing for microsoft related searches and also because i love bing wall papers, they are very appealing and informative) took me to www.winscp.com

Its a free utility sftp software and can be used through SSIS

Let me explain how it was done.

1. drag and drop execute process task from the Toolbox – > control flow item
2. drag and drop for each loop container from the Toolbox – > control flow item
3. drag and drop data flow task from the Toolbox – > control flow item and drop it inside for each loop container
4. connect Execute process task with for each loop container
5. you will have a picture something like this

6. Right click on for each loop container and click edit. Following picture will appear. Mention the folder on which to enumerate and define the type of files. (you can use *.* if you want to enumerate all types of files)

7. Click on the variable mappings and following screen will appear. Add a variable with the name str_FileName.

8. You are done with configuring for each loop container. Now move to Execute process task.
Right click execute process task and following screen will appear. Move to the process tab.
In the executable part, mention the location of WINSCP exe
In the arguments part, mention the credentials
(In my case, i have mentioned the FTP address saved in my WINSCP profile. its format is like this username@FtpUrl.com). After mentioning the credentials, mention the WINSCP scripting file location. so the whole value is Arguments section is

abc@abc.com /script=C:\filegetter.txt

This scripting file contains the information to connect WINSCP and get the required files and save in our directory. I will show you the content of that file laters.

Now move to Working Directory portion and enter the file location where you want to keep the files that are obtained from the ftp

9. Now you are done with configuring Execute process task. Lets move on to Data flow task inside for each loop container and right click it and press edit.
It will take you to DATA FLOW tab.
Drag and Drop Flat File Source from the Data Flow sources (from toolbox) and drop Ole Db Destination from the data flow destination (from toolbox).
Link flat file and Old Db. You will get something like the below.

10. Right click on the Flat file source and click Edit. Enter flat file connection manager name (FileConn) and press ok.

11. At the bottom, in the connection managers portion, a FileConn icon will appear. Right Click it and press edit. In the advanced tab, enter the column names. When done, press okay.
It will open up the below screen.

12. Click On FileConn, right click it and press properties.
Go to the Expressions, click on the elipses as followed

13. After clicking, following image appears. click on the property combo, select connection string, after this, click on expression combo’s ellipse.

14. After clicking it, following image appears. It is expression builder. Drag the User::str_FileName to the Expression text box. This will map the User::str_FileName variable with the file name which is forwarded by the for each loop container. Thats why we define one variable at for each loop container and use it in the connection string property for FileConn to map them. Click OK

15. Now right click Ole Db icon and press edit. Make a connection to Database and provide the table name where data needs to be inserted. Make sure you map the column names correctly.
You would be seeing the below screen. Press okay.

16. You are good to go now. Run the package and it will work.
Last but not the least, the WINSCP script, that connects the SFTP client. It is like this. It is very much self explanatory so no need to explain.

In Defense of Single-Tier Applications

You put all of your code in the code file of your ASP.NET pages — but other developers keep kicking sand in your face because you’re not doing n-tier development. Peter’s here to say that you’re not (necessarily) being dumb.

I tend to build multi-tier applications with a layer of middle-tier business objects that are called from a little bit of code in my pages’ code files. However, there are any number of ASP.NET developers who don’t use that model. Instead, these developers put most of their code into their pages’ code file.

I’m here to say: That’s OK. There are three conditions that need to be in place before it will make sense for you to use a multi-tier development strategy.

Condition 1: Team Environment
The first condition is whether you’re working in a team environment. One of the beauties of multi-tier development is that you can divide the application code up into several different code files and (though class libraries) into several different projects. As long as team members settle on what methods, properties and events each class will expose, developers can work more-or-less independently on the same application.

If you’re working by yourself and you don’t have much overlap in functionality between pages, then multi-tier development won’t offer you much help. If you do have overlap in functionality (for instance, if customer data can be updated from several different pages), then there’s a danger that those different pages will implement the functionality in different ways. Having a Customer object allows you to keep that code in one place and have it managed by one developer. Even if you’re a lone developer, using class files like this can reduce the amount of duplicate copy-and-paste code in your application.

Condition 2: Complex Business Logic
The second condition to consider is whether you have to support complex business logic. As business logic becomes more complex, each If… Then statement you add doubles the number of paths through your application and increases the testing required. If, in addition, all testing must be done through the application’s UI, testing becomes a bottleneck.

Object-oriented development (along with applying well-known design patterns) reduces this problem. Rather than a few big hunks of complex code, you end up with lots of simple objects that can be tested individually: logic is replaced with objects. But note that I said business logic. If most of your complex logic is related to workflow or handling the UI, then a single-tier model may still be valuable to you.

Closely related to this precondition is whether your application will see much modification and/or extension over the course of its life. Multi-tier applications are easier to extend and modify than single tier applications. For instance, if you’ve used the right design pattern you can often add new functionality just by dropping a new DLL into the application and modifying a single line of code. This is a non-benefit, however, if your application is static after its release.

Condition 3: Scalability
The third precondition is scalability. Using multi-tier development allows you to distribute your application over several different computers, letting you to throw more CPUs at performance problems. Data access is also centralized in a few objects, making it easier to optimize data access (the usual cause of poor performance).

I have to admit that I consider scalability to be the least important precondition, because (a) many scalability problems can be addressed by creating a Web farm and installing multiple copies of the same site on several different computers, and (b) ASP.NET is so darn fast that it may require hundreds of users simultaneously hitting their submit buttons to actually slow down your application to a critical point. How many sites have that problem?

I won’t mention re-use as a benefit of multi-tier development because, quite frankly, it doesn’t happen much. Social and political pressures within an organization usually limit re-use to a single team and a single application.

The only wrinkle in this set of preconditions is that you do need to worry about the future of your application. While all three of these preconditions are in place now, one or more of them may be violated in the future. In that case (and at that point) it would have been better to go with a multi-tier model from the start.

If you are a single-tier developer and are considering moving to multi-tier development, the next few Practical ASP.NET columns are for you: I’m going to walk through the process of creating objects that will integrate with the ObjectDataSource

Microsoft Ups Exchange Online Mailbox Storage to 25 GB

Microsoft increased the mailbox storage capacity for users of its hosted business productivity online suite (BPOS) of applications.

Mailboxes have expanded from 5 GB to 25 GB at no extra cost to BPOS and Exchange online users, according to an announcement issued by Microsoft on Wednesday. The mailbox storage capacity boost was hinted at last month in a talk by Kayvaan Ghassemieh, a senior technical product manager for Microsoft Online Services.

Ghassemieh said that the next BPOS updates to expect include the addition of single sign-on capability and a fix for calendar coexistence in hybrid deployments. Microsoft issues its BPOS updates every six to eight weeks, he explained.

The new boosted mailbox storage capacity brings Microsoft up to speed with Google, which offers the same 25 GB mailbox storage capacity as part of its Gmail and Google Apps services. Google Apps Premier service for businesses includes hosted e-mail, calendar and Office-like applications for $50 per user per year.

IBM lists a paltry storage capacity of 1 GB for its LotusLive Notes e-mail service offering, which costs $9 per user per month.

Microsoft boasts of offering Exchange online, SharePoint online and Office Communications online as part of its BPOS offering for $10 per user per month. In addition, Live Meeting Standard is included in the suite, which can support 250 non-BPOS users for Webinars, according to a Microsoft blog.

Hosted E-mail may prove to be one of the top software-as-a-service applications adopted by businesses because of scalability issues, including limited e-mail server storage space on premises. According to a prediction made in April by analyst firm Gartner, about 20 percent of the business market will use software-as-a-service for e-mail by the end of 2012.

Google Offers Tool To Ditch Microsoft Exchange

Google has taken another step toward making it easier for IT departments to abandon Microsoft Exchange for Google Apps.

On Wednesday, the company announced a new tool called “Google Apps Migration for Microsoft Exchange.” It’s a server-side tool that can migrate “hundreds” of Exchange users simultaneously, according to Google’s announcement.

Users can continue to use e-mail enabled through Exchange without interruption throughout the migration process, said Abhishek Bapna, product manager for Google Apps, in an e-mail. The migration tool works with Exchange Server 2003 and Exchange Server 2007, both on-premises and hosted. The tool is free for Google Apps Premier and Education Edition customers.

Google Apps is a suite of hosted e-mail, calendar and Office-like applications offered to businesses for $50 per user per year. It’s free for educational institutions and individuals.

The new Exchange migration tool continues Google’s movement to the enterprise software space after its initial rollouts to the consumer market. Exchange has been one of Google’s prime targets in that effort. In June 2009, Google rolled out Google Apps Sync for Microsoft Outlook, which lets business users continue to use the Outlook e-mail, calendar and contacts interfaces while connecting to Google’s servers.

Google also recently opened up its Google Apps Marketplace, allowing developers to sell their applications directly to businesses. The Marketplace and the release of the Exchange migration tool show that “Google is serious about enterprise software,” according to Don Dodge, a developer evangelist working for Google. Dodge formerly served at Microsoft as an advisor to its startup communities. He was laid off during Microsoft’s recent job cuts, but joined Google in November 2009.

Google claims that running Google Apps Migration for Microsoft Exchange involves just four steps to move users onto Google Apps. The tool, along with a guide that outlines the migration process, can be downloaded here.

Google recommends migrating global address lists first so that “address translations are already available when e-mail and calendar data is migrated,” Bapna explained. A tool called “Google Apps Directory Sync” can be used for that purpose. Bapna added that the migration process can be stopped at any point and resumed later. The tool includes “logging and reporting capabilities” to track any errors.

Google Apps Premier and Education Edition customers get 24/7 phone support from Google, plus online support. Hands-on support is available via Google’s partner community.

“Customers desiring even higher touch support during their migration can work with one of the many partners who offer such services through the Google Apps Marketplace,” Bapna explained.

Visual Studio Team System 2008

This often becomes a little difficult to convenience users to migrate from VSS to TFS as VSS is probably there with us since far more long time and is pretty handy to use, but the problem arises in the following areas:

1) Scalability
2) Operations & Management
3) Recovery
4) Extensions
5) Performance

Many more areas can be added to the above list to prove that TFS is far more ahead then VSS, but how? Firstly if you see it doesn’t talks about only Source Control but it talks about Application Lifecycle Management (ALM) which covers the process straight from writing the very first development document what so ever it may be. VSS was all used to be a code repository and giving one many features to manage code libraries, users, rights, backup, recovery and etc etc. But TFS is certainly a broader picture of the game since it introduces a concept of ALM let’s see what it provides:

1) Source Control (what VSS was doing)
2) Management of Work Items, Bugs, Scenarios etc
3) A SharePoint site for every Team Project which focuses on Team Collaboration
4) Fast SQL Reporting of Bugs, Remaining Work, Resource Allocation etc
5) Proper Management of Development Documents
6) Team Build and Release Automation
7) And many a more which are there to be explored

The point 1 covered what VSS was doing even the source control in TFS is far more advanced and mature as compared to the one we use in VSS with the improved productivity of features like locking, change sets, comparisons and branching.

VSS was for small – mid size teams but TFS is scalable, VSS Security was Application specific but TFS relies on Windows based security hence the security becomes easy to manage task if you have the AD & proper policies in place, the data stored in VSS was in file system but in TFS it’s in SQL Server which makes reporting, recovery and readability much more enhanced.

TFS is such a strong product was it follows a proper process template, understands different Application Lifecycle roles (PM, Analyst, DBA, Dev etc) and helps everyone to be the part of process further uses the key technologies like SharePoint & SQL Server which are already running in many Data Centers and are not new to IT guys and they can extend & scale the existing functionality of TFS by using its strong API and having in depth understanding of the technologies running at the backend so at the end of the day to me it’s just a scalable tool with front end on SharePoint, VS and backend on SQL Server..

There is a lot which is unwritten like its interop behavior where this multipurpose tool has the power to interact with non MS products and heterogeneous platforms.

Microsoft Search Together

Few days back i came across this wonderful tool from Microsoft Research which runs on IE7 & later named Search Together.. one thing i will want to highlight is that it not only uses Live Search as a Search Engine but you can also use Google and Yahoo.

What is SearchTogether?
Microsoft SearchTogether is a free Internet Explorer plug-in that allows groups of people to collaborate on Web searches.


Who can benefit from using SearchTogether?
SearchTogether can benefit any group of people who are interested in investigating a topic together, such as students working on a group report, colleagues working on a joint project, or friends planning a shared vacation or other social activities. SearchTogether supports both synchronous and asynchronous collaboration styles.


Where did SearchTogether come from?
SearchTogether is a project from Microsoft Research; it is part of Meredith Ringel Morris’s research project on collaborative Web search. The original SearchTogether concept was presented in this UIST 2007 paper and video. Thanks to the efforts of developers Piali Choudhury, Matt Maddin, and ThuVan Pham, the original prototype was transformed into an IE plug-in.

Do visit the following link to download this IE Pulg-in and start search together with your online friends during your different assignments, projects, tours etc and etc..

http://research.microsoft.com/en-us/um/redmond/projects/searchtogether/