The Project was Renamed and Migrated to "All-In-One Code Framework"

Welcome to the HelloWorld sample center!

Dear Friends. Have you ever needed a quick understanding of a technique, e.g. ActiveX or VSX, but been daunted by the few or too many samples and documents that are available in the internet? Have you ever downloaded or created a good sample, e.g. a named pipe sample for IPC, but forgotten where the sample was placed after a few days? Have you ever wanted a simple test environment, e.g. a COM object or a DLL, but been tired of frequently creating such projects and naming them as “ClassLibrary1”, "ClassLibrary2”, "ClassLibraryABC”?

If your answer is YES to any one of these questions, this HelloWorld sample center may be of assistance to you.

HelloWorld sketches the skeletons of most Microsoft development techniques. For example, the sample ATLActiveXDll shows the skeleton of an ATL ActiveX DLL as its name implies. Each sample is elaborately selected, composed, and documented to demonstrate one frequently-asked/tested/used scenario based on my experience as a support engineer. If you are a software developer, you can fill the skeleton with blood, muscle and soul; if you are a software tester or a support engineer like me, you may extend the samples a little to fit your specific test scenario or refer your customer to this sample center if the customer’s question coincides with what I collected.

The scope of the project

The target of the project is to sketch the skeleton of most Microsoft development techniques using the typical samples that are frequently tested / used / asked. You can imagine each technique as a building. The foundation of the building (the basic things of the tech) is not in scope; the facilities inside the building (the details of the tech) are not in scope; the structure of the building (the skeleton of the tech) is in scope.

The current stage of the project

Today is February 8th. The project was started thirty days ago. In the rudiment of the project, I selected three techniques (COM, Library, and IPC) and added about thirty samples to exemplify what the project will be for the rest dozens of Microsoft development techniques:
  • Samples for ActiveX and COM
COM and ActiveX.png
  • Samples for Library
  • Samples for IPC

The supports from the community will definitely play the most important role in this project. Besides it, I am in a very big team with 50+ engineers supporting in the newsgroups and the forums. The team is harbored with many experienced support engineers and covers almost all of the Microsoft development techniques. It is very important for the project to get the team’s support. I am going to lobby for it in the following days.

  • All in One: All samples for all techniques are in one Visual Studio solution; all source codes, all documents, and all reference materials can be viewed or tested in one instance of Visual Studio.
  • Mutually Dependent and Reused: The samples are mutually dependent or related, and some are efficiently reused by other samples to demonstrate the techniques. For example, CppDllExport is a sample C++ DLL that exports the symbols of data, functions and classes. CppImplicitlyLinkDll depends on CppDllExport to demonstrate the implicit link of a DLL; CppDelayloadDll delay-loads the DLL; CppLoadLibrary dynamically loads the DLL; CSPInvokeDll uses CppDllExport to show the use of .NET Platform Invocation Service.
  • Uniform:
    • All samples follow a uniform naming convention. The convention applies to the project name, variable/method/type name, etc.
    • All samples have a uniform coding/commenting/documenting style. For example, each sample has a ReadMe.txt file that documents the sample. The content of ReadMe.txt follows this structure: Use (the purpose of the sample) / Project Relation (the relation between the current sample and the rest) / Build (how to build the sample) / Creation (the detailed steps to create such a sample) / References (the reference materials).
    • All samples of the same technique manage to provide a uniform export/output. For example, ATLActiveXDll, ATLActiveXExe, CSDllCOMServer, MFCActiveX, MFCSafeActiveX are COM servers in the different forms, however, they export a uniform set of methods, properties and events.
I highlight the above three features because they are lacked by most sample collections like, and MSDN.

Apart from the three points, the samples in HelloWorld are expected to be typical, extensible, structured, complete, and easy to understand for those who are new to the technique.


I expect to hear your feedbacks, whether good or bad. Please post your ideas in Discussions or contact me or email to hiworldf directly. Your regards for the project are appreciated.


Last edited Mar 1, 2009 at 2:17 PM by Jialiang, version 12