SharePoint 2010 Reference: Software Development Kit
Conceptual overviews, programming tasks, code samples, and references to guide for developing solutions based on SharePoint 2010 products and technologies.
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=12323
Installing and Using the SharePoint 2010 SDK Download
http://msdn.microsoft.com/en-us/library/ff847473.aspx
SharePoint Foundation 2010 SDK Documentation
http://msdn.microsoft.com/en-us/library/ee535067.aspx
SharePoint 2010: Professional Developer Evaluation Guide and Walkthroughs
Describes the SharePoint 2010 developer platform, including walkthroughs of some of the new capabilities for developers.
http://www.microsoft.com/download/en/details.aspx?id=7204
Developing Applications for SharePoint 2010
Provides technical information about key areas of SharePoint 2010 application development. It contains a written guide, reference implementations with source code and documentation, and a library of reusable source code components.
http://www.microsoft.com/download/en/details.aspx?id=23919
SharePoint 2010: Getting Started with Development on SharePoint 2010 Hands-on Labs in C# and Visual Basic
10 hands-on lab manuals for SharePoint 2010 to get started learning SharePoint 2010 development.
http://www.microsoft.com/download/en/details.aspx?id=17215
SharePoint 2010 Developer Training Kit
Provides developers with advanced guidance on how to develop for SharePoint.
http://www.microsoft.com/download/en/details.aspx?id=6184
Videos - Microsoft Office SharePoint Server
http://www.microsoft.com/events/series/sharepointserver.aspx?tab=videos
Webcast on-demand - Microsoft Office SharePoint Server
http://www.microsoft.com/events/series/sharepointserver.aspx?tab=webcasts
Virtual Lab - Microsoft Office SharePoint Server
http://www.microsoft.com/events/series/sharepointserver.aspx?tab=virtuallabs
Nice blog... which covers a lot...
http://blogs.msdn.com/b/ericwhite/archive/2010/10/26/sharepoint-developer-building-blocks-technologies-for-creating-sharepoint-applications.aspx
JustDecompile is a free .NET Decompiler from Telerik.
Beta version is available from http://www.telerik.com/products/decompiling.aspx
Previously I used to use .NET Reflector; one of the most essential tool for developing .NET application; especially for to make sure the difference between source code of a project and production version dll file[.NET assembly by comparing decompiled code.
http://www.reflector.net/
.NET Reflector is no more Free.
Source code could see using JustDecompile but not main feature exporting code in the for of project from dll is not there. it's missing which is the most useful and needful feature.
Specify the communication mechanism - communicating a message to an endpoint
-
Protocol
Determine the security, reliability, context flow settings
-
Transport channel
Determine the underlying transport protocol
E.g. http, https, namedpipe, MSMQ
- Message encoding
Determine the wire encoding to use for messages
E.g. binary, text/xml, MTOM(Message Transmission Optimization Mechanism (MTOM)
Things to keep in mind when you think about WCF binding
- Message Version
- Transport Security
- Message Security
- request-reply(default),one-way (fire and forget), duplex (both way)
- Reliability
- Transaction
- Streaming
For further you can refer
http://msdn.microsoft.com/en-us/library/ms731092.aspx
| Sub-Domain Area | Architecture Pattern Name | Design Patterns | Solution Patterns | Related Patterns |
| Data Integration/SOA | ETL ( Data Extraction Transformation & Loading) | Change Data Capture | Error handling | EAI |
| | Near Real-Time ETL | Job scheduling | Master Data Hub |
| | Batch ETL | Data validation | Operational Data Store (ODS) |
| | Data Discovery | Slowly Changing Dimensions Load | Datamart |
| | | | Datawarehouse |
| FTP | | | |
| EAI/ESB | Publish/subscribe | One-Way | SOA |
| | Request/reply | Synchronous Request/Response | |
| | Message Exchange Patterns | Basic Callback | |
| | | Claim Check | |
| | | | | |
| Data Architecture | Transaction Data Stores (TDS/OLTP) | Custom Applications Databases | | ETL |
| Master Data Store | Packaged Application Databases | | EAI |
| Operational Data Store | | | SOA |
| Datamart | | | |
| Datawarehouse | | | |
| | | | | |
| Business Intelligence and Reporting | Transactional Reporting | Transactional Reporting Data Access | Real-Time Dashboards | ETL |
| Operational Reporting | Operational Reporting Data Access | In-Memory Analytics | EAI |
| Analytical Reporting | Analytical Reporting Data Access | Statistical Analysis | TDS |
| | Analytical Dashboard Data Access | Predictive Analytics | Operational Data Store |
| | Operational Dashboard Data Access | | Datamart |
| | Data Mining | | |
| | | | | |
| Master Data Management | Master Data Hub | Master Data Replication | | Change Data Capture |
| | Master Data Services | | EAI |
| | Master Data Synchronization | | SOA |
| | | | |
| Data Architecture and Modeling | Dimensional Data Modeling | Modeling Standards | | |
At a glance – List of Architecture Patterns, Design Patterns, and Solution Patterns in the Application and Information Architecture Domains nicely presented in WikiPedia
Source: http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29#Examples
Trigger is a Program Unit generally a SQL statement or a set of SQL statements which executes automatically when an associated event of an object in a database occurs.
This has basically three components
- Program unit is the automated predefined action item to be executed
- Object on which the action item will be associated
- Event is the condition/situation to be fired of an object
Before going into deep, I would like to mention that, the whole concepts of the trigger implementation are product specific. All the features of the trigger might not be available in a particular product; but it is true that the basic things are available in all the major products. Even when I came to know first time about the trigger, in 1995 then only DML type of triggers were available for manipulating transactional data; now it’s scope has been totally redefined by keeping same concept of trigger having three component mentioned above. Next phase, the concept of DDL triggers came into the picture.
Program Unit
This might be a set of related SQL of an object, any functionality implemented by an executable application.
For example: Different scenarios where possible action unit could be implemented.
For maintaining data integrity by cascading the changes to the related object, it could be maintaining some constrain. In this purpose single SQL or set of SQL could be used as a Program Unit.
For notification purpose by sending messages/alerts using email or other way.
For audit purpose by logging into event log, or some files, or into any table
For populating change history or Summarized data value
The object and event depends on the implementation of trigger. The trigger could be broadly categorized into two – DDL and DML Trigger.
DML trigger mainly used for maintaining transactional data where DDL trigger is used for administrative and auditing purpose. In earlier concept we used to see only DML trigger for INSERT/UPDATE/DELETE operations. The DML trigger could be associated to a Table or a View. Later we got the DDL trigger feature which could be associated to Database, Table, Index etc. Here the operation could be CREATE/ALTER/DROP. Same time there is another factor arises, that is, associated Program Unit will be executed BEFORE or AFTER of the triggering statement execution.
Object
DML trigger – Data Manipulation Language Trigger; generally associated with Table or View when data values are inserted/updated/deleted
DDL trigger: Generally for object creation / alteration or deletion that mean the keywords CREATE, ALTER, and DROP associated with Transact SQL. It's scope as follows:
- Database level
- Server level
Event
The events depend on the object. If it a table it could be for each row or as whole of a SQL statement.
DML trigger
Table
Statement: This occurs once for executing a SQL statement not depends on the number of rows affected by that statement. It is available in Oracle.
For each row: When a SQL executes, for every row the action will be fired. Again in granular level it could be BEFORE or AFTER
View: Instead of Trigger – Here only we can see only AFTER type operation is available. It has some other limitation too. When any modification or insertion or deletion has been done using instead of trigger, always it checks individuals object's constrains.
DDL trigger
DDL triggers fire only after the DDL statements whether it's scope is server level or database level.
DDL statement - CREATE, ALTER, DROP, TRUNCATE, RENAME, ANALYZE, AUDIT, NOAUDIT, COMMENT, ASSOCIATE STATISTICS, DISASSOCIATE STATISTICS, UPDATE STATISTICS, GRANT, REVOKE, DENY statements that can cause the trigger to fire
Apart from above, there are other events related to Database/Server, user logon, server error causes to fire the trigger
Database Startup, Shutdown , Suspend
Logon, Logoff the session
Server Error
The possible usages of the different types of triggers.
DML trigger
It could be used in the following requirements::
- For maintaining data integrity by cascading the changes to the related object, it could be maintaining some constrain. In this purpose single SQL or set of SQL could be used as a Program Unit.
- For maintaining referential integrity constraint, it is always good to use foreign key between parent and child table. [ Cascade deletion, nullifying foreign key’s data for the deletion of parent row. ]
- For he case of data integrity, always good to use default constrains / check constraint, rules by using user defined data type.
For the case of maintaining change history, I will prefer to have the trigger. The OLD/DELETED and NEW/INSERTED value could reference in a easy way using trigger to store change history. - For the case of populate summarized data, better to use stored procedure and call it explicitly.
- For notification purpose by sending messages/alerts using email or other way.
- Instead of trigger I will suggest to use notification service by developing triggering component. The business logic will be written in these component.
There some points to be keep into mind, where a group of people are responsible/involved to write/maintain the application.
Need to be well documented for each and every triggers; also it’s impacts to the related data, otherwise it will be difficult to know what are the data getting affected as a series of modification. It is always recommended not to use trigger for DML purposed mentioned above.
For the case of nested trigger / recursive trigger, it will very difficult to do the debugging the application. Therefore, I will be recommending to avoid using trigger for data manipulations.
If we would like to keep change history in very limited and important table, trigger is a good choice.
DDL trigger
For audit purpose by logging into event log, or some files, or into any table DDL trigger. When any objects are creating, modifying, dropping all could be logged which could be auditable.
For auditing purpose logon, database startup/shutdown, server error trigger not a bad good choice. Maintaining these type logging are DBA related job. Generally in an organization there are very very limited number of DBAs are working; where good co-ordination is possible and risk factor is very less.
There are few restriction of trigger. For SELECT statement trigger is not applicable. Trigger fired implicitly not explicitly.
Includes a comprehensive set of technical content including samples, demos, hands-on labs, and presentations for
- Windows Azure
Operating system as a service
- Microsoft SQL Azure
Fully relational database in the cloud
- Windows Azure platform AppFabric
Easy to connect cloud and on-premises applications
The links are...
http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en
http://www.microsoft.com/windowsazure/
http://channel9.msdn.com/learn/courses/Azure/
http://www.microsoft.com/events/series/azure.aspx?tab=videos
Follow for the latest update http://twitter.com/azurecloudnet
ServiceContractAttribute
- Name and Namespace - The name and namespace are the optional attibutes. Default name is same as the contract type and namespace is http://tempuri.org. It is always recommondable to use Namespace to specify proper namespace which remove the conflict of the datatype/contract.
- CallbackContract - Return contract in a two-way (duplex) conversation.
- HasProtectionLevel and ProtectionLevel - Specifies whether all messages supporting the contract have a explicit ProtectionLevel value.
Default ProtectionLevel is ProtectionLevel.None.
- ConfigurationName - The name of the service element in the configuration file to use.
- SessionMode - This is to specify whether the contract requires a binding that supports sessions.
OperationContractAttribute
- Name: The name of an operation is part of a service contract. Default is the method name.
- Action: The send message dispatches to the method for the operation based on action.
- ReplyAction: To specify the reply message
- IsOneWay: Specifies whether the operation is one directional that an does not return a reply message. This is commonly used for notification service.
- ProtectionLevel
- IsInitiating: Specifies if the operation is the intial operation in a session.
- IsTerminating: Specifies if the session will be terminated after the operation
- AsyncPattern: To asynchronously using a Begin/End method pair
RESTful WCF Services works by identifing the Resources & Action from Uniform Resource Identifiers (URIs).
A RESTful web service is called by a unique URI to refer a resource and HTTP verb is to define actions to the resource.
HTTP Method - Verb
GET – Fetch
PUT – Update/Insert
DELETE – Delete
POST – Append
webHttpBinding is a new WCF binding in Fx 3.5 to develop RESTful services. This does not use SOAP envelopes HTTP and HTTPS Transports. It supports XML, JSON and Binary (streams).
WebServiceHost is a specialized SerivceHost which automatically configures address, binding, contract.
If no endpoint is defined, WebServiceHost automatically creates a default endpoint. WebServiceHost adds WebHttpBehavior and disables the HTTP Help page and the Web Services Description Language (WSDL) GET functionality.
[WebGet] And [WebInvoke] attribute
Binds a WCF operation to URI space and HTTP method Indicate the HTTP Method for the operation
WebGet – No method is require
WebInvoke – All verbs other than GET (Method parameter takes in the name of the Verb)
Other attributes can mentioed
BodyStyle – Indicates whether the Request/ Response are wrapped or not
RequestFormat – Json or Xml
ResponseFormat – Json or Xml
UriTemplate – Rich binding to URI UriTemplate String that allows define the structure/pattern of the URI
The evolution of programming languages have been categorized as 1GL, 2GL, 3GL, 4GL....E.g. Machine Language -> Assembly Language -> C / Fortran -> SQL / Focus 4GL. The evolution of these languages are towards Low level language to High Level language.
In 1995, I stated learning computer languages. First I learned C, just after going through Fundamentals of Computer. In my first Academic project using C, I spent lots of time only for writing thousands lines of code. During this period I have gone through System Analysis and Design - where I learned about how to translate / transform the business application into computer systems [application]. Then I learned C++ and OOP, it was too nice experience, where I could compare the whole thing to real life cases. But it was amazing when I came to know SQL - real 4GL... Writing SQL Statement is about "WHAT" not "HOW" [With few exceptions - Query Hints etc.]. Using SQL generally few lines code computes the values from a set of collections as the resultset/output. Then I started my career with one of the biggest giant - Petroleum Company in India using Sybase and Power Builder. Here I got opportunity to work with all my favourite technologies.
About the future or coming technologies, termed as NEXT GEN Application, I expressed very early in one of my post published on September 15, 2005 Real Challenge to the architect for architecting and designing for FUTURE application development’s method.
That time I was thinking that DSL, ORM, Modeling language were dream and will be goals for the language developer.
Now Microsoft comes up to this with a fantastic way!!!
In last version - .NET Framework 3.5, we got LINQ, LINQ to SQL, LINQ to XML, LING to Object.... Here we focused more on the Entities, Visual Studio writes the code for data manipulation using SQL/XPath all underlying technologies... we stopped thinking about implementation to map the data source to object classes for .NET to some extents. Here we got LINQ to SQL, LINQ to XML and so on so...
This is not the "Full Stop" ("."). Along with more advancement, Microsoft came up with "M". It is "Oslo" Modeling Language which is a declarative language for working with data in more readable way for Structuring the the data as well as for querying too. It's not about how data is stored or accessed, even not by implementation of specific technology.
M builds on three basic concepts: values, types, and extents.
-
A value is the data which follows the rule
-
A type describes a set of values.
-
An extent provides dynamic storage for values.
M has been designed to map the relational model too. Using “Intellipad” tool of “Oslo”, model the data and the corresponding T-SQL statements generated by the compiler. Here “M”->SQL translates “M” "modules" to SQL "schemas."
More on..
http://msdn.microsoft.com/en-us/library/dd285271.aspx
http://msdn.microsoft.com/en-us/library/dd159725.aspx
Windows Communication Foundation (WCF) application is divided two layers namely Services and Clients
The WCF services can be exposed in different ways through Web, Windows Service, Self Hosting [Running Console Application]. The Endpoint [Which is having the Address, Binding, Contract(ABC)] is definded to expose service or consume it.
In our sample code so far we have developed Console Based application for both Service and Client Applications; then we have deployed the serive in IIS 6.0 in Windows Server 2003 in the first set of applications. The next set of applications are Web Applications.
For developing a WCF Service we have gone through steps
A. Sevice Layer
Step I - Designing Contracts
Step II - Service Hosting and Selecting Bindings
Step III - Configuring for Hosting the Service
B. Client Application
Step IV - Based on Sevice creating Proxy for invoking the Service
Now we will discuss futher in details.
We have looked that in both application, we have the one common thing, that is Endpoint includes the Service Contact, Address and Binding; only service hosting and client applications are different. The service contact is first item to be designed fo a Service.
A service contract is all about:
- Grouping of operations
- Signature of the operations for exchanging Mesages
- Data types of these messages.
- Protocols and serialization formats for communicating the messages
The contact is a set of specific messages organized into basic message exchange patterns (MEPs), such as request/reply, one-way, and duplex
One Way - Datagram-style delivery
Request-Reply - Immediate Reply on same logical thread
Duplex - Reply later and on backchannel (callback-style)
Three Types of Contracts
Service Contract - Operations, Behaviors and Communication Shape
Data Contract - Defines Schema and Versioning Strategies
Message Contract - Allows defining application-specific headers and unwrapped body content
All the contracts are defined on .NET application as CLR types and and on the wire it represents as XML format - WSDL/XSD/SOAP. This is implemented through Attributes. Here the details for all the types
Service
The Service and operations defines in a service through ServiceContract and OperationContract attrubutes.
Mapping: CLR types -> Web Services Description Language (WSDL)
Data
Describes a data structure using DataContract and DataMember attributes.
Mapping: CLR types -> XML Schema Definition (XSD)
Message
Defines the structure of the message on the wire using MessageContract, MessageHeader, MessageBody
Mapping: CLR types -> Simple Object Access Protocol (SOAP) messages.
Fault/Exception
For any CLR exceptions defined as fault contract using FaultContract attribute and the fault's CLR Type converts to SOAP faults.
Mapping: CLR types -> SOAP faults
Now after creating "Hello World" most easy Service we will very happy to see by getting access throug a browser to access WSDL file and can be used in any other application by adding Service Reference.
Yes, we can access it just like to .asmx web service through .svc file. To host one service using IIS 6.0 - Windows Server 2003, we have to map .svc file ISAPI extention.
Here is the the .SVC, Web.config files to download
This is one of my most interesting eBook which gives the real concepts of SOA. I am here to share this... Click on the book's image to download

The metadata is to describe how to interact with the service's endpoints. We could generate Proxy class for the Client as well as it updates the .config files[App.config/Web.config] for the Client Application.
For example Svcutil.exe could automatically generated client code for accessing the service..
Trough Visual Studio 2008/2005 with WCF extension, we can "Add Service Reference" which does the entire necessary task for us.
For is purpose it is the following code added to the Service Code.
using System.ServiceModel.Description;
ServiceMetadataBehavior svcMetaBehav = new ServiceMetadataBehavior();
svcMetaBehav.HttpGetEnabled = true;
svcHost.Description.Behaviors.Add(svcMetaBehav);
The WSDL of this service looks like as following:


<wsdl:binding name="BasicHttpBinding_IMyFirstService" type="i0:IMyFirstService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="MyFirstMethod">
<soap:operation soapAction="http://KolkataNET.WCF.HOL/IMyFirstService/MyFirstMethod" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MyFirstService">
<wsdl:port name="BasicHttpBinding_IMyFirstService" binding="tns:BasicHttpBinding_IMyFirstService">
<soap:address location="http://abu:8080/WCFKolkataNET/HOL/MyService" />
</wsdl:port>
</wsdl:service>
Step 5. Create New Console Project for creating Client Application the Service - Start running the Service when you generate the Proxy of the Service

5.1- Added Service Reference of the created Service

5.2- Created Proxy Class of the created Service - In service explorer click on show all files then a set of files will be showing which are auto generated, the proxy class file is here Reference.cs

5.3 This also generates the service binding details in App.config file

5.3 Auto generated Binding Details of the service in App.config file

<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyFirstService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
5.3 Auto generated End Point of the service in App.config file
<client>
<endpoint address="http://abu:8080/WCFKolkataNET/HOL/MyService" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IMyFirstService" contract="MyFirstServiceClient.IMyFirstService"
name="BasicHttpBinding_IMyFirstService" />
</client>
5.4 Code in Prorgarm.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace KolkataNETWCFHelloWorld
{
class Program
{
static void Main(string[] args)
{
EndpointAddress endPointAddr = new EndpointAddress("http://abu:8080/WCFKolkataNET/HOL/MyService");
MyFirstServiceClient clientProxy = new MyFirstServiceClient(new BasicHttpBinding(), endPointAddr);
string strResponse = clientProxy.MyFirstMethod();
Console.WriteLine(string.Format("Response from MyFirstService: {0}", strResponse));
Console.WriteLine();
Console.ReadLine();
}
}
}
Run the Client Application

Step 1. Created one Console Project


Step 2. Created one Project in the same Solution IMyFirstService.csproj for declaring/designing Service contact

2.1- Added reference to System.ServiceModel
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace KolkataNETWCFHelloWorld
{
[ServiceContract(Namespace="http://KolkataNET.WCF.HOL")]
public interface IMyFirstService
{
[OperationContract]
string MyFirstMethod();
}
}
2.2 Design Simple Service Contract with one
[ServiceContract(Namespace="http://KolkataNET.WCF.HOL")]
public interface IMyFirstService
2.3 Design Simple Operation [Method/Function] using Attribute [OperationContract] by declaring the method name MyFirstMethod

Step 3. Created one Project in the same Solution MyFirstService.csproj for declaring/designing Service

3.1- Added reference to System.ServiceModel
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace KolkataNETWCFHelloWorld
{
public class MyFirstService : IMyFirstService
{
public string MyFirstMethod()
{
return string.Format("Hello World. Welcome KolkataNET!!!");
}
}
}
3.2 Design Simple Service implementing the above service Contract
public class MyFirstService : IMyFirstService
3.3 Design Simple Operation [Method/Function]
public class MyFirstService : IMyFirstService
{
public string MyFirstMethod()
{
return string.Format("Hello World. Welcome KolkataNET!!!");
}
}
Step 4. Modified the initial main Console Project to Self Host the Service

4.1- Added reference to System.ServiceModel - For hosting the service and exposing MEX - Metadata Exchange of the Service
using System;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace KolkataNETWCFHelloWorld
{
class Program
{
static void Main(string[] args)
{
Uri svcBaseAddress = new Uri("http://abu:8080/WCFKolkataNET/HOL");
ServiceHost svcHost = new ServiceHost(typeof(MyFirstService), svcBaseAddress);
svcHost.AddServiceEndpoint(
typeof(IMyFirstService),
new BasicHttpBinding(),
"MyService");
ServiceMetadataBehavior svcMetaBehav = new ServiceMetadataBehavior();
svcMetaBehav.HttpGetEnabled = true;
svcHost.Description.Behaviors.Add(svcMetaBehav);
svcHost.Open();
Console.WriteLine("<ENTER> to stop the service - MyFirstService");
Console.WriteLine();
Console.ReadLine();
svcHost.Close();
}
}
}
4.2 Defining Base Address to host the Service
Uri svcBaseAddress = new Uri("http://abu:8080/WCFKolkataNET/HOL");
ServiceHost svcHost = new ServiceHost(typeof(MyFirstService), svcBaseAddress);
svcHost.AddServiceEndpoint(
typeof(IMyFirstService),
new BasicHttpBinding(),
"MyService");
4.3 Allowing to expose MEX of the Service
ServiceMetadataBehavior svcMetaBehav = new ServiceMetadataBehavior();
svcMetaBehav.HttpGetEnabled = true;
svcHost.Description.Behaviors.Add(svcMetaBehav);
4.3 Running the service until <ENTER> key has been pressed
svcHost.Open();
4.4 Closing the service when <ENTER> key has been pressed
svcHost.Close();
Running the Service - now we will create client to call it

Here is the code...
Click to Download
This is my first post for WCF HOL. I will be posting series of Lab Sessions with code and explanations for the whole series. I have noticed in one UG Session people who don't have any WCF backround but who are familiars of ASP.NET/.NET for them this series will be useful as a tutorial with practical.
Step by step I will be covering all the possible aspects of WCF. Same time I will be covering the SOA / Service based real life application scope especially for Connected and Distributed systems.
Please note that in the sample application every where I have used abu - which is my machine name, now for your case this will be your machine name
In Service Code
Uri svcBaseAddress = new Uri(http://abu:8080/WCFKolkataNET/HOL); // Change "abu" by your machine name
In Client Code
EndpointAddress endPointAddr = new EndpointAddress(http://abu:8080/WCFKolkataNET/HOL/MyService); // Change "abu" by your machine name
More Posts
Next page »