<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Karatas, FERHAT</title>
    <description>Some .NET articles by Ferhat KARATAS</description>
    <link>http://www.fkaratas.com/</link>
    <image>
      <title>Karatas, FERHAT</title>
      <url>http://www.fkaratas.com/images/fkaratas.RSS.gif</url>
      <link>http://www.fkaratas.com/</link>
    </image>
    <language>TR</language>
    <copyright>Copyright Karatas, FERHAT | 22 Aug 2006</copyright>
    <pubDate>Tue, 07 Oct 2008 05:14:09 GMT</pubDate>
    <lastBuildDate>Tue, 07 Oct 2008 05:14:09 GMT</lastBuildDate>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>RSS.NET</generator>
    <ttl>3600</ttl>
    <item>
      <title>Ajax Control Toolkit-Framework3.5 SP1 - Version 3.</title>
      <description>Release Notes - Version 3.0.20820&lt;br&gt;2008-08-20 release of the AJAX Control Toolkit targets the official release of .NET Framework 3.5 SP1 and Visual Studio 2008 SP1. &lt;br&gt;&lt;br&gt;To download : &lt;br&gt;http://www.codeplex.com/AjaxControlToolkit/Release/ProjectReleases.aspx?ReleaseId=16488&lt;br&gt;&lt;br&gt;How To Implement :&lt;br&gt;&lt;ul&gt;&lt;li&gt;Download source version. (AjaxControlToolkit-Framework3.5SP1.zip)&lt;/li&gt;&lt;li&gt;Extract it to C:\Program Files\Ajax Control Toolkit (create directory)&lt;/li&gt;&lt;li&gt;Copy content of C:\Program Files\Ajax Control Toolkit\SampleWebSite\Bin to C:\Program Files\Ajax Control Toolkit\Binaries&lt;/li&gt;&lt;li&gt;In VS2008 toolbox. Add tab - Choose items&lt;/li&gt;&lt;li&gt;Select C:\Program Files\Ajax Control Toolkit\Binaries\AjaxControlToolkit.dll&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Keywords : Ajax Toolkit 3.0, Updates for .NET Framework 3.5 SP1 and Visual Studio 2008 SP1</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=56</link>
      <pubDate>Sun, 28 Sep 2008 14:26:58 GMT</pubDate>
    </item>
    <item>
      <title>HOW TO: Dynamically Create Controls in ASP.NET</title>
      <description>This article demonstrates how to dynamically
		  create/handle a control for an .aspx page.&lt;br&gt;&lt;br&gt;&amp;lt;form id="form1" runat="server"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;1&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;2&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;3&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;4&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;5&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;6&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem&amp;gt;&amp;lt;/asp:ListItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/asp:DropDownList&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:Label ID="Label1" runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&amp;lt;br /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:PlaceHolder ID="PlaceHolder1" runat="server"&amp;gt;&amp;lt;/asp:PlaceHolder&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Read" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void Page_Load(object sender, EventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateTextBox(Int32.Parse(DropDownList1.SelectedItem.Value));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void CreateTextBox(int Total)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; Total; i++)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextBox TextBox1 = new TextBox();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextBox1.ID = "TextBox1" + i.ToString();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextBox1.TextChanged += new EventHandler(TextBox_TextChanged);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PlaceHolder1.Controls.Add(TextBox1);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void TextBox_TextChanged(object sender, EventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextBox txtBoxSender = (TextBox)sender;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Label1.Text += txtBoxSender.Text +"-";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void Button2_Click(object sender, EventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Todo : other operation&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;Another example : http://support.microsoft.com/kb/317794&lt;br&gt;&lt;br&gt;Keywords : Create and handle dynamic controls.&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=55</link>
      <pubDate>Wed, 24 Sep 2008 10:07:17 GMT</pubDate>
    </item>
    <item>
      <title>VS 2008 and .NET Framework 3.5 SP1</title>
      <description>&lt;span style="font-weight: bold;"&gt;Microsoft .NET Framework 3.5 Service Pack 1&lt;/span&gt;&lt;br&gt;
Microsoft .NET Framework 3.5 Service Pack 1 is a full cumulative update
that contains many new features building incrementally upon .NET
Framework 2.0, 3.0, 3.5, and includes cumulative servicing updates to
the .NET Framework 2.0 and .NET Framework 3.0 subcomponents.&lt;br&gt;&lt;div style="text-align: left;"&gt;
Download: &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;amp;displaylang=en&lt;/a&gt;&lt;br&gt;&lt;/div&gt;
&lt;br&gt;&lt;span style="font-weight: bold;"&gt;
Microsoft Visual Studio 2008 Service Pack 1&lt;/span&gt;&lt;br&gt;
Improved WPF designers, SQL Server 2008 support, ADO.NET Entity
Designer,Richer JavaScript support, enhanced AJAX and data tools, and
Web site deployment improvements and so on.&lt;br&gt;&lt;div style="text-align: left;"&gt;
Download: &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en&lt;/a&gt;&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
For more details : &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Keywords : Service Packs, VS 2008 SP1, .NET Framework SP1&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=54</link>
      <pubDate>Mon, 25 Aug 2008 10:56:50 GMT</pubDate>
    </item>
    <item>
      <title>Asp.net menu in Safari</title>
      <description>Asp.Net 2.0 Menu Control is not working with Mac Safari browser properly. The mouseovers simply do not work, and when you click on one of the links, the menu disappears completely. This is a known issue.&amp;nbsp; First off, Safari gets served the menu adaptor which is fully functional but does not support the dynamic fly-outs.&lt;br&gt;&lt;br&gt;Use below code to your page_load event and see the magic.&lt;blockquote&gt;if (Request.UserAgent.IndexOf("AppleWebKit") &amp;gt; 0)&lt;br&gt;{&lt;br&gt;&amp;nbsp;Request.Browser.Adapters.Clear();&lt;br&gt;}&lt;/blockquote&gt;If you are using Master page then paste this code into master page code behind page.&lt;br&gt;&lt;br&gt;Keywords : Mac Safari, asp.net, hack&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=53</link>
      <pubDate>Wed, 06 Aug 2008 15:59:18 GMT</pubDate>
    </item>
    <item>
      <title>IE Tab for Firefox</title>
      <description>IE Tab - an extension from Taiwan, features: Embedding Internet Explorer in tabs of Mozilla/Firefox.&lt;br&gt;&lt;br&gt;It's useful for all developers to test their website. &lt;br&gt;&lt;br&gt;Click &lt;a href="https://addons.mozilla.org/en-US/firefox/downloads/file/34927/ie_tab-1.5.20080803-fx.xpi"&gt;here&lt;/a&gt; to download and install.&lt;br&gt;&lt;br&gt;Keywords : IE Tab, add-ons, firefox&lt;br&gt; </description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=52</link>
      <pubDate>Tue, 05 Aug 2008 07:40:33 GMT</pubDate>
    </item>
    <item>
      <title>Check if a object already exists in arraylist</title>
      <description>&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;DataView dv = new DataView(dt, "oyverdimi is null", "altkategoriID Asc", DataViewRowState.CurrentRows);&lt;br&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;ArrayList arr = new ArrayList();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;for (int i = 0; i &amp;lt; dv.Count; i++)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!arr.Contains(dv[i]["KategoriAdi"].ToString()))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arr.Add(dv[i]["KategoriAdi"].ToString());&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/blockquote&gt;&lt;br&gt;Keywords : Arraylist, contains, add unique item to arraylist.&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=51</link>
      <pubDate>Thu, 10 Jul 2008 10:50:44 GMT</pubDate>
    </item>
    <item>
      <title>Get the UserID of the User</title>
      <description>If you use the new comfortable Login Controls of ASP.NET v2, here is how you resolve the UserID of the currently logged in user:&lt;blockquote&gt;MembershipUser myObject = Membership.GetUser();&lt;br&gt;string UserID = myObject.ProviderUserKey.ToString();&lt;/blockquote&gt;PS. You should GUID for UserID if you use SQL Server as a DB&lt;br&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;MembershipUser myObject = System.Web.Security.Membership.GetUser();&lt;br&gt;&lt;/div&gt;Guid UserID = new Guid(myObject.ProviderUserKey.ToString());&lt;/blockquote&gt;&lt;br&gt;Keywords :Asp.net, Membership framework&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=50</link>
      <pubDate>Mon, 07 Jul 2008 18:19:43 GMT</pubDate>
    </item>
    <item>
      <title>Find a control in masterpage (contentplaceholder)</title>
      <description>// to call :&lt;br&gt;
CheckCheckBoxes(Page);&lt;br&gt;
&lt;br&gt;
// function :&lt;br&gt;
&lt;br&gt;
private string CheckCheckBoxes(Control oControl)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; string str = string.Empty;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp; &amp;nbsp; foreach (Control c in oControl.Controls)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c is CheckBox)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckBox chk = (CheckBox)c.FindControl(c.ID);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (chk.Checked)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str += chk.ID; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (c.HasControls())&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckCheckBoxes(c);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return str;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
Keywords : Loop in controls.&lt;br&gt;
</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=49</link>
      <pubDate>Fri, 11 Jan 2008 11:30:36 GMT</pubDate>
    </item>
    <item>
      <title>What's next?</title>
      <description>The year 2007 was a good one. The IT job market was stable. Mankind
got an iPhone. While there were not any revolutionary changes in the
way software was developed, I believe that this was a year of rich
Internet applications and Web 2.0. YouTube became a part of the lives
of millions of people around the world. A large portion of the
population visits use MySpace and Facebook daily. What's next? What
language/tool/technique to learn? What's the next big thing in IT? In
my opinion.&lt;br&gt;&lt;br&gt;1. &lt;b&gt;Java&lt;/b&gt; will remain strong in large
enterprises, but will continue&amp;nbsp; losing ground as a development platform
for small businesses.&amp;nbsp; J2EE is way too heavy, and scripting languages
and frameworks&amp;nbsp;offer an alternative and productive way of software
development&amp;nbsp; when the cost of development is more important than
performance and scalability. The LAMP platform will remain a preferable
way to develop applications for small to medium businesses.&lt;br&gt;&lt;br&gt;2. &lt;b&gt;AJAX&lt;/b&gt;
popularity may&amp;nbsp; go downhill.&amp;nbsp;Since the first day this acronym was
created I've been writing that it's not a good choice for developing
enterprise applications. But the vast majority of the software world
was (and still is) marching the AJAX way. This time it's more of a hope
than a prediction that in 2008 people will realize that AJAX should
serve the same goal as JavaScript - making your Web pages a little
prettier. Expect to see the re-branding of some of the AJAX frameworks
into RIA or Web 2.0 solutions.&lt;br&gt;&lt;br&gt;3. Speaking of &lt;b&gt;Web 2.0&lt;/b&gt;.
Even though Web 2.0 was not officially defined, I think it's all about
giving more control to the users of the Web sites. The more interactive
a Web site is, the higher the number people will put in front of the
zero - 3.0, 4.0, and so on. Some people say that Web 3.0 is about
Semantic Web. If you bought a grill on Amazon.com, they can guess with
high probability that you might be shopping for rib-eye steaks. Check
it out the next time you visit the site. It's all about control. From
the user's side and from the vendor's side. We'll see more and more
interactive sites next year. While some people are planning to write
next-generation sophisticated software, others will come up with a very
simple, easy-to-implement&amp;nbsp; but appealing business idea, and the next
20-year billionaire is born.&amp;nbsp; &lt;br&gt;&lt;br&gt;4. &lt;b&gt;Flash Player &lt;/b&gt;will
remain the best deployment platform for rich Internet applications.
While Microsoft is trying to come up with a competitive delivering
platform for RIA, it's not going to happen in 2008. Silverlight 1.0 is
a good start, the next version (1.1) will be even better, but it'll
take time to release a product that can do more than streaming
multimedia.&lt;br&gt;&lt;br&gt;5. &lt;b&gt;Ruby on Rails&lt;/b&gt; will take a small share of
the market of small non-mission-critical Web applications. Convention
over configuration. Speed of development over performance. While Ruby
on Rails will not become a framework of choice, it has achieved a very
positive result - people have started to realize that not every project
has to be developed in either Java or .NET. Besides, RoR is a
well-designed framework that will become a good design sample for the
new frameworks of the future.&lt;br&gt;6. &lt;b&gt;Internet video &lt;/b&gt;will
be booming and I'm not talking about YouTube. Internet Video will start
being a part of a number of enterprise applications. This process won't
be fast, and&amp;nbsp; you have an opportunity to be among the early adopters in
this sector.&lt;br&gt;&lt;br&gt;7. &lt;b&gt;Outsourcing&lt;/b&gt; will gain more and more
ground despite the fact that it's very expensive and the project
failure rate is high. The reason is that the U.S. has almost stopped
producing software engineers. It's just&amp;nbsp;a matter of time before
everyone gets used to the fact that business software is made in India,
just like we all know that all toys (with or without lead) are made in
China. But innovation in software will still be happening in America. I
guess, there's something in the air here. Re-read an old but valid
article by Paul Graham about why Silicon Valley can't be exported.&lt;br&gt;&lt;br&gt;8. &lt;b&gt;Apple - &lt;/b&gt;next
year I'll finally purchase a MacBook Pro for myself. if my Sony Vaio
will die. Even if it won't die, having a two-year-old machine is a good
excuse for submitting&amp;nbsp; a purchase order to my wife for approval. Peer
pressure, a cool design and the ability to run Windows (plan B),will
force me to ignore the high price. &lt;br&gt;&lt;br&gt;9. &lt;b&gt;Adobe Flex&lt;/b&gt; &lt;strong&gt;and AIR&lt;/strong&gt;
- Flex will become the #1 tool for developing enterprise rich Internet
applications, and I'll be seeing 10% fewer raised hands when asking an
audience, "Raise your hand if you do not know what Flex is?" Adobe
AIR's adoption will be slow though. Or course, the shops that are
already sold on Flex will use it, and some AJAX developers will realize
that it may become a lifesaver for their applications, but that's about
it. While being a well-designed and very promising technology&amp;nbsp; (Flex,
Flash Player, HTML, JavaScript, PDF, SQLLite DBMS, an ability to work
in a disconnected mode,&amp;nbsp; and full access to your PC's resources), it
may be perceived as yet another&amp;nbsp; Web browser, which is a tough sell in
the enterprises.&amp;nbsp; At least, become an early adopter. I will.&lt;br&gt;&lt;br&gt;10. &lt;b&gt;Telephony. &lt;/b&gt;If
2007 was&amp;nbsp;the year of Skype, we'll see some interesting development in
this area. Skype is a great product, but it requires you to download
and install software. In the era of RIA, things can be done without it.
Watch the Ribbit phone software that will allow you to make calls and
receive e-mails just from your Web browser.&lt;br&gt;&lt;br&gt;11. &lt;b&gt;IT job market in the USA.&lt;/b&gt;&amp;nbsp;
While we've enjoyed a stable demand for IT professionals in 2007, it
won't last and next year we'll see project freezes and even layoffs.
The reason is the burst of the real estate bubble. This will affect not
only those simple people who were brainwashed and decided that they
could have afforded an American dream.&amp;nbsp; CEOs of major Wall Street
corporations are being fired after drowning their companies by getting
into bad mortgage debt. Among other things, the IT budget will be
severely cut. As you know, today on Wall Street, is tomorrow on Main
street. Use the training budget of your employer now if it's not too
late. Keep your skills up to date.&lt;br&gt;&lt;br&gt;12. &lt;b&gt;The hottest IT skills of 2008. &lt;/b&gt;When
the job market is tight, recruiters immediately increase the list of
skill requirements for job opennings. You'll see job postings that
expect you to know a number of programming languages ranging from Cobol
to C++. Knowing just one hot tool does not cut it anymore. But if you
have limited time and need money, start by learning tools for
developing rich Internet applications. The skillset of a highly paid
Web developer, at a minimum, has to include the following skills:
HTML,CSS, JavaScript, J2EE or.NET, Flex or Silverlight, AJAX, and good
communication skills. You do not have to really learn AJAX, but must
add AJAX keyword to your resume, otherwise you may not even get a job
interview.&lt;br&gt;&lt;br&gt;13. &lt;b&gt;The next big thing.&lt;/b&gt; Software development
will change to a wider use of code generators. Forget about heavy
frameworks, regardless of what programming language you use.&amp;nbsp; In a
simple case, use some XML style sheets combined with the metadata that
describes your application objects to automatically generate the code
for these objects. On a larger scale, the entire application may be
described using metadata and XML, and an appropriate code generator
will do the job. So programming will change from writing tedious code
that requires lots of coders to describing the metadata and writing
custom code generators. &lt;br&gt;&lt;br&gt;&lt;b&gt;Happy New Year!&lt;br&gt;&lt;/b&gt;&lt;br&gt;http://flex.sys-con.com/read/471820.htm&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;About Yakov Fain :&lt;/span&gt;&lt;br&gt;Yakov Fain, editor-in-chief of Flex Developer's Journal
(http://flex.sys-con.com), is a managing principal of Farata Systems,
consulting, training and product company. He has authored several Java
books, dozens of technical articles. SYS-CON Books released his latest
book, "Rich Internet Applications with Adobe Flex and Java: Secrets of
the Masters" in Spring 2007. Sun Microsystems has nominated and awarded
Yakov with the title Java Champion. He leads the Princeton Java Users
Group. Yakov teaches Java and Flex 2 part time at New York University.
He is an Adobe Certified Flex Instructor.&lt;br&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;Keywords : Next language/tool/technique</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=48</link>
      <pubDate>Mon, 17 Dec 2007 13:40:05 GMT</pubDate>
    </item>
    <item>
      <title>Escape Characters</title>
      <description>When you want to put a line return, or a single or double 
quote into a string. The C# processor throws an error. So you 
have to use escape characters to let the processor know what 
you are doing. &lt;br&gt;&lt;br&gt;Writing double quote :&lt;blockquote&gt;builder = "&amp;lt;div id=\"dropmsg" + i + "\" class=\"dropcontent\" subject=\"" + var.contentheader + "\"&amp;gt;";&lt;/blockquote&gt;Keywords : Escape characters, writing double quote&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=47</link>
      <pubDate>Tue, 13 Nov 2007 22:24:48 GMT</pubDate>
    </item>
    <item>
      <title>Running 1.1  and 2.0 framework at the same machine</title>
      <description>You can run 2.0&amp;nbsp; and 1.1 at the same time, &lt;blockquote&gt;but they need different Application Pools.&lt;/blockquote&gt;Under IIS you have Application Pools. Create another one call it "ASP.Net 2.0" and base it on the DefaultAppPool&lt;br&gt;&lt;br&gt;Then on your virtual directory properties. On the ASP.NET tab you can select 2.0 for a 2.0 application and on the Virtual directory tab the bottom drop down you can select the new Application Pool you just created "ASP.Net 2.0"&lt;br&gt;&lt;br&gt;Keywords : Work with two framework (2.0 and 1.1) at same machine&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=46</link>
      <pubDate>Fri, 09 Nov 2007 15:25:07 GMT</pubDate>
    </item>
    <item>
      <title>Using CommandArgument and OnClientClick</title>
      <description>The CommandArgument can contain any string set by the programmer.&lt;br&gt;&lt;br&gt;Design :&lt;br&gt;...&lt;br&gt;&amp;lt;asp:TemplateField HeaderText="Approve"&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;ItemTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:LinkButton OnClientClick="return confirm('Are you sure ?');" ID="LinkButton1" runat="server" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CausesValidation="False" CommandName="Approve" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CommandArgument='&amp;lt;%# Bind("ApprovalID") %&amp;gt;' &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Text="&amp;lt;img src='/Images/System/icon_select.gif' border='0' title='Approve' alt='Approve'&amp;gt;"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/asp:LinkButton&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;&amp;lt;/asp:TemplateField&amp;gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;Codebehind :&lt;br&gt;protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)&lt;br&gt;{&lt;br&gt;&amp;nbsp; Literal1.Text = e.CommandArgument.ToString();&lt;br&gt;}&lt;br&gt;&lt;br&gt;Keywords : CommandArgument, OnClientClick</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=45</link>
      <pubDate>Wed, 05 Sep 2007 16:52:09 GMT</pubDate>
    </item>
    <item>
      <title>Resetting Password with ASP.NET 2.0 Membership</title>
      <description>If you ever have wanted to be able to programmatically change (reset) a users password while at the same time continuing to be able to use the question and answer feature, this post is for you.&amp;nbsp; The problem is that if you use code like this:&lt;blockquote&gt;string username = "user";&lt;br&gt;string password = "pass@word";&lt;br&gt;MembershipUser mu = Membership.GetUser(username);&amp;nbsp; &lt;br&gt;mu.ChangePassword(mu.ResetPassword(), password);&lt;/blockquote&gt;PS :You will find that if you have in your web.config requiresQuestionAnswer="true", you will get an error when you try and reset the password. &lt;br&gt;&lt;br&gt;Keywords : reset password, membershipuser, change password&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=44</link>
      <pubDate>Mon, 03 Sep 2007 20:49:36 GMT</pubDate>
    </item>
    <item>
      <title>AJAX Control Toolkit - Setup your environment</title>
      <description>&lt;span style="font-weight: bold;"&gt;Install
binaries&lt;/span&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;Install the latest
&lt;a style="font-weight: bold;" target="_blank" href="http://ajax.asp.net/"&gt;ASP.NET AJAX Extensions
1.0&lt;/a&gt; package &lt;/li&gt;&lt;li&gt;Unpack the AJAX Control
Toolkit into a folder on your computer &lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Configure Visual Studio 2005 or Visual
Web Developer&lt;/span&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;Create a new
web site from the ASP.NET AJAX web site template by opening the "File"
menu, clicking "New", "Web Site...", and picking "ASP.NET AJAX Web
Site" under "My Templates" &lt;/li&gt;&lt;li&gt;Right-click on the
Toolbox and select "Add Tab", and add a tab called "AJAX Control
Toolkit" &lt;/li&gt;&lt;li&gt;Inside that tab, right-click on the
Toolbox and select "Choose Items..." &lt;/li&gt;&lt;li&gt;When the
"Choose Toolbox Items" dialog appears, click the "Browse..." button.
Navigate to the folder where you installed the ASP.NET AJAX Control
Toolkit package. You will find a folder called "SampleWebSite", and
under that another folder called "bin". Inside that folder, select
"AjaxControlToolkit.dll" and click OK. Click OK again to close the
Choose Items Dialog. &lt;/li&gt;&lt;li&gt;You can now use the included
sample controls in your web sites!&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Note 1 :&lt;/span&gt; Add 3 dll to your
reference from "C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX
Extensions\v1.0.61025". And set it's "Copy Local" property to "True".
These operation provide you to add related dll to bin directory instead
of using GAC.&lt;/blockquote&gt;Havent you seen "Copy Local" property
? May be you do not know "Web Application Project". Web Application
Project Model is a new web project option for Visual Studio 2005 that
provides the same conceptual web project approach as VS 2003 (a project
file based structure where all code in the project is compiled into a
single assembly) but with all the new features of VS 2005 (refactoring,
class diagrams, test development, generics, etc) and ASP.NET 2.0
(master pages, data controls, membership/login, role management, Web
Parts, personalization, site navigation, themes,
etc).&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Note 2
:&lt;/span&gt; You should have these record at
web.config&lt;br&gt;&amp;lt;system.web&amp;gt;&lt;br&gt;&amp;lt;httpHandlers&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;add verb="GET,HEAD" path="ScriptResource.axd"&lt;br&gt;
type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
validate="false"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/httpHandlers&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Keywords :
AJAX
Control Toolkit setup, AJAXExtensionsToolbox.dll, System.Web.Extensions.Design.dll, System.Web.Extensions.dll&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=43</link>
      <pubDate>Sat, 04 Aug 2007 18:49:25 GMT</pubDate>
    </item>
    <item>
      <title> Forms Authentication timeout default in ASP.NET 2</title>
      <description>One thing to be aware of when upgrading from ASP.NET V1.1 to V2.0 is that the forms authentication timeout value has changed to be 30 minutes by default.&amp;nbsp; This means that after 30 minutes of inactivity, a user will be prompted to login again (note: everytime they hit the site the 30 minute window clock gets reset -- so it is only if they are idle that it will timeout). &lt;br&gt;&lt;br&gt;If you want to change the timeout value to be longer, you can easily change the timeout value in your local web.config file (the timeout value is in minutes):&lt;blockquote&gt;&amp;lt;system.web&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;authentication mode="Forms"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;forms timeout="60"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/authentication&amp;gt;&lt;br&gt;&amp;lt;/system.web&amp;gt;&lt;/blockquote&gt;Keywords : Forms timeout default value, web.config</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=41</link>
      <pubDate>Thu, 02 Aug 2007 12:15:41 GMT</pubDate>
    </item>
    <item>
      <title>How to retrieve the hidden cell value in gridView</title>
      <description>Problem is when i am accessing through the code, getting cell value as blank. The solution is :&lt;br&gt;&lt;br&gt;protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)&lt;br&gt;{&lt;br&gt;&amp;nbsp; if (e.Row.RowType == DataControlRowType.DataRow &lt;br&gt;&amp;nbsp;&amp;nbsp; || e.Row.RowType == DataControlRowType.Header)&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Row.Cells[2].Visible = false;&lt;/blockquote&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&amp;nbsp;&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;br&gt;protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)&lt;br&gt;{&lt;blockquote&gt; GridViewRow row = &lt;br&gt;(GridViewRow)((Control)(e.CommandSource)).NamingContainer;&lt;br&gt;string friendid = ((DataControlFieldCell)row.Cells[2]).Text;&lt;/blockquote&gt;} &lt;br&gt;&lt;br&gt;Keywords : Hidden cell value, gridview, RowDataBound,RowCommand&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=39</link>
      <pubDate>Fri, 13 Jul 2007 19:30:38 GMT</pubDate>
    </item>
    <item>
      <title>Change Style Sheets On-The-Fly</title>
      <description>Use this script to allow visitors to change a page style sheet on-the-fly, by clicking on a link in the page. The script works by switching the active style sheets. You can use any number of style sheets, which are automatically detected by the script. Optional alerts are included. Setup is easy and straightforward.&lt;br&gt;&lt;br&gt;Step 1 : Setting up the Style Sheets...&lt;br&gt;&lt;br&gt;Make up your style sheets and set the link rel='s up to load them, as shown below. These belong in the &amp;lt;head&amp;gt; of the page.&lt;br&gt;&lt;br&gt;What you name the style sheet files does not matter (so long as the extension is .css) since the script references them only by a number, not the file name.&lt;br&gt;&lt;br&gt;We show four different style sheets used; but you can use fewer or more as needed.&amp;nbsp; The script will automatically detect the number of style sheets in use. &lt;br&gt;&lt;br&gt;Note the order of the style sheets. The *last* sheet loaded is the one the browser will use initially. One trick to avoid confusion is shown below, where we load the first sheet an additional time at the end of the list.&lt;blockquote&gt;&amp;lt;link rel="stylesheet" href="style_1.css"&amp;gt;&lt;br&gt;&amp;lt;link rel="stylesheet" href="style_2.css"&amp;gt;&lt;br&gt;&amp;lt;link rel="stylesheet" href="style_3.css"&amp;gt;&lt;br&gt;&amp;lt;link rel="stylesheet" href="style_4.css"&amp;gt;&lt;br&gt;&amp;lt;link rel="stylesheet" href="style_5.css"&amp;gt;&lt;/blockquote&gt;Step 2 : Setting Up the JavaScript&lt;br&gt;&lt;br&gt;Insert the follwing script in the &amp;lt;head&amp;gt; of the page, usually right after the link rel='s. Set doAlerts=false; to shut off the alert boxes when changing styles.&lt;blockquote&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br&gt;&amp;lt;!--&lt;br&gt;var doAlerts=true;&lt;br&gt;function changeSheets(whichSheet){&lt;br&gt;&amp;nbsp; whichSheet=whichSheet-1;&lt;br&gt;&amp;nbsp; if(document.styleSheets){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var c = document.styleSheets.length;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (doAlerts) alert('Change to Style '+(whichSheet+1));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(var i=0;i&amp;lt;c;i++){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(i!=whichSheet){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.styleSheets[i].disabled=true;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.styleSheets[i].disabled=false;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;//--&amp;gt;&lt;br&gt;&amp;lt;/script&amp;gt;&lt;/blockquote&gt;Step 3 : Calling the JavaScript to Change Style Sheets&lt;br&gt;&lt;br&gt;A simple JavaScript call to the changeSheets() function enables the desired style sheet. We've adjusted the call so you start at 1 for the first sheet, 2 for the second sheet, 3 for the third, etc., in the same order they are listed in your link rel='s above.&lt;blockquote&gt;&amp;lt;a href="JavaScript:changeSheets(1)"&amp;gt;Style One&amp;lt;/a&amp;gt;&lt;br&gt;&amp;lt;a href="JavaScript:changeSheets(2)"&amp;gt;Style Two&amp;lt;/a&amp;gt;&lt;br&gt;&amp;lt;a href="JavaScript:changeSheets(3)"&amp;gt;Style Three&amp;lt;/a&amp;gt;&lt;br&gt;&amp;lt;a href="JavaScript:changeSheets(4)"&amp;gt;Style Four&amp;lt;/a&amp;gt;&lt;/blockquote&gt;Keywords : StyleSheet, on-the-fly changing&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=38</link>
      <pubDate>Fri, 06 Jul 2007 12:56:14 GMT</pubDate>
    </item>
    <item>
      <title>DefaultButton in a Page Based on a Master Page</title>
      <description>You may be aware of the new DefaultButton and DefaultFocus properties that a few ASP.NET 2.0 controls, including the HtmlForm have. These properties allow you to determine which button gets "clicked" when you hit enter on the page, and which form control gets the focus when the page loads.&lt;br&gt;&lt;br&gt;Your first attempt may be to add the following code in the Page_Load event of the Content page:&lt;br&gt;&lt;br&gt;&amp;nbsp; Page.Form.DefaultFocus = "TextBox1"&lt;br&gt;&amp;nbsp; Page.Form.DefaultButton = "Button1"&lt;br&gt;&lt;br&gt;However, as soon as you run this code, you'll get the following error:&lt;br&gt;&lt;br&gt;Server Error in '/MyApplication' Application.&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;The DefaultButton of 'form1' must be the ID of a control of type IButtonControl.&lt;/span&gt;&lt;br&gt;Exception Details: System.InvalidOperationException: The DefaultButton of 'form1' must be the ID of a control of type IButtonControl.&lt;br&gt;&lt;br&gt;Because the page is based on a &lt;span style="font-weight: bold;"&gt;Master Page&lt;/span&gt;, the HTML name and id attributes have been prefixed with the names of their naming container, the ContentPlaceHolder1 in this case.&lt;br&gt;&lt;br&gt;Now how do you get the correct client id inside the call to WebForm_AutoFocus? The trick here is to use the controls ClientID property that returns its long client name. If you change the code in the code behind to the following, the DefaultFocus will work:&lt;blockquote&gt;Page.Form.DefaultFocus = TextBox1.ClientID&lt;/blockquote&gt;You can apply the same technique to set the DefaultButton but then you should use its UniqueID property:&lt;blockquote&gt;Page.Form.DefaultButton = Button1.UniqueID&lt;/blockquote&gt;This way, you end up with a form that has the focus on the TextBox1 by default and when you press Enter, the form will post back to the server and the code in the event handler for Button1.Click will fire.&lt;br&gt;&lt;br&gt;Keywords : DefaultButton, DefaultFocus, Master Page, asp.net 2.0&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=37</link>
      <pubDate>Tue, 03 Jul 2007 11:29:38 GMT</pubDate>
    </item>
    <item>
      <title>Invalid postback or callback argument.</title>
      <description>I'm encountering with this error when i migrate my project (1.1 framework) to 2.0 with master page implementation.&lt;br&gt;&amp;nbsp;&lt;br&gt;The error is ;&lt;br&gt;System.Web.HttpUnhandledException:
Exception of type 'System.Web.HttpUnhandledException' was thrown.
---&amp;gt; System.ArgumentException: Invalid postback or callback
argument. Event validation is enabled using in configuration or &amp;lt;%@
Page EnableEventValidation="true" %&amp;gt; in a page. For security
purposes, this feature verifies that arguments to postback or callback
events originate from the server control that originally rendered them.
If the data is valid and expected, use the
ClientScriptManager.RegisterForEventValidation method in order to
register the postback or callback data for validation.&lt;blockquote&gt;Resolution
: Remove the &amp;lt;form&amp;gt; tag in body element that page is implemented
master page. So, master page is also have &amp;lt;form&amp;gt; tag. The two
&amp;lt;form&amp;gt; tag makes an error.&lt;/blockquote&gt;Keywords : Postback or callback, form tag, master page&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=36</link>
      <pubDate>Sun, 01 Jul 2007 14:44:45 GMT</pubDate>
    </item>
    <item>
      <title>LINQ Installation</title>
      <description>The extensibility of the query architecture is used in the LINQ project itself to provide implementations that work over both &lt;span style="font-weight: bold;"&gt;XML&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;SQL&lt;/span&gt; data. The query operators over XML (&lt;span style="font-weight: bold;"&gt;XLinq&lt;/span&gt;) use an efficient, easy-to-use in-memory XML facility to provide XPath/XQuery functionality in the host programming language. The query operators over relational data (&lt;span style="font-weight: bold;"&gt;DLinq&lt;/span&gt;) build on the integration of SQL-based schema definitions into the CLR type system. This integration provides &lt;span style="font-weight: bold;"&gt;strong typing&lt;/span&gt; over relational data while retaining the expressive power of the relational model and the performance of query evaluation directly in the underlying store.&lt;br&gt;&lt;br&gt;You can download latest version (May 2006 CTP) of LINQ &lt;a style="font-weight: bold;" href="http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea"&gt;here&lt;/a&gt;&lt;br&gt;&lt;br&gt;You can open LINQ project after install downloaded files as below:&lt;br&gt;File - New - Project - LINQ Preview (under Visual C# tab)&amp;nbsp; &lt;br&gt;&lt;br&gt;Also you can find the technical article about C# 3.0 &lt;a style="font-weight: bold;" href="http://msdn2.microsoft.com/en-us/library/ms364047%28vs.80%29.aspx"&gt;here&lt;/a&gt; and download the word document &lt;a style="font-weight: bold;" href="http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/CSharp_3.0_Specification.doc"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Keywords : LINQ, XLinq, DLinq, C# 3.0, May 2006 CTP&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=33</link>
      <pubDate>Mon, 05 Mar 2007 15:55:21 GMT</pubDate>
    </item>
    <item>
      <title>"Orcas" - March 2007 CTP</title>
      <description>Both the new Visual Studio "Orcas" and Enterprise Library 3.0 CTPs are released !&lt;br&gt;&lt;br&gt;Enterprise Library got some fixes and the new &lt;a style="font-weight: bold;" href="http://blogs.msdn.com/tomholl/archive/2007/02/23/announcing-the-policy-injection-application-block.aspx" target="_blank" _base_href="http://bloggingabout.net/blogs/dennis/archive/2007/03/01/quot-orcas-quot-march-ctp-amp-entlib-3-0-feb-ctp.aspx"&gt;Policy Injection Application Block&lt;/a&gt;&amp;nbsp;is
now included. Go &lt;a style="font-weight: bold;" href="http://blogs.msdn.com/tomholl/archive/2007/02/28/just-released-enterprise-library-3-0-february-2007-ctp.aspx" target="_blank" _base_href="http://bloggingabout.net/blogs/dennis/archive/2007/03/01/quot-orcas-quot-march-ctp-amp-entlib-3-0-feb-ctp.aspx"&gt;read the info at Tom Hollander&lt;/a&gt;'s blog or &lt;a style="font-weight: bold;" href="http://www.codeplex.com/entlib/Release/ProjectReleases.aspx?ReleaseId=2081" target="_blank" _base_href="http://bloggingabout.net/blogs/dennis/archive/2007/03/01/quot-orcas-quot-march-ctp-amp-entlib-3-0-feb-ctp.aspx"&gt;download it here&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;br&gt;&lt;br&gt;About the new "Orcas" CTP you're best of with &lt;a style="font-weight: bold;" href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/02/28/8893.aspx" target="_blank" _base_href="http://bloggingabout.net/blogs/dennis/archive/2007/03/01/quot-orcas-quot-march-ctp-amp-entlib-3-0-feb-ctp.aspx"&gt;a lot of download links&lt;/a&gt; at Guy Burstein's blog, or a quick link to the &lt;a style="font-weight: bold;" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B533619A-0008-4DD6-9ED1-47D482683C78&amp;amp;displaylang=en#filelist" target="_blank" _base_href="http://bloggingabout.net/blogs/dennis/archive/2007/03/01/quot-orcas-quot-march-ctp-amp-entlib-3-0-feb-ctp.aspx"&gt;download here&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Improvements for web development in this CTP include:
&lt;/span&gt;
&lt;br&gt;&lt;ul&gt;&lt;li&gt;New ASP.NET WebForms design-surface with advanced XHTML and CSS features
&lt;/li&gt;&lt;li&gt;JScript intellisense for ASP.NET AJAX and browser DOM
&lt;/li&gt;&lt;li&gt;Multi-targetting for .NET Framework 2.0, 3.0, and 3.5 in websites and web applications
&lt;/li&gt;&lt;li&gt;LINQ to SQL designer integration in websites and web applications&lt;span&gt;Web&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Keywords : Orcas March CTP, Enterprise Library 3.0 CTP&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=32</link>
      <pubDate>Fri, 02 Mar 2007 10:21:40 GMT</pubDate>
    </item>
    <item>
      <title>Abstract Classes versus Interfaces</title>
      <description>Unlike interfaces, abstract classes &lt;span style="font-weight: bold;"&gt;can contain&lt;/span&gt; fields that are&lt;span style="font-weight: bold;"&gt; not static and final&lt;/span&gt;, and &lt;span style="font-weight: bold;"&gt;they can contain implemented methods&lt;/span&gt;. Such abstract classes are similar to interfaces, except that they provide a &lt;span style="font-weight: bold;"&gt;partial implementation&lt;/span&gt;, leaving it to subclasses to complete the implementation. &lt;blockquote&gt;If an abstract class contains only abstract method declarations, it should be declared as an interface instead.&lt;/blockquote&gt;Multiple interfaces can be implemented by classes anywhere in the class hierarchy, whether or not they are related to one another in any way. &lt;br&gt;&lt;br&gt;Keywords : Abstract classes are similar to interfaces, except that they provide a partial implementation.</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=31</link>
      <pubDate>Wed, 28 Feb 2007 11:59:11 GMT</pubDate>
    </item>
    <item>
      <title>Defining an Interface</title>
      <description>An interface declaration consists of modifiers, the keyword interface, the interface name, a comma-separated list of parent interfaces (if any), and the interface body. For example:&lt;blockquote&gt;public interface GroupedInterface extends Interface1,Interface2, Interface3 {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // constant declarations&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double E = 2.718282;&amp;nbsp; // base of natural logarithms&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // method signatures&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void doSomething (int i, double x);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int doSomethingElse(String s);&lt;br&gt;&amp;nbsp;}&lt;/blockquote&gt;The public access specifier indicates that the interface can be used by any class in any package. If you do not specify that the interface is public, your interface will be accessible only to classes defined in the same package as the interface.&lt;br&gt;&lt;br&gt;An &lt;span style="font-weight: bold;"&gt;interface can extend other interfaces&lt;/span&gt;, just as a class can extend or subclass another class. &lt;blockquote&gt;However, whereas a class can extend only one other class, an interface can extend any number of interfaces.&lt;/blockquote&gt; The interface declaration includes a comma-separated list of all the interfaces that it extends. &lt;br&gt;&lt;br&gt;The interface body contains method declarations for all the methods included in the interface. A method declaration within an interface is followed by a semicolon, but no braces, because an &lt;span style="font-weight: bold;"&gt;interface does not provide implementations&lt;/span&gt; for the methods declared within it. All methods declared in an interface are implicitly public, so the public modifier can be omitted.&lt;br&gt;&lt;br&gt;An interface can contain constant declarations in addition to method declarations. All constant values defined in an interface are implicitly public, static, and final. Once again, these modifiers can be omitted. &lt;br&gt;&lt;br&gt;Keywords : Interface; can extend other interfaces, does not provide implementations, a class that implements an interface must implement all the methods declared in the interface.&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=30</link>
      <pubDate>Wed, 28 Feb 2007 11:53:37 GMT</pubDate>
    </item>
    <item>
      <title>Abstract Methods and Classes</title>
      <description>An abstract class is a class that is declared abstract-it may or may
not include abstract methods. Abstract classes cannot be instantiated,
but they can be subclassed.&lt;br&gt;&lt;br&gt;An abstract method is a method that
is declared without an implementation (without braces, and followed by
a semicolon), like this:&lt;blockquote&gt;abstract void moveTo(double deltaX, double deltaY);&lt;/blockquote&gt;If a class includes abstract methods, the class itself must be declared abstract, as in:&lt;blockquote&gt;public abstract class GraphicObject {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // declare fields&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // declare non-abstract methods&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; abstract void draw();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/blockquote&gt;When
an abstract class is subclassed, the subclass provides implementations
for all of the abstract methods in its parent class. However, if it
does not, the subclass must also be declared abstract.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt;
All of the methods in an interface are implicitly abstract, so the
abstract modifier is not used with interface methods (it could be-it's
just not necessary).&lt;br&gt;&lt;br&gt;Example :&lt;br&gt;&lt;br&gt;abstract class myBase{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //A Non abstract method&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int AddTwoNumbers(int Num1, int Num2)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return Num1 + Num2;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //An abstract method, to be overridden in derived class&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; abstract int MultiplyTwoNumbers(int Num1, int Num2);&lt;br&gt;&amp;nbsp;}&lt;br&gt;&lt;br&gt;class myBusiness extends myBase {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** Creates a new instance of myBusiness */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myBusiness() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //implementing the abstract method MultiplyTwoNumbers&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int MultiplyTwoNumbers(int Num1, int Num2)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return Num1 * Num2;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;public class myStart {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** Creates a new instance of myStart */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public myStart() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main (String args[]){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //You can create an instance of the derived class&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myBusiness calculate = new myBusiness();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int added = calculate.AddTwoNumbers(10,20);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int multiplied = calculate.MultiplyTwoNumbers(10,20);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println( "Added :" + added + " Multiplied :" + multiplied);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;Keywords : Abstract class cannot be instantiated. And subclass provides
implementations for all of the abstract methods in its parent class. &lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=29</link>
      <pubDate>Wed, 28 Feb 2007 11:09:49 GMT</pubDate>
    </item>
    <item>
      <title>Web.sitemap file in the root of your web app.</title>
      <description>The most common case when the "The file web.sitemap required by XmlSiteMapProvider does not exist" error is received is when a SiteMap control was added to a WebForm.&lt;blockquote&gt;However you don't have a mandatory Web.sitemap file in the root of your web application.&lt;/blockquote&gt;To fix this error, make sure you have this file in the root directory, and that it is a valid XML file that has the website's sitemap defined. An example Web.sitemap file can be seen below:&lt;br&gt;&lt;br&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br&gt;&amp;lt;siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" &amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;siteMapNode url="Default.aspx" title="Home"&amp;nbsp; description="Home Page"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;siteMapNode url="Register.aspx" title="Registration"&amp;nbsp; description="Registration" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;siteMapNode url="SignIn.aspx" title="Sign-In"&amp;nbsp; description="Sign-in" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/siteMapNode&amp;gt;&lt;br&gt;&amp;lt;/siteMap&amp;gt;&lt;br&gt;&lt;br&gt;Related Terminology : Sitemap, root of your web application. </description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=28</link>
      <pubDate>Tue, 27 Feb 2007 11:59:52 GMT</pubDate>
    </item>
    <item>
      <title>Could not load file or assembly</title>
      <description>I have install asp.net ajax extensions and ajax control toolkit. Web site works on local machine fine but after uploading on server it gives error like this.&lt;div style="text-align: left;"&gt;&lt;blockquote&gt;Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken = 31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.&lt;/blockquote&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;Solution &lt;/span&gt;:&lt;br&gt;Copying the dll files AjaxExtensionsToolbox.dll, System.Web.Extensions.Dll and System.Web.Extensions.Design.dll to the bin folder of your website.&amp;nbsp; You will find the dll files in the folder Program files/Microsoft asp.net/Asp.net 2.0 Ajax extensions/v1.0.61025&lt;br&gt;Or download it from &lt;a href="http://www.fkaratas.com/binary/v1.0.61025.rar"&gt;here&lt;/a&gt;&lt;br&gt;&lt;br&gt;Related Terminology : Asp.net Ajax 1.0, GAC, web server deployment&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=27</link>
      <pubDate>Sun, 18 Feb 2007 13:38:32 GMT</pubDate>
    </item>
    <item>
      <title> Element "ScriptManager" is not a known element.</title>
      <description>If you moved from Ajax Beta2 to RC1 you might encounter that kind of problem, all other controls are affected as well like Element 'UpdatePanel' is not a known element.&lt;br&gt;Element "ScriptManager" is not a known element. This can occur if there is a compilation error in the website.&lt;br&gt;&lt;br&gt;Your form.designer.cs is no longer code generating anything, and you are using a master page - then you can probably fix it by doing the following:&lt;br&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;Open your master page in the designer by double clicking it in visual studio.&lt;/li&gt;&lt;li&gt;Open your suspect .aspx file&lt;/li&gt;&lt;li&gt;Right click on the toolbox in visual studio and click 'Reset Toolbox'&lt;/li&gt;&lt;li&gt;Wait for this to complete&lt;/li&gt;&lt;li&gt;Delete the "script manager" or "update panel" that you dropped before (if it exist)&lt;/li&gt;&lt;li&gt;Switch to "Design Mode", and drop a new script manager from the ajax extensions group onto the page.&lt;/li&gt;&lt;li&gt;Check that your designer is now regenerating code.&lt;/li&gt;&lt;li&gt;And build your project&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;&lt;span xmlns=""&gt;Hope this helps.&lt;br&gt;&lt;br&gt;&lt;/span&gt;Related Terminology : Asp.net Ajax 1.0 RC1 migration &lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=26</link>
      <pubDate>Tue, 13 Feb 2007 11:45:34 GMT</pubDate>
    </item>
    <item>
      <title>Accessing Superclass Members</title>
      <description>&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;If your method overrides one of its superclass's methods, you can invoke the overridden method through the use of the keyword super. You can also use super to refer to a hidden field (although hiding fields is discouraged). Consider this class, Superclass:&lt;blockquote&gt;public class Superclass {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMethod() {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Printed in Superclass.");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;}&lt;/blockquote&gt;Here is a subclass, called Subclass, that overrides printMethod():&lt;blockquote&gt;public class Subclass extends Superclass {&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printMethod() { //overrides printMethod&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.printMethod();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Printed in Subclass");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Subclass s = new Subclass();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; s.printMethod();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;/blockquote&gt;Within Subclass, the simple name printMethod() refers to the one declared in Subclass, which overrides the one in Superclass. So, to refer to printMethod() inherited from Superclass, Subclass must use a qualified name, using super as shown. Compiling and executing Subclass prints the following:&lt;blockquote&gt; Printed in Superclass.&lt;br&gt;Printed in Subclass&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Subclass Constructors&lt;/span&gt;&lt;br&gt;The following example illustrates how to use the super keyword to invoke a superclass's constructor. Here is the MountainBike (subclass) constructor that calls the superclass constructor and then adds initialization code of its own:&lt;blockquote&gt;public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super(startCadence, startSpeed, startGear);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; seatHeight = startHeight;&lt;br&gt;&amp;nbsp;}&lt;/blockquote&gt;&lt;blockquote style="font-weight: bold;"&gt;Invocation of a superclass constructor must be the first line in the subclass constructor.&lt;/blockquote&gt;The syntax for calling a superclass constructor is&lt;blockquote&gt;super();&amp;nbsp; &lt;br&gt;--or--&lt;br&gt;super(parameter list);&lt;/blockquote&gt;With super(), the superclass no-argument constructor is called. With super(parameter list), the superclass constructor with a matching parameter list is called.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Note:&lt;/strong&gt; If a constructor does not explicitly invoke a superclass constructor, the Java compiler automatically inserts a call to the no-argument constructor of the superclass. If the super class does not have a no-argument constructor, you will get a compile-time error. Object does have such a constructor, so if Object is the only superclass, there is no problem. &lt;br&gt;&lt;br&gt;If a subclass constructor invokes a constructor of its superclass, either explicitly or implicitly, you might think that there will be a whole chain of constructors called, all the way back to the constructor of Object. In fact, this is the case. It is called constructor chaining, and you need to be aware of it when there is a long line of class descent.&lt;br&gt;&lt;br&gt;Related Terminology : "Base" keyword in C#&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=25</link>
      <pubDate>Mon, 12 Feb 2007 11:33:48 GMT</pubDate>
    </item>
    <item>
      <title>Using MissingSchemaAction.AddWithKey</title>
      <description>Adding schema information to a DataSet before filling it with data
ensures that primary key constraints are included with the DataTable
objects in the DataSet. As a result, when additional calls to fill the
DataSet are made, the primary key column information is used to match
new rows from the data source with current rows in each DataTable, and
current data in the tables is overwritten with data from the data
source. &lt;br&gt;&lt;blockquote&gt;Without the schema information, the
new rows from the data source are appended to the DataSet, resulting in
duplicate rows.&lt;/blockquote&gt;&lt;br&gt;Example :&lt;br&gt;DataSet
custDataSet = new DataSet();&lt;br&gt;custAdapter.MissingSchemaAction =
MissingSchemaAction.AddWithKey;&lt;br&gt;custAdapter.Fill(custDataSet,
"Customers");&lt;br&gt;&lt;br&gt;Using &lt;b&gt;FillSchema&lt;/b&gt; or
setting the &lt;b&gt;MissingSchemaAction&lt;/b&gt; to
&lt;b&gt;AddWithKey&lt;/b&gt; requires extra processing at the data
source to determine primary key column information. This additional
processing can hinder performance. If you know the primary key
information at design time, we recommend that you explicitly specify
the primary key column or columns in order to achieve optimal
performance.&lt;br&gt;&lt;br&gt;PS : You should use AddWithKey option if you want to handle "Constraint Exception". I use it in my little replication engine program like this ;&lt;br&gt;&lt;br&gt;using (OracleCommand command = new OracleCommand())&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.CommandText = "SELECT * FROM " + tableName + " WHERE " + primaryKeyField + "=" + drow[primaryKeyField];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.Connection = connection;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; adapter.SelectCommand = command;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataTable dt = new DataTable();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; adapter.Fill(dt);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Commandbuilder&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (OracleCommandBuilder builder = new OracleCommandBuilder())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; builder.DataAdapter = adapter;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // INSERT&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataRow dr = dt.NewRow();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (DataColumn dc in dt.Columns)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dr[dc.ColumnName] = drow[dc.ColumnName];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dt.Rows.Add(dr);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (ConstraintException)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UPDATE&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataRow row = dt.Rows[0];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (DataColumn dc in dt.Columns)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[dc.ColumnName] = drow[dc.ColumnName];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adapter.Update(dt);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;Related Terminology :
MissingSchemaAction.AddWithKey, Primary Key, Constraint Exception</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=24</link>
      <pubDate>Thu, 25 Jan 2007 17:28:09 GMT</pubDate>
    </item>
    <item>
      <title>Server Application Unavailable</title>
      <description>The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.&lt;br&gt;&lt;br&gt;Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.&lt;br&gt;&lt;br&gt;The application log (Start | Control Panel | Administrative Tools | Event Viewer) also shows two errors.&lt;br&gt;&lt;blockquote&gt;Event ID 1000: aspnet_wp.exe (PID: 2564) stopped unexpectedly.&lt;br&gt;Event ID 1089: Failed to execute the request because the ASP.NET process identity does not have read permissions to the global assembly cache. Error: 0x80131902&lt;/blockquote&gt;&lt;br&gt;There are several possible causes for this error message. Here are a few ways to fix the problem. You may even want to try multiple ways.&lt;br&gt;&lt;ol&gt;&lt;li&gt;By default, IIS uses the ASPNET user account to run applications. Sometimes, this still needs some further configuration.&lt;/li&gt;&lt;li&gt;Locate the machine.config file from the configuration folder of the intended .Net Framework (e.g., C:\WINNT\Microsoft.NET\Framework\v2.0.50727\CONFIG). Make a backup of this file. Open the original in a text editor. Search for the following line: &lt;br&gt;&amp;lt;processModel autoConfig="true"/&amp;gt; Change it to the following: &lt;br&gt;&amp;lt;processModel userName="system" password="AutoGenerate" /&amp;gt;&lt;/li&gt;&lt;li&gt;Restart IIS.&lt;/li&gt;&lt;ol type="a"&gt;&lt;li&gt;a. Start | Control Panel | Administrative Tools | Internet Services Manager&lt;/li&gt;&lt;li&gt;b. Right-click on the machine name and select Restart IIS&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;Click &lt;a style="font-weight: bold;" href="binary/aspnet_troubleshooting.pdf"&gt;here&lt;/a&gt; to read more detail&lt;br&gt;&lt;br&gt;&lt;br&gt;Related Terminology : Asp.net 2.0 installation and troubleshooting</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=23</link>
      <pubDate>Wed, 24 Jan 2007 21:34:35 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET AJAX 1.0 Released !</title>
      <description>ASP.NET AJAX 1.0 delivers a rich client-side AJAX library that provides
cross platform, cross browser support for a core JavaScript
type-system, JSON-based network serialization stack, JavaScript
component/control model, as well as common client JavaScript helper
classes.&amp;nbsp; ASP.NET AJAX also delivers a rich server-side library that
integrates AJAX functionality within ASP.NET, and enables developers to
easily AJAX-enable existing ASP.NET 2.0 sites with minimal effort. &lt;br&gt;&lt;blockquote&gt;ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient, more interactive and highly-personalized Web experiences that work across all the most popular browsers.&lt;/blockquote&gt;&lt;br&gt;
ASP.NET AJAX is available for free, and can be used with ASP.NET 2.0
and VS 2005.&amp;nbsp; It is a fully supported Microsoft product, and is backed
by a standard 10 year Microsoft support license (with Microsoft Product
Support available via phone 24 hours a day x 7 days a week). &lt;br&gt;
&lt;br&gt;&lt;span style="font-weight: bold;"&gt;
ASP.NET AJAX Control Toolkit&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
In addition to the fully-supported ASP.NET AJAX 1.0 release, you can
use the more than 30 free ASP.NET AJAX enabled controls available
within the ASP.NET AJAX Control Toolkit.&amp;nbsp; The control toolkit is a
shared-source collaborative project built together by a team containing
both Microsoft and non-Microsoft developers (visit the CodePlex Project
to learn more, or volunteer to contribute).&amp;nbsp; All source for the
controls is provided completely for free (with full re-use and
modification rights). &lt;br&gt;
&lt;br&gt;
The majority of controls within the ASP.NET AJAX Control Toolkit
leverage the "Control Extender" pattern that the core ASP.NET AJAX
library introduces, and which delivers a super powerful way to easily
enable specific AJAX scenarios on a site with minimal effort.&lt;br&gt;&lt;br&gt;http://ajax.asp.net/&lt;br&gt;&lt;br&gt;Related Terminology : Ajax, JSON-based network serialization stack, core JavaScript
type-system&lt;br&gt;
&lt;br&gt;
</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=22</link>
      <pubDate>Wed, 24 Jan 2007 11:09:40 GMT</pubDate>
    </item>
    <item>
      <title>Design Debt</title>
      <description>Software development is a big investment, requiring a minimum of six figures and often far more. So why do so many companies throw away their investment? Why do they trash existing software and rewrite it from scratch? Why do they retire useful products?&lt;br&gt;&lt;br&gt;Companies often make these painful decisions because their software has become too expensive to maintain. Over time, changes become more costly. Eventually, the cost is too high: the company has to retire the product or rewrite it.&lt;br&gt;&lt;br&gt;Most teams don't think in terms of design debt and don't even try to pay back principle. If you have a project with an aggressive deadline, your team has almost certainly taken on design debt. It's already slowing them down, and in order to avoid missing deadlines, they'll take on more debt. The compound interest will eventually kill your investment.&lt;br&gt;&lt;blockquote&gt;Avoid the temptation to stop work and refactor for several weeks. Even the most disciplined team inadvertently takes on design debt, so eliminating debt needs to be an ongoing activity. Have your team get used to refactoring as part of their daily work.&lt;/blockquote&gt;&lt;br&gt;Design debt is like credit card debt: it's easy, tempting, and leads to ruin if not paid off. Nearly every team can go faster by reducing design debt. Demand continuous design improvement from your teams. Support it by reducing schedule pressure and training your teams in advanced code-quality practices. The extra effort now will safeguard your investment for the future&lt;br&gt;&lt;br&gt;http://www.jamesshore.com/Articles/Business/&lt;br&gt;Software%20Profitability%20Newsletter/Design%20Debt.html&lt;br&gt;&lt;br&gt;Related Terminology : Design debt, successful sofware&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=21</link>
      <pubDate>Tue, 23 Jan 2007 16:50:21 GMT</pubDate>
    </item>
    <item>
      <title>Add your own (custom) prerequisite to "ClickOnce" </title>
      <description>Remember we can only add those prerequisite through "ClickOnce" which are by default in prerequisite list while publishing. &lt;blockquote&gt;To add our own prerequisite you need to have boot strapper package. Once created boot strapper package then it will automatically included into prerequisite list.&lt;/blockquote&gt;To generate boot strapper can use "Bootstrapper Manifest Generator" tool. Follow the steps given below to add own boot strapper using "Bootstrapper Manifest Generator" tool.&lt;br&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;Download "Bootstrapper Manifest Generator" (http://www.davidguyer.us/bmg/publish.htm)&lt;/li&gt;&lt;li&gt;Install "Bootstrapper Manifest Generator".&lt;/li&gt;&lt;li&gt;Open BMG (Bootstrapper Manifest Generator).&lt;/li&gt;&lt;li&gt;Select File-New will see following screen.&lt;/li&gt;&lt;li&gt;Select "Package Manifest" and click on OK.&lt;/li&gt;&lt;li&gt;Type project name and click on "Add Installer File" icon at top left .&lt;/li&gt;&lt;li&gt;Browse for file, you wish to add into prerequisite, as I added exe as prerequisite you can&amp;nbsp; choose as per your requirement. Set display name as "Test".&lt;/li&gt;&lt;li&gt;Click on Ok you will see following screen.&lt;/li&gt;&lt;li&gt;Type display name and click on "Build" icon top left.&lt;/li&gt;&lt;li&gt;Your prerequisite is been created, can see in prerequisite list.&lt;/li&gt;&lt;li&gt;All set select "Test" as prerequisite from above list and publish application.&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;http://www.codeproject.com/useritems/Add_Custom_Prerequisite.asp&lt;br&gt;&lt;br&gt;Related Terminology : Click Once, Bootstrapper, Custom Prerequisite&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=20</link>
      <pubDate>Fri, 29 Dec 2006 14:48:41 GMT</pubDate>
    </item>
    <item>
      <title>How to auto Update&amp;Restart ClickOnce Application</title>
      <description>&lt;ul&gt;&lt;li&gt;In Solution Explorer, right click project - properties - publish - updates &lt;/li&gt;&lt;li&gt;Check "The application should check for updates"&lt;/li&gt;&lt;li&gt;Select "Before the application starts"&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;PS : If you don't use "The application should check for updates" then "UpdateCompleted" event doesnt works properly.&lt;/blockquote&gt;public partial class Form1 : Form&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Timers.Timer tmr = new System.Timers.Timer();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Form1()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmr.Elapsed += new System.Timers.ElapsedEventHandler(tmr_Elapsed);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmr.Interval = 15000; // 15 sec.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmr.Start();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ApplicationDeployment.IsNetworkDeployed)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ApplicationDeployment.CurrentDeployment.UpdateCompleted += new AsyncCompletedEventHandler(CurrentDeployment_UpdateCompleted);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void CurrentDeployment_UpdateCompleted(object sender, AsyncCompletedEventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.Restart();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void tmr_Elapsed(object sender, System.Timers.ElapsedEventArgs e)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ApplicationDeployment.IsNetworkDeployed)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ApplicationDeployment.CurrentDeployment.CheckForUpdate())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmr.Stop();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ApplicationDeployment.CurrentDeployment.UpdateAsync();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StartOperation();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void StartOperation()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// operations that you want&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;Related Terminology : Click Once, ApplicationDeployment class&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=19</link>
      <pubDate>Thu, 28 Dec 2006 17:38:19 GMT</pubDate>
    </item>
    <item>
      <title>System.Security.Permission.FileIOPermission</title>
      <description>&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;The error is :&lt;br&gt;"Request for permission of type&lt;br&gt;"'System.Security.Permission.FileIOPermission. mscorlib.&lt;br&gt;"Version = 2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'"&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;&lt;blockquote&gt;When you run in from
the network, from a command line or explorer shell, the .NET Frameworks
runtime is applying the Code Acess Security (CAS) policy based on it's
location, i.e. it get's Intranet permissions.&lt;/blockquote&gt;Copying the exe
to your local drive, ClickOnce publishing and then installing the application.&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt;Related Terminology : Click once deployment, Code Access Security&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=18</link>
      <pubDate>Wed, 27 Dec 2006 11:34:51 GMT</pubDate>
    </item>
    <item>
      <title>Web Services - HTTP GET and HTTP POST Are Disabled</title>
      <description>The .NET-connected Web services support HTTP GET, HTTP POST
		  and SOAP protocols. By default, in .NET Framework 1.0, all three protocols are
		  enabled. By default, in .NET Framework 1.1, HTTP GET and HTTP POST are both
		  disabled. This is for security reasons.&lt;br&gt;&lt;br&gt;The
		  .NET Framework 1.1 defines a new protocol that is named &lt;b&gt;HttpPostLocalhost&lt;/b&gt;. By default, this new protocol is enabled. This protocol permits
		  invoking Web services that use HTTP POST requests from applications on the same
		  computer. This is true provided the POST URL uses&lt;b&gt; http://localhost&lt;/b&gt;, not &lt;b&gt;http://hostname&lt;/b&gt;. This permits Web service developers to use the HTML-based test
		  form to invoke the Web service from the same computer where the Web service
		  resides. &lt;br&gt;&lt;br&gt;When you try to access the Web service from a remote
		  computer you do not see the Invoke button. And, you receive the following error
		  message:&lt;br&gt;&lt;br&gt;&lt;div class="errormsg"&gt;The test form is only available for
		  requests from the local machine&lt;br&gt;&lt;blockquote&gt;HTTP GET and HTTP POST may be enabled by editing the Web.config
		  file for the vroot where the Web service resides. The following configuration
		  enables both HTTP GET and HTTP POST:&lt;/blockquote&gt;&lt;pre class="code"&gt;&amp;lt;configuration&amp;gt;&lt;br&gt;    &amp;lt;system.web&amp;gt;&lt;br&gt;    &amp;lt;webServices&amp;gt;&lt;br&gt;        &amp;lt;protocols&amp;gt;&lt;br&gt;            &amp;lt;add name="HttpGet"/&amp;gt;&lt;br&gt;            &amp;lt;add name="HttpPost"/&amp;gt;&lt;br&gt;        &amp;lt;/protocols&amp;gt;&lt;br&gt;    &amp;lt;/webServices&amp;gt;&lt;br&gt;    &amp;lt;/system.web&amp;gt;&lt;br&gt;&amp;lt;/configuration&amp;gt;&lt;/pre&gt;http://support.microsoft.com/kb/819267&lt;br&gt;&lt;br&gt;Related Terminology : Web Service, HTTP GET, HTTP POST, Invoke&lt;br&gt;&lt;/div&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=17</link>
      <pubDate>Wed, 27 Dec 2006 08:53:06 GMT</pubDate>
    </item>
    <item>
      <title>E-Mail Delivery in Reporting Services</title>
      <description>To distribute or receive a report by e-mail, you define
either a standard subscription or a data-driven subscription. You can
subscribe to or distribute only one report at a time. You cannot create
a subscription that delivers multiple reports in a single e-mail
message.&lt;blockquote&gt;Reporting Services includes an e-mail delivery extension that
provides a way to e-mail a report to individual users or groups. The
e-mail delivery extension is configured through the Reporting Services
Configuration tool and by editing the Reporting Services configuration
files.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;E-Mail Delivery Options&lt;/span&gt;&lt;br&gt;Report server e-mail delivery can deliver reports in the following ways:  &lt;ul&gt;&lt;li&gt;
          Send a notification and a hyperlink to the generated report.&lt;br&gt; &lt;/li&gt;&lt;li&gt;
Send a notification in the Subject: line of an e-mail message. By
default, the Subject: line in the subscription definition includes the
following variables that are replaced by report-specific information
when the subscription is processed:&lt;br&gt; &lt;b&gt;@ReportName&lt;/b&gt; specifies the name of the report.  &lt;br&gt; &lt;b&gt;@ExecutionTime&lt;/b&gt; specifies when the report was executed. &lt;br&gt;
          You can combine these variables with static text or modify the text in the Subject: line for each subscription.&lt;br&gt; &lt;/li&gt;&lt;li&gt;
Send an embedded or attached report. The rendering format and browser
determine whether the report is embedded or attached. &lt;br&gt;
If your browser supports HTML 4.0 and MHTML, and you choose the Web
archive rendering format, the report is embedded as part of the
message. All other rendering formats (CSV, PDF, and so on) deliver
reports as attachments. You can disable this functionality in the
RSReportServer configuration file. &lt;br&gt;
Reporting Services does not check the size of the attachment or message
before sending the report. If the attachment or message exceeds the
maximum limit allowed by your mail server, the report will not be
delivered. Choose one of the other delivery options (such as URL or
notification) if for large reports. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;To create an e-mail subscription&lt;/span&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;In Report Manager, on the &lt;b&gt;Contents&lt;/b&gt; page, navigate to the report you want to subscribe to. Click the report to open it.&lt;/li&gt;&lt;li&gt;Click the &lt;b&gt;Subscriptions&lt;/b&gt; tab, and then click &lt;b&gt;New Subscription&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;For the method of delivery, select &lt;b&gt;Report Server E-Mail&lt;/b&gt; from the &lt;b&gt;Delivered by&lt;/b&gt; list box.&lt;/li&gt;&lt;li&gt;In the &lt;b&gt;To&lt;/b&gt;
text box, type the e-mail address you want the report delivered to. To
specify multiple e-mail addresses, separate them with a semicolon (;).
You can also type additional e-mail addresses in the &lt;b&gt;Cc&lt;/b&gt;, &lt;b&gt;Bcc&lt;/b&gt;, and &lt;b&gt;Reply-To&lt;/b&gt; text boxes.&lt;/li&gt;&lt;li&gt; Select the delivery options as follows:&lt;ul&gt;&lt;li&gt;
              To embed or attach a copy of the report, select &lt;b&gt;Include Report&lt;/b&gt;.
The format of the report is determined by the rendering format you
select below. Do not choose this option if you think the report size
will exceed the limit defined for your e-mail system.&lt;br&gt; &lt;/li&gt;&lt;li&gt;
              To include a URL link to the report in the body of the e-mail message, select &lt;b&gt;Include Link&lt;/b&gt;.&lt;br&gt; &lt;/li&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;li&gt;Choose a rendering format from the &lt;b&gt;Render Format&lt;/b&gt; list box. This option is available if you select &lt;b&gt;Include Report&lt;/b&gt; to embed or attach a copy of the report.&lt;ul&gt;&lt;li&gt;
              To embed the report in the body of the e-mail message, select &lt;b&gt;Web archive&lt;/b&gt;.  &lt;br&gt; &lt;/li&gt;&lt;li&gt;
              To send the report as an attachment, choose any of the other rendering formats.&lt;br&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;Select a priority from the &lt;b&gt;Priority&lt;/b&gt; list box. In Microsoft Exchange, this setting sets a flag for the importance level of the e-mail message.  &lt;/li&gt;&lt;li&gt;Specify when you want the report delivered:&lt;ul&gt;&lt;li&gt;
              To specify a delivery schedule, click &lt;b&gt;When the scheduled report run is complete&lt;/b&gt; and click &lt;b&gt;Select Schedule&lt;/b&gt;. A schedule page opens for you. &lt;br&gt; &lt;/li&gt;&lt;li&gt;
              To deliver the report when a report snapshot is updated with a newer version,&lt;b&gt; &lt;/b&gt;click&lt;b&gt; &lt;/b&gt;&lt;b&gt;When the report content is refreshed&lt;/b&gt;. The schedule used to update a report snapshot determines when your subscription is processed. &lt;br&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;/li&gt;&lt;li&gt;For
parameterized reports, specify parameters to use for the report for
this subscription. The parameters that you specify can be different
from those used to run the report on demand or in other scheduled
operations.&lt;/li&gt;&lt;/ul&gt;http://msdn2.microsoft.com/en-us/library/ms160334.aspx&lt;br&gt;http://msdn2.microsoft.com/en-us/library/ms157386.aspx&lt;br&gt;&lt;br&gt;Related Terminology : Reporting services, e-mail delivery options</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=16</link>
      <pubDate>Sat, 28 Oct 2006 09:18:35 GMT</pubDate>
    </item>
    <item>
      <title>Windows Installer service could not be accessed</title>
      <description>"Error 1719: The Windows Installer service could not be accessed" error message when you try to add or remove a program&lt;br&gt;&lt;br&gt;When I try to install .NET Framework 2.0 to Win2000 operation system the error is occured. So, as you know 98 or Win2000 operating system requires Windows Installer 3.0 before attempting to install .NET Framework 2.0.&lt;blockquote&gt;Cause : The Windows Installer files that are on your hard disk are damaged or are missing.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Resolution :&lt;/span&gt; Reinstall the windows installer&lt;br&gt;To reinstall the Windows Installer, rename the damaged Windows Installer files, and then reinstall the Windows Installer. To do so:&lt;br&gt;1. Click Start, and then click Run.&lt;br&gt;2. In the Open box, type cmd, and then click OK.&lt;br&gt;3. At the command prompt, type the following line, and then press ENTER, where Drive is the drive where Windows is installed and where %Windir% is the folder where Windows is installed:&lt;br&gt;attrib -r -s -h drive:\%Windir%\system32\dllcache&lt;br&gt;For example, type&lt;br&gt;attrib -r -s -h c:\windows\system32\dllcache&lt;br&gt;Note If you are using Windows 98, type system instead of system32.&lt;br&gt;4. At the command prompt, type the following lines, pressing ENTER after each line:&lt;br&gt;ren msi.dll msi.old&lt;br&gt;ren msiexec.exe msiexec.old&lt;br&gt;ren msihnd.dll msihnd.old&lt;br&gt;5. At the command prompt, type exit, and then press ENTER.&lt;br&gt;6. Restart your computer.&lt;br&gt;&lt;br&gt;and re-try to install .NET Framework&lt;br&gt;&lt;br&gt;http://support.microsoft.com/?scid=kb%3Ben-us%3B315346&amp;amp;x=11&amp;amp;y=5&lt;br&gt;&lt;br&gt;Related Terminology : Installing .NET Framework 2.0, Windows Installer 3.0&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=15</link>
      <pubDate>Wed, 18 Oct 2006 17:40:34 GMT</pubDate>
    </item>
    <item>
      <title>ORA-01843: not a valid month</title>
      <description>"ORA-01843: not a valid month" or &lt;br&gt;"ORA-01830: date format picture ends before converting entire input string"&lt;br&gt;&lt;br&gt;This error means that a date was used in the SQL but that Oracle did not consider the month to be a valid month.&lt;br&gt;&lt;br&gt;False ;&lt;br&gt;AUDIT_MODIFY_DATE &amp;gt;= to_date('9/19/2006 3:13:10 PM','DD/MM/YYYY HH24:MI:SS') &lt;br&gt;&lt;br&gt;True ;&lt;br&gt;AUDIT_MODIFY_DATE &amp;gt;= to_date('19/9/2006 3:13:10 PM','DD/MM/YYYY HH24:MI:SS')&lt;br&gt;&lt;br&gt;when you use casting operation at datetime data like this:&lt;br&gt;&lt;br&gt;DateTime lastActionDate = DateTime.Now;&lt;br&gt;lastActionDate = &lt;span style="font-weight: bold;"&gt;(DateTime)&lt;/span&gt;ds.Tables[0].Rows[0]["CREATEDATE"];&lt;br&gt;&lt;br&gt;you may set your regional settings for datetime pattern at codebehind.&lt;br&gt;&lt;br&gt; &lt;blockquote&gt;DateTimeFormatInfo.ShortDatePattern Property gets or sets the format pattern for a short date value.&lt;/blockquote&gt;At this time you can use below statements at top of your method :&lt;br&gt;&lt;br&gt;CultureInfo c = new CultureInfo("tr-TR") ;&lt;br&gt;System.Threading.Thread.CurrentThread.CurrentCulture = c;&lt;br&gt;System.Threading.Thread.CurrentThread.CurrentUICulture = c;&lt;br&gt;System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.&lt;br&gt;ShortDatePattern = "dd/MM/yyyy";&lt;br&gt;&lt;br&gt;Related Terminology : Oracle datetime problem, CurrentCulture, CurrentUICulture</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=14</link>
      <pubDate>Fri, 06 Oct 2006 15:35:50 GMT</pubDate>
    </item>
    <item>
      <title>To start Extreme Programming (XP)</title>
      <description>The most obvious way to start
									extreme programming (XP) is with a new project. Start out collecting &lt;a target="_blank" href="http://www.extremeprogramming.org/rules/userstories.html"&gt;user stories&lt;/a&gt;
									and conducting &lt;a target="_blank" href="http://www.extremeprogramming.org/rules/spike.html"&gt;spike solutions&lt;/a&gt; for things that seem risky. Spend only a few weeks
									doing this. Then schedule a release planning meeting. Invite customers, developers, and managers to create a schedule
									that everyone agrees on. Begin your iterative development with an &lt;a target="_blank"  href="http://www.extremeprogramming.org/rules/iterationplanning.html"&gt;iteration
									planning&lt;/a&gt; meeting. Now you're started.&lt;br&gt;&lt;br&gt;Usually projects come looking
									for a new methodology like XP only after the project is in trouble. In this case the best way to start XP is to
									take a good long look at your current software methodology and figure out what is slowing you down. Add XP to this
									problem first.&lt;br&gt;&lt;br&gt;For example, if you find that
									25% of the way through your development process your requirements specification becomes completely useless, then get together with your customers and write &lt;a target="_blank" href="http://www.extremeprogramming.org/rules/userstories.html"&gt;user stories instead.&lt;/a&gt;&lt;br&gt;&lt;br&gt;If you are having a chronic
									problem with changing requirements causing you to frequently recreate your schedule, then try a simpler and easier
									release planning meeting every few iterations. (You will need user stories first though.) Try an &lt;a target="_blank"  href="http://www.extremeprogramming.org/rules/iterative.html"&gt;iterative
									style of development&lt;/a&gt; and the &lt;a target="_blank" href="http://www.extremeprogramming.org/rules/iterationplanning.html"&gt;just in time style of planning&lt;/a&gt; of programming
									tasks.&lt;blockquote&gt;If your biggest problem is
									the number of bugs in production, then try automated &lt;a target="_blank"  href="http://www.extremeprogramming.org/rules/functionaltests.html"&gt;acceptance tests. &lt;/a&gt;Use
									this test suite for regression and validation testing.&lt;/blockquote&gt;If your biggest problem is
									integration bugs then try automated &lt;a target="_blank"  href="http://www.extremeprogramming.org/rules/unittests.html"&gt;unit tests.&lt;/a&gt; Require all unit tests to pass
									(100%) before any new code is released into the code repository.&lt;br&gt;&lt;br&gt;Related Terminology : Agile methodologies, XP&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=13</link>
      <pubDate>Wed, 04 Oct 2006 10:05:13 GMT</pubDate>
    </item>
    <item>
      <title>SQL SELECT TOP N equivalent in ORACLE</title>
      <description>SQL Server:&lt;BR&gt;SELECT TOP 10 product, descr, email FROM products 
&lt;P&gt;&lt;/P&gt;Oracle: 
&lt;BLOCKQUOTE&gt;SELECT product, descr, email FROM products WHERE ROWNUM &amp;lt;= 10&lt;/BLOCKQUOTE&gt;Actually the code for Oracle only works if you do not ORDER BY. Let's say you have lots of records and you want to sort them by "product" and getting just the top 10 records. You can't do it by just:&lt;BR&gt;"SELECT product, descr, email FROM products WHERE ROWNUM &amp;lt;= 10 ORDER BY product" The result is not what you wanted. 
&lt;P&gt;&lt;/P&gt;What "ROWNUM &amp;lt;= 10" does is simply return you top 10 record in the table.. if you try the ORDER BY code, it will simply extract the top 10 records in the table then ORDER it instead of ORDERING them then select the top 10. 
&lt;P&gt;&lt;/P&gt;Doesnt work :&lt;BR&gt;SELECT product, descr, email FROM products WHERE ROWNUM &amp;lt;= 10 ORDER BY product 
&lt;P&gt;&lt;/P&gt;It works : 
&lt;BLOCKQUOTE&gt;SELECT product, descr, email FROM (select product, descr, email from products order by product )&lt;BR&gt;WHERE ROWNUM &amp;lt;= 10&lt;/BLOCKQUOTE&gt;&lt;BR&gt;Related Terminology : Select TOP and Order By statement in Oracle</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=12</link>
      <pubDate>Mon, 04 Sep 2006 01:38:58 GMT</pubDate>
    </item>
    <item>
      <title>Batch Updates in ADO.NET 2.0</title>
      <description>ADO.NET 2.0 has introduced the concept of Batch Updates, which allows you to designate the number of commands sent to the database at a given time.&amp;nbsp; If used correctly, this can increase the performance of your data access layer by reducing the number of roundtrips to the database.&lt;blockquote&gt;When you updated a database using the DataAdapter in .NET 1.1 each
command was sent to the database one at a time.&amp;nbsp; This caused a lot of
roundtrips to the database.&lt;/blockquote&gt;The DataAdapter has an UpdateBatchSize Property that allows you to set the number of commands that will be sent to the database with each request.&lt;br&gt;&lt;ul&gt;&lt;li&gt;UpdateBatchSize = 1, disables batch updates&lt;/li&gt;&lt;li&gt;UpdateBatchSize = X where X &amp;gt; 1, sends x statements to the database at a time&lt;/li&gt;&lt;li&gt;UpdateBatchSize = 0, sends the maximum number of statements at a time allowed by the server&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;...&lt;br&gt;using (OracleCommandBuilder cm = new OracleCommandBuilder(da))&lt;br&gt;{&lt;br&gt;&amp;nbsp; da.UpdateBatchSize = 0;&lt;br&gt;&amp;nbsp; da.Update(dt);&lt;br&gt;}&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;PS.&lt;/span&gt; Oracle supports this features in Oracle Data Provider for .NET 10.2.0.2.20 Production&lt;br&gt;&lt;br&gt;Related Terminology : Batch Update, ADO.NET 2.0, ODP.NET Release&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=11</link>
      <pubDate>Wed, 30 Aug 2006 01:11:49 GMT</pubDate>
    </item>
    <item>
      <title>ORA-01000: maximum open cursors exceeded</title>
      <description>ExecuteNonQuery does not return any row, but it can open a cursor for an output parameter of a stored procedure if the output parameter is defined as a ref cursor. In this case, you should cast the OracleParameter into an OracleDataReader and call Close on the OracleDataReader when you're done with the cursor.The following bits of SQL should help you track down which cursors are causing the problem : &lt;blockquote&gt;select user_name, status, osuser, machine, a.sql_text from v$session b, v$open_cursor a where a.sid = b.sid&lt;/blockquote&gt;So, this error means that somewhere cursors aren't being closed when opened. They will stay open until the database user is disconnected, which is probably why you're being forced to close the objects (reader). &lt;br&gt;&lt;br&gt;Related Terminology : ExecuteNonQuery, ExecuteScalar, Open Cursors in Oracle&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=10</link>
      <pubDate>Mon, 28 Aug 2006 09:37:21 GMT</pubDate>
    </item>
    <item>
      <title>Using LiteralControl Class </title>
      <description>
				Represents HTML elements, text, and any other strings in an ASP.NET page that do not require processing on the server&lt;blockquote&gt;...&lt;br&gt;HyperLink hyp = new HyperLink();&lt;br&gt;foreach (DataSetNews.tbl_NewsRow drow in dtable)&lt;br&gt;{&lt;br&gt;hyp = new HyperLink();&lt;br&gt;hyp.Text = drow.newsTR;&lt;br&gt;hyp.NavigateUrl = "javascript:openwin(" + drow.newsTRID + ")";&lt;br&gt;Panel1.Controls.Add(new LiteralControl("&amp;lt;img src='arrow.gif'&amp;gt;"));&lt;br&gt;Panel1.Controls.Add(hyp);&lt;br&gt;Panel1.Controls.Add(new LiteralControl("&amp;lt;br&amp;gt;"));&lt;br&gt;}&lt;/blockquote&gt;Related Terminology : Asp.net, Panel, Literal Control </description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=9</link>
      <pubDate>Thu, 24 Aug 2006 17:24:53 GMT</pubDate>
    </item>
    <item>
      <title>View Oracle GUID in .NET</title>
      <description>Oracle GUID appearance is different in .NET.&amp;nbsp; But in action this conversation implemented automatically. If you want to see oracle GUID (as you can see in oracle) regularly you should use a function like this.&lt;br&gt;&lt;blockquote&gt;public string ByteToRawString (byte [] byteArray)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string str="" ; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; byteArray.Length&amp;nbsp;&amp;nbsp; ; i++)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str+=String.Format("{0:x2}", byteArray[i]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return str.ToUpper();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/blockquote&gt;Related Terminology : GUID, Byte Array, Oracle, .NET&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=8</link>
      <pubDate>Wed, 23 Aug 2006 10:08:14 GMT</pubDate>
    </item>
    <item>
      <title>Name is already used by an existing object</title>
      <description>You tried to create a table, view, index, synonym or other object with a name that is already in use. For a listing of objects with a particular name, you can run the following query: &lt;blockquote&gt;SELECT * FROM all_objects WHERE object_name = 'NAME';&lt;/blockquote&gt;Action: The options to resolve this Oracle error are:&lt;br&gt;&lt;br&gt;1. Rename your object that you are trying to create so that it is unique.&lt;br&gt;2. Drop the existing object and create the new object.&lt;br&gt;&lt;br&gt;Related Terminology : ORA-00955&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=7</link>
      <pubDate>Wed, 23 Aug 2006 09:57:09 GMT</pubDate>
    </item>
    <item>
      <title>Requested Registry Access Is Not Allowed</title>
      <description>"Requested Registry Access Is Not Allowed" Error Message When ASP.NET Application Tries to Write &lt;span style="font-weight: bold;"&gt;New EventSource&lt;/span&gt; in the EventLog. &lt;blockquote&gt;This problem occurs because the user account that you used to log on does not have sufficient permissions.&lt;/blockquote&gt;If you log on to a computer as a regular user, and if you try to use Microsoft Visual Studio .NET to create a custom event log to register events, you may receive the following error message:&lt;br&gt;An unhandled exception of type 'System.Security.SecurityException' occurred in mscorlib.dll&lt;br&gt;Additional information: Requested registry access is not allowed.&lt;br&gt;&lt;br&gt;Grant permission to create a custom event log&lt;br&gt;1. Log on to the computer as an administrator. &lt;br&gt;2. Click Start, click Run, type regedit in the Open box, and then click OK. The Registry Editor window appears. &lt;br&gt;3. Locate the following registry subkey:&lt;br&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog &lt;br&gt;4. Right-click Eventlog, and then click Permissions. The Permissions for Eventlog dialog box appears. &lt;br&gt;5. Click Advanced. The Advanced Security Settings for Eventlog dialog box appears. &lt;br&gt;6. In the Name column, double-click the Users group. The Permission Entry for Eventlog dialog box appears. &lt;br&gt;7. Select the Set Value check box, select the Create Subkey check box, and then click OK. &lt;br&gt;8. Quit Registry Editor, and then log off from the administrator account. &lt;br&gt;9. Log on to the computer as a regular user. &lt;br&gt;10. Try to create a custom event log by using Visual Studio .NET, and then try to write to this event log by using an application that is built on Visual Studio .NET. &lt;br&gt;&lt;br&gt;&lt;a href="http://support.microsoft.com/?id=842795"&gt;http://support.microsoft.com/?id=842795&lt;/a&gt;&lt;br&gt;&lt;br&gt;Related Terminology : Event Logging, Asp.net, Web Service&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=6</link>
      <pubDate>Wed, 23 Aug 2006 09:20:17 GMT</pubDate>
    </item>
    <item>
      <title>Memo field truncated</title>
      <description>In any Memo field that contains more than 1024 characters
		  is truncated to 1024 characters when you insert some text to MS Access via web user interface.&lt;br&gt;&lt;br&gt;Please check your dataset desinger file (ie. DatasetProducts.Designer.cs)&lt;blockquote&gt;this._adapter.InsertCommand.Parameters.Add(new System.Data.OleDb.OleDbParameter("Content", System.Data.OleDb.OleDbType.WChar, &lt;span style="font-weight: bold;"&gt;1024&lt;/span&gt;,&lt;br&gt;System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), &lt;br&gt;"Content", System.Data.DataRowVersion.Current, false, null));&lt;/blockquote&gt;and replace 1024 to what you want (ie. 536870910)&lt;br&gt;&lt;br&gt;Related Terminology : MS Access, TableAdapters, Insert Command, Update Command&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=5</link>
      <pubDate>Wed, 23 Aug 2006 06:38:41 GMT</pubDate>
    </item>
    <item>
      <title>System.ArgumentException</title>
      <description>System.ArgumentException: This constraint cannot be enabled as not all values have corresponding parent values.&lt;br&gt;&lt;br&gt;This
exception occurs if your lookup query does not return all the values
that are used in the master-table. Some developers suggest that you
enable referential integrity (ie, add a relation) in the database
betweeen the lookup table and the master table; but this shouldnt
prevent this scenario.&lt;br&gt;&lt;br&gt;When I set "createConstraints" parameter to "false" then the error is disappeared.&lt;blockquote&gt;ds.Relations.Add("myrelation", ds.Tables[0].Columns["ArticleID"], ds.Tables[1].Columns["ArticleID"],false);&lt;/blockquote&gt;Because,
the exception is not related to Access. Remember the DataSet is
disconnected and is independent from Access. This error can occur when
a parent-child relationship is created and then children are loaded
into the DataSet without the parent existing (whether or not the parent
exists in the database is irrelevant - it has to exist in the DataSet
as well because the DataSet is disconnected from the database)&lt;br&gt;&lt;br&gt;Related Terminology : MS Access, Repeater, Dataset Relation&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=4</link>
      <pubDate>Wed, 23 Aug 2006 05:38:58 GMT</pubDate>
    </item>
  </channel>
</rss>