Category Archives: Blog Topics

Topics related to the Lexicon of Software blog itself

Implementation of the Web Service Interface

In my last post, we discussed the interface of the WCF application and how it forms a mutually binding contract, between the client and the service. The client must make their request in a format the service is expecting, and the service must fulfill the request in the format specified in the contract. This is all defined in the operation contract of the IArtService interface.

  • The request must be an XMLHttpRequest using the “GET” verb
  • The “GET” request must specifically request access to the ArtService.svc and the GetArtists method
  • The service must respond to the request with data serialized into the Json format

Here is a simple JavaScript function which would satisfy the contractual requirements for a request;

Once again, here is the IArtService interface where the mutually binding contract between the service and clients is defined;

As you can see, the interface also uses the System.Runtime.Serialization and System.ServiceModel.web name spaces to fulfill the request.

Now, lets examine the implementation of the IArtService interface. Here is the source code of the ArtService class which implements the IArtService interface;

As I stated in an earlier post, the purpose of the Art Service Class is not to expose the business logic of the World of Art web app. Instead, the purpose of the Art Service, is to simply expose specific data elements from the World of Art domain, which can be served upon request, to various software clients. In order to retrieve data from the world of art domain, the ArtService class references two name spaces from the WorldOfArtWebApp;

  • ArtWorldObjects
  • WorldOfArtWebApp.DataAccess

With these references, the GetArtist() method can reuse components of the WorldOfArtWebApp from the Data Access Layer and the Data Model defined in the Entity Framework.

The GetArtist() method is bound by the Operation Contract, defined in the IArtService interface, to return a list of artist objects. This requirement is satisfied by simply creating a new instance of the ArtWorldCollectionArtist Class, and accessing the collection of artist objects in the ArtWorldCollection property. The collection of artist objects is retrieved from the WorldOfArtContext, generated from the Entity Framework. The WCF web service will serialize each of this artist objects into JSON format as specified in the operation contract.

In my next post, I will discuss how to specify which properties of the Artist object are exposed to the web service. Also, here is the source code for the ArtWorldCollectionArtist class, invoked by the GetArtist() method.

Why develop a website devoted to the world of art?

Anyone can be an artist, and I say that with no disrespect for anyone who calls them self an artist. To me an artist is someone who loves to create, and puts their whole heart into what they create, no matter what form the creation may take.  When this happens, a work of art is created, and the work of art is an expression of love. Love is the most powerful force in the universe.  After all, isn’t the universe itself  a work of art, and an expression of love?

My hope for the website, is for it to be a place where anyone can create something they love.

I hope this is an adequate answer to a compelling question.

 

First Iteration of the World of Art Web App

Today I published the first iteration of the World of Art web app. For now I simply used the default look & feel that comes with the Web App Template available in Visual Studio 2010.

The master page, which comes with the Web App Template, has some very simple tab based site navigation already built in. I created three pages which can be reached by clicking on their corresponding tab.

  • Home
  • About
  • Blog

The Blog tab will simply navigate the user to this blog site.

Deployment of the web app to WinHost is a very simple process.
Web app deployment

Website Project Template or Web App Project Template

Now that we have the first iteration of the World Of Art domain defined, along with  a supporting database, it’s time to develop a website where the world of art information can be made available for public consumption.

Visual Studio 2010 provides several website and web app templates, which are already built and tested. You can also select an empty project structure and build from scratch.  I prefer to start with a pre-built project template, designed for the type of application I have in mind. This provides a solid foundation to build on, and allows me to focus more on developing for the customer’s domain.  However, one must still be careful when selecting a pre-built template. I found an excellent article called Web Application Projects versus Web Site Projects at msdn.

I decided the web application project structure would be the best choice for the world of art app. Primarily because support of database access is a critical part of the application design. The web application project provides the most flexibility for database access. It also allows me to deploy a pre-compiled application which makes deployment more straight forward.
 
Selecting a Project Template in Visual Studio 2010

Web Application Template Example

Welcome to The Lexicon of Software by Tim Daniels

Tim Daniels

Tim Daniels

The Lexicon of Software is a blog site published by Tim Daniels. This site is devoted to topics in application software development. Posts from Tim are based on actual development tasks, which include coding, architecture and design. Tim will take readers through all the iterations of developing an actual software application project.

twitter-follow screen_name=’@tdaniels1209′ show_screen_name=’no’

What is this all about?