In this tutorial you expose the functionality of the SqlBookWrapper program as a WCF service and use a console application
               as a client to communicate with it. 
               	 
            
 
            	 
            
               Demonstration Solution
 
               		 
               		
               The SqlBookWCF solution and project you create for this tutorial uses the following provided demonstration files in addition
                  to the BookDemo base application: 
                  		
               
 
               		
                
                  		   
                  			 
                  - sqlbook.cbl 
                     			 
                  
-  In this tutorial, the 
                     				sqlbook.cbl program is recompiled to managed code without any changes. Recompiling the program exposes it as a class and exposes its
                     main entry point as a static method. Its linkage section defines data as standard COBOL types, such as PIC X. Non-COBOL client
                     programs do not understand these standard COBOL types. Therefore, you must map the standard COBOL types to .NET compatible
                     types before communicating with the client program. This mapping is done by the 
                     				SqlBookWrapper.cbl program. 
                     			 
                  
- ISqlBook.cbl 
                     			 
                  
-  Defines the WCF service and data contracts. Methods that define the operations in the SQLBookWrapper program are marked with
                     the System.ServiceModel.OperationContract() attribute. These are exposed via service endpoints. The SqlBookWrapperWCF.SqlBook
                     class marked with the DataContract attribute exposes the data from the SqlBookWrapper program. 
                     			 
                  
- SqlBookService.cbl 
                     			 
                  
- The WCF service. 
                     			 
                  
- app.config 
                     			 
                  
- Defines service endpoints that enable the WCF service to call SqlBookWrapper code. 
                     			 
                  
  
            	 
            
               Populate the BookDemo Database
 
               		 
               		
                
               	 
              
            	 
            
               Create a Solution and Project
 
               		 
               		
                
                  		  
                  - Start 
                     			 Enterprise Developer. 
                     		  
                  
- In 
                     			 Enterprise Developer, click 
                     			 File > New > Project. 
                     		  
                  
- Under 
                     			 Installed > Templates, expand 
                     			 COBOL; then click 
                     			 Managed. 
                     		  
                  
- At the top of the center pane, ensure that 
                     			 .NET Framework 4.5 is selected. 
                     		  
                  
- In the center frame, select 
                     			 WCF Service Library. 
                     		  
                  
- Complete the remaining fields as follows: 
                     			 
                     
                         
                           				   
                           				   
                           				  
                            
                              					 
                               
                                 						
                                 | Name | SqlBookWCF |   
                                 						
                                 | Location | Full path to any local directory; for example, 
                                    						  c:\VSTutorials |   
                                 						
                                 | Solution Name | SqlBookWCF |  
 
 
- If the location you specified doesn't exist, check 
                     			 Create directory for solution. 
                     		  
                  
- Click 
                     			 OK. 
                     		  
                  
  
            	 
            
               Add Existing Projects
 
               		 
               		
               These projects contain your application source code, etc. 
                  		
               
 
               		
                
                  		  
                  - In the Solution Explorer, right-click the 
                     			 SqlBookWCF solution; then select 
                     			 Add > Existing Project. 
                     		  
                  
- Browse to the 
                     			 %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\SQL\ado.net\SqlBookWrapper directory. 
                     		  
                  
- Double-click the 
                     			 SqlBookWrapper COBOL project. 
                     		  
                  
- In the Solution Explorer, right-click the 
                     			 SqlBookWCF solution; then select 
                     			 Add > Existing Project. 
                     		  
                  
- Browse to the 
                     			 %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\SQL\ado.net\SqlLegacyBook directory. 
                     		  
                  
- Double-click the 
                     			 SqlLegacyBook COBOL project. 
                     		  
                  
  
            	 
            
               Add Project References
 
               		 
               		
                
                  		  
                  - In the Solution Explorer, right-click the 
                     			 SqlBookWCF project; then select 
                     			 Add > Reference. 
                     		  
                  
- In the left pane, expand 
                     			 Solution; then click 
                     			 Project. 
                     		  
                  
- In the right pane, check 
                     			 SqlBookWrapper and 
                     			 SqlLegacyBook; then click 
                     			 OK. 
                     		  
                  
  
            	 
            
               Add Components
 
               		 
               		
                
                  		  
                  - In the Solution Explorer, delete the 
                     			 app.config, 
                     			 IService1.cbl, and 
                     			 Service1.cbl files from the 
                     			 SqlBookWCF project. 
                     		  
                  
- Right-click the project; then select 
                     			 Add > Existing Item. 
                     		  
                  
- On the Add Existing Item dialog box, select 
                     			 All Files (*.*) from the 
                     			 Filename filter drop-down list. 
                     		  
                  
- Browse to the 
                     			 %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\SQL\ado.net\SqlBookDemoWCF\SqlBookWCF directory. 
                     		  
                  
- Select the following files: 
                     			 
                      
                        				
                        - app.config 
                           				
                        
-  ISqlBook.cbl 
                           				
                        
-  SqlBookService.cbl 
                           				
                        
 
- Click 
                     			 Add. 
                     		  
                  
  
            	 
            
               Build the SqlBookWCF Project
 
               		 
               		
                
                  		  
                  - In the Solution Explorer, right-click the 
                     			 SqlBookWCF project; then select 
                     			 Build from the context menu. 
                     		  
                  
  
            	 
            
               Configure Service Endpoint
 
               		 
               		
                This is the default endpoint that exposes metadata details about your service through the IMetaData Exchange contract. 
                  		
               
 
               		
                
                  		  
                  - In the Solution Explorer, right-click the 
                     			 app.config file in the 
                     			 SqlBookWCF project; then select 
                     			 Edit WCF Configuration from the context menu. 
                     		  
                  
-  In the left pane of the Microsoft Service Configuration Editor, expand 
                     			 SqlBookWCF.Service1; then click 
                     			 Host. 
                     		  
                  
- In the right pane under 
                     			 Base Addresses, observe that the base address is local, as specified by the 
                     			 http://localhost portion of the address. 
                     		  
                  
- In the left pane, expand 
                     			 Endpoints; then click the first 
                     			 (Empty Name) instance listed below. 
                     		  
                  
- In the right pane, click the 
                     			 Contract field; then click its browse button. 
                     		  
                  
-  Browse to the 
                     			 \bin\Debug project subdirectory. 
                     		  
                  
- Double-click 
                     			 SqlBookWCF.dll. 
                     		  
                  
- Select the 
                     			 SqlBookWCF.IsqlBook contract; then click 
                     			 Open. 
                     		  
                  
- Click 
                     			 File > Save; then close the Editor. 
                     		  
                  
  
            	 
            
               Test the Service
 
               		 
               		
               Visual Studio provides a built-in WCF Service Host application and a WCF Test Client application that enable you to test your
                  service without having to create a client application. 
                  		
               
 
               		
                
                  		  
                  - SqlBookWCF should already be set as your startup project as evidenced by its bold appearance in the Solution Explorer; however, if it
                     does not appear in bold, right-click the 
                     			 SqlBookWCF project; then and select 
                     			 Set as StartUp Project from the context menu. 
                     		  
                  
- From the main menu, click 
                     			 DEBUG > Start Without Debugging. 
                     			 
                     This starts the service and invokes the WCF Test Client window. The left pane shows the endpoint for your service and the
                        operations that are exposed. 
                        			 
                      
- In the left pane, double-click the 
                     			 Read() operation. 
                     			 
                      This populates the right pane with operation details, and enables you to test the operation. 
                        			 
                      
- In the Request pane, change the value for 
                     			 stockNumber to 
                     			 1111; then click 
                     			 Invoke. 
                     			 
                     Note: If a Security Warning appears, check 
                        				In the future, do not show this message.; then click 
                        				OK. 
                        			 
                      This populates the Response pane with the data associated with stock number 1111. 
                        			 
                      
- Test the operation again, substituting alternative stock numbers. Valid values are 
                     			 1111, 
                     			 2222, and 
                     			 3333. 
                     		  
                  
- Close the WCF Test Client window. 
                     		  
                  
  
            	 
            
               Create a Client Project
 
               		 
               		
                In the real world, you use various client applications to access services via their endpoints. As part of this tutorial,
                  you create a simple managed console client application to access the SqlBookWrapper program through the WCF service contract,
                  and query the database. 
                  		
               
 
               		
                
                  		  
                  - In the Solution Explorer, right-click the solution; then select 
                     			 Add > New Project. 
                     		  
                  
- In the left pane, expand 
                     			 Installed > COBOL; then click 
                     			 Managed. 
                     		  
                  
- In the center pane, select 
                     			 Console Application. 
                     		  
                  
- In the 
                     			 Name field, type 
                     			 SqlClientWCF; then click 
                     			 OK. 
                     		  
                  
  
            	 
            
               Add a Service Reference
 
               		 
               		
                Visual Studio provides an easy way to use a WCF service in a client application. The Add Service Reference functionality
                  adds the service to the client project and generates a proxy for the client to use. 
                  		
               
 
               		
                
                  		  
                  - In the Solution Explorer, right-click the 
                     			 SqlClientWCF project; then select Add Service Reference. 
                     		  
                  
- In the Add Service Reference window, click 
                     			 Discover. 
                     		  
                  
- In the 
                     			 Namespace field, replace the default namespace with 
                     			 SqlBookWCF; then click 
                     			 OK. 
                     		  
                  
  
            	 
            
               Edit the Client Application
 
               		 
               		
                You need to program your WCF client so that it uses the exposed operations of your WCF service. In this tutorial, the client
                  passes the stock number as it invokes the 
                  		  Read() operation, and then displays the returned data. 
                  		
               
 
               		
                
                  		  
                  - In the Solution Explorer, delete the 
                     			 Program1.cbl template file in the 
                     			 SqlClientWCF project. 
                     		  
                  
- Right-click the 
                     			 SqlClientWCF project; then select 
                     			 Add > Existing Item. 
                     		  
                  
- On the Add Existing Item dialog box, select 
                     			 All Files (*.*) from the 
                     			 Filename filter drop-down list. 
                     		  
                  
- Browse to the 
                     			 %PUBLIC%\Documents\Micro Focus\Enterprise Developer\Samples\SQL\ado.net\SqlBookDemoWCF\SqlClientWCF directory. 
                     		  
                  
- Select 
                     			 Program1.cbl; then click 
                     			 Add. 
                     		  
                  
  
            	 
            
               Configure Client Endpoint
 
               		 
               		
                
                  		  
                  - In the Solution Explorer, right-click the 
                     			 app.config file in the 
                     			 SqlClientWCF project; then select 
                     			 Edit WCF Configuration from the context menu. 
                     		  
                  
-  In the left pane of the Microsoft Service Configuration Editor, expand 
                     			 Client > Endpoints; then click 
                     			  WSHttpBinding_ISqlBook. 
                     		  
                  
- In the right pane, click the 
                     			 Contract field; then click its browse button. 
                     		  
                  
-  Browse to the 
                     			 \bin\Debug subdirectory of the 
                     			 SqlBookWCF project. 
                     		  
                  
- Double-click 
                     			 SqlBookWCF.dll. 
                     		  
                  
- Select the 
                     			 SqlBookWCF.IsqlBook contract; then click 
                     			 Open. 
                     		  
                  
- Click 
                     			 File > Save; then close the Editor. 
                     		  
                  
  
            	 
            
               Run the Client
 
               		 
               		
                
                  		  
                  -  In the Solution Explorer, right-click the 
                     			 SqlClientWCF project; then select 
                     			 Set as StartUp Project from the context menu. 
                     		  
                  
- From the main menu, click 
                     			 DEBUG > Start Debugging. 
                     		  
                  
- When prompted, enter 
                     			 1111. 
                     			 
                     This returns the data associated with stock number 1111. 
                        			 
                      
- Press 
                     			 Enter to exit the console application. 
                     		  
                  
  
            	 
            This concludes the WCF COBOL Service using SQL tutorial.