Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Creating a WCF service

From: Visual Studio 2010 Essential Training

Video: Creating a WCF service

There is often a requirement when building an application to communicate with an external service. In today's programming environment, that service often lives in the cloud. Programmers have been working for years to come up with the best way of communicating with a remote service. Microsoft has several ideas here too. For example, they have web services, remoting, and a multitude of networking protocols. A few years back, Microsoft decided to create a unified architecture for working with these disparate technologies.

Creating a WCF service

There is often a requirement when building an application to communicate with an external service. In today's programming environment, that service often lives in the cloud. Programmers have been working for years to come up with the best way of communicating with a remote service. Microsoft has several ideas here too. For example, they have web services, remoting, and a multitude of networking protocols. A few years back, Microsoft decided to create a unified architecture for working with these disparate technologies.

The outcome of that work is called Windows Communication Foundation, also known as WCF. The key point about WCF is that it works in a flexible way. You create a service that provides data or functions. Through a configuration file, you specify which technologies this service will use for the communication channel, and how the data will be transmitted. By changing the configuration files on the client and the server, you can easily change to another channel. I am inside Visual Studio.

It's important that you run Visual Studio as an administrator if you want to test the project. I have opened a solution called ProvideWcfServices. This solution already contains a service project called BookServicesV2. This is the finished version of this service. I am going to show you how to use the WCF project template to create a project. I am going to right-click on my solution and choose Add > New Project. I am going to choose my language of choice-- today it's going to be Visual C#--and then I am going to click on the WCF folder.

Do you see that I have four templates in here? The one I am going to work with today is the WCF Service Library. I am going to call this one BookServicesV1, and then I am going to click OK. This should go in the same folder as the existing solution. I see I have a typo. I said BookServices, but I typed BookService.

Let me fix that and then click OK. Here is my service. Now remember what I am doing here. I am writing some code that's going to do some work for my clients, or going to provide some data for them. WCF expects you to write an interface, and they have already stubbed in one interface for you called IService. Then you're supposed to create a concrete implementation of that service by creating a class. So there is also a class here called BookServices. There is also a class here called Service1.

These are not good names for my services. I am thinking I am going to be working with a library of books, so I might want to have it called BookService and IBook and names along those lines. So what I can do is refactor these by clicking on the IService name here, changing it in the file to IBook. Visual Studio notices that I am changing the file and is suggesting that I also rename the references in code. I am going to say Yes.

Can you see what happened here on line 11? Now it says IBook there. Then I need to rename this service, the concrete class. I am going to call this one Book, and it will go through the same process: "Would you like to rename this?" I am going to say yes. Next, I need to go into my interface and provide the operational contracts. I am going to specify what is okay to expose to the network by adding these attributes in my code. For instance, you can see I have got this class down here that is a DataContract, and I've got an interface up here that is a ServiceContract, and I've got a method here that has an OperationContract on it. That's saying that this operation or this function is exposable from the web service.

In order to make the application work, I need to set a configuration. Both the service that's running on a server somewhere and the client need to have a configuration file saying how they plan to communicate. To make it easy to create a configuration file, you can right-click on this App.config and choose Edit WCF Configuration. Now the details of how to set this up are beyond the scope of this introduction to web services. Just let me point out this one piece.

Here is this service that I am exposing, BookServicesV1.Book, and underneath this, I can see the Host. I am not sure if this is going to work correctly on your machine. On my machine, I have localhost set up, and I have this hardcoded port, 8732. I believe if you open this application on your machine, it should use the same port. If not, you'll need to investigate which port is running on your server and change this number to match your machine. Rather than setting up this configuration, I already have a second version of this application that's set up correctly.

So I am going to close this dialog, and I am going to show you BookServicesV2. Inside BookServicesV2, I have a class called BookData, which has a BookId, Title, Author, and Price. Inside my BookService, which you remember is my Concrete class, I have a private field that contains a list of BookData. I have a constructor that fills that list full of instances of BookData and then down in this section, I have added some methods: AddBook, UpdatePrices, and GetBooks.

You might remember that I said, in my IBook services, I need to set up my contract. So if I look over here, you'll see that I have a contract that says I have an Operational contract for the AddBook method, the Update books, and the GetBooks. So I've got those all set up correctly. Next, I go to my configuration file, set that up, and then lastly, I am ready to test this out. So I am going to start the application.

Notice down here in the lower right-hand corner, it says that my service has been hosted-- that means it's running on the server--and click here to view detailed information. That's the one I wanted to see. I actually have two services running right now. I have the new service I just added and the existing service, and it took them a little while for the second service to show up. This is the one I was showing you earlier today, and here is the one, the finished version. I am going to close these dialogs down, and I am going to unload this BookService, so it's not too confusing.

I am going to right-click on it and choose Unload Project. Now, when I run the application, it won't compile or run that service. It shows my service has started. This is the end point. If I have a client out there somewhere that wants to call this service, this is the address that you are going to go to. And because I don't have a client, Visual Studio creates this testing harness called the WCF Test Client.

This shows that my service exposes three items through the operational contract: AddBook, UpdatePrices, and GetBooks. So I can double-click on this GetBooks functions, and then come over here and click on Invoke. So I am now taking the role of a client who is going to call that service. I am getting warned that I am doing something where the information is going to go over the Internet, and people could see what's in that call to the server. I am going to go ahead and say OK to this message. It's contacting the server and then down here in the bottom, it shows it returned a list of three items.

There is a book with an Author called Walt Ritscher, and another book down here with Sam Pearson, and down here is one for Sarah. All right, I can choose this UpdatePrices, enter the new increased amount, 1.2 and click on Invoke. That method is going to go to the server and change the prices on the book. So now if I call GetBooks again, and invoke it, I should see some new prices.

I would like to remind you that you have to run Visual Studio as an administrator if you want to invoke this test client, like I am doing here, or if you want to try out the service. It's review time. What have I done in this movie? I created a service, and I configured it to run on my local server. I exposed a method on the service through a data contract. In the next movie, I am going to show you how to use this service from a client-side application.

Show transcript

This video is part of

Image for Visual Studio 2010 Essential Training
Visual Studio 2010 Essential Training

86 video lessons · 30133 viewers

Walt Ritscher
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 2s
    2. Using the exercise files
      1m 1s
  2. 7m 19s
    1. Understanding the Visual Studio versions
      3m 51s
    2. Setting up your developer computer
      3m 28s
  3. 58m 2s
    1. Creating a Visual Studio project
      4m 58s
    2. Working with Solution Explorer
      6m 32s
    3. Working with big projects
      3m 53s
    4. Taking a tour of the Integrated Developer Environment (IDE)
      8m 36s
    5. Introducing drag-and-drop UI design
      7m 38s
    6. Working with the Properties window
      6m 44s
    7. Looking at Server Explorer
      7m 4s
    8. Exploring the new Help engine
      6m 41s
    9. Setting options for the IDE
      5m 56s
  4. 39m 25s
    1. Creating a simple WPF application
      1m 32s
    2. Building the UI with the editors
      9m 14s
    3. Working with the application code
      3m 37s
    4. Communicating with the web site
      7m 15s
    5. Connecting your data
      8m 4s
    6. Binding to an RSS feed
      5m 4s
    7. Packaging and deploying the application
      4m 39s
  5. 39m 46s
    1. What languages are supported in Visual Studio 2010?
      1m 17s
    2. Exploring basic settings for the Code Editor
      5m 35s
    3. Writing a C# program
      6m 48s
    4. Writing a VB program
      6m 29s
    5. Working with C++
      6m 38s
    6. Working with F Sharp
      6m 9s
    7. Font and color options
      6m 50s
  6. 1h 5m
    1. Formatting your code
      6m 43s
    2. Navigating your code
      7m 44s
    3. Using the Task List
      2m 26s
    4. Commenting your code
      2m 45s
    5. Documenting your code
      8m 26s
    6. Using IntelliSense effectively
      7m 0s
    7. Working with code snippets
      6m 25s
    8. Refactoring your code
      5m 15s
    9. Understanding code generation
      2m 10s
    10. Generating code with T4
      6m 29s
    11. Using the Class View, Class Designer, and Class Diagram tools
      5m 51s
    12. Refactoring VB with CodeRush Xpress
      4m 33s
  7. 1h 11m
    1. Working with project and item templates
      8m 38s
    2. Creating a console application
      7m 5s
    3. Creating a class library
      6m 26s
    4. Creating a web site with ASP.NET
      7m 37s
    5. Creating a rich internet application with Silverlight
      6m 57s
    6. Creating a classic Windows application with Windows Forms
      10m 31s
    7. Creating a dramatic Windows application with Windows Presentation Foundation (WPF)
      4m 41s
    8. Creating a WCF service
      9m 1s
    9. Using an existing WCF service
      6m 38s
    10. Navigation UI designs with the Document Outline view
      3m 41s
  8. 33m 18s
    1. Creating a data project with SQL Project
      6m 24s
    2. Clarifying the confusion on .NET Data
      3m 31s
    3. Using ADO.NET in your application
      6m 50s
    4. Creating typed datasets
      7m 55s
    5. Using the data binding tools
      8m 38s
  9. 30m 13s
    1. Debugging code
      9m 32s
    2. Working with the Watch and other debug windows
      7m 46s
    3. Other debugging techniques
      6m 50s
    4. IntelliTrace historical debugging in Visual Studio Ultimate
      6m 5s
  10. 17m 56s
    1. Understanding Visual Studio editions and test tools
      2m 22s
    2. Verifying your code with unit tests
      8m 58s
    3. Running performance and load tests
      6m 36s
  11. 34m 5s
    1. Building your application
      4m 19s
    2. Customizing the build process with MSBuild
      6m 36s
    3. Setting assembly information
      2m 12s
    4. Deploying a basic Windows application
      2m 19s
    5. Creating an installer with Visual Studio
      7m 39s
    6. Creating a ClickOnce application
      5m 13s
    7. Setting up IIS for deploy
      2m 9s
    8. Deploying a Silverlight or ASP.NET application
      3m 38s
  12. 14m 0s
    1. Understanding source control
      2m 9s
    2. Setting up Team Foundation Server source control
      3m 5s
    3. Using Team Foundation Server source control
      8m 46s
  13. 17m 31s
    1. Understanding the .NET Office integration
      4m 16s
    2. Making a Word 2010 application
      7m 54s
    3. Making an Excel 2010 add-in
      5m 21s
  14. 31m 34s
    1. Understanding the extensibility model in Visual Studio
      2m 17s
    2. Adding external tools to the Tools menu
      4m 42s
    3. Creating macros
      7m 16s
    4. Using the Extension Manager
      5m 1s
    5. Creating an MEF add-in
      7m 9s
    6. Deploying and installing an add-in with VSIX
      5m 9s
  15. 25m 34s
    1. Working with configuration files
      5m 37s
    2. Using the Settings Editor
      7m 30s
    3. Using the Resources Editor
      6m 59s
    4. Localizing your resources
      5m 28s
  16. 1m 17s
    1. Goodbye
      1m 17s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Visual Studio 2010 Essential Training.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.