Solutions are a Visual Studio concept. A solution is a container holding one or more projects that work together to create an application. Splitting your solution into a number of projects has several advantages:
- Multiple users can work on a solution, as different users can work on different projects.
- Breaking a solution down into a number of smaller projects makes them easier to handle and quicker to build.
- The projects in a solution can be in different programming languages, so splitting your application into a number of projects enables you to take advantage of mixed language programming.
- Solutions can contain projects, where some are compiled as managed code and some as native COBOL. You can use the various interoperability techniques to combine native COBOL with managed COBOL.
A solution has the extension
.sln, and is a human readable text file, which you could edit, though we recommend that you use the Visual Studio IDE to do so.
A COBOL project has the extension
.cblproj, and again is human readable. It is in msbuild format, which is explained in the Visual Studio Help. Different types of project have different extensions, so for example a C# project has the extension
.csproj.
Templates for different types of COBOL projects are supplied. Each template creates the appropriate file structure to hold the project and defines the appropriate build settings. For example, the following COBOL project templates, among others, are supplied:
- Mainframe Subsystem Application (native COBOL) - creates an empty solution and project. It offers project properties specific to the Mainframe applications such as BMS, CICS, IMS and JCL.
- Windows Forms Application (managed code) - creates an empty Windows form and skeleton COBOL code behind the form. It adds the necessary .NET Framework classes, such as System.Windows.Forms to the project references. It creates default project properties.
- Console Application (native COBOL) - adds the items needed to create a console application. Console applications are typically designed without a graphical user interface and are compiled into a stand-alone executable file. A console application is run from the command line with input and output information being exchanged between the command prompt and the running application.
- Class Library (managed code) - creates reusable classes and components that can be shared with other projects. Typically, this is built into a
.dll file.
- Templates for Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF) (managed code).
See the Visual Studio Help for more information on solutions and projects.