Microsoft License

My customer provides our team with laptops configured with a bunch of expensive software. They negotiate with vendors to get software site licenses for their employees and contractors. This works out good for me. I get to use licensed expensive software. And my own company does not have to foot the bill for such software.

I just got a message that our customer is renegotiating their licenses with Microsoft. They fully intended to go forward to upgrade to Office 2007, Windows 7, and Exchange 2010. However the current agreement with Microsoft is ending.

One downside to the end of the agreement is that the Microsoft Home Use Program is ending. That means that low or no cost Microsoft software that employees have for home use is no longer valid. They must uninstall the Microsoft products they have at home.

I get the feeling that the customer is no longer going to have such software for employees to use at home. The customer recommended their employees try some free alternatives such as Open Office or Google Docs. This looks like a fail for Microsoft.

What is Microsoft doing? Are they gouging our customer on the Home Use Program? This only looks bad to the many employees who work for my customer. It looks bad to me as well.

The Ultimate Offer

Microsoft is pitching something it calls The Ultimate Offer. It is a renaming of the Visual Studio product levels. Here is a map between the current and future names of Visual Studio.

Visual Studio Team System is becoming Visual Studio 2010 Ultimate. Visual Studio Professional with MSDN Premium is becoming Visual Studio 2010 Premium. And Visual Studio Profession with MSDN Professional is becoming Visual Studio 2010 Professional.

All of these editions come with Team Foundation Server (TFS) included. Note that the low end of TFS is being marketed as a replacement for Visual Sourcesafe. Microsoft promises that each of these offerings will give the buyer more than the comparable products from Visual Studio 2008.

At work we got Visual Studio 2005. I have used Visual Studio 2008 at home. Now it is time to get my Visual Studio 2010 plans made.

SharePoint Server 2010

Developers are getting pumped about the upcoming release of SharePoint Server 2010. Evidence of this was found at the Microsoft SharePoint Conference 2009. The categories addressed in the new release are user interface and integration.

SharePoint Designer is getting an overhaul. The new version will contain support for the Microsoft Office Ribbon user interface. SharePoint is also going to be supported better in Visual Studio.

You will not be able to have SharePoint for cloud computing. You do not, however, need a server to run the new SharePoint. It will work on Windows Vista as well as Windows 7.

SharePoint Developer Dashboard is a new tool that logs SharePoint activity. It also logs calls made to SQL Server. All of this data is tagged with the time so you can check your performance.

It seems as though Microsoft is getting very serious about SharePoint development. I might have to schedule a visit to next year’s Microsoft SharePoint Conference.

PLINQ

PLINQ is a part of the .NET Framework. It stands for Parallel LINQ. This is a type of LINQ to Objects that executes in multiple threads to perform queries. A query is broken up by PLINQ, executed independently in parallel, with the results being merged together at the end. The act of dividing the query into parallel parts is called Partitioning in PLINQ.

The PLINQ implementation support different types of aggregation such as sum or average. It can also perform sorting in parallel. Anything available in LINQ to Objects is supported in PLINQ. However that does not mean all operators gain performance due to the parallelization.

Visual Studio Extension

We generate a lot of documentation here on my project. This includes a lot of screen shots. Previously it was a painful process to generate a screen shot in the format required by our customer. So some developers implemented a plug in for Visual C++ 6.0 to help with the chore. Those were some good times. You can do the same thing with the latest Visual Studio Team Explorer. Today I will discuss some facets of such an exercise.

The user interface you may want to customize is the Team Explorer Client. Now to actually implement a plug in (AKA extension) to this tool you need Visual Studio Standard Edition and the SDK. In other words, you cannot do such fun things with just the Express Edition.

Start by creating a new project with Visual Studio. Choose Extensibility and make sure Visual Studio Integration Package is selected as the template. Next you must manually remove references to version 9.0.0 of TeamFoundation. Replace it with version 2.0. You also should make the base class of your package PluginHostPackage. I don’t know why Microsoft did not make the Wizard automatically do these things for you.

Then you just need to provide a new implementation for the OnCreateService method. In there you make code changes to implement the plug in behavior you desire. Note that there may be some issues when you try to roll out the changes. Part of this depends on whether the SDK has been deployed on the target platform. Use another tool called Package Load Analyzer (which comes with the SDK) to debug issues. Maybe I will cover that tool in a future blog post. Enjoy.

PEX Tool

PEX is a Microsoft tool that analyzes source code to help develop a minimal set of test cases which will cover all required scenarios. It makes use of Parametrized Unit Testing. This method calls the code with parameters, then verifies the output based on an expected output. The PEX tool can generate output unit test data for tools such as NUnit. PEX contains a framework called Stubs that creates stubs for .NET as C# source code.

The PEX tool is useful for general testing. However it is especially useful for testing refactored source code. So you can take your legacy code and refactor it. PEX can generate unit tests to ensure that the refactored code behaves the same as the legacy version of the code. This addresses one of the chief concerns about refactoring. If you have a tool which ensures that refactoring does not break existing functionality, it might be easier to justify refactoring efforts.

ASP.NET AJAX 4.0

The modern way to bind web user interface controls to data is to use Asynchronous JavaScript and XML (AJAX). Microsoft is supporting this standard with their ASP.NET AJAX version 4. This is an advance over the previous HTML only methods to use proprietary attributes to identify the data source. That method was specific to the browser that was viewing the web page.

Now developers use the Microsoft AJAX JavaScript Library. The solution works on every modern browser. You specify the data source using XHTML (the newer version of XML). The web page only needs to use JavaScript.

I personally have an interest in learning web development. AJAX is one of the technologies I plan to learn. Since I have a Microsoft background, I figure I will be using ASP.NET AJAX to get the data binding job done.

Introducing AppFabric

AppFabric is a new feature from Microsoft that has recently been released in Beta format. It allows devs to write cloud apps as if they were working on the desktop. AppFabric is an app server that runs in the cloud. It can do thing like providing caching services.

AppFabric is a part of Azure. As you may know, Azure is Microsoft's entry into the cloud services arena. Azure is also in beta. It provides an entire platform for developers. You know this is no joke as Amazon has released an SDK for its EC2 cloud service that targets .NET development.

Silverlight 3

Microsoft has released Silverlight 3. This is a technology for web presentation. Silverlight has come a long way since its inception. First it melded HTML and video in version 1. Then it included .NET in version 2.

Version 3 brings many enhancements. You have 3D graphics as well as shading. There is support for themed apps. You have support for SEO.

The goal is to bring desktop style apps to the web. You need to know your XAML to work with this tech. If you want to put video on the web and do it well, you need Silverlight 3. And it will get taken to an even higher level with Silverlight 4.

Business Productivity Online Suite

Do you know what BPOS stands for? It is Microsoft's Business Productivity Online Suite. This is their software as a service offering.

BPOS has Exchange, SharePoint, and Live Meeting. The cost is $10/month/seat. Users get 25GB of e-mail space.

Competitors include Novell GroupWise and Google Apps. I don't know whether $120 a year is a good deal for such a service. It seems a bit high. Both my company and main customer have workstation based Microsoft Office. Their license fees are probably $120 per person until we upgrade.

Visual Studio Mono Tools

Novell has announced a commercial add-on to Visual Studio called Mono Tools. It allows you to develop applications for non-Windows platforms using Visual Studio. For example you can target the Linux operating system.

Recall that Mono is an open source implementation of .NET for non-Windows platforms. It implements the Common Language Runtime (CLR) and C#. There will be some scenarios where Mono does not accurately mimic the .NET behavior. The Mono Tools for Visual Studio help you deal with some of these differences.

There are three versions of Mono Tools: (1) Professional, (2) Enterprise, and (3) Ultimate. The cost ranges anywhere from $100 to $2500. Although these are not Microsoft tools per se. Mono is a high visibility project. So I thought I would cover the Mono Tools here today.

Virtual Server Ownage

Info Week magazine did an article on infrastructure as a service. You know. This is where you rent out CPU processing power. The sad part of the story was that less than 10% of the people surveyed were using Microsoft's Virtual Server.

The majority of respondents use either VMware or Xen hypervisor. I guess VMware beat the rest of the industry to market. And the Xen hypervisor gets zen points for being open source. Even if Microsoft provides a free alternative, it is hard to get market share.

Renting CPU power is cheap. The article I read said you could get time rented for as little as 1.5 cents/hour/CPU. Delicious. People like this renting to do web hosting, testing, and development. There are still concerns over security when you apps run on somebody else's box in the cloud. However I wonder how Microsoft can get more people to use Virtual Server. Why do they need to do? Buy VMware?

Presenting ReSharper 4.5

This month's Visual Studio Magazine presented products awards. There was one product that got user and editor awards. It was ReSharper 4.5 by JetBrains. I had never heard about this tool before. That was strange so I did some research.

The tool is a plug-in to Visual Studio. It does error highlighting (analyzes your code without compiling to determine errors). It also has all kinds of code refactoring options. ReSharper assists with unit tests. And it does formatting as well as code generation. This thing is multi purpose.

That's when I found out why I was in the dark about ReSharper. It works with languages such as C#, XML, and XAML. I guess it is a .NET type of thing. This thing does not support C++. And since I specialize in C++, I would not be using or really know much about the tool.

ReSharper has a number of price points based on how you use it. A personal copy costs $199, while the business version goes for $349. An academic license will run you $49. I was disappointed that there was no free academic version. Us starving college students don't have a lot of cash. The goal of this tool is to produce higher quality code. Maybe if I get more into C# I will give it a try.

The FCC

When my cell phone company gave me the run around, I got tired of dealing with them and reported them to the FCC. That got some action. It also helped that I sent a letter to the company's CEO.

It is bad business to be at odds with the FCC. For Microsoft, it helps if the FCC has their sights aimed at other companies that are behaving badly.

This blog post excerpt from Jason Calcanis, reprinted with permission here, is a rant against the machine known as Apple Corporation.

Apple took Google’s innovative and absurdly priced phone offering, Google Voice, out of the App Store and is currently being investigated by the FCC for this action. This point is similar to the browser issue, in that Apple wants to own almost every extension of the iPhone platform. How long before Apple decides to ban a Twitter client in favor of an Apple Twitter-like product? Seems crazy, I know, but by following Apple’s logic you should not be able to use Firefox or Google Chrome on your desktop.

Simple solution and opportunity: Let people have three or four phone services coming in to their iPhones and perhaps charge a modest licensing fee for those types of service. Or, just simply stop being jerks and let the free market decide how to use the data services they’ve BOUGHT AND PAID FOR. That’s the joke of this: you’re paying for the data services that Apple is blocking. You pay for the bandwidth and Apple doesn’t let you use it because, you know, they know better than you how you should consume your data minutes.

Browser Wars Redux

Microsoft is once again finding other browsers eating its lunch. I use Internet Explorer. But it is no the sexy way to go. Here is a position taken by Jason Calcanis, reposted with permission, that tells how some other companies are having trouble with browsers as well.

Opera is a fantastic browser built by a company in Oslo, Norway. In fact, a decade ago, I had a speaking gig there and got to interview the CEO of the company for Silicon Alley Reporter. (Sidebar: Man, do I miss being a journalist. I wish I could split 50% of my time being a journalist and 50% of my time being a CEO.) For over a decade, Opera has been making lighting-fast, lightweight and quirky browsers. Long before Apple launched Safari, with the goal of designing the fastest browser on the Web, Opera was already there.

Opera’s mobile browsers are “full of WIN,” as the kids like to say these days. If you’re a Windows Mobile or Blackberry user, you’ve probably downloaded them and enjoyed their WINness. The company started an iPhone browser project but gave up when faced with Apple’s absurd and unclear mandate to developers: Don’t create services which duplicate the functionality of Apple’s own software. In other words: “Don’t compete with us or we will not let you in the game.”

The irony of this is not lost on anyone who had a computer before they had an Internet connection. Apple was more than willing to pile on after Microsoft’s disastrous inclusion of Internet Explorer with Windows. In fact, what Apple is doing is 100x worse than what Microsoft did. You see, Microsoft simply included their browser in Windows, still allowing other browsers to be installed. In Apple’s case, they are not only bundling their browser with the iPhone, but they are BLOCKING other browsers from being installed.

Simple solution and opportunity: Don’t be a control freak and hypocrite. Allow people to pick their browser; the competition to make a better browser will increase the overall use of iPhones and mobile data services.

The App Store

Microsoft has essentially been a shrink wrapped software company from the beginning. With all the web hubbub, you would think that Microsoft is a dinosaur. However it is not so easy to sell software over the Internet. As you will see from the Jason Calcanis blog snippet, it is tough to manage third party software sold on the web. This excerpt is posted with permission from Calcanis:

Like lemmings, we fell for your bar charts extolling the openness of the iPhone App platform and its massive array of applications. We over-paid for your phone–which you render obsolete every 13 months, like clockwork–and then signed our lives away to AT&T. The way you pay us back is by becoming the thought police, deciding what applications we can consume on the device we over-paid for!

Yes, every application on the phone has to approved by Apple, and if you were interested in something adult in nature…well…you can’t do that.

Apple’s justification for this nonsense is that they have to protect AT&T’s network. Oh really? Aren’t there dozens and dozen of open phones on everyone’s network? The network hasn’t crashed yet, and even if someone did create a malicious iPhone application, you would know EXACTLY who was running the application and be able to block and/or turn off their phone. The network was MADE to deal with these issues on a NETWORK level. To say you have to control people down to the application level defies all logic. A second year CS student understands this.

Who in their right mind feels the need to control the application-level anyway? It’s absurd.

Imagine for a moment if every application on Windows Mobile or Windows XP had to be approved by Microsoft–how would you react? Exactly. Once again we’ve enabled Steve Jobs’ insane control freak tendencies. This relationship is beyond dysfunctional–we are co-dependent.

Simple solution: Apple could have a basic system setting that says “Allow Non-Approved Applications.” When you click this setting, a pop up could come on warning that, if you click this setting, you are waiving your previously-understood customer service arrangement (i.e. only people with approved applications can hand over their money at the Genius bar).

Telco Monopolies

The United States Department of Justice has a hard on for Microsoft. A weaker company would have caved and gone out of business. However Microsoft has stayed the course. They still are the easy target for cries about anti competitive behavior. But you would be surprised at other companies that are being evil these days. Check out this blurb from a post by Jacon Calcanis, reprinted with his permission:

Apple’s iPhone is a revolutionary product that has devolved almost all of the progress made in cracking–wait for it–AT&T’s monopoly in the ’70s and ’80s. We broke up the Bell Phone only to have it put back together by the iPhone. Telecommunications choice is gone for Apple users. If you buy an Apple and want to have a seamless experience with your iPhone, you must get in bed with AT&T, and as we like to say in the technology space, “AT&T is the suck.”

Simple solution and opportunity: Not only let the iPhone work on any carrier, but put *two* SIM card slots on the iPhone and let users set which applications use which services. (Your phone could be Verizon and your browser Sprint!) Imagine having two SIM cards with 3G that were able to bond together to perform super fast uploads and downloads to YouTube.

MP3 Player Innovation

The Microsft Zune seems to be a futile effort to compete with the Apple iPod. However not all is right at Apple Corporation. Here is part of a post from Jacon Calcanis reprinted with his permission:

There is no technical reason why the iTunes ecosystem shouldn’t allow the ability to sync with any MP3 player (in fact, iTunes did support other players once upon a time), save furthering Apple’s dominance with their own over-priced players. Quickly answer the following question: who are the number two and three MP3 players in the market? Exactly. Most folks can’t name one, let alone two, brands of MP3 players.

On my trips to Japan, China and Korea over the past couple of years, I made it a point to visit the consumer electronics marketplaces like Akihabira. They are filled with not dozens, but hundreds, of MP3 players. They are cheap, feature-rich and open in nature. They have TV tuners, high-end audio recorders, radio tuners, dual-headphone jacks built-in and any number of innovations that the iPod does not. You simply will not see those here because of Apple’s inexcusable lack of openness.

Not only does Apple not build in a simple API to attach devices to iTunes, they actually fight technically and legally block people from building tools to make iTunes more compatible.

Think for a moment about what your reaction would be if Microsoft made the Zune the only MP3 player compatible with Windows. There would be 4chan riots, denial of service attacks and Digg’s front page would be plastered with pundit editorials claiming Bill Gates and Steve Ballmer were Borg.

Why, then, does Steve Jobs get a pass?

Steve Jobs gets a pass because we are all enabling him to be a jerk. We buy the products and we say nothing when our rights are stripped away. We’ve been seduced by Steve Jobs: he lifts another shiny object over his head with a new eco-friendly feature and we all melt like screaming schoolgirls at Shea Stadium in ‘65.

Simple solution and opportunity: An iTunes API which allows the attachment of any mass storage device,not just a short list of players that jumped through Apple’s hoops. If need be, perhaps consumers pay a simple licensing fee of $1-5 a unit to attach a non-Apple MP3 player to iTunes (i.e. pure profit for Apple).

Visual Studio 2010

Just today some higher ups in my company wanted to know when support for our current products ran out. I did some research on the Microsoft site and found that we were good with Visual Studio 2005 until April 2011. Then the big shots asked me what we should replace our current tools with. I told them if we were to do an upgrade right now, they could purchase Visual Studio 2008. However in a year or two, I would be recommending a move to Visual Studio 2010.

Visual Studio Magazine has written about the work done and plans for Visual Studio 2010. It is to be put into Beta this month (March 2009). The Beta 2 is scheduled for later this year (December 2009).

Microsoft plans to remodel the IDE for Visual Studio 2010. They also are preparing a new code editor for developers. I hear that it is built upon Windows Presentation Foundation (WPF). If WPF is good enough for the Visual Studio developers, it might be time to be getting familiar with it myself.

The goal of the new version of Visual Studio is to make application look modern and more intuitive for the users. They did not employ the Ribbon user interface as they did with Office 2007. They instead have focused on Windows 7. There is one change that I am very glad to hear about. Microsoft is bringing back the MFC class wizard. I miss that in Visual Studio 2005. Having spent the better part of a decade using it with Visual Studio 6, this will help my productivity.

MFC may be an old framework. You are not going to get any developer credit by using MFC. However if you know MFC, then you will be productive. And it is good when Microsoft updates and pays attention to the tools and frameworks you need to be productive.

FAT File System

I have heard from a number of sources that Microsoft is suing TomTom for use of the patented Microsoft FAT file system. TomTom is a maker of GPS devices. They use Linux as the embedded operating system for these devices. Linux in turns supports both the FAT file system, and the FAT long file name format. These are patented technologies that Microsoft is working to protect.

Microsoft has 18 different licenses related to the FAT file system. However it is not a simple solution for TomTom to license the technology from Microsoft. This is because the license may violate the GPL license under which they use Linux.

Microsoft’s FAT licensing program charges 25 cents per unit. The maximum cost per manufacturer is $250k. These prices are per terms previously listed on Microsoft’s web site. However this information has suspiciously disappeared recently from Microsoft. That might have something to do with this dispute between Microsoft and TomTom.

This lawsuit appears to be Microsoft taking a stand against Linux use of their patents without license. TomTom is probably a high profile and lucrative user of Linux. There are people on the free software side that consider Microsoft for making this move. However from a purely legal standpoint, I bet they have a case.

Normally I mention specifics tools from Microsoft here on my blog. However I thought I would mention the FAT file system legal issues here because it is relatively current news. The FAT file system itself is an older technology. I believe it had been improved when it moved to a 32 bit implementation. However the implementation, and I presume the patents, are nothing new.

SharePoint

Over the past year, I have become an avid reader of Redmond Developer News. They talk about a lot of new things coming from Microsoft. I just subscribed to Visual Studio Magazine (VSM). Now I read that they are combining both magazines into one later this year. There is a lot of consolidation in the computer magazine space.

This month's issue of VSM discussed the state of the SharePoint business. And it is definitely growing even though times are tough economically. SharePoint development differs from normal .NET development in that you will be interacting with the customer a whole lot more. The SharePoint developer on our team actually spends most of his time with the customer.

There have been some criticisms of SharePoint offerings for developers. The Visual Studio extensions for SharePoint have been called "weak" by some. They are not well suited for enterprise development. You also have to align your development with the implicit design patterns in SharePoint, which may take some learning for regular .NET developers.

Between Microsoft and 3rd party vendors, there are a number of free tools available for SharePoint. I have mentioned the Visual Studio extensions. There is also STSDev which helps you build components (web parts). There is also SPDisposeCheck which ensures resources are properly disposed of. CAML Query Builder lets you visually build queries even if you do not know CAML very well. And there are more tools which I may cover in future posts.

Moonlight

Moonlight is an open source version of Microsoft Silverlight for the Linux platform. Version 1.0 is ready for Linux now. It is licensed under the GNU GPL. The release was delayed for the latter part of 2008.

Microsoft apparently did provide some assistance to Moonlight. They gave technical guidance. They also provided the Silverlight unit tests to help ensure that Moonlight was an accurate emulation. Finally, Microsoft opened up some of the Silverlight 2 code as open source.

Silverlight 2 is already out from Microsoft. Expect there to be a Moonlight 2 to complement the Silverlight 2 platform. Hopefully with further assistance from Microsoft, Moonlight 2 will be released in a timely fashion.

Small BASIC

First there was BASIC. Then there was Quick BASIC.I had though we reached the end of the line with Visual BASIC. However there is now a new animal called Small BASIC. The goal behind this version was to make programming fun. It is supposed to be easy to learn. Therefore even young kids are supposed to be able to pick it up.

The author believes that this could be a good first programming language. It is based on dot NET. There are minimal concepts in the language. Some people who have tried it out say it reminds them of Python.

Like most BASIC implementations, it does allow use of the evil GOTO statement. There is built in support for extension libraries. Now there are other simple languages like Python, Ruby, and Alice. However the author says these do not have the same “charm” as small BASIC.

There are a total of 15 keywords supported by Small BASIC. Users have commented that it looks a lot like hackety hack. Others wonder why Visual BASIC cannot be a young developer’s first programming language. I for one know that VB can be a bit complex. I do recall the fun I had with BASIC as a youth. Perhaps even I will check it out.

Layoffs at Microsoft

There has been some bad news at Microsoft recently. Revenue from Windows sales has been low. This is causing the company to miss their earnings estimate for 2Q09. Nobody seems immune from the bad economy.

An outcome of the bad quarter is that Microsoft is laying of 5,000 people. Now Microsoft is a big employer, currently employing about 95,000 people. So this amounts to a little more than 5% of the workforce.

The real damage is in the image. Microsoft is one of those companies that used to dominate earnings year after year. My concern is that this may result in a pullback in product development. We shall see.