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.

Open Protocols

Yesterday I got this month’s issue of Doctor Dobbs Journal. As usual I poured through it immediately. The inside of the front cover had a Microsoft advertisement for its Open Protocols. I had heard this term used before. However I did not know much about it. So I decided to take a closer look at them.

The goal of this initiative is to “create smarter, interoperable products”. Microsoft is providing the specifications for Windows Vista, the .NET framework, Windows Server 2008, SQL Server, Microsoft Office 2007, Exchange Server 2008, and SharePoint Server 2007. The tag line in the advertisement was innovation, quality, and community.

I went to the Microsoft site that hosted the Open Protocols. They are described as protocol specifications for developers. They target Microsoft’s high volume business products. The documentation itself is provided free of charge. However you may need a patent license from Microsoft if you are to use some of the patented technology commercially. This initially made me think there was something not too open about this. In my mind, open usually connotes free of charge.

Now I have always been a little interested in the format of Microsoft Word documents. This was a good opportunity to get some insight into that format. This binary format was indeed covered by the Open Protocols. However the document that describes the Word format was a whopping 19 megabytes. The table of contents alone for the document spanned 13 pages. At least it looks like they are giving you everything you need. I found it a little strange that they provided the information in PDF format.

I have heard some grumbling in the developer community regarding the Open Protocols. Perhaps it was the part about the patent licensing which also took me by surprise. I am going to keep an eye out for more comments from other developers regarding this program by Microsoft.

Managed Services Engine

I read an article on the DevX web site entitled “Virtualize Your SOA with the Managed Services Engine” by Steve Spefanovich. I had not heard about the Managed Services Engine (MSE) before. So I read through it with interest.

Steve said that it is difficult to keep the enterprise SOA up and running. The MSE is a product that eases this pain. Steve reviewed the Windows Communication Foundation (WCF). He said that WCF is split between contract and implementation.

The MSE uses the idea of service virtualization. It provides a service layer on top of the services you provide. The MSE extends rather than replaces the WCF. It acts as a proxy service host, which is the only point of entry to your SOA.

The four major parts to the MSE are the service catalog, messenger, broker, and dispatcher. The MSE runtime server can act as a messenger, as a broker, or both a messenger and broker. It can import existing services. It is also able to version the services you provide.

Only the published service is listed in the WSDL. You can only publish one version of your service at a time. The MSE eliminates tight coupling between consumer and service.

Visual Studio

Microsoft released Visual Studio 2008 this year. This release is also known as Visual Studio 9. Plans for the next version of Visual Studio have been shared with the public. This next version shall be Visual Studio 10. According to the InternetNews web site, there are 4 major “pushes” that come with this new version: experience, customer, platform, and architecture.

Visual Studio has grown to much more than just a code compiler. It includes tools to deal with new user interface models like Silverlight. As you may already know, Silverlight is a plugin for web browsers.

A specific change for the next version of Visual Studio is to improve the C++ performance. That is good news to me as I am a C++ programmer. However right now I am still using Visual Studio 2005 (Visual Studio 8). The next version of Visual Studio shall also have a Windows Presentation Foundation (WPF) editor.

Microsoft is also adding the Visual Studio Extensibility (VAX) to Visual Studio. This includes numerous concepts and components such as the Visual Studio SDK. You can extend the tool using add-ins and packages. Visual Studio will host functional units called packages.

There are some long range ideas for Visual Studio, which may not make it into the Visual Studio 10 release. The tool is to get a WPF look and feel. Instant messaging for users on a team is to be built into the tool. Finally there will be an updated Visual Studio Tools for Applications (VSTA). It is an application customization toolkit based on .NET.