Contract First Development in WCF 4.5
WCF 4.5 supports contract first development. Means it allows to create all the data contract classes can be auto generated using the WSDL. one of the advantage in using the is if we start developing the service from the data contracts & then generating the WSDL we might end up in creating from data contracts with .net specific data types. But when using contract first development as WSDL is xml based only xml based data types are allowed to create so no .net specific contract will be created. This feature can be very useful when WSDL file is produced through design phase either by a solution architect or through mutual parties that agree on a contract prior to development and build phases. When this is the case, either the contract can be created for a future service implementation or contracts can be created so that developers can begin coding for the client side of an interface prior to the endpoint being available.
The contract-first tool is integrated into Visual Studio 2012 as a build task. The code files generated by the build task are created every time the project is built, so that the project can easily adopt changes in the underlying service contract.
We’ll see step by step how we can create the data contracts using a WSDL file.
Step 1:
Create a WCF service library project.Add a sample WSDL file in to the project. This is a sample WSDL for a data contract named Product with some properties.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="ServiceSchema"
targetNamespace="http://tempuri.org/ServiceSchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/ServiceSchema.xsd"
xmlns:mstns="http://tempuri.org/ServiceSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="Product">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" default="2.2" />
<xs:element minOccurs="0" maxOccurs="1" name="Category" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Code" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Quantity" type="xs:double" />
<xs:element minOccurs="0" maxOccurs="1" name="Price" type="xs:double" />
<xs:element minOccurs="0" maxOccurs="1" name="Orders" type="xs:double" />
</xs:sequence>
</xs:complexType>
</xs:schema>
Step 2:
Contract-first options can be configured in the Properties menu of a WCF project. To enable contract-first development, select the Enable XSD as Type Definition Language check box in the WCF page of the project properties window.
You can set the advanced properties by clicking the advanced button & configure them in the advanced properties window.
Step 3:
After setting the properties build the project by pressing F6. Then the data contract will be available in the project.
Auto Generated code will be as follows. The file is created in the <project directory>/obj/<build configuration>/XSDGeneratedCode/ directory by default.
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace ContractFirstDemo.ContractTypes
{
using System.Xml.Serialization;
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("MSBuild", "4.0.30319.17929")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/ServiceSchema.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/ServiceSchema.xsd", IsNullable=true)]
public partial class Product
{
private string nameField;
private string categoryField;
private string codeField;
private double quantityField;
private bool quantityFieldSpecified;
private double priceField;
private bool priceFieldSpecified;
private double ordersField;
private bool ordersFieldSpecified;
public Product()
{
this.nameField = "2.2";
}
/// <remarks/>
[System.ComponentModel.DefaultValueAttribute("2.2")]
public string Name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
}
}
/// <remarks/>
public string Category
{
get
{
return this.categoryField;
}
set
{
this.categoryField = value;
}
}
/// <remarks/>
public string Code
{
get
{
return this.codeField;
}
set
{
this.codeField = value;
}
}
/// <remarks/>
public double Quantity
{
get
{
return this.quantityField;
}
set
{
this.quantityField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool QuantitySpecified
{
get
{
return this.quantityFieldSpecified;
}
set
{
this.quantityFieldSpecified = value;
}
}
/// <remarks/>
public double Price
{
get
{
return this.priceField;
}
set
{
this.priceField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool PriceSpecified
{
get
{
return this.priceFieldSpecified;
}
set
{
this.priceFieldSpecified = value;
}
}
/// <remarks/>
public double Orders
{
get
{
return this.ordersField;
}
set
{
this.ordersField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool OrdersSpecified
{
get
{
return this.ordersFieldSpecified;
}
set
{
this.ordersFieldSpecified = value;
}
}
}
}
Hope this gives you a starting point to start developing WCF with Contract first development. You can find some posts in the below URLS.
- http://msdn.microsoft.com/en-us/library/hh674270.aspx
- http://www.bloggedbychris.com/2012/08/08/net-4-5-contract-development-create-service-contracts-wsdl/
Happy Coding
Great article
ReplyDeleteDot Net Online Training
online dot net training from india
Great Post!!!
ReplyDeleteIf we create dotnet specific data contracts in WCF, then what would be the mistake, eventually it will create WSDL in xml format only so that this will be used any technology, Here I dont find any wrong
ReplyDeleteExcellent ! I am truly impressed that there is so much about this subject that has been revealed and you did it so nicely. Dot Net Training in Chennai
ReplyDeleteGreat post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
ReplyDeleteMicrosoft Azure online training
Selenium online training
Java online training
Java Script online training
Share Point online training
Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
ReplyDeletedevops online training
aws online training
data science with python online training
data science online training
rpa online training
This comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeletecelR offers data science course in hyderabad , the most comprehensive Data Science course in the market, covering the complete Data Science lifecycle concepts from Data Collection, Data Extraction, Data Cleansing, Data Exploration,
ReplyDeleteAttend The Course in Data Analytics From ExcelR. Practical Course in Data Analytics Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Course in Data Analytics.
ReplyDeleteExcelR Course in Data Analytics
I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page!
ReplyDeleteThis post is very simple to read and appreciate without leaving any details out. Great work! data science course fees in Bangalore
ReplyDeleteI have to search sites with relevant information on given topic and provide them to teacher our opinion and the article.
ReplyDeleteExcelR data analytics courses
I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information . thank you
ReplyDeletepython training in chennai
python online training in chennai
python training in bangalore
python training in hyderabad
python online training
python flask training
python flask online training
python training in coimbatore
Thanks for sharing this post, it was great reading this article! would like to know more! keep in touch and stay connecteddata scientist courses
ReplyDeleteVery nice blogs!!! i have to learning for lot of information for this sites…Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing, data science training
ReplyDeleteI've read this post and if I could I desire to suggest you some interesting things or suggestions. Perhaps you could write next articles referring to this article. I want to read more things about it!
ReplyDeletedata science certification
You re in point of fact a just right webmaster. The website loading speed is amazing. It kind of feels that you're doing any distinctive trick. Moreover, The contents are masterpiece. you have done a fantastic activity on this subject!
ReplyDeletedata scientist course in hyderabad
I enjoy it for creating the details, keep up the truly amazing perform continuing
ReplyDeletedata scientist training in hyderabad
https://intellimindz.com/splunk-online-training/
ReplyDeletehttps://intellimindz.com/r-programming-online-course/
https://intellimindz.com/react-online-course/
https://intellimindz.com/salesforce-online-training/
We are really grateful for your blog post. You will find a lot of approaches after visiting your post. Great work
ReplyDeletedata scientist course
Thanks for such a great post and the review, I am totally impressed! Keep stuff like this coming.
ReplyDeletecyber security course in malaysia
You completed certain reliable points there. I did a search on the subject and found nearly all people will agree with your blog.
ReplyDeletedata scientist course in hyderabad
Really an awesome blog. The way you present this blog is impressive. If you want to become a data science expert, follow the below link.
ReplyDeleteOnline Data Science Training in Hyderabad
I want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging enedevors
ReplyDeletedata analytics course in trivandrum
I go to your blog frequently and counsel it to the complete of folks who desired to feature-on happening their understanding subsequent to ease. The style of writing is exquisite and plus the content material is summit-notch. thanks for that perception you provide the readers! https://crackdj.com/windows-7-ultimate-product-key/
ReplyDeletei'm incapable of reading articles online particularly frequently, however Im happy I did nowadays. it is selected adroitly written, and your points are adeptly-expressed. I demand you harmoniously, entertain, dont ever lower writing. Free Reimage Repair License Key
ReplyDeleteData Science course is for smart people. Make the smart choice and reach the apex of your career. Learn the latest trends and techniques from the experts.
ReplyDeletedata science course
It is different from the data insight aspect. Algorithms are used to develop data, whereas the executives make better decisions about the product using data insight.
ReplyDeletedata science course in lucknow
ReplyDeleteHi. Great stuff! But I'd like to tell you about a great website with free software.
Native Instruments Massive
Its very informative post really impressed . I would like to introduce a course to you which the best data science training course in greater noida . Click on the link and enroll right away.
ReplyDeletePython is a programming language that enables quicker work and more efficient system integration. Because of its simplicity, ease of use, and accessibility to libraries like NumPy, Pandas, and Matplotlib, it is one of the best languages used by data scientists for a variety of data science applications. You will gain a multidisciplinary skill set and be prepared to work with massive volumes of data to find insights and solutions to business challenges after completing this data science certification course. Having this certification will provide you a technical understanding of computer science and statistics in addition to a postgraduate degree. It covers the spring framework, hibernate, and advanced java.data science course training in faridabad
ReplyDeleteThank you for providing valuable information about B.Com colleges in Hyderabad. Your input is greatly appreciated!
ReplyDeleteColleges In Hyderabad For B.com
Thanks for the great info on B.com degree colleges in Hyderabad
ReplyDeleteDegree Colleges in Hyderabad For B.com
Kindly Visit my website for latest movies.
ReplyDeletewatchasiantv
I appreciate you sharing the best information, and your blog is excellent.
ReplyDeleteCMA Coaching Institutes in Hyderabad