It’s been a few days since we checked up on the ongoing Microsoft-Yahoo saga. It’s beginning to look a lot like a soap opera after all.
- Microsoft has hired a law firm that specializes in proxy fights, which would in all likelihood see it try to oust the existing Yahoo Board of Directors and replace it with a board more sympathetic to its original offer of $31 a share. Hiring a firm for a proxy fight is seen as a much cheaper offer than upping the original offer for Yahoo. (BBC News)
- Both Chairman Bill Gates and Senior Vice President Yusuf Mehdi have affirmed their support for Microsoft’s bid for Yahoo. Gates added that the company will focus its efforts on search even if the Yahoo bid doesn’t go through. (Reuters via InternetNews.com and CNET News.com)
- It turns out that many Yahoo shareholders also own Microsoft shares. This means they support they deal no matter what happens. (The Register)
- Yahoo’s board appears to be divided, with some members worried that CEO Jerry Yang’s vehement opposition to a Microsoft takeover is clouding his judgment of what might me best for the company. At the same time, the board appears to have cooled on partnering with News Corp. (NewsFactor Network)
- Finally, Yahoo has drafted compensation packages for employees who happen to lose their jobs up to two years after the company undergoes a change of ownership. (CNET News.com)
Now back to your regularly scheduled programming.
Microsoft’s efforts to attract young developers entered its latest, and biggest, stage this week with the announcement of the DreamSpark program.
Through DreamSpark, certified students can get free versions of the following products:
- Visual Studio 2008 Professional Edition
- Visual Studio 2005 Professional Edition
- Windows Server 2003 Standard Edition
- SQL Server 2005 Developer Edition
- Expression Studio
- XNA Game Studio 2.0
- XNA Creators Club Online
As the DreamSpark site indicates, thus far the program is open to residents of 11 countries; alphabetically, they are Belgium, Canada, China, Finland, France, Germany, Spain, Sweden, Switzerland, the United Kingdom and the United States.
DreamSpark represents a huge expansion of Microsoft’s free product push, aimed primarily at students but at more casual developers. The move began with the Visual Studio and SQL Server Express editions and had been extended with the Web mashup tool Popfly.
We bought into .NET Remoting early and have quite a few products in place that exploit the .NET Remoting lifestyle. Did I say lifestyle? Yes. It seems that, once you go remoting, you don’t want to go back — that is, until WCF came along. It is better (and worse) than remoting. I won’t go into any comparison here but I do want to show an example of using certificate based security to validate a client process because it is pretty cool. I’m using my standard Dog Pound example — which, someday, may run humane societies everywhere.
The architecture looks like this:
Both applications are WinForms apps. The DogServer is configured as the “Host” while DogClient is, you guessed it, the client. My requirement is to fire up DogClient and talk to the server without logging in but I want to be secure in the fact that I’m being authenticated and authorized. We can do this with WCF using either an http connection or a tcp connection and either using a self-hosted server or utilizing IIS as the host. My example is self-hosted because, lets face it, we want that control!
Assuming you have some kind of application architecture set up (download the code and you will) you can make a few minor changes to the config files to enable secure communication between client and host. Our example will not use https for the transport, but, even so, each message will be encrypted using a certificate. The first thing we need to do is create some certificates. If you have a Windows domain with a domain controller that you control, it’s fairly easy to get the certificate server service up and running on Windows Server 2003. For the purpose of this article, we’re using the makecert utility that comes with Visual Studio. Do this:
makecert -n "CN=DogBase" -sk DogBaseKey -pe -sr localmachine -sky exchange -ss TRUST -r DogBase.cer makecert -n "CN=DogServer" -sk DogServerKey -pe -sr localmachine -ss MY -sky exchange -ic DogBase.cer -is TRUST DogServer.cer makecert -n "CN=DogClient" -sk DogClientKey -pe -sr localmachine -ss MY -sky exchange -ic DogBase.cer -is TRUST DogClient.cer
After you execute the third makecert statement you should see DogClient and DogServer certificates in the personal store of [Local Computer]. Use the mmc certificate snap-in to view your certificates. You may need to copy the certificate from the Enterprise Trust store to the Trusted Root Certification Authorities store before things will work for you. I’m not a certificate guru by any means and getting this little sample running in a repeatable process was not the easiest thing i’ve ever done.
We’re finally ready to test some code. If you downloaded the code then you have everything you need to perform a test. If not then you need to modify your configuration files to use certificates and transport security as follows:
Some things to note about using makecert for your certificates: It is easy to get things set up and it provides a good learning experience for certificates but the certificates created should not be used in a production environment. There are also a few caveats. I had to configure the client and server to use PeerTrust on each other’s certificates instead of the default ChainTrust (see the config files). I believe this is partly because I’m using makecert for my certificates and partly becaues my computer is part of a windows domain. I didn’t have this trouble when using certificates issued by the certificate authority from my domain controller. For similar reasons, I had to set the negotiateServiceCredential to false and supply the service certificate in the client configuration.
In a future post I will dive into Mixed-Mode security where we use https for the transport and encrypt the messages.
As part of their job, software architects often try to establish best practices for developers working on a project within an organization. Recently released Guidance Automation Extensions (GAX) for Visual Studio help architects and teams achieve this goal. The extensions can be downloaded from MSDN.
Atop GAX runs the Guidance Automation Toolkit (GAT),l also downloadable. This is described as a package that enables architects to create reusable assets including Software Factories, frameworks, and patterns. The resulting templates and wizards help developers “build solutions in a way consistent with the architecture guidance,” according to posted material on the MSDN site.
Key parts of the toolkit include:
Recipes. These automate activities usually performed manually;
Actions. These are atomic units of work called in a defined sequence by recipes;
Text Template Transformation Templates. Such templates combine text and scriptlets that, when run, return a string that is directly inserted into the output stream of the template;
Type Converters that validate the value of a field and convert this from its user interface representation to a type representation; and
Visual Studio Templates. These can be associated with recipes, are written in XML, and can be expanded by the Visual Studio template engine.
GAX and GAT must be downloaded and installed separately, notes Microsoft blogger Grigori Melnik. GAT requires that GAX is installed first.
There are a lot of handy Visual Studio 2005 add-ins out there that, for a variety of perfectly legitimate reasons, have yet to be updated for Visual Studio 2008.
Before you go looking for replacement add-ins, though, you might want to check out a recent blog post by Mohamed Ahmed Meligy called Tip: Try this to make a VS 2005 add-in work with VS 2008. As the title implies, the author discovered a quick process for making sure that his Visual Studio 2005 add-ins would work on the newer version of the IDE.
The caveat here, of which Meligy is quite aware, is that this process may not work with all Visual Studio 2005 add-ins. Nonetheless, it certainly can’t hurt to try it out, especially if you have come to rely on a particular add-in so much that you think it’s part of the IDE itself.
Are you ready for the Functional? Matthew Podwysocki has blogged about F#, a functional programming language. He provides, in fact, a nifty introduction. His initial ‘F# 101’ post warns: You must first understand the differences between imperative and functional programming, in order to work with F#.
F# arose from MS Research. It runs on Microsoft’s Common Language Runtime and the .NET Framework. Check out the SearchWinDevelopment.com F# Programming Fast Guide for more background on the language.
Also noteworthy on Podwysocki’s site is a post informing that the second Alt.NET conference opened for registration. The event is set for April in Seattle. Oops, the set is open to a limited number of registrants – a subsequent Podwysocki post informs that registration has closed. Must be a lot of fans of Alt in Seattle.
All good things must come to an end. This is my final week as the site editor of SearchWinDevelopment.com.
It’s been a good ride — I’ve seen Ajax and Silverlight catch fire, I’ve covered two Visual Studio launches and, just to keep myself busy, I’ve been studying Microsoft’s attempt to buy Yahoo — but it’s time for something new, so I’m moving down the row of cubicles to TechTarget’s Vertical Software Media Group.
Thus, now seems like an excellent time to introduce you to some of the new .NET Developments bloggers. If you recall, about a month ago I asked any and all interested parties to get in touch. Two people have started writing thus far — more on them below — and two more will get started soon.
Chris Madsen is a consultant who programs in Visual Basic and Visual Studio 2005. Her posts include They could have told me, in which she notes that, in the world of .NET developers, it’s 2005 and not 2008, and The elusive project properties, in which she describes a Deployment Project Properties treasure hunt.
Christopher Yager is a chief software architect who does most of his work in .NET 2.0. His first post, TFS to the rescue — almost, articulates his efforts to “[connect] our hand-rolled testing metrics program with our Team Foundation Server.” Look for an upcoming post on Windows Communication Foundation certificates.
Feel free to visit their entries and leave a comment or two. We’d love to hear what you think about our new additions to the blog.
So I put together my setup project using the in-grown version of MSI (don’t get me started on how cumbersome it is to add files!) and then built it. Looked good.
But when I tested it, the suggested path was “C:\Program Files\Default Company Name”. Whaaa? Where was it getting that from? And how could I get it to show the correct name? I figured I needed to modify some properties somewhere.
I right-clicked on the project in Solution Explorer, and then chose Properties. That brought up the configuration properties, not the project properties. Next I clicked on Project | Properties. That brought up the configuration properties again. So did View | Property Pages.
Then light dawned on Marblehead, as they say in New England. In Solution Explorer, I clicked on the name of the project. Then I clicked View on the menu bar and found the entry for Properties Window and clicked that. There it was—the manufacturer was set to Default Company Name. (Maybe I should buy that domain name….) At least it was an easy fix, once I found the right place.
I also noticed that I could choose an icon for my app’s entry in the Add/Remove Programs applet, as well as pre- and post-build events. I got all excited for a minute, thinking these were pre- and post-install events, but no such luck. Now wouldn’t that be nice!
The Deployment Project Properties window (as it is officially called) is very much like the properties windows for controls such as listboxes and buttons. Controls are objects, and so are projects, so I suppose it makes sense that you’d get to their properties the same way.
But they could have told me.
Another day, another batch of Microsoft-Yahoo stories.
- Initially rumored to be purchasing Yahoo outright, New Corp. is now said to be seeking a partnership with Yahoo. News Corp. would get a 20% stake in Yahoo, and the latter would in exchange get the former’s Web properties, which include the lucrative MySpace, as well as some private equity. (The Register)
- Henry Blodget thinks the News Corp. proposal is bringing the advantage back to Microsoft. Why? Yahoo’s getting desperate, and its alternatives aren’t terribly attractive either. Of course, Blodget surmises, Microsoft could just say the heck with it and try to buy Faceook… (Silicon Alley Insider)
- It doesn’t help that Yahoo made good on its promise to lay off 1,000 employees — well, more like 1,100. As both Mary Jo Foley and Dare Obasanjo point out, these layoffs weren’t exactly redundancies — there were some pretty talented people in the bunch. Both wonder if this means Yahoo is trying to make itself look less attractive to Microsoft. Nonetheless, there remains plenty of talent at Yahoo, talent that Microsoft would be daft to dispose of. (CNET News.com for both)
On that note, happy Valentine’s Day.
Did you really think the stream of news would die down because Yahoo rejected Microsoft’s buyout bid? Really?
Here are the story lines that have emerged since Yahoo made its announcement Monday morning.
- Ina Fried remains on top of this story. Her latest chapter examines Microsoft’s acquisition history, from WebTV and Hotmail in the late 90s to this year’s FAST purchase. There are two key differences between those acquisitions and the Yahoo bid — those companies were much smaller than Yahoo, and they offered services that did not overlap with what Microsoft already did.
- Yahoo investor Legg Mason wants Microsoft to raise its offer, simultaneously suggesting that Microsoft’s initial bit undervalues Yahoo and that Yahoo has few options left. (Reuters via InternetNews.com)
- Perhaps embracing the “anything you can do, I can do better” mantra, Yahoo expanded its mobile services and inked a deal with T-Mobile. Recall that, earlier this week, Microsoft expanded its mobile development platform and bought Danger Inc., maker of the Sidekick mobile phone. (InternetNews.com)
- Speaking at the Office Systems Developers Conference, Bill Gates said Yahoo gives Microsoft scale so it can take on Google. Raise your hand if that surprises you. Anyone? (ENT News)
We’ll let you know if anything else happens.