All-In-One Code Framework
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 on 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 become 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 All-In-One Code Framework will be of assistance to you.
All-In-One Code Framework delineates the framework and skeleton of most Microsoft development techniques (e.g. COM, Data Access, IPC) using typical sample codes in different programming languages (e.g. Visual C#, VB.NET, Visual C++). For instance, the code example ATLActiveXDll shows the skeleton of an ATL ActiveX DLL as its name implies. Each example is elaborately selected, composed, and documented to demonstrate one frequently-asked, tested or used scenario based on our experience as support engineers. 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 us, you may extend the sample codes a little to fit your specific test scenario or refer your customer to this project if the customer's question coincides with what we collected.
The target of the project is to sketch the skeleton of most Microsoft development techniques using typical sample codes that are frequently-asked, tested or used. You can imagine each technique as a building. The foundation of the building (the basics of the technique) and the facilities inside the building (the details of the technique) are not in the scope. Instead, you fill find the structure of the building (the framework and skeleton of the technique) in the scope.
All examples for all Microsoft development techniques are in one Visual Studio solution. All source codes, documents, and reference materials can be viewed or tested in one instance of Visual Studio.
· All examples follow a uniform naming convention. The convention applies to the name of the projects, variables, methods, types, etc.
· All examples have a uniform style of coding, commenting and documentation. For instance, each code example has a ReadMe.txt file that documents the example. The content of ReadMe.txt follows this structure: Use (the purpose of the example), Project Relation (the relation between the current example and the rest), Build (how to build the example), Creation (the detailed steps to create such an example) and References (the reference materials).
· All examples of the same technique manage to provide a uniform output or export. For instance, ATLActiveXDll, ATLActiveXExe, CSDllCOMServer, VBDllCOMServer, MFCActiveX, MFCSafeActiveX, CSActiveX, VBActiveX are COM components in different forms. However, they export a uniform set of methods, properties and events.
The code examples are mutually dependent or related, and many are efficiently reused by other examples to demonstrate the techniques. For instance, 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.
Source of Examples
The sample codes are refined out of our supports for developers in the newsgroups and the forums. You can think of the project as a collection of most frequently requested test scenarios in contrast with FAQs.
The above four features are highlighted because most sample code sites like www.codeproject.com and MSDN lack them. Besides, the code examples in All-In-One Code Framework are typical, extensible, structured, complete, and easy to understand.
In the pilot phase of the project, we focus on five techniques: COM, Library, IPC, Office and Data Access. Today is March 8, 2009. There have been 36 code examples in the project. The collection currently grows at a rate of seven examples per week.
The following examples are the epitome of CodeFx on 2009-3-1. For an up-to-date list, please refer to All-In-One Code Framework Examples.
Examples for COM and ActiveX:
A COM server written in C#
A COM server written in VB.NET
An in-process ATL COM Server
An out-of-process ATL COM Server
A MFC ActiveX Control
A MFC ActiveX Control Safe for Scripting and Initialization
A C# ActiveX Control
A VB.NET ActiveX Control
Use COM servers in a C++ application
Host ActiveX controls use COM servers in C#
Host ActiveX controls and use COM servers in VB.NET
Host ActiveX controls and use COM servers in MFC
Host ActiveX controls in HTML
Examples for Data Access:
Use ADO in a C# application
Use ADO in a C++ application
Use ADO.NET in a C# application
Use ADO.NET in a C++ application
Examples for Library:
A C++ dynamic library export symbols
C++ implicitly links a DLL
C++ delay-loads a DLL
C++ dynamically loads a DLL
C# dynamically loads a native DLL
C# P/Invokes a native DLL
A C# Class Library
C++ hosts CLR and loads a .NET assembly
C# dynamically loads and uses the types of a .NET assembly
C# emits an assembly with types in runtime
A C++ Static Library
C++ statically links a static library
Examples for IPC and RPC:
A named-pipe server written in C++
A named-pipe client written in C++
A named-pipe server written in C#
A named-pipe client written in C#
A mailslot server written in C++
A mailslot client written in C++
Create shared memory in C++
Access shared memory in C++
A .NET Remoting server written in C#
A .NET Remoting client written in C#
A .NET Remoting server written in VB
A .NET Remoting client written in VB
Published Wednesday, March 11, 2009 11:53 AM by MSDNTST
Attachment(s): COM and ActiveX.png