<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5578331051572085628</id><updated>2024-08-30T23:34:05.391+05:30</updated><category term="Program WCF Channel"/><category term="WCF Channels"/><category term="abort channel"/><category term="channel life cycle"/><category term="client side endpoints"/><category term="close channel"/><category term="create channel"/><category term="difference between close and abort"/><category term="features of wcf"/><category term="introduction to wcf"/><category term="why wcf"/><title type='text'>all about .net and its advances</title><subtitle type='html'>An online stuff of my learning. Its all about .net programming, my knowledge bank for reference</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-1732891610385566908</id><published>2014-08-13T10:59:00.001+05:30</published><updated>2014-08-13T10:59:12.957+05:30</updated><title type='text'>ViewResult, FileResult, RedirectResult, PartialViewResult</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;ViewResult&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It renders a view as a web page. It can make use of view engines aspx and Razor. The actions of return type ViewResult always returns a view. MVC supports following view types:&lt;br /&gt;
1. ASPX&lt;br /&gt;
2. ASCX&lt;br /&gt;
3. VBHTML&lt;br /&gt;
4. CSHTML&lt;br /&gt;
&lt;br /&gt;
Note: A controller can have more than one view of various types. That is, ASPX, ASCX, CSHTML and VBHTML. The priority is always given to ASPX. However, you can access a view by using following example:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
public ViewResult Details()&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
{&lt;br /&gt;&amp;nbsp; &amp;nbsp;return View(&quot;~/Views/Employee/Details.cshtml&quot;);&lt;br /&gt;}&amp;nbsp;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;b style=&quot;font-size: x-large;&quot;&gt;FileResult&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
The file result returns binary output to write the content of a file to response. That is, it can return the content of any specific file in the browser. If the MIME type of the file is not supported then, it downloads the file.&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
public FileResult ReadDoc()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp; return File(@&quot;F:\wcf.pdf&quot;,&quot;application/pdf&quot;);&lt;br /&gt;}&lt;/blockquote&gt;
&lt;br /&gt;
RedirectResult&lt;br /&gt;
&lt;br /&gt;
It is similar to response.redirect method that can be used to redirect to specific URL.&lt;br /&gt;
Example:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Public RedirectResult Google()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;return Redirect(&quot;http://www.google.com&quot;);&lt;br /&gt;}&lt;/blockquote&gt;
RedirectToRouteResult&lt;br /&gt;
&lt;br /&gt;
It is similar to server.transfer method that can be used to redirect to any controller &amp;nbsp;action within the application.&lt;br /&gt;
Example:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Public RedirectToRouteResult EmpDetails()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;return RedirectToAction(&quot;Details&quot;,&quot;Employee&quot;);&lt;br /&gt;}&lt;/blockquote&gt;
&lt;br /&gt;
Redirect using Hyperlink: MVC provides Html Helper &quot;Html.ActionLink&quot;, that renders as &quot;&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&quot; tag to redirect to any location.&lt;/a&gt;&lt;br /&gt;
Syntax:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
@Html.ActionLink(&quot;LinkText&quot;,&quot;Action&quot;,&quot;Controller&quot;, new {html attributes})&lt;/blockquote&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
@Html.ActionLink(&quot;Go to Employee&quot;,&quot;Details&quot;,&quot;Employee&quot;, new {target=&quot;_blank&quot;},null)&lt;/blockquote&gt;
&lt;br /&gt;
null at the end is used to avoid unwanted default query string added automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;PartialViewResult&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Partial view are like user controls in web forms. the intention of partial views is to create a prototype that can be accessed from any view.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* Create partial views&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Public PartialViewResult Register()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;return PartialView();&lt;br /&gt;}&lt;br /&gt;Public PartialViewResult Login()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;return PartialView();&lt;br /&gt;}&lt;/blockquote&gt;
* Add partial view to a view&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
@Html.Partial(&quot;Register&quot;)&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;
&lt;br /&gt;@Html.Partial(&quot;Login&quot;)&lt;/blockquote&gt;
&lt;br /&gt;
Note: Views are generated as Login.cshtml and Register.cshtml in case of Razor view engine. But, in case with ASPX view engine, these views are created with extension .ASCX.&lt;br /&gt;
&lt;br /&gt;
Note: You can directly invoke partial views by a URL request. You can restrict them by using the action filter &quot;ChildActionOnly&quot;.&lt;br /&gt;
Example:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;br /&gt;[ChildActionOnly]&lt;br /&gt;public PartialViewResult Register()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &amp;nbsp;return PartialView();&lt;br /&gt;}&lt;/blockquote&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/1732891610385566908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2014/08/viewresult-fileresult-redirectresult.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/1732891610385566908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/1732891610385566908'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2014/08/viewresult-fileresult-redirectresult.html' title='ViewResult, FileResult, RedirectResult, PartialViewResult'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-751930779701990038</id><published>2014-08-13T10:29:00.001+05:30</published><updated>2014-08-13T10:31:45.104+05:30</updated><title type='text'>Action Results in MVC</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
1. The controller action are public and can be invoked by an URL request.&lt;br /&gt;
2. The controller actions can return a view, file etc. These return types are referred as action results.&lt;br /&gt;
3. The action results in MVC are defined under the base class &#39;ActionResult&#39;.&lt;br /&gt;
4. The various types of action results and their helper methods are defined below:&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;&quot;&gt;&lt;span style=&quot;background-color: #3d85c6;&quot;&gt;Action Results &lt;/span&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial;&quot;&gt;&lt;span style=&quot;background-color: #3d85c6;&quot;&gt;Helper Method&lt;/span&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
ViewResult&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
View()&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
PartialViewResult&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
PartialView()&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
RedirectResult&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Redirect()&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
RedirectToRouteResult&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
RedirectToAction()&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
ContentResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Content()&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
JsonResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Json()&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
JavascriptResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Javascript()&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
FileResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
File()&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
EmptyResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 233.75pt;&quot; valign=&quot;top&quot; width=&quot;390&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
None&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/751930779701990038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2014/08/action-results-in-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/751930779701990038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/751930779701990038'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2014/08/action-results-in-mvc.html' title='Action Results in MVC'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-8516498545564777063</id><published>2014-08-11T12:39:00.003+05:30</published><updated>2014-08-13T10:17:35.370+05:30</updated><title type='text'>Rules to remember while creating MVC - Controller&#39;s action method</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
1. Action methods must be public&lt;br /&gt;
2. Action methods can&#39;t be static&lt;br /&gt;
3. Action methods can be overloaded&lt;br /&gt;
4. Action methods can&#39;t be overridden&lt;br /&gt;
5. All Controllers are inherited from Controller class, which has it&#39;s own action methods. New controller&#39;s action method can&#39;t have same action method name that parent class has.&lt;br /&gt;
6. Action method parameters can&#39;t be &#39;ref&#39; or &#39;out&#39;.&lt;br /&gt;
7. Actions can&#39;t be extension methods.&lt;br /&gt;
7. All actions are invoked by &#39;Get&#39; request.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/8516498545564777063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2014/08/rules-to-remember-while-creating-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8516498545564777063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8516498545564777063'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2014/08/rules-to-remember-while-creating-mvc.html' title='Rules to remember while creating MVC - Controller&#39;s action method'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-4363644498932559116</id><published>2013-01-15T12:17:00.000+05:30</published><updated>2013-01-15T12:17:16.477+05:30</updated><title type='text'>Send DataTable as Stored Procedure Paramater</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
We come across many situations where we need to insert all the records of a DataTable(dt) in a table having same structure as that of the dt. In my case, I was to read excel file and create in-memory dt. This dt resembles a table (dbo.tbl) present in my DB. Now After my dt is ready I was suppose to dump my all the records in dbo.tbl. Though you can do it using loop followed by insert statement but the is another way which is very fast, reliable and efficient too.&lt;br /&gt;
&lt;br /&gt;
I will create my own type in sql using this query:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;CREATE TYPE myTableType AS TABLE&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;-- Here you are suppose to mention all of your column names of dbo.tbl (mentioned above)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;&amp;nbsp;-- Please note that you need not to declare any column which has identity &#39;yes&#39;, If you do so, will throw error&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; -- do not include such columns having identity [QuestionColumnTableJoinID] [int] IDENTITY(1,1) NOT NULL&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;-- include these columns to create your type&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [QuestionId] [varchar](10) NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [QuestionDesc] [varchar](2000) NOT NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [TableName] [varchar](50) NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ColumnName] [varchar](50) NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ColumnDataType] [varchar](20) NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [IsRequired] [bit] NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [IsMandatory] [bit] NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [CreatedDate] [datetime] NULL,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [IsDeleted] [bit] NOT NULL &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;span&gt;) &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After Creating the type you need to write a Stored Procedure which has parameter of type : &lt;i&gt;myTableType&lt;/i&gt; which we created above. &lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;CREATE PROCEDURE [dbo].[spInsertQuestionTable]&lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @varTableQuestion dbo.&lt;span&gt;myTableType &lt;/span&gt; READONLY&lt;br /&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN TRAN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; INSERT INTO dbo.QuestionTable&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT * FROM @varTableQuestion &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; COMMIT&lt;br /&gt;END&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Now your are done with your DB side.&lt;br /&gt;
Lets move on to code page, from where we want to call this SP.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: black;&quot;&gt;SqlCommand cmd = new SqlCommand(&quot;spInsertQuestionTable&quot;,con);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.CommandType = CommandType.StoredProcedure;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Parameters.Add(&quot;@varTableQuestion&quot;, SqlDbType.Structured);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Parameters[&quot;@varTableQuestion&quot;].Value = dtQuestions;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.ExecuteNonQuery();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con.close();&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Note that you have to define your parameter type as SqlDbType.Structured and you are done. All the data inserted in one short.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/4363644498932559116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2013/01/send-datatable-as-stored-procedure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/4363644498932559116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/4363644498932559116'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2013/01/send-datatable-as-stored-procedure.html' title='Send DataTable as Stored Procedure Paramater'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-6965853040904703573</id><published>2012-10-20T20:51:00.000+05:30</published><updated>2012-10-20T20:51:05.315+05:30</updated><title type='text'>REST services</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Sometimes SOAP might actually be overkilled for particular web service scenarios. In many cases the developer may need high range of interoperability. So, in order to increase interoperability, they have to restrict themselfs to basic XML message that they transmit over HTTP and they can take advantage of advance WS* specifications that are part of these protocols.&lt;br /&gt;
&lt;br /&gt;
For security, they simply use HTTPS that provides facility of SSL for all the security needs.This is most common today. Most of the developer are using SOAP without WS* and this is often referred to as simple SOAP. Main benefit of doing this is it increases interoperability. Also, there is large number of tool support for generating clients &amp;amp; services from WSDL definition. We can take WSDL schema definition and automatically generate the code that we need without our framework and that code will hide all the underlying XML &amp;amp; HTTP details. This is why, most of the developer still use SOAP.&lt;br /&gt;
&lt;br /&gt;
Some developer decide that they really don&#39;t need SOAP at all &amp;amp; just want to exchange XML messages over HTTP without SOAP framing element. This is often referred as plain-old XML (POX). This is usually used in combination with HTTP. When you take this approach, the interoperability is virtually guaranteed because you can easily find HTTP &amp;amp; XML stack on any platform in demand today. But it does require some direct XML / HTML coding.&lt;br /&gt;
&lt;br /&gt;
In order to use POX, you should be comfortable writing XML based code using various XML APIs to produce &amp;amp; consume messages and you also need to be comfortable with HTTP stack for programming the logic to send &amp;amp; receive messages.&lt;br /&gt;
&lt;br /&gt;
POX applications can also be defined in a REST-ful way. If you design your services around HTTP and if you are adhered to restful design principals and you define all your actions in terms of HTTP method &amp;amp; verbs, then indeed you are going to use what we call as RESTful architecture that happens to use plain-old XML messages over wire.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/6965853040904703573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/10/rest-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/6965853040904703573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/6965853040904703573'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/10/rest-services.html' title='REST services'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-8601558018752020332</id><published>2012-10-02T16:48:00.000+05:30</published><updated>2012-10-02T16:48:06.523+05:30</updated><title type='text'>WCF - Handling Exceptions</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
There may be many different kinds of exceptions that may occur at the client side. But client channels need to be prepared for two main exception types :&lt;br /&gt;
&lt;br /&gt;
1. &lt;u&gt;Communication Exceptions&lt;/u&gt;&amp;nbsp;- This is a base class that represent various runtime communication errors. This exception is a generalize exception to catch any type of communication exception that is thrown by your service operation also known as Fault Exception. They typically represent business oriented exceptions.&lt;br /&gt;
&lt;br /&gt;
2. &lt;u&gt;Timeout Exception&lt;/u&gt;&amp;nbsp;- It is not delivered from communication exception. This represents the error that occurs when send timeout limit exceeded. So when you are writing your client side communication logic, you need to take it into account these various types of exceptions that can occur. Remember that after certain exceptions, the client side channel may enter into &quot;faulted&quot; state which will require you to call abort on the channel instead of close.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&lt;b&gt;To Catch Communication Exception :&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #073763;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;catch(CommunicationException ce)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.Abort();&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;span style=&quot;color: #b45f06;&quot;&gt;&lt;b&gt;To Catch Timeout Exception :&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;catch(TimeoutException te)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;{&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #ffe599; font-family: Times, Times New Roman, serif;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;client.Abort();&lt;br /&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/8601558018752020332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/10/wcf-handling-exceptions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8601558018752020332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8601558018752020332'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/10/wcf-handling-exceptions.html' title='WCF - Handling Exceptions'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-4340367673210178540</id><published>2012-10-02T15:43:00.001+05:30</published><updated>2012-10-02T15:43:57.706+05:30</updated><title type='text'>Configure Client Channel - through Binding &amp; Behaviors</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
You can configure client channel through both binding &amp;amp; behaviors applied to client scenario. The binding&amp;nbsp;configures the wire level protocol detail, whereas , the behavior configures local execution environment.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Key things that you might configure on the client side binding :-&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1. Send Timeout Value : this influence when the time out exception happens.&lt;/div&gt;
&lt;div&gt;
2. Transport Protocol specific setting : that usually has to be sync with service setting as well.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There are also some client side behavior that you can apply to your client side endpoints. That&#39;s why they are called client side endpoint behavior in WCF.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I. Configure client side binding :-&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwD3IyyezRiZYPRZXTU3dMmgA5crSgwriGu3Xsjn-NTGvexgOuiFuFLLjqLLQUMz6JptKXFPAqGC-NpPpP3KHXXFso0Yeude0dumtBRewctY47IzoUAknSfXNYBCUvNjzVuKQKN1RM7Pbo/s1600/ConfigureClientSideBinding.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;331&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwD3IyyezRiZYPRZXTU3dMmgA5crSgwriGu3Xsjn-NTGvexgOuiFuFLLjqLLQUMz6JptKXFPAqGC-NpPpP3KHXXFso0Yeude0dumtBRewctY47IzoUAknSfXNYBCUvNjzVuKQKN1RM7Pbo/s640/ConfigureClientSideBinding.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
II. Configure client side behavior :-&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgceMEhXUiVQcyEwfdR0Jv3sdg7Ak024ikVhjhhd8_V9OBU1qyphYZcrFL1pdWxlIjumpjOMvjiF_2FphVH12mqwnDUq3A2riYdMVBgRQg-dnOyqaKqOb9VCGHXjesXmnUpyh-6X1Vajn-T/s1600/ConfigClientSideBehavior.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgceMEhXUiVQcyEwfdR0Jv3sdg7Ak024ikVhjhhd8_V9OBU1qyphYZcrFL1pdWxlIjumpjOMvjiF_2FphVH12mqwnDUq3A2riYdMVBgRQg-dnOyqaKqOb9VCGHXjesXmnUpyh-6X1Vajn-T/s640/ConfigClientSideBehavior.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/4340367673210178540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/10/configure-client-channel-through.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/4340367673210178540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/4340367673210178540'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/10/configure-client-channel-through.html' title='Configure Client Channel - through Binding &amp; Behaviors'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwD3IyyezRiZYPRZXTU3dMmgA5crSgwriGu3Xsjn-NTGvexgOuiFuFLLjqLLQUMz6JptKXFPAqGC-NpPpP3KHXXFso0Yeude0dumtBRewctY47IzoUAknSfXNYBCUvNjzVuKQKN1RM7Pbo/s72-c/ConfigureClientSideBinding.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-7027013427236660470</id><published>2012-09-22T23:32:00.001+05:30</published><updated>2012-09-22T23:36:17.622+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="abort channel"/><category scheme="http://www.blogger.com/atom/ns#" term="channel life cycle"/><category scheme="http://www.blogger.com/atom/ns#" term="close channel"/><category scheme="http://www.blogger.com/atom/ns#" term="create channel"/><category scheme="http://www.blogger.com/atom/ns#" term="difference between close and abort"/><title type='text'>Channel Life Cycle - How to Create, Use, Close and Abort a Channel in WCF</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
You create a channel by calling create ChannelFactory. Behind the scene when you say create channel, WCF will actually build the underline WCF runtime for transferring a message on the wire to the service. It returns you an object and implement the service contract type. When you do method calls, these method calls are translated into message on the wire through that underline channel stack. Now, all channels will also implement another interface called IClientChannel. This is a special interface in the channel life cycle. This will provide both - Close and Abort method you can use when you need to shut things down.&lt;br /&gt;
&lt;br /&gt;
Let me take this example :&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjoLKCJ4_eKv6ngcnsvBOuuhsNc1eNgmcj-XfEJj6L4Pw-3sbU4l4L_U5A8N1YGFCKlCLttI7rzIqsddHUkvZF19jjXj1WISIVlh-3C5HY0STgPmwj5u-VOaN3rNQP-nb7CJZ0I3u083sw/s1600/CreateUseAbortChannel.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;228&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjoLKCJ4_eKv6ngcnsvBOuuhsNc1eNgmcj-XfEJj6L4Pw-3sbU4l4L_U5A8N1YGFCKlCLttI7rzIqsddHUkvZF19jjXj1WISIVlh-3C5HY0STgPmwj5u-VOaN3rNQP-nb7CJZ0I3u083sw/s640/CreateUseAbortChannel.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Here I have a ChannelFactory of type &lt;i&gt;&lt;b&gt;IInvoiceService&lt;/b&gt;&lt;/i&gt; as my service contract type which is targeting &lt;b style=&quot;font-style: italic;&quot;&gt;tcpEndpoint &lt;/b&gt;defined in web.config file.&lt;br /&gt;
&lt;br /&gt;
To create a ChannelFactory I will simply call :&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;IInvoiceService&lt;i&gt;&amp;nbsp;&lt;/i&gt;channel = factory.CreateChannel();&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
This will give me an object back of IInvoiceService. Then, I actually want to send a message to the service that I will send by simply calling a method on the service contract type :&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;channel.SubmitInvoice(invoice);&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
And when I am done with my this channel, I can cast the channel object to &lt;b style=&quot;font-style: italic;&quot;&gt;IClientChannel &lt;/b&gt;and then call close method :&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;((IClientChannel)channel).Close();&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #bf9000;&quot;&gt;Difference between Close and Abort&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #bf9000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #bf9000;&quot;&gt;Close :&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;1. Close performs graceful shutdown of the client channel&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;2. It waits for In-Progress calls to complete before closing things down&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;3. It closes underlying n/w resources&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;4. It doesn&#39;t close the channel before all the operations are completed&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;5. Close can throw few Exceptions (Communication Exception &amp;amp; Timeout Exception)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #741b47;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #bf9000;&quot;&gt;Abort:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;1. It doesn&#39;t wait for anything to happen&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;2. When you are calling Abort, system assumes that you want to abort In-Progress calls &amp;amp; want to close the channel immediately.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;3. You call abort in a situation where something has gone wrong and you just need to clean the things as soon as possible.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #ffe599;&quot;&gt;4. Typically you call abort when you have &quot;faulted&quot; channels. In fact, you must call abort in this situation. If you try to call close on &quot;faulted&quot; channel, that will actually throw an another exception.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #741b47;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #d0e0e3;&quot;&gt;Both close &amp;amp; abort are found on IClientChannel interface and that interface will be available to all the channel objects returned by your ChannelFactory.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #d0e0e3;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;color: #d0e0e3;&quot;&gt;Note : You have to cast to IClientChannel inorder to call close/abort.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #741b47;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/7027013427236660470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/09/channel-life-cycle-how-to-create-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/7027013427236660470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/7027013427236660470'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/09/channel-life-cycle-how-to-create-use.html' title='Channel Life Cycle - How to Create, Use, Close and Abort a Channel in WCF'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjoLKCJ4_eKv6ngcnsvBOuuhsNc1eNgmcj-XfEJj6L4Pw-3sbU4l4L_U5A8N1YGFCKlCLttI7rzIqsddHUkvZF19jjXj1WISIVlh-3C5HY0STgPmwj5u-VOaN3rNQP-nb7CJZ0I3u083sw/s72-c/CreateUseAbortChannel.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-4255414288484951476</id><published>2012-09-20T14:44:00.000+05:30</published><updated>2012-09-20T14:47:07.267+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="client side endpoints"/><title type='text'>Specify Client Side Endpoints in WCF</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
When we create a ChannelFactory at the client side, we need to specify the client side endpoint. We can achive this at code as well as at the configuration page. &lt;br /&gt;
&lt;br /&gt;
Through Code : &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMPL8i562il7lOYZYQjWKFeqvHeXNjbMCcTFC4__2cBlLvokxvwsweZuSNsjcRROBg0LI4B5kXDcrLK0YApOcxRbJ6n-b1GOfDpGPC9aO8KDpnIvK1u2ey5qfHHhU20sUTSp0zY8KmQCcb/s1600/specifyendpointatcode.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMPL8i562il7lOYZYQjWKFeqvHeXNjbMCcTFC4__2cBlLvokxvwsweZuSNsjcRROBg0LI4B5kXDcrLK0YApOcxRbJ6n-b1GOfDpGPC9aO8KDpnIvK1u2ey5qfHHhU20sUTSp0zY8KmQCcb/s640/specifyendpointatcode.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
This code allow you to specify the binding type as well as the endpoint address.&lt;br /&gt;
&lt;br /&gt;
This approach is used when we want to force a client to use a particular endpoint or you want to create a channel at runtime. You need to pass this endpoint information at the runtime.&lt;br /&gt;
&lt;br /&gt;
The other way to do this is, tell the ChannelFactory to go and read the endpoint from the configuration file.&lt;br /&gt;
&lt;br /&gt;
Through Config file :&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi40hJTWa3dUwAJZYjoqvwI1N47C21gWUt06Mj4JSvQ9HmDkTg03nB_QKhSo-VUX4ZffEqiGbD-9kQ1w_3b_aRPN0k1MwM-FyxKxQYPifjtyFQgOWDSDVAQxnIayu8AqNkRVoVYhzI826qg/s1600/specifyendpointatconfig.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;118&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi40hJTWa3dUwAJZYjoqvwI1N47C21gWUt06Mj4JSvQ9HmDkTg03nB_QKhSo-VUX4ZffEqiGbD-9kQ1w_3b_aRPN0k1MwM-FyxKxQYPifjtyFQgOWDSDVAQxnIayu8AqNkRVoVYhzI826qg/s640/specifyendpointatconfig.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
httpEndpoint is a string. It is name of the endpoint found in the configuration file.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Let us see our configuration file, which will make the picture more clear :&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWHnZJe0LX0OXtu5lGmbO9AwIrpqRsph7xDGwFDStXY5j12Bt2TydGnY2QvUbmWjdPBwiGLws-_VzPFLo40zcAlKklHJokhMRAdEVkLVpU1KfFcHX4-Jht3p7qWLEG3Z7AsMHC7AG_lY1e/s1600/ConfigFileViewWithLabels.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWHnZJe0LX0OXtu5lGmbO9AwIrpqRsph7xDGwFDStXY5j12Bt2TydGnY2QvUbmWjdPBwiGLws-_VzPFLo40zcAlKklHJokhMRAdEVkLVpU1KfFcHX4-Jht3p7qWLEG3Z7AsMHC7AG_lY1e/s640/ConfigFileViewWithLabels.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
﻿&lt;/div&gt;
It looks very similar to the server side config model except the tag &#39;&amp;lt;&#39;Client&#39;&amp;gt;&#39; specified in the config file which contain the endpoint .&lt;br /&gt;
&lt;br /&gt;
Second difference is that here at client side we have an endpoint name, which we don&#39;t find in a service side endpoint tags in its config file. &lt;br /&gt;
&lt;br /&gt;
We do specify the name of the endpoint at client side to refer that in our code.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/4255414288484951476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/09/specify-client-side-endpoints-in-wcf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/4255414288484951476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/4255414288484951476'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/09/specify-client-side-endpoints-in-wcf.html' title='Specify Client Side Endpoints in WCF'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMPL8i562il7lOYZYQjWKFeqvHeXNjbMCcTFC4__2cBlLvokxvwsweZuSNsjcRROBg0LI4B5kXDcrLK0YApOcxRbJ6n-b1GOfDpGPC9aO8KDpnIvK1u2ey5qfHHhU20sUTSp0zY8KmQCcb/s72-c/specifyendpointatcode.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-6009046843107079235</id><published>2012-09-20T14:14:00.002+05:30</published><updated>2012-09-20T14:16:20.127+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Program WCF Channel"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF Channels"/><title type='text'>How to Program Channels of WCF</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
To program channel of WCF, you need to first create &amp;amp; configure a ChannelFactory (a class) based upon one of the endpoint exposed by the service. &lt;br /&gt;
&lt;br /&gt;
Then you create a channel instance through that ChannelFactory. Once you have channel, you can make method call through that channel calling the method contract.&lt;br /&gt;
&lt;br /&gt;
Once you are done with the channel, you need to Close / Abort the channel.&lt;br /&gt;
&lt;br /&gt;
Let me explain, how to create a ChannelFactory based upon a particular endpoint : &lt;br /&gt;
&lt;br /&gt;
This is achieved through a special class called ChannelFactory : &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #ffe599;&quot;&gt;&lt;em&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;ChannelFactory&amp;nbsp;&lt;span style=&quot;color: #0b5394;&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&amp;lt;&#39;ServiceContractName&#39;&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt; ObjOfChannelFactory = new ChannelFactory&#39;&amp;lt;&#39;ServiceContractName&#39;&amp;gt;&#39; (&quot;NameOfEndpoint&quot;)&amp;nbsp;;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&amp;nbsp;This allows you to create Channel, based upon specific contract type.&lt;br /&gt;
&lt;br /&gt;
When&amp;nbsp;you are done with construction of ChannelFactory of a particular type of &lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;em&gt;ServiceContractName&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;, &lt;/span&gt;you also supply target endpoint in its constructor ie&lt;em&gt;, &lt;/em&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;em&gt;NameOfEndpoint&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #0b5394;&quot;&gt;&amp;nbsp;&lt;span style=&quot;background-color: #ffe599;&quot;&gt;&lt;em&gt;ChannelFactory &#39;&amp;lt;&#39;IInvoiceService&#39;&amp;gt;&#39; cf =&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffe599;&quot;&gt;&lt;em&gt;new&amp;nbsp;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffe599;&quot;&gt;&lt;em&gt;ChannelFactory &#39;&amp;lt;&#39;IInvoiceService&#39;&amp;gt;&#39; (&quot;HttpEndpoint&quot;);&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;background-color: #ffe599; color: #0b5394;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;background-color: #ffe599; color: #0b5394;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;background-color: #ffe599; color: #0b5394;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;background-color: #ffe599; color: #0b5394;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;background-color: #ffe599; color: #0b5394;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;&lt;strong&gt;&lt;u&gt;Note :&lt;/u&gt;&lt;/strong&gt; I have used single quote for angle bracket to avoid creating it a html tag. Don&#39;t include single quotes around the Service Contract Name while coding.&lt;/em&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/6009046843107079235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/09/how-to-program-channels-of-wcf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/6009046843107079235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/6009046843107079235'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/09/how-to-program-channels-of-wcf.html' title='How to Program Channels of WCF'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-8291878784377028892</id><published>2012-09-13T00:35:00.000+05:30</published><updated>2012-09-13T00:44:32.215+05:30</updated><title type='text'>WCF Client Retrieving Endpoint definition</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
When we take a reference of a service at the client side, the client automatically generates endpoint definitions from WSDL. It can generate two things :&lt;br /&gt;
&lt;div&gt;
a. Code containing an equivalent service contract definition&lt;/div&gt;
&lt;div&gt;
b. Config information containing the endpoint definition&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Let us take the following example :&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGhQQQdxG9wKA0c98U0La2urX2rQQT4X7PJTE1BiqU_JrdlBK73qwPf57FecBobrek9LaCeyZU1DwBN-SoxTSro04XEnvoHt44TZOtdQ3WjJFmbpC5RukPCmzt_bSmbiI1SKNAbuf5R1ZI/s1600/Retriving+Endpoint+Definition.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGhQQQdxG9wKA0c98U0La2urX2rQQT4X7PJTE1BiqU_JrdlBK73qwPf57FecBobrek9LaCeyZU1DwBN-SoxTSro04XEnvoHt44TZOtdQ3WjJFmbpC5RukPCmzt_bSmbiI1SKNAbuf5R1ZI/s400/Retriving+Endpoint+Definition.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here we have a service exposing several endpoints in the form of WSDL definition. Client retrieves that using metadata import tool, which generates two things :&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
a. configuration file containing the client side endpoint definitions.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
b. .net contract definitions in the code format&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
These two things need to be compiled at the client side application &amp;amp; thus the programming model becomes symmetric to what is there at the service side.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;How to do :&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
1. Right click on the client project, add reference.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. Type the address of your metadata and hit enter. This will download the metadata and generate the code in the configuration file necessary for your client side endpoints.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
3. Thus it automatically add those code lines and configuration in the project for you by merging the configuration file.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
4. Finally it add a new thing in your project called a service reference.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/8291878784377028892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/09/wcf-client-retrieving-endpoint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8291878784377028892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8291878784377028892'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/09/wcf-client-retrieving-endpoint.html' title='WCF Client Retrieving Endpoint definition'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGhQQQdxG9wKA0c98U0La2urX2rQQT4X7PJTE1BiqU_JrdlBK73qwPf57FecBobrek9LaCeyZU1DwBN-SoxTSro04XEnvoHt44TZOtdQ3WjJFmbpC5RukPCmzt_bSmbiI1SKNAbuf5R1ZI/s72-c/Retriving+Endpoint+Definition.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-8052629471143517111</id><published>2012-09-12T23:20:00.001+05:30</published><updated>2012-09-12T23:20:58.527+05:30</updated><title type='text'>WCF Architecture</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
A Step-by-Step approach of learning WCF architecture :&lt;br /&gt;
&lt;br /&gt;
In any communication oriented scenario, there is always a service waits for messages to arrive and a client tries to consume the service.&amp;nbsp;In WCF this happens with the help of metadata,WSDL definition, endpoint and channel. Let me take you to a step-by-step approach of WCF architecture and its functionality.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvxZWCUm-IVrd7L1vVWtU7RGVXHQ8ARg84ZPkUkVPlFcLzG4WYro3PcgLK1xx1AQcOZ9EI_DIOlkQ7dPKQlWePWW0ic8bbxBGzOICI-eiQ5bAQb__k4Wq_X_nBA1UmiFijehneAI3ZZLF4/s1600/WCF+Architecture.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;257&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvxZWCUm-IVrd7L1vVWtU7RGVXHQ8ARg84ZPkUkVPlFcLzG4WYro3PcgLK1xx1AQcOZ9EI_DIOlkQ7dPKQlWePWW0ic8bbxBGzOICI-eiQ5bAQb__k4Wq_X_nBA1UmiFijehneAI3ZZLF4/s400/WCF+Architecture.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;1. Service waits for message to arrive and on other side client wants to consume the service.&lt;br /&gt;
&lt;br /&gt;
2. Like in network programming, we have sockets exposed by the server, here we have service exposing the metadata. To consume the service, client must be able to retrieve the metadata.&lt;br /&gt;
&lt;br /&gt;
3. Service exposes the metadata, typically in the format of WSDL definition.&lt;br /&gt;
&lt;br /&gt;
4. Client retrieve the WSDL definition &amp;amp; then run it through a client side metadata import tool.&lt;br /&gt;
&lt;br /&gt;
5. This will produce client side endpoints that represents the information to communicate that service through one of the endpoints.&lt;br /&gt;
&lt;br /&gt;
6. Client once has those endpoint definitions, can then choose any of the endpoint.&lt;br /&gt;
&lt;br /&gt;
7. Client construct a channel based on the endpoint going to be used. Once the client has constructed the channel based on the endpoint, it can then begin sending messages to the service through that channel &amp;amp; can make method calls on the channel instance.&lt;br /&gt;
&lt;br /&gt;
This completes the flow of WCF architecture (refer the figure above).&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/8052629471143517111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/09/wcf-architecture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8052629471143517111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/8052629471143517111'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/09/wcf-architecture.html' title='WCF Architecture'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvxZWCUm-IVrd7L1vVWtU7RGVXHQ8ARg84ZPkUkVPlFcLzG4WYro3PcgLK1xx1AQcOZ9EI_DIOlkQ7dPKQlWePWW0ic8bbxBGzOICI-eiQ5bAQb__k4Wq_X_nBA1UmiFijehneAI3ZZLF4/s72-c/WCF+Architecture.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5578331051572085628.post-3426650197887666981</id><published>2012-09-08T23:21:00.001+05:30</published><updated>2012-09-08T23:21:41.879+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="features of wcf"/><category scheme="http://www.blogger.com/atom/ns#" term="introduction to wcf"/><category scheme="http://www.blogger.com/atom/ns#" term="why wcf"/><title type='text'>Introduction to WCF</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Windows Communication Foundation (WCF) is formally know as &quot;Indigo&quot;.&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRDzWFND2GRFUsTSlvqYA8uQWDqBXXG0NwsLbDpJmoHWgTo2iPlux-1oL-LpzzDZcrurSsf9d8cspZ4mFt1kIjCVn6ALpXNFwy0mPolVeUyIuKDHZ6QC4x_3H_gQMD7TW-ERaBRo6dZEJf/s1600/WCF+existance.bmp&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRDzWFND2GRFUsTSlvqYA8uQWDqBXXG0NwsLbDpJmoHWgTo2iPlux-1oL-LpzzDZcrurSsf9d8cspZ4mFt1kIjCVn6ALpXNFwy0mPolVeUyIuKDHZ6QC4x_3H_gQMD7TW-ERaBRo6dZEJf/s200/WCF+existance.bmp&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Following are the features of WCF :&lt;br /&gt;
&lt;br /&gt;
1. WCF is truely service-oriented, loosely coupled and interoperable platform.&lt;br /&gt;
&lt;br /&gt;
2. It simplifies service-oriented system design by removing the design dependencies between business functionality and actual implementation of the business functionality.&lt;br /&gt;
&lt;br /&gt;
3.WCF promotes loose coupling not only between services and the functionality they expose, but also for choice of protocol, message encoding formats &amp;amp; hosting environment. For ex, services can be accessed over a variety of supported protocols (named pipes, TCP, HTTP and MSMQ)&lt;br /&gt;
&lt;br /&gt;
4. WCF also support all of the core and emerging web service standards, which make it a highly interoperable platform.&lt;br /&gt;
&lt;br /&gt;
5. Messages can always be represented in a format consistent with a set of well-adapted standards to communicate with other platforms.&lt;br /&gt;
&lt;br /&gt;
6. You can now choose a single communication stack to gain access to the system services necessary to build a distributed system.&lt;br /&gt;
&lt;br /&gt;
7. WCF unifies the disparity in the programming paradigm namely .net remoting, asp.net web services (.asmx) &amp;amp; enterprises services.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mystudybank.blogspot.com/feeds/3426650197887666981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mystudybank.blogspot.com/2012/09/introduction-to-wcf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/3426650197887666981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5578331051572085628/posts/default/3426650197887666981'/><link rel='alternate' type='text/html' href='http://mystudybank.blogspot.com/2012/09/introduction-to-wcf.html' title='Introduction to WCF'/><author><name>Nayeem Khan</name><uri>http://www.blogger.com/profile/15007051021812199735</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyPqR3pBQ8ICXCH7AqDEKek_v8u2A9t0MVaot3_wk1ss8D4MtAQU8TujRnTsE2lsqjBFuaMPbHio0_TU2VxcVKpIuO1c9BgyBdqk6F95Xq4nNMFx2ZeK1sVX0K7ACjUg/s220/Image063.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRDzWFND2GRFUsTSlvqYA8uQWDqBXXG0NwsLbDpJmoHWgTo2iPlux-1oL-LpzzDZcrurSsf9d8cspZ4mFt1kIjCVn6ALpXNFwy0mPolVeUyIuKDHZ6QC4x_3H_gQMD7TW-ERaBRo6dZEJf/s72-c/WCF+existance.bmp" height="72" width="72"/><thr:total>0</thr:total></entry></feed>