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.
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 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.
The advertisement itself says that Forefront takes on security threats. Somehow the product makes this task easier. It can help you defend your system. It is being marketed as an integrated family of products. They protect the client, server, and network.
I figured I should go to the source to find out more. So I perused Microsoft Technet. This is where I found out that Forefront is a business security product. Perhaps this is why I have not run into this product yet. I work in the enterprise. But I develop software. I do not deal with enterprise security at all. This tool protects the network by controlling access.
There are 5 main pieces to the Forefront family: client security, security for exchange server, security for Sharepoint, security and acceleration server, and intelligent application gateway 2007. The first one protects against malicious software such as spyware and viruses. The second integrates multiple commercial scan engines. It automatically downloads the latest signatures of new malicious code. The third scan documents going in and coming out of Sharepoint. The forth is a gateway to securely publish content. And the final piece is a remote access solution.
A little more searching on the web gave me the impression that this family of tools provides multiple layers of defense. That sounds good. But I still do not have a hands-on feel for the product. Perhaps I could talk my company into sending me to some training. Or I could do a rotation into the network security group. I think we do a lot of that work for our clients.
Here are some examples of software that Microsoft provides through this program. I have included the MSRP of each product to demonstrate the magnitude of this deal:
* Visual Studio 2008 Professional $799
* Windows Server 2003 Standard $999
Microsoft also provides older versions of software through this program such as:
* Visual Studio 2005 Professional
* SQL Server 2005
Recently I have applied to attend college in order to learn some web technologies. So I was very excited to learn about the DreamSpark program. I wanted to get Visual Studio for my home. However I was disturbed to find that my university was not listed as one of the colleges participating in this program. Oh no they didn’t. It is time to get on the horn with my university. Microsoft is offering a goldmine to me through this program. My college needs to get on the ball and sign up with Microsoft. I don’t care if it costs the college a little case. The savings to me are too great.
There is a lot of anti-Microsoft sentiment out there. Yes they are a huge firm that plots to take over the world. But they are offering free software to students. For that they get my respect. I will let you know if I succeed in getting my college to sign up for the program.
MDAC consists of three major components:
2. OLE DB
The last version of the MDAC released by Microsoft was 2.8. To be more precise it was 2.8 SP 1. Since then, the MDAC functionality has been built into Microsoft Windows 98, XP, 2000, and Me.
Microsoft provides a redistributable installer for the MDAC. You can check the version of the MDAC on your system with the Microsoft Component Checker tool. You can also look in the Windows registry to find the MDAC version number. However this is not as reliable as the Component Checker.
Microsoft Application Virtualization is also called App-V. It stream applications from a server to the PC. Even though Microsoft has just released version 4.5 of App-V, you can be sure that they will be hyping this product in their upcoming Get Virtual Now event.
The strange thing about this product is that it is not offered as a stand alone product. When I heard that, I was disappointed. I guess Microsoft is using this as a way to sell bundles to big customers.
There is a plan to release future Clone Detective versions that work with other popular languages such as C++ and Visual Basic. There is also a plan to add “fuzzy clone detection” to the tool in the future. This will allow you to locate code that is not an exact cut and paste, but close to it.
It is too bad that this product only analyzes C# right now. Almost all the code on my current project is written in C++. It is a huge legacy project around 15 years old. Some of the code was well thought out and designed well. However there are a lot of places where changes were hacked in. So I know we have a load of code that was cut and pasted. It would be nice to refactor a lot of that code to make a cleaner code base. It is possible to do this manually. However it would be nice to use a tool to analyze the code and at least find the places where we have duplicate code.
I might write up some dummy projects using C# just to give Clone Detective a spin. Of course I will use poor practices while coding up this sample app. And I will cut and paste galore. However I will make a few changes in the code copies and see how well the detective can, well, detect.
StyleCop does not focus on the design of code. Instead it focuses on the layout, readability, and documentation in the code. The overall goal is to produce code that others can easily read. The rules which the tool enforces cannot be easily configured. The tool implements around 200 best practices in the code. Some of these are location of brackets, spacing, ordering of elements, and variable naming. The tool can be run within the Visual Studio IDE. It can also be integrated with builds.
There was a lot of interesting feedback to the release of StyleCop. Many people including myself were interested in a tool like this for other programming languages. There is also a great desire to disable and configure the rules enforced by the tool. Users have commented that some of the rules are just plain silly. The VS Law program performs a similar function for Visual Basic code. Some developers worried that this tool would be used by control freaks for evil purposes.
Unfortunately we code almost exclusively in C++ on my current project. So StyleCop would not be of much use. However we try to cover best practices when doing peer reviews. It would be nice it we could delegate that task to a tool such as StyleCop. Come on Microsoft. Hook us up.
At this point I decided to uninstall Visual Studio 2005 and try again. So I used Windows Add/Remove programs. I selected Visual Studio 2005 and chose to remove it. This removal took quite a long time. At the end of the install I got a horrible warning message. Microsoft wanted me to manually go in, find out if any listed components were present on my system, then remove them one at a time. What the heck is this? The install program was smart enough to know what items to install. Can’t it also uninstall them without me prodding it for every component? Bad form Microsoft.
Just so you don’t think I am overreacting, take a look at the warning message for yourself:
Next Step: Uninstall additional components
Additional components might have been installed on your computer by Visual Studio during setup.
These components must be manually uninstalled using Add or Remove Programs in the order listed below.
Note: Uninstalling these components might affect other applications you have installed that rely on these components.
The following components might have been installed with Visual Studio:
Microsoft MSDN 2005 Express Edition
Microsoft Visual Studio 2005 Tools for Office Runtime Language Pack
Microsoft Visual Studio 2005 Tools for Office Runtime
Microsoft Device Emulator version 1.0
Microsoft .NET Compact Framework 1.0
Microsoft .NET Compact Framework 2.0
Microsoft SQL Mobile 2005 Development Tools
Microsoft Visual J# 2.0 Redistributable Package
Microsoft Visual J# 2.0 Redistributable Language Pack
Microsoft Document Explorer 2005
Microsoft Document Explorer 2005 Language Pack
Microsoft Data Access Components 2.8 SP1 (Windows 2000 only)
The following components might have been installed with SQL Server Express, and need to be removed in the order listed below:
Note: Uninstall of the SQL Express instances will leave behind the user-created databases, which can then be re-attached to the new instance.
Microsoft SQL Server 2005 Express CTP
Microsoft SQL Server 2005 Express Tools CTP
Microsoft SQL Server Setup Support Files
Microsoft SQL Native Client
The following components must be uninstalled last:
MSXML 6.0 Parser and SDK (only on 32bit)
MSXML 6.0 Parser and SDK x64 (Only on 64bit)
Microsoft .NET Framework 2.0 Language Pack
Microsoft .NET Framework 2.0
Since the Midori Operating System is based on Singularity, I thought I would mention a bit about it. Singularity is another operating system from Microsoft Research that was released in 2007. It is a microkernel operating system. It has some unique characteristics. Applications run in one process (address space). The kernel, device drivers, and application are all written in managed code. The goal is for the operating system to be highly dependable. Low level interrupt code is written in a combination of assembly and C programming languages. The hardware abstraction layer (HAL) is written in C++.
The Midori Operating System is being written with the Bartok compiler. The Bartok compiler is yet another project out of Microsoft Research. It is intended for writing efficient code needed to write operating systems. The compiler itself is written in C#. This compiler was also used to write a lot of the Singularity operating system. This operating system allows an application running in it to choose a version of components (such as garbage collection) at run time.
Obviously there are some very interesting projects coming out of Microsoft Research. I wonder if any of these will reach a production status on par with something like Microsoft Visual Studio.
After a bit of research, the developer found that Visual Studio 2005 does not by default install the Microsoft Help Compiler. This seemed very strange. What was Microsoft thinking? They do provide a freely downloadable help compiler. Maybe developers no longer ship help with their applications. Or maybe they use other tools like RoboHelp from Adobe. I don’t know.
I believe Microsoft ships its Visual Studio 2005 on DVD. There should be plenty of room on that DVD for the Help Compiler. Not including it has made our life a bit more complicated. It is no big deal for developers to download and install the help compiler. But things get tricky for other individuals. Our configuration management team normally does our builds. They did not know how or where to install the Help Compiler.
To tell the truth, I have not even installed the Help Compiler on my machine. I guess I will not be building that application locally any time soon. Before completing this post I decided to browse the web to find out why Microsoft chose not to include the Help Compiler with Visual Studio. I think I quickly found out the answer. Microsoft’s new solution for help is HTML Help. Perhaps the old Help Compiler (which Microsoft calls the WinHelp Compiler) is going out of style.
My hope is that Microsoft does not leave us stranded having developed an extensive WinHelp component to one of our applications. Why convert to a new HTML Help system when it will not improve our end user experience any? Knowing Microsoft, I had better brush up on the new HTML Help system to be safe.
The blog post is from
“Sorry, but your comment has been flagged by the spam filter running on this blog: this might be an error, in which case all apologies. Your comment will be presented to the blog admin who will be able to restore it immediately.
You may want to contact the blog admin via e-mail to notify him.”
Now I am hoping that a human will review my response. It was actually a meaningful reply that was not spammy in the least. A human should be able to detect this. My first thought about being rejected by spam filter was maybe due to the fact that I have black hat in my e-mail address. Then I started thing some more. I am a Microsoft developer. In other words I am pro-Microsoft. Maybe the blog author has written a really smart spam filter that blocks out posts that are not pro-open source.
To quickly determine whether my e-mail address was the problem, I submitted the same response to the blog post using another email address. This time I made sure there was no reference to “black hat” in my e-mail or home page URL. I still got the same automated response from the blog. Who knows? Maybe all responses must get approved by the blog author. Well just for that I am not linking to his blog from this post.
3.1 Windows for Workgroups
4.0 Windows 95
5.0 Windows NT
6.0 Windows XP
7.0 Windows Vista
8.0 (the next Windows?)
Perhaps Microsoft has a different numbering strategy. Maybe Windows 95 and NT both count for one generation of Windows. Or maybe Windows NT does not count in the grand order of home windows operating systems.
I bet that, by the time the next version comes out, it will have a sexier name than Windows 7. Who knows? I could come up with a snazzy name myself and submit it to Microsoft for consideration. All I would want are bragging rights, and maybe a link from the Microsoft web site to my little blog. Not too much to ask for if I do say so myself.
At home I also run Visual C++ version 6.0. This allows me to view work that I take home, as well as work on my side software development business. I bought my copy of Visual C++ a long time ago. It has and continues to serve me well. Recently I have been writing software to release on my new blog Black of Hat. My latest program is Crawl. It was written in Visual C++ version 6.0. Details on the program can be found on my post entitled Crawl Program Released.
I am still debating whether to purchase an upgrade to Visual C++ version 6.0. An upgrade would be beneficial to learn how to develop in the Dot NET environment. But for now my goal is to knock out programs quickly.
You can start up Windows Explorer by right clicking on the Windows Start menu, and then clicking Explore. You can also run the executable "Explorer.exe". Right clicking on an object within Explorer usually let's you choose from a number of options in a context menu.
Choosing About from the Help menu in Explorer tells you interesting things such as the version of Windows you are running, and also how much RAM you have on your computer. I bet there are a lot of other cool features of Explorer that I don't even know about. I hope that Explorer is one piece of Windows that we agree Microsoft did a good job with. Wouldn't you say so?
The thing that amazed me is that the installation program for Visual Studio 2005 mentioned that many components were being installed. Here is a list of some of the ones that caught my eye:
- MSXML 6.0 Parser
- .NET Component Framework 1.0 SP3
- .NET Component Framework 2.0
- Visual J# 2.0
- SQL Server 2005 Mobile Edition
- SQL Server 2005 Express Edition
The new thing I recently learned about Explorer is that there are a number of optional command line options for the program. For example, "/n" will
[Open] a new single-pane window for the default selection. This is usually the root of the drive Windows is installed on. If the window is already open, a duplicate opens.
This brings me to a weird marketing attempt my Microsoft Corporation: The Source Fource. To tell the truth, I am not exactly sure what Fource means. That is how they spell it. Could be a knockoff on the Force. Maybe they are combining that with the Source?
The Source Fource is a bunch of action heroes based on the Microsoft product line. Perhaps some interns and good graphic arts employees cooked this up. I do not know. I can say that the "Office Master" who represents Microsoft Office has the best action figure. LOL.
What will Microsoft come up with next? I am hoping for more free downloaded like Visual Studio Express Edition. But that is a story for another post.
ASSOC - Displays or modifies file extension associations.
AT - Schedules commands and programs to run on a computer.
CACLS - Displays or modifies access control lists (ACLs) of files.
FIND - Searches for a text string in a file or files.
SUBST - Associates a path with a drive letter.
If you can't wait until I write my next few posts, you know you can always type HELP
- ASSOC AT ATTRIB BREAK CACLS CALL CD CHCP
- CHDIR CHKDSK CHKNTFS CLS CMD COLOR COMP
- COMPACT CONVERT COPY DATE DEL DIR DISKCOMP
- DISKCOPY DOSKEY ECHO ENDLOCAL ERASE EXIT
- FC FIND FINDSTR FOR FORMAT FTYPE GOTO
- GRAFTABL HELP IF LABEL MD MKDIR MODE MORE
- MOVE PATH PAUSE POPD PRINT PROMPT PUSHD
- RD RECOVER REM REN RENAME REPLACE RMDIR
- SET SETLOCAL SHIFT SORT START SUBST TIME
- TITLE TREE TYPE VER VERIFY VOL XCOPY
If you have ever done any DOS batch programming, these will look very familiar. I intend to review a couple of these command to remind how useful some of them can be.
I want to reminisce about the many tools I have used from Microsoft. And also review where we are today with Microsoft's latest offerings. As if this were not enough, eventually I want to get an idea of what the future of Microsoft software development tools are.
Please join me in the software way of life known as Microsoft.