tag:blogger.com,1999:blog-36127683462685391272024-03-05T17:13:00.107+05:30A Yogi's blog on technologyYogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-3612768346268539127.post-27183095994315831702015-04-21T15:11:00.000+05:302015-04-21T15:11:03.080+05:30Getting PublicKeyToken of an Assembly<div dir="ltr" style="text-align: left;" trbidi="on">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
Public key token of an assembly is small number representing
the public key of the assembly. As the public keys are very long, the tokens
allow us to refer the public key without specifying the whole key.</div>
<div class="MsoNormal">
Public key token is the last 8 bytes of the SHA-1 hash of
the public key under which the assembly is signed. The assembly must be signed
to have a public key</div>
<div class="MsoNormalCxSpMiddle">
To get PublicKeyToken of an assembly open Visual
Studio command prompt and enter the following command – </div>
<div class="MsoNormalCxSpMiddle">
<b style="mso-bidi-font-weight: normal;"><span style="font-family: Consolas;">sn –T NameOfDll.dll</span></b></div>
<div class="MsoNormalCxSpMiddle">
where NameOfDll is the fully qualified name of the
DLL for which you want to see the key token.</div>
<div class="MsoNormalCxSpMiddle">
<br /></div>
<div class="MsoNormal">
To simplify the process, we can also add this feature in
Visual Studio Tool menu, so that we can get the key from within Visual Studio
with just a clock of a button.</div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span>From the Tools menu in Visual Studio, select ExternalTools.</div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhff__qwDenRsJXI4LvdFpDQ451DqphhynZPEyZS8jBR6bhixSj7qyN3fyP1d-VhcEUiwJtIF3plsiVI_y2qtGdIloJDB7ABL_A_a5u9XD2cOM_7LVzxhhl57IHLkxarA6acA88RF36uNM/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhff__qwDenRsJXI4LvdFpDQ451DqphhynZPEyZS8jBR6bhixSj7qyN3fyP1d-VhcEUiwJtIF3plsiVI_y2qtGdIloJDB7ABL_A_a5u9XD2cOM_7LVzxhhl57IHLkxarA6acA88RF36uNM/s1600/1.png" height="320" width="290" /></a></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span>Add a new command say GetAssemblyToken and enter
the parameters as follows.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCldw1Bg6mfFjKMcX20b329lYBeiyS71kYFTsXwWBSXOXqcXO9k_wi7LpFcqgEXMBvf2D_CcstoOZ-oOTjzS0nQcbQw2QDvMDl6-IICS3POk1PliXOtlX8us4ppxICgHTWNaTbiFGiuWc/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCldw1Bg6mfFjKMcX20b329lYBeiyS71kYFTsXwWBSXOXqcXO9k_wi7LpFcqgEXMBvf2D_CcstoOZ-oOTjzS0nQcbQw2QDvMDl6-IICS3POk1PliXOtlX8us4ppxICgHTWNaTbiFGiuWc/s1600/2.png" height="320" width="289" /></a></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
The command is the full path of the Strong
Name application i.e. <b style="mso-bidi-font-weight: normal;">sn.exe</b>. If you
do not know the full path of the application, just open the Visual Studio
command prompt enter command, <i style="mso-bidi-font-style: normal;">where
sn.exe</i>.</div>
<div class="MsoListParagraphCxSpMiddle">
Make sure to check the <i style="mso-bidi-font-style: normal;">Use Output Window</i> so that the key is displayed in the Visual Studio
output window.</div>
<div class="MsoListParagraphCxSpLast">
<br /></div>
<div class="MsoNormal">
Now if you need to get the PublicKeyToken of a signed
assembly, just select the assembly in solution explorer and click the external
tool that you have just created, and you should see the key in VS output
window.</div>
<div class="MsoNormal">
If we require getting the lengthy public key also, just do a
little change while creating external tool command. In place of <b style="mso-bidi-font-weight: normal;">–T $(TargetPath)</b>, just type <b style="mso-bidi-font-weight: normal;">–TP $(TargetPath)</b> as command argument.</div>
<div class="MsoNormal">
<span style="mso-no-proof: yes;"></span></div>
<div class="MsoNormal">
<br /></div>
</div>
Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-15509866516708653142014-11-30T20:44:00.000+05:302014-11-30T20:46:37.907+05:30Dependency Injection made easy for ASP.Net MVC<div dir="ltr" style="text-align: left;" trbidi="on">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
If you need to implement dependency injection (DI) in your
MVC.Net application, there is no easy way than using <b style="mso-bidi-font-weight: normal;">Unity Bootstrapper for ASP.NET MVC</b>.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is a lightweight dependency injection container which
uses Microsoft Unity container. It is available as NuGet packeage. (<a href="https://www.nuget.org/packages/Unity.Mvc/">https://www.nuget.org/packages/Unity.Mvc/</a>)</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Manage NuGet packages for you project and install, <b style="mso-bidi-font-weight: normal;">Unity Bootstrapper for ASP.NET MVC </b>package.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Bz0DPKQOTvfvat2S5KxDSTqDEn4kgkPQHQuhS7Y2tqvz8V9809sHl00Lmr0cwpujY8mwnum6vkAOsgGQJQF6ZjU5PmJHOGlpNgbALIvocrECuezitUYHohqLjQcRrfJoCiXM6IFabD0/s1600/ManageNuGet.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5Bz0DPKQOTvfvat2S5KxDSTqDEn4kgkPQHQuhS7Y2tqvz8V9809sHl00Lmr0cwpujY8mwnum6vkAOsgGQJQF6ZjU5PmJHOGlpNgbALIvocrECuezitUYHohqLjQcRrfJoCiXM6IFabD0/s1600/ManageNuGet.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirK-iTRPneSjGs1RCTDQCS6GeCb6HG1E4eZBksBK4l_CMdn5zfqdloq5TCokuDnWMWvrb34PgvVPU6A7w0WnamDVPVibnoxvNKYAGVHsUnLbqEb3VkZN7QJPWKZ-wGpOCNIkr8N7Ja4PQ/s1600/LocateUnity.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirK-iTRPneSjGs1RCTDQCS6GeCb6HG1E4eZBksBK4l_CMdn5zfqdloq5TCokuDnWMWvrb34PgvVPU6A7w0WnamDVPVibnoxvNKYAGVHsUnLbqEb3VkZN7QJPWKZ-wGpOCNIkr8N7Ja4PQ/s1600/LocateUnity.png" height="425" width="640" /></a></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
The package installs some libraries to your project and you
could also see the following two classes in your <b style="mso-bidi-font-weight: normal;">App_Start</b> directory.</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijzwLBv7x8495YI07_merhcRXuSvNUtEVxSI21257O61zXWYxyqUiabZIYCtQl8BePtZitSER9iKNz7T6VjON4m_9QRQItrUcCb7hboo07V2JLgK8pnXvSxekPYOKfks7aLPRmz1ws4cA/s1600/Sol2Classes.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijzwLBv7x8495YI07_merhcRXuSvNUtEVxSI21257O61zXWYxyqUiabZIYCtQl8BePtZitSER9iKNz7T6VjON4m_9QRQItrUcCb7hboo07V2JLgK8pnXvSxekPYOKfks7aLPRmz1ws4cA/s1600/Sol2Classes.png" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal">
Lets get going. Just register your types in <b style="mso-bidi-font-weight: normal;">RegisterTypes</b> method of <b style="mso-bidi-font-weight: normal;">UnityConfig</b> and you are done!!</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqDT8BVlGVJ7U83gNr2pwWD6iXNyYpzYiZF2ecm3Rjam-NKfm3LpAUChMubGgUZzFY5jNB5bq2YQAxBVLG4H-R1OYkvHFM6OuAXLMwsQoEkdcUFSG1dyybdiKQGF6qKTidueDCka969Z0/s1600/class.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqDT8BVlGVJ7U83gNr2pwWD6iXNyYpzYiZF2ecm3Rjam-NKfm3LpAUChMubGgUZzFY5jNB5bq2YQAxBVLG4H-R1OYkvHFM6OuAXLMwsQoEkdcUFSG1dyybdiKQGF6qKTidueDCka969Z0/s1600/class.png" /></a></div>
<div class="MsoNormal">
<span style="mso-no-proof: yes;"><br /></span></div>
<br />
<div class="MsoNormal">
<span style="mso-no-proof: yes;"><br /></span></div>
</div>
Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-8315882068340407272014-10-12T19:35:00.001+05:302014-10-12T19:43:11.910+05:30XML Serialization and Deserialization using generics<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana,sans-serif;">I love generics, and I when I come across a </span><span style="font-family: Verdana,sans-serif;"><span style="font-family: Verdana,sans-serif;">requirement </span>where I had to serialize a variety of objects to xml and deserialize back to the object, generics was the way to go, and resulted in following methods.</span></div>
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<span style="font-family: Consolas;"><span style="color: green;"></span></span></div>
<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Consolas;">
<span style="color: grey;">//</span><span style="color: green;"> De-Serializes the request into type object</span></span><br />
<span style="font-family: Consolas;"><span style="color: green;"></span></span></div>
</div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">public</span> <span style="color: blue;">static</span> <span style="color: #2b91af;">
XmlDocument</span> SerializeToXml<t>(T objectToSerialize)</t></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: #2b91af;">XmlDocument</span> serializedXml = <span style="color: blue;">
new</span> <span style="color: #2b91af;">XmlDocument</span>();</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: #2b91af;">XmlSerializer</span> xmlSerializer = <span style="color: blue;"></span></span><span style="font-family: Consolas;"><span style="color: blue;">new</span> <span style="color: #2b91af;">XmlSerializer</span>(<span style="color: blue;">typeof</span>(T));</span></div>
<br />
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">using</span> (<span style="color: #2b91af;">MemoryStream</span> momoryStream =
<span style="color: blue;">new</span> <span style="color: #2b91af;">MemoryStream</span>())</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: #2b91af;">XmlTextWriter</span> xmlTextWriter = <span style="color: blue;">
new</span> <span style="color: #2b91af;">XmlTextWriter</span>(momoryStream, <span style="color: blue;">
null</span>);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> xmlSerializer.Serialize(<wbr></wbr>xmlTextWriter, objectToSerialize);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> <span style="color: green;">// Rewind the Stream.</span></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> momoryStream.Seek(0,
<span style="color: #2b91af;">SeekOrigin</span>.Begin);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: green;">// load from stream;</span></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> serializedXml.Load(<wbr></wbr>momoryStream);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> }</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">return</span> serializedXml;</span></div>
<span style="font-family: Consolas;"> }</span><br />
<br />
<div class="MsoNormal" style="text-autospace: none;">
<br />
<summary></summary></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: grey;">//</span><span style="color: green;"> De-Serializes the request into class object</span></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">public</span> <span style="color: blue;">static</span> T DeserializeXml<t>(<span style="color: #2b91af;">XmlNode</span> xmlToDesearialized)</t></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">if</span> (xmlToDesearialized == <span style="color: blue;">
null</span>) <span style="color: blue;">throw</span> <span style="color: blue;">new</span>
<span style="color: #2b91af;">ArgumentNullException</span>(<span style="color: #a31515;">"<wbr></wbr>xmlToDesearialized"</span>);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> T deserializedObject =
<span style="color: blue;">default</span>(T);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: #2b91af;">XmlSerializer</span> xmlSerializer = <span style="color: blue;">
new</span> <span style="color: #2b91af;">XmlSerializer</span>(<span style="color: blue;">typeof</span>(T));</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">using</span> (<span style="color: #2b91af;">StringReader</span> stringReader =
<span style="color: blue;">new</span> <span style="color: #2b91af;">StringReader</span>(<wbr></wbr>xmlToDesearialized.OuterXml))</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: #2b91af;">XmlTextReader</span> xmlTextReader = <span style="color: blue;">
new</span> <span style="color: #2b91af;">XmlTextReader</span>(stringReader);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> deserializedObject = (T)xmlSerializer.Deserialize(<wbr></wbr>xmlTextReader);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;"> }</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas;">
<span style="color: blue;">return</span> deserializedObject;</span></div>
<span style="font-family: Consolas;"> }</span></div>
Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-85613795349750544702014-09-28T21:29:00.000+05:302014-09-28T21:29:04.957+05:30Creating directory and copying files using Build Events<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
If we need to create any directory while we build the project or need to copy some files, in this case the build events comes really handy. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To specify these events, navigate to the project properties >> Build Events and write these event for Pre or Post build event.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<img alt="" src="data:image/png;base64,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" /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
//Create a directory</div>
<div class="MsoNormal">
md "$(SolutionDir)SomeDirectory\Rosources"</div>
<br />
//Copying files<br />
<div class="MsoNormal">
xcopy "$(SolutionDir)SourceFolder\Rosources" "$(SolutionDir)TargetFolder\Rosources" /r /y /f /d</div>
</div>
Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-19941236759375583622014-09-28T20:57:00.000+05:302014-09-28T21:13:11.109+05:30ASP.Net MVC / JQuery - Quick Tips<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
<span style="font-size: small;">Setting the TemData in JQuery</span></h2>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;"><</span><span style="color: maroon;">script</span> <span style="color: red;">
type</span><span style="color: blue;">="text/javascript"></span></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"> $(<span style="color: maroon;">'#aa'</span>).val(<span style="color: maroon;">"test"</span>);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: maroon;">'<span style="background: yellow;"><%</span> TempData["Test"] = "Test";<span style="background: yellow;">%></span>'</span>;</span></div>
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;"></</span><span style="color: maroon;">script</span><span style="color: blue;">></span></span><br />
<br />
<h2 style="text-align: left;">
<span style="font-size: small;">Adding Tooltip in JQuery</span></h2>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="color: blue;"> </span> $(document).ready(<span style="color: blue;">function</span> () {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"> $(<span style="color: blue;">function</span> () {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"> $(<span style="color: maroon;">"select option"</span>).attr(<span style="color: maroon;">"title"</span>,
<span style="color: maroon;">""</span>);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"> $(<span style="color: maroon;">"select option"</span>).each(<span style="color: blue;">function</span> (i) {</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">this</span>.title = <span style="color: blue;">this</span>.text;</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"> })</span></div>
<span style="font-family: Consolas; font-size: 9.5pt;"> });</span><br />
<h2 style="text-align: left;">
<span style="font-size: small;">Check if a request is Ajax request</span></h2>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: green;">//Check if the request is an Ajax request.</span></span></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">bool</span> IsAjaxRequest = !<span style="color: blue;">string</span>.IsNullOrEmpty(Request.<wbr></wbr>Form[<span style="color: #a31515;">"x-request-with"</span>] ?? Request.Headers[<span style="color: #a31515;">"x-request-<wbr></wbr>with"</span>]);</span></div>
<div class="MsoNormal" style="text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="text-autospace: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: green;">//OR.. if you dont like it..use</span></span></div>
<span style="font-family: Consolas; font-size: 9.5pt;">
<span style="color: blue;">bool</span> IsAjaxRequestAgain = Request.IsAjaxRequest();</span><h2 style="text-align: left;">
<span style="font-size: small;"> </span></h2>
</div>
Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-15998730425144331802012-02-04T19:42:00.002+05:302015-01-04T21:16:10.610+05:30Repository Pattern simplified<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Calibri;">In practice, Repository Pattern is generally used to separate the logic relating to the DB interaction (or any data source for that matter), and perform CRUD (<i style="mso-bidi-font-style: normal;">Create, Read, Update, Delete</i>) operations for the business objects or domain object or business entities, whatever you call them.</span> <br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">As per MSDN - The repository mediates between the data source layer and the business layers of the application. It queries the data source for the data, maps the data from the data source to a business entity, and persists changes in the business entity to the data source. A repository separates the business logic from the interactions with the underlying data source or Web service.</span><br />
<br />
<span style="font-family: Calibri;">In early days, entity objects were heavier. They not only carries the properties but also the functions to perform operations on these properties.<br />So for example, the employee entity will have properties like Name, Department etc and then functions like, SaveEmployee, DeleteEmployee, FindEmployee etc.<br />As programming evolved, entities become lighter, now they just contain attributes and can be easily referenced throughout different layers. And operations on these entities moved to repositories! </span></div>
<span style="font-family: Calibri;">Benefits:-</span><br />
<ul style="text-align: left;">
<li><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>A repository separates the business logic from the interactions with the underlying data source. This is especially important wherein the the data source may vary from dbms, webservice, sharepoint, feeds, files etc. With, Repository Pattern implemented, the business layer can easily be freed from the responsibility of knowing how the interactions to the data source are made. The respective business object repository will take care of it, making your business layer tidy.</span></li>
<li><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>Repository Pattern makes it easy to unit test your code, with clearly defined responsibilities of different layers. You can easily test you application both with and without database (using mock/fake objects).</span></li>
<li><span style="font-family: Calibri;"> It encourages good coding practice by its nature. With Repository Pattern implemented within the framework, it just becomes harder for the coder to break the rules and play around with the code. It is highly significant with the larger teams, big projects.</span></li>
</ul>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">Ok...now let’s do some code works and see how this pattern works.</span></div>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">In repository pattern we have a repository class for every domain object, which will be responsible for data interactions with datasources. For example, if we have say, Person and Item domain entities, then there would be respective repositories for these entities. </span><br />
<span style="font-family: Calibri;"><br /></span>
<span style="font-family: Calibri;">A person like me with background of the good old 3-Tier architecture, when told to implement Repository Pattern, wrote something like this :(</span></div>
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">PersonRepository</span></span><br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Person</span>> GetAllPersons() { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Person</span> GetPersonById(<span style="color: blue;">int</span> personId) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> CreatePerson(<span style="color: #2b91af;">Person</span> person) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> UpdatePerson(<span style="color: #2b91af;">Person</span> person) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> DeletePerson(<span style="color: #2b91af;">Person</span> person) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ItemRepository</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Item</span>> GetAllItems() { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Item</span> GetItemById(<span style="color: blue;">int</span> itemId) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> CreateItem(<span style="color: #2b91af;">Item</span> item) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> UpdateItem(<span style="color: #2b91af;">Item</span> item) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> DeleteItem(<span style="color: #2b91af;">Item</span> item) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">Uuummnnn…., not bad, lets improvise this, and introduce Interfaces over the top of the repository classes above to add more flexibility to the design</span></div>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">Now the implementation would be like:</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">IPersonRepository</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Person</span>> GetAllPersons();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Person</span> GetPersonById(<span style="color: blue;">int</span> personId);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> CreatePerson(<span style="color: #2b91af;">Person</span> person);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> UpdatePerson(<span style="color: #2b91af;">Person</span> person);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> DeletePerson(<span style="color: #2b91af;">Person</span> person);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">IItemRepository</span><span style="color: black;"><t></t></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Item</span>> GetAllItems();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Item</span> GetItemById(<span style="color: blue;">int</span> itemId);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> CreateItem(<span style="color: #2b91af;">Item</span> item);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> UpdateItem(<span style="color: #2b91af;">Item</span> item);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> DeleteItem(<span style="color: #2b91af;">Item</span> item);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">PersonRepository</span> : <span style="color: #2b91af;">IPersonRepository</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Person</span>> GetAllPersons() { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Person</span> GetPersonById(<span style="color: blue;">int</span> personId) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> CreatePerson(<span style="color: #2b91af;">Person</span> person) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> UpdatePerson(<span style="color: #2b91af;">Person</span> person) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> DeletePerson(<span style="color: #2b91af;">Person</span> person) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ItemRepository</span> : <span style="color: #2b91af;">IItemRepository</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Item</span>> GetAllItems() { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Item</span> GetItemById(<span style="color: blue;">int</span> itemId) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> CreateItem(<span style="color: #2b91af;">Item</span> item) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> UpdateItem(<span style="color: #2b91af;">Item</span> item) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> DeleteItem(<span style="color: #2b91af;">Item</span> item) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">Doing this – </span></div>
<ul style="text-align: left;">
<li><span style="font-family: Calibri;">Our code is no more dependent on the concrete class.</span></li>
<li><span style="font-family: Calibri;">We can now use patterns like dependency injection and provide different implementation as required.</span></li>
<li><span style="font-family: Calibri;">Automated testing will be very graceful; we can provide mock objects to the testing application, instead of messing up the actual database.</span></li>
</ul>
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">So far so good, but there is one problem, as the object increases, there will be more interfaces to manage. If we look closely, what we are doing are some generic operations for the business objects, and if we replace the interfaces with generic one, we can fix this up as well. So, the revised code will look something like:</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">interface</span> <span style="color: #2b91af;">IRepository<span style="color: black;"><</span>T<span style="color: black;">></span></span><t></t></span><br />
<br />
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><t> GetAll();</t></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> T GetById(<span style="color: blue;">int</span> id);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Create(T entity);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Update(T entity);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Delete(T entity);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">PersonRepository</span> : <span style="color: #2b91af;">IRepository</span><<span style="color: #2b91af;">Person</span>></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Person</span>> GetAll() { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Person</span> GetById(<span style="color: blue;">int</span> id) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Create(<span style="color: #2b91af;">Person</span> entity) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Update(<span style="color: #2b91af;">Person</span> entity) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Delete(<span style="color: #2b91af;">Person</span> entity) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ItemRepository</span> : <span style="color: #2b91af;">IRepository</span><<span style="color: #2b91af;">Item</span>></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">List</span><<span style="color: #2b91af;">Item</span>> GetAll() { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: #2b91af;">Item</span> GetById(<span style="color: blue;">int</span> id) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Create(<span style="color: #2b91af;">Item</span> entity) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Update(<span style="color: #2b91af;">Item</span> entity) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Delete(<span style="color: #2b91af;">Item</span> entity) { <span style="color: green;">/*Implement method*/</span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-spacerun: yes;"> </span>}</span></div>
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;">
<span style="font-family: Calibri;">With this in place, we have also standardized our repositories. Even for newer business objects, the coder will have to define the repository as per the generic interface only. <span style="mso-spacerun: yes;"> </span><i><b>You are of course free to add more generic operations to it like finding an object against lambda expression etc</b></i>. </span><br />
<span style="font-family: Calibri;">A really beautiful abstraction of CRUD operations!! </span></div>
</div>
Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-1551158986072292482012-01-29T16:13:00.004+05:302012-01-29T16:13:49.909+05:30Difference between Stored Procedure and Function<div dir="ltr" style="text-align: left;" trbidi="on">
1. Functions are compiled and executed at run time.<br />Stored procedures are stored in parsed and compiled format in the database.<br />
<br />
2. Functions cannot affect the state of the database which means we cannot perform insert,delete,update and create operations on the database.<br />Stored Procedures can affect the state of the database by using insert,delete,update and create operations.<br />
<br />
3 Functions are basically used to compute values. We passes some parameters to functions as input and then it performs some operations on the parameter and return output.<br />Stored procedures are basically used to process the task.<br />
<br />
4.Function can not change server environment and our operating system environment.<br />Stored procedures can change server environment and our operating system environment.<br />
<br />
5.Functions can not be invoked from SQL Statements. Execute. SELECT<br />operating system can be invoked from SQL Statements. Execute. SELECT<br />
<br />
6.Functions can run an executable file from SQL SELECT or an action query.<br />operating system use Execute or Exec to run</div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-78704832596105662992010-12-06T13:28:00.000+05:302010-12-06T13:28:43.060+05:30Enable/Disable Constraints and Triggers in SQL--Disable Constraints <br />
EXEC sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' <br />
<br />
--Disable Triggers <br />
EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL' <br />
<br />
--Enable Constraints <br />
EXEC sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL' <br />
<br />
--Enable Triggers <br />
EXEC sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-1596585698596960702010-09-27T20:51:00.000+05:302010-09-27T20:51:39.813+05:30Dynamically Setting the Title of a Web PageUsing the ASP.Net Literal control, you can dynamically set the title of your web page.<br />
<br />
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">Declare a literal control in the <title> tag.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"><</span><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">head</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">></span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;"><</span><span style="color: #a31515;">title</span><span style="color: blue;">></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none; text-indent: 0.5in;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"><</span><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">asp</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">:</span><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">Literal</span><span style="font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"> <span style="color: red;">ID</span><span style="color: blue;">="ltrlTitle"</span> <span style="color: red;">runat</span><span style="color: blue;">="server"></</span><span style="color: #a31515;">asp</span><span style="color: blue;">:</span><span style="color: #a31515;">Literal</span><span style="color: blue;">></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span></</span><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">title</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">></span></div><div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="color: blue; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-no-proof: yes;"></</span><span style="color: #a31515; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-no-proof: yes;">head</span><span style="color: blue; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-no-proof: yes;">></span></div><br />
<br />
<div class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-family: Calibri;">And then set the value for the literal, say in page load event.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"><span style="color: blue;">protected</span> <span style="color: blue;">void</span> Page_Load(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;">{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New"; font-size: 10pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span>ltrlTitle.Text = <span style="color: #a31515;">"My Dynamic Title"</span>;</span></div><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-no-proof: yes;">}</span>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-17840438312973973512010-01-26T12:40:00.004+05:302012-01-29T15:31:21.039+05:30Toolbox icon problem with Visual Studio 2005<div dir="ltr" style="text-align: left;" trbidi="on">
Sometime ago I came across a strange issue with Visual Studio 2005. The icons of the toolbox was not showing the standard icons for the toolbox item but instead showing some different icon for all the items. I have came across the following solution to restore the original icons at the following blog:- <a href="http://xman892.blogspot.com/2007/05/visual-studio-toolbox-icons-mess.html">http://xman892.blogspot.com/2007/05/visual-studio-toolbox-icons-mess.html</a><br />
<br />
1. Close the Visual Studio.<br />
2. Navigate to:- C:\Documents and Settings\user\Local Settings\Application\Data\Microsoft\VisualStudio\8.0. In this case its for user called “user”.<br />
3. And delete all the files with “.tdb” extension.<br />
<br />
<br />
But there is a side effect too with this fix, you may also lose customizations made to the toolbox.</div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-69275734120012985502010-01-04T12:24:00.002+05:302012-01-29T15:32:18.617+05:30Difference between LinkButton and Hyperlink in ASP.Net<div dir="ltr" style="text-align: left;" trbidi="on">
Tough both the above said controls navigates to the specified URL, the difference between the two is that the Hyperlink control immediately navigates to the target URL. The form is not posted on the server. Whereas the LinkButton control first post the form to the server, where you can do some server side processing in needed and then navigate to the target URL.</div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com3tag:blogger.com,1999:blog-3612768346268539127.post-5251307204248177002009-12-29T20:27:00.003+05:302012-01-29T15:33:08.558+05:30Avoiding Flicker problem with Windows Form Controls<div dir="ltr" style="text-align: left;" trbidi="on">
One of the quite common problems with the Windows Form is that it tends to flicker when many controls are placed over it. To solve this problem, just paste the code below in your form. Using this property, the painting of your controls remains invisible, and will display once it is done with drawing the controls. <br />
<br />
<span style="background-color: #eeeeee;">protected override CreateParams CreateParams </span><br />
<span style="background-color: #eeeeee;">{ </span><br />
<span style="background-color: #eeeeee;"> get</span><br />
<span style="background-color: #eeeeee;"> { </span><br />
<span style="background-color: #eeeeee;"> CreateParams objCreateParams = base.CreateParams; </span><br />
<span style="background-color: #eeeeee;"> objCreateParams .ExStyle = 0x02000000; <br />
return objCreateParams ; <br />
} </span><br />
<span style="background-color: #eeeeee;">}</span><br />
<br />
<span style="background-color: white;">You can also set the style for your form by using the following. But this would not significantly decrease the filckering tough.</span><br />
<br />
<span style="background-color: #eeeeee;">this.SetStyle(ControlStyles.DoubleBuffer | </span><br />
<span style="background-color: #eeeeee;">ControlStyles.AllPaintingInWmPaint |</span><br />
<span style="background-color: #eeeeee;">ControlStyles.UserPaint |</span><br />
<span style="background-color: #eeeeee;">ControlStyles.Opaque, true);</span></div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-54357428162814283062009-12-24T13:53:00.002+05:302012-01-29T15:34:41.465+05:30How to Compact Access Database Programmatically<div dir="ltr" style="text-align: left;" trbidi="on">
Add a reference of “Microsoft Jet and Replication Objects 2.6 Library” in your project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS5pzt2LSn_YAhe_Zb-FNVT_4Yxm7QPoHgHDHjxwjv13riymRrPPl-SnN3Cn34PgiFc7Q1SgyTon0DRmdx-TvzlArKVLeLO-lnD_F_sSS9r-PDUjeM_yojgP6Y_yjbzhEJiDTI93o8RD4/s1600-h/compactAccess.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" ps="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS5pzt2LSn_YAhe_Zb-FNVT_4Yxm7QPoHgHDHjxwjv13riymRrPPl-SnN3Cn34PgiFc7Q1SgyTon0DRmdx-TvzlArKVLeLO-lnD_F_sSS9r-PDUjeM_yojgP6Y_yjbzhEJiDTI93o8RD4/s400/compactAccess.JPG" /></a></div>
<br />
<br />
Now write the following function to compact the Access database with .mdb extension.<br />
<br />
<strong><u>C#</u></strong><br />
<br />
<span style="background-color: #d0e0e3;">private void CompactDatabase()</span><br />
<span style="background-color: #d0e0e3;">{</span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> //Making object of the JRO.JetEngine</span><br />
<span style="background-color: #d0e0e3;"> JRO.JetEngine objJetEngine = new JRO.JetEngine();</span><br />
<br />
<span style="background-color: #d0e0e3;"> //Specifying the connection strings for the Source and Target databases</span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> string SourceDBConnectionString = "Data Source=\"" + "SourceDBPath" + "\";Jet OLEDB:Database Password=" + "Password";</span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> string TargetDBConnectionString = "Data Source=\"" + "destFilePath" + "\";Jet OLEDB:Database Password=" + "Password";</span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> //Calling the CompactDatabase function of the JRO.JetEngine object</span><br />
<span style="background-color: #d0e0e3;"> objJetEngine.CompactDatabase(SourceDBConnectionString, TargetDBConnectionString);</span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;">}</span><br />
<br />
<strong><u>VB.Net</u></strong><br />
<br />
<span style="background-color: #d0e0e3;">Private Sub CompactDatabase() </span><br />
<span style="background-color: #d0e0e3;"> 'Making object of the JRO.JetEngine</span><br />
<span style="background-color: #d0e0e3;"> Dim objJetEngine As New JRO.JetEngine() </span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> 'Specifying the connection strings for the Source and Target databases</span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> Dim SourceDBConnectionString As String = "Data Source=""" & "SourceDBPath" & """;Jet OLEDB:Database Password=" & "Password" </span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> Dim TargetDBConnectionString As String = "Data Source=""" & "destFilePath" & """;Jet OLEDB:Database Password=" & "Password" </span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;"> 'Calling the CompactDatabase function of the JRO.JetEngine object</span><br />
<span style="background-color: #d0e0e3;"> objJetEngine.CompactDatabase(SourceDBConnectionString, TargetDBConnectionString) </span><span style="background-color: #d0e0e3;"><br />
</span><br />
<span style="background-color: #d0e0e3;">End Sub</span><br />
<br />
The above code will compact only the Access databases of 2003 and earlier versions, (with .mdb extensions). If you want to compact the Access databases 2007 version, please visit the following post:-<br />
<a href="http://techieyogi.blogspot.com/2009/11/how-to-compact-access-2007-database.html">http://techieyogi.blogspot.com/2009/11/how-to-compact-access-2007-database.html</a><br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com2tag:blogger.com,1999:blog-3612768346268539127.post-55458245057642028032009-11-23T14:48:00.001+05:302012-01-29T15:34:56.378+05:30How to Compact Access 2007 Database Programmatically<div dir="ltr" style="text-align: left;" trbidi="on">
<strong>Add a reference to “Microsoft Office 12.0 Access Database Engine Object Library”.</strong> <br />
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7whhJudmcS5RIHIVmBEJ52tVk76jApU_h0LHUoiJQajbxqgGZi4yzuYyv6XxJNSChLqFm7wr18UhuppQ4iM02lR06wS5DgsDvL6CB-yheoyc3U_s6Nn4afmoa7UFeu58Dx3CzmAA3kBA/s400/addRef.JPG" yr="true" /><br />
<br />
<br />
<strong>And write a following code to compact the Access 2007 Database:-</strong><br />
<br />
<span style="background-color: white;"><strong><em>// Create a new object of DBEngine</em></strong></span><br />
<br />
<span style="background-color: #cfe2f3;">Microsoft.Office.Interop.Access.Dao.DBEngine objDbEngine = new Microsoft.Office.Interop.Access.Dao.DBEngine();</span><br />
<br />
<strong><em>// Call the CompactDatabase method on object of DBEngine<br />
</em></strong><br />
<span style="background-color: #cfe2f3;">objDbEngine.CompactDatabase(“C:\SourceDB.accdb”, “C:\TargetDB.accdb”, null, null, ";pwd=passwordOfDatabaseIfAnyElseNULL");</span><br />
<br />
For more information about the function parameters refer to the following link:-<br />
<br />
<a href="http://msdn.microsoft.com/en-us/library/bb220986.aspx">http://msdn.microsoft.com/en-us/library/bb220986.aspx</a></div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com18tag:blogger.com,1999:blog-3612768346268539127.post-35351711041352280122009-11-20T15:33:00.001+05:302012-01-29T15:33:18.677+05:30How to Embed a Windows Form in Another Control<div dir="ltr" style="text-align: left;" trbidi="on">
If you have to embed a windows form in another control say a tab page, panel, groupbox etc. then you have to set the TopLevel property of the form to false and define its parent control and couple of other properties also to give it desired feel. <br />
For example:-<br />
<br />
<br />
<strong><em><u>C#</u></em></strong><br />
<br />
<span style="background-color: #f3f3f3;">Form1 objForm = new Form1();</span><br />
<span style="background-color: #f3f3f3;">Form1.TopLevel = false;</span><br />
<span style="background-color: #f3f3f3;">Form1.ControlBox = false;</span><br />
<span style="background-color: #f3f3f3;">Form1.FormBorderStyle = FormBorderStyle.None;</span><br />
<span style="background-color: #f3f3f3;">Form1.Dock = DockStyle.Fill;</span><br />
<span style="background-color: #f3f3f3;">Form1.Show();</span><br />
<span style="background-color: #f3f3f3;">Form1.Parent = this.pnlParent;</span><br />
<br />
<br />
<strong><em><u>VB.Net</u></em></strong><br />
<br />
<span style="background-color: #f3f3f3;">Dim objForm As New Form1()</span><br />
<span style="background-color: #f3f3f3;">Form1.TopLevel = False </span><br />
<span style="background-color: #f3f3f3;">Form1.ControlBox = False </span><br />
<span style="background-color: #f3f3f3;">Form1.FormBorderStyle = FormBorderStyle.None </span><br />
<span style="background-color: #f3f3f3;">Form1.Dock = DockStyle.Fill;</span><br />
<span style="background-color: #f3f3f3;">Form1.Show() </span><br />
<span style="background-color: #f3f3f3;">Form1.Parent = Me.pnlParent</span></div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com0tag:blogger.com,1999:blog-3612768346268539127.post-5970963560743423502009-11-20T12:11:00.003+05:302012-01-29T15:33:53.998+05:30Installing AccessDatabaseEngine with Application Setup<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
If you are using Access2007 database in application then you need to have the accessdatabaseengine to make you application work, if MS Office is not installed on the client machine. </div>
<div>
<br />
You need to perform the following steps to make accessdatabaseengine part of your application setup that installs it along with your application.<br />
<br />
<strong>1. Download the AccessDatabaseEngine.exe from the following location-</strong><br />
<a href="http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en</a><br />
<br />
<strong>2. Include AccessDatabaseEngine.exe in your setup:- </strong></div>
<div>
-Open the file system editor of your setup project.</div>
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5406080221669843746" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidUbNL1pQxzIclG8AEyDPT59kTtrUL1tzlT5lo7I91Bub40aUXjhOqdJQYX5LLAbhNWFU08QPD_WjS8hopor1KssiQRm5ywzL-6K_6EwDYd47CnYllyNQz46R9Ym4k3dWrnT3MpxFaRvw/s320/openFileEditor.JPG" style="display: block; height: 274px; margin: 0px auto 10px; text-align: center; width: 320px;" /><strong>-Add the AccessDatabaseEngine.exe in your application folder.</strong><br />
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5406081431110577202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgouBXhxA3OMTHq6-vQVHwOkgC5MisX_e7_j9TrVkTynEeS3CkvhAS_Lr9b-uBbreGJel0-1hMlnUPvCUXnbuall2zEFXBCbGMdwn0vT5mUE8cf6jMdXVRfo1i3Bk-29ezt06PxuOVJy2g/s400/addAccessFile.JPG" style="display: block; height: 126px; margin: 0px auto 10px; text-align: center; width: 400px;" /><br />
<strong>3. Include an Installer class to your main project if it is not there, and make sure that the RunInstaller attribute is set to true. [RunInstaller(true)]</strong><br />
<br />
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5406082013231369106" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF3K6uyUv0-c8OB2Qgf6K-01cJVQtTy-zsnKrg7vECfeH2HTPgiUdVx3cbhyphenhyphenJr4cCuePnv7VdlqXxu-pO8b1d3FF7xuRgXLTRhEJbF4elQVAqaN8mGlKSzG3JxTxE3jjfYQwzWa3wRyHw/s400/addNewItem.JPG" style="display: block; height: 400px; margin: 0px auto 10px; text-align: center; width: 259px;" /><br />
<br />
<img alt="" border="0" id="BLOGGER_PHOTO_ID_5406082886744577826" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhviuWizqhZuMYBbW1d6UOoVGqeTiATvM6YJ_c6NqLOBtzvMh15C2O6Jhlk2Ufq-lVnEDzeFyLRULYZXccvx2oRpFG4XROc7O7AmXRco1zY0MhgEldj1cuKp09jLW9erGKxQLjyW1LM1AI/s400/addInstallerClass.JPG" style="display: block; height: 246px; margin: 0px auto 10px; text-align: center; width: 400px;" /><br />
<br />
<strong>4. Override the Install method in the Installer class.</strong><br />
<br />
<span style="background-color: #cfe2f3;">public override void Install(IDictionary stateSaver)</span><br />
<span style="background-color: #cfe2f3;">{</span><br />
<span style="background-color: #cfe2f3;"> base.Install(stateSaver);</span><br />
<span style="background-color: #cfe2f3;">}</span><br />
<br />
<strong>5. Generate event for the AfterInstall and write the following code in it to install the access database engine.</strong><br />
<span style="background-color: #cfe2f3;">private void Installer1_AfterInstall(object sender, InstallEventArgs e)</span><br />
<span style="background-color: #cfe2f3;">{</span><br />
<span style="background-color: #cfe2f3;"> string str = System.Reflection.Assembly.GetExecutingAssembly().Location;</span><br />
<span style="background-color: #cfe2f3;"> string accessComponentFile = "AccessDatabaseEngine.exe";</span><br />
<span style="background-color: #cfe2f3;"><br />
</span><br />
<span style="background-color: #cfe2f3;"> int indx = str.LastIndexOf('\\');</span><br />
<span style="background-color: #cfe2f3;"> str = str.Substring(0, indx);</span><br />
<span style="background-color: #cfe2f3;"><br />
</span><br />
<span style="background-color: #cfe2f3;"> System.Diagnostics.Process prc = new System.Diagnostics.Process();</span><br />
<span style="background-color: #cfe2f3;"> try</span><br />
<span style="background-color: #cfe2f3;"> {</span><br />
<span style="background-color: #cfe2f3;"> prc.StartInfo.FileName = str + "\\" + accessComponentFile;;</span><br />
<span style="background-color: #cfe2f3;"> prc.StartInfo.Arguments = "/quiet";</span><br />
<span style="background-color: #cfe2f3;"> prc.Start();</span><br />
<span style="background-color: #cfe2f3;"> prc.EnableRaisingEvents = true;</span><br />
<span style="background-color: #cfe2f3;"> prc.Exited += new EventHandler(prc_Exited);</span><br />
<span style="background-color: #cfe2f3;"> }</span><br />
<span style="background-color: #cfe2f3;"> catch (Exception ex)</span><br />
<span style="background-color: #cfe2f3;"> {</span><br />
<span style="background-color: #cfe2f3;"> System.Windows.Forms.MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);</span><br />
<span style="background-color: #cfe2f3;"> }</span><br />
<span style="background-color: #cfe2f3;">}</span><br />
<br />
The prc.StartInfo.Arguments = "/quiet"; installs the access database engine in silent mode.<br />
<br />
<strong>6. Delete the AccessDatabaseEngine.exe from the client machine-</strong><br />
<br />
Write the following code in the process exited event of the process defined in the AfterInstall event.<br />
<br />
<span style="background-color: #cfe2f3;">void prc_Exited(object sender, EventArgs e)</span><br />
<span style="background-color: #cfe2f3;">{</span><br />
<span style="background-color: #cfe2f3;"> string str = System.Reflection.Assembly.GetExecutingAssembly().Location;</span><br />
<span style="background-color: #cfe2f3;"> string accessComponentFile = "AccessDatabaseEngine.exe";</span><br />
<span style="background-color: #cfe2f3;"> int indx = str.LastIndexOf('\\');</span><br />
<span style="background-color: #cfe2f3;"> str = str.Substring(0, indx);</span><span style="background-color: #cfe2f3;"><br />
</span><br />
<span style="background-color: #cfe2f3;"> string FolderPath = str + "\\" + accessComponentFile;</span><br />
<span style="background-color: #cfe2f3;"> if (File.Exists(FolderPath))</span><br />
<span style="background-color: #cfe2f3;"> {</span><br />
<span style="background-color: #cfe2f3;"> try</span><br />
<span style="background-color: #cfe2f3;"> {</span><br />
<span style="background-color: #cfe2f3;"> File.Delete(FolderPath);</span><br />
<span style="background-color: #cfe2f3;"> }</span><br />
<span style="background-color: #cfe2f3;"> catch (Exception ex)</span><br />
<span style="background-color: #cfe2f3;"> {</span><br />
<span style="background-color: #cfe2f3;"> }</span><br />
<span style="background-color: #cfe2f3;"> }</span><br />
<span style="background-color: #cfe2f3;">}</span></div>Yogihttp://www.blogger.com/profile/06084656563588092356noreply@blogger.com41