<?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>Wed, 10 Mar 2010 17:19:19 GMT</pubDate>
    <lastBuildDate>Wed, 10 Mar 2010 17:19:19 GMT</lastBuildDate>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>RSS.NET</generator>
    <ttl>3600</ttl>
    <item>
      <title>301 Redirect</title>
      <description>301 redirect is the most efficient and Search Engine Friendly method for webpage redirection. It's not that hard to implement and it should preserve your search engine rankings for that particular page. If you have to change file names or move pages around, it's the safest option. The code "301" is interpreted as "moved permanently".&lt;blockquote&gt;Domain aliases is usually considered spamming to the
search engines because the domain name DUPLICATES the content on your
primary domain and in turn, masks the domain name under the secondary
domain. They may feel you are trying to trick them when you use a
domain alias. Because what they see when they crawl an aliased domain
is a website domain that has exactly the same content as the primary
domain.&lt;/blockquote&gt;&lt;br&gt;You can Test your redirection with &lt;a target="_blank" href="http://www.webconfs.com/redirect-check.php"&gt;Search Engine Friendly Redirect Checker&lt;/a&gt;&lt;br&gt;&lt;br&gt;Below are a Couple of methods to implement URL Redirection&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;IIS Redirect&lt;/span&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * In internet services manager, right click on the file or folder you wish to redirect&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Select the radio titled "a redirection to a URL".&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Enter the redirection page&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Check "The exact url entered above" and the "A permanent redirection for this resource"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Click on 'Apply'&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;ColdFusion Redirect&lt;/span&gt;&lt;br&gt;&amp;lt;.cfheader statuscode="301" statustext="Moved permanently"&amp;gt;&lt;br&gt;&amp;lt;.cfheader name="Location" value="http://www.new-url.com"&amp;gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;PHP Redirect&lt;/span&gt;&lt;br&gt;&amp;lt;?&lt;br&gt;Header( "HTTP/1.1 301 Moved Permanently" );&lt;br&gt;Header( "Location: http://www.new-url.com" );&lt;br&gt;?&amp;gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;ASP Redirect&lt;/span&gt;&lt;br&gt;&amp;lt;%@ Language=VBScript %&amp;gt;&lt;br&gt;&amp;lt;%&lt;br&gt;Response.Status="301 Moved Permanently"&lt;br&gt;Response.AddHeader "Location","http://www.new-url.com/"&lt;br&gt;%&amp;gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;ASP .NET Redirect&lt;/span&gt;&lt;br&gt;&amp;lt;script runat="server"&amp;gt;&lt;br&gt;private void Page_Load(object sender, System.EventArgs e)&lt;br&gt;{&lt;br&gt;Response.Status = "301 Moved Permanently";&lt;br&gt;Response.AddHeader("Location","http://www.new-url.com");&lt;br&gt;}&lt;br&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;JSP (Java) Redirect&lt;/span&gt;&lt;br&gt;&amp;lt;%&lt;br&gt;response.setStatus(301);&lt;br&gt;response.setHeader( "Location", "http://www.new-url.com/" );&lt;br&gt;response.setHeader( "Connection", "close" );&lt;br&gt;%&amp;gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;CGI PERL Redirect&lt;/span&gt;&lt;br&gt;$q = new CGI;&lt;br&gt;print $q-&amp;gt;redirect("http://www.new-url.com/");&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Ruby on Rails Redirect&lt;/span&gt;&lt;br&gt;def old_action&lt;br&gt;headers["Status"] = "301 Moved Permanently"&lt;br&gt;redirect_to "http://www.new-url.com/"&lt;br&gt;end &lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Keywords :&lt;/span&gt; 301 redirect is the most efficient and Search Engine Friendly method for webpage redirection. Do not use "domain alias" for URL redirection.</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=81</link>
      <pubDate>Tue, 08 Sep 2009 12:08:59 GMT</pubDate>
    </item>
    <item>
      <title>Delay redirect in javascript</title>
      <description>&amp;lt;script type="text/javascript"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function delayedRedirect(CategoryID){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.location = "../Detail.aspx?" + '&amp;amp;CategoryID=' + CategoryID&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;lt;/script&amp;gt;&lt;br&gt;&lt;br&gt;ClientScript.RegisterStartupScript(this.GetType(), "redirect", "setTimeout('delayedRedirect(" + Request.QueryString["CategoryID"] + ")', 3000)", true);&lt;br&gt;&lt;br&gt;Keywords : Redirection with javascript&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=80</link>
      <pubDate>Mon, 07 Sep 2009 10:45:31 GMT</pubDate>
    </item>
    <item>
      <title>Gmail apps for Email hosting</title>
      <description>I'll show you how to tranfser your mail server (MX) to Google Apps.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Step 1/2 :&lt;/span&gt; Changing MX records (with plesk panel)&lt;br&gt;
- Select your domain&lt;br&gt;
- Select "DNS Settings" in Services section&lt;br&gt;
- You will see 12 records. Delete only this record : &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br&gt;
&amp;nbsp; yourdomain.com.&amp;nbsp;&amp;nbsp; &amp;nbsp;MX (10)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mail.yourdomain.com.&lt;br&gt;
- Add these records.(with Record Type = MX)&lt;br&gt;
&amp;nbsp; Note : "Enter mail domain" is blank&lt;br&gt;
&lt;br&gt;
&amp;nbsp;Enter mail exchanger&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Specify priority of mail exchange server&lt;br&gt;
&amp;nbsp;ASPMX.L.GOOGLE.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;10&lt;br&gt;
&amp;nbsp;ALT1.ASPMX.L.GOOGLE.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;20&lt;br&gt;
&amp;nbsp;ALT2.ASPMX.L.GOOGLE.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;20&lt;br&gt;
&amp;nbsp;ASPMX2.GOOGLEMAIL.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;30&lt;br&gt;
&amp;nbsp;ASPMX3.GOOGLEMAIL.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;30&lt;br&gt;
&amp;nbsp;ASPMX4.GOOGLEMAIL.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;30&lt;br&gt;
&amp;nbsp;ASPMX5.GOOGLEMAIL.COM. &amp;nbsp;&amp;nbsp; &amp;nbsp;30&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Step 2/2 :&lt;/span&gt; Sign-up google apps&lt;br&gt;
You should create your account with this url : http://www.google.com/apps/intl/en/group/index.html&lt;br&gt;
Confirm your membership with mail that sent by goggle apps.&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Optional : &lt;/span&gt;&lt;br&gt;
Configuration for Outlook :&lt;br&gt;
incoming : pop.gmail.com&lt;br&gt;
smtp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : smtp.gmail.com&lt;br&gt;
More settings :&lt;br&gt;
Outgoing Server - My outgoing server(SMTP) requires authentication&lt;br&gt;
Advanced - Incoming server (POP3) : 995&lt;br&gt;
This server requires an encrypted connection (SSL)&lt;br&gt;
Outgoing server (SMTP) : 465&lt;br&gt;
Use the following type of encrypted connection : SSL&lt;br&gt;
&lt;br&gt;
Note : You can access your inbox at http://mail.google.com/a/yourdomain.com&lt;br&gt;
&lt;br&gt;
Keywords :&amp;nbsp; Gmail apps configuration/implementation/installation&lt;br&gt;
</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=79</link>
      <pubDate>Sun, 06 Sep 2009 12:14:08 GMT</pubDate>
    </item>
    <item>
      <title>ChangePassword control with Gmail Apps</title>
      <description>BUG: ASP.net 2.0 PasswordRecovery/ChangePassword Web Control cannot send emails to SSL enabled SMTP Servers&lt;br&gt;&lt;br&gt;This is a known issue or you can also call it as product limitation. PasswordRecovery or ChangePassword control read most of the settings from web.config file. Internally it uses System.Net.Mail to send out email, which does not support reading EnableSSL setting from web.config. This bring us into a situation where PasswordRecovery control cannot send emails to SSL enabled smtp servers.&lt;br&gt;&lt;br&gt;So when a user tries to send a email to SSL enable server using PasswordRecovery or ChangePassword control, he get the following error.&lt;br&gt;&lt;br&gt;Error: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. 32sm15616652wfa.13&lt;br&gt;&lt;blockquote&gt;Cause :&lt;br&gt;There is no setting in Web.Config for System.Net.Mail (.net 2.0) that maps to EnableSSL property of System.Net.Mail.SmtpClient.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Resolution :&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Step 1 :&lt;/span&gt; Add SendingMail event to control;&lt;br&gt;&lt;br&gt;&amp;lt;asp:ChangePassword ID="ChangePassword1" runat="server" onsendingmail = "ChangePassword1_SendingMail"&amp;gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Step 2 :&lt;/span&gt; Add codebehind codes;&lt;br&gt;protected void ChangePassword1_SendingMail(object sender, MailMessageEventArgs 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; e.Message.Body.SendMail(e.Message.To[0].ToString(), e.Message.Subject.ToString(), string.Empty);&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; e.Cancel = true; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Step 3 : &lt;/span&gt;SendMail (extention) method;&lt;br&gt;public static void SendMail(this string body, string to, string subject, string attachFilename)&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; Configuration configurationFile = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);&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; MailSettingsSectionGroup mailSettings = configurationFile.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;&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 from = mailSettings.Smtp.From;&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; MailMessage message = new MailMessage();&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; message.Priority = MailPriority.Normal;&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; message.From = new MailAddress(from, ConfigurationManager.AppSettings["SiteName"]);&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; message.To.Add(new MailAddress(to));&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; message.Subject = subject;&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; message.IsBodyHtml = true;&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; message.SubjectEncoding = Encoding.UTF8;&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; message.BodyEncoding = Encoding.UTF8;&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; message.Body = body + "&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;" + ConfigurationManager.AppSettings["SiteDomain"] + "&amp;lt;br&amp;gt;" + DateTime.Now.ToString();&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 (attachFilename != string.Empty)&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; message.Attachments.Add(new Attachment(attachFilename));&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;&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; SmtpClient client = new SmtpClient();&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; client.EnableSsl = true;&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; client.Send(message);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Step 4 :&lt;/span&gt; Add smtp node to web.config;&lt;br&gt;&amp;lt;system.net&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;mailSettings&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;smtp from="sample@yourdomain.com" deliveryMethod="Network"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;network host="smtp.gmail.com" port="587" userName="sample@yourdomain.com" password="xxxx" defaultCredentials="false"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/smtp&amp;gt;&lt;br&gt;&amp;nbsp; &amp;lt;/mailSettings&amp;gt;&lt;br&gt;&amp;lt;/system.net&amp;gt;&lt;br&gt;&amp;lt;system.web&amp;gt;...&lt;br&gt;&lt;br&gt;Keywords : Gmail apps with ChangePassword control in asp.net&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=78</link>
      <pubDate>Sat, 05 Sep 2009 18:07:08 GMT</pubDate>
    </item>
    <item>
      <title>Property IsLocked is not available</title>
      <description>Property IsLocked is not available for Login '[DBName]'. This property may not exist for this object, or may not be retrievable due to insufficient access rights.&amp;nbsp; (Microsoft.SqlServer.Smo)&lt;br&gt;&lt;br&gt;Solution 1 : Restart computer&lt;br&gt;&lt;br&gt;Solution 2 :&lt;br&gt;I ran into the same issue today when I installed an instance of SQL 2005 using Windows Auth. mode.&amp;nbsp; After the install I switched the server over to SQL and Windows Auth mode and ran into the 'sa' problem.&amp;nbsp; I ran the following command and then could see the properties of 'sa' within management studio.&lt;br&gt;&lt;blockquote&gt;alter login sa&lt;br&gt;with password = 'yourpwd' unlock,&lt;br&gt;check_policy = off,&lt;br&gt;check_expiration = off&lt;/blockquote&gt;&lt;br&gt;Keywords : Sql login, islocked, insufficient&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=77</link>
      <pubDate>Fri, 04 Sep 2009 10:40:49 GMT</pubDate>
    </item>
    <item>
      <title>X-UA-Compatible</title>
      <description>Implementing the HTTP header is beneficial if a site owner wants most of their site to render as it did in IE7 or if there are no plans to update site content. Inclusion of this header honors any Quirks mode pages that belong to the site. Use below statement at top of your page :&lt;br&gt;&lt;blockquote&gt;&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /&amp;gt;&lt;/blockquote&gt;or use it in web.config :&lt;blockquote&gt;&amp;lt;system.webServer&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;httpProtocol&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;customHeaders&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;add name="X-UA-Compatible" value="IE=EmulateIE7" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/customHeaders&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/httpProtocol&amp;gt;&lt;br&gt;&amp;lt;/system.webServer&amp;gt;&lt;/blockquote&gt;Using the meta-tag on a per-page basis is beneficial when the publisher wants to opt-in specific pages to render as they did in IE7.&lt;br&gt;&lt;br&gt;NOTE: The X-UA-Compatible tag and header override any existing DOCTYPE. Also, the mode specified by the page takes precedent over the HTTP header. For example, you could add the EmulateIE7 HTTP header to a site, and set specific pages to display in IE8 mode (by using the meta-tag with content="IE8").&lt;br&gt;&lt;br&gt;Using the IE=EmulateIE7 compatibility tag is a simple way for users to continue their current experience when browsing your site until you can update with more standards-compliant content.&amp;nbsp; Although adding this tag will prevent most display issues, you may also need to update your site to properly detect IE8.&lt;br&gt;&lt;br&gt;Keywords : Emulate IE7&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=76</link>
      <pubDate>Sun, 30 Aug 2009 16:43:40 GMT</pubDate>
    </item>
    <item>
      <title>No buffer space available Fix</title>
      <description>Error : An operation on a socket could not be performed because the
system lacked sufficient buffer space or because a queue was full
xxxx.xxxx.xxxx:80&lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Solution 1 :&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;I think I've found a reason for it: My anti-virus scanner, NOD32
v2.51.12 x64, with enabled HTTP scanning. If the HTTP scanning on port
80,8080,3128 and "Auto Detect HTTP communication on other ports" is
enabled, both versions will crash. After I disabled the IMON (Internet
Monitor) and EMON (MS Outlook E-Mail Monitor) features in NOD32
everything seems to work fine.&lt;/blockquote&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Solution 2 :&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
Editting the registry is not for beginners, if you don't know what
you're doing I suggest you don't try this, basically it's use at your
own risk. Anytime you want to edit the registry it is a good idea to
back it up first..&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;If you are using Windows 95/98/Me follow these steps:&lt;/span&gt;&lt;br&gt;&lt;br&gt;First
step is to launch the registry editor. To do this go to Start, Run and
type regedit. In the left pane navigate to
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP once
there, look for an entry called MaxConnections. If it exists highlight
it by clicking it and then right click it and select modify. Increase
the value (recommended value is to double the current value).&lt;br&gt;&lt;br&gt;If
the MaxConnections entry does not exist you must create it. To do this,
right click in the right pane and choose new from the menu and select
String Value. Give it the name MaxConnections. Then right click it and
select modify and enter a value of 800.&lt;br&gt;&lt;br&gt;Restart your computer,
if all goes well then you fixed the problem, if not, revert the changes
by restoring the registry. (You may have to reboot to safe mode to do
this).&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;If you are running Windows NT/2000/XP follow these steps:&lt;/span&gt;&lt;br&gt;
First step is to launch the registry editor. To do this go to Start,
Run and type regedit. In the left pane navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
once there, you must create the entry TcpNumConnections. To do this,
right click in the right pane and choose new from the menu and select
DWORD Value. Give it the name TcpNumConnections. Then right click it
and select modify and enter a value of 800.&lt;br&gt;&lt;br&gt;Restart your
computer, if all goes well then you fixed the problem, if not, revert
the changes by restoring the registry. (You may have to reboot to safe
mode to do this). &lt;br&gt;
&lt;br&gt;
&lt;span style="font-weight: bold;"&gt;Consideration :&lt;/span&gt;&lt;br&gt;&lt;br&gt;TIP 1 :
I have seen NOD32 cause WSAENOBUFS (10055) on many systems. They seem
to do something which lowers the resources available to networking
applications.&lt;br&gt;TIP 2 : Problem is caused by a recent windows patch.&amp;nbsp;
If you remove patch KB948609 the client side deserialization will
except large datasets again.&lt;br&gt;TIP 3 : If an application performs many
network connections simultaneously or within a short window of time,
the application developer might need to increase this number and reduce
the TcpTimedWaitDelay value to avoid receiving a WSAENOBUFS (10055)
error: "An operation on a socket could not be performed because the
system lacked sufficient buffer space or because a queue was full."
(http://msdn.microsoft.com/en-us/library/ms819739.aspx)&lt;br&gt;&lt;br&gt;&lt;br&gt;Keywords : WSAENOBUFS, 10055</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=75</link>
      <pubDate>Sat, 29 Aug 2009 12:08:04 GMT</pubDate>
    </item>
    <item>
      <title>Activate current link in master page</title>
      <description>Step 1 :&lt;br&gt;&amp;lt;ul&amp;gt;&lt;br&gt;&amp;lt;li id="&amp;lt;%=current("/Index.aspx,/Contact.aspx") %&amp;gt;"&amp;gt;&lt;br&gt;&amp;lt;a href="/Public/CustomerCare/Index.aspx"&amp;gt;&amp;lt;span&amp;gt;Customer&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br&gt;&amp;lt;li id="&amp;lt;%=current("/Contact.aspx") %&amp;gt;"&amp;gt;&lt;br&gt;&amp;lt;a href="/Public/CustomerCare/Contact.aspx"&amp;gt;&amp;lt;span&amp;gt;Iletisim&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br&gt;&amp;lt;/ul&amp;gt;&lt;br&gt;&lt;br&gt;Step 2 :&lt;br&gt;protected string current(string currentpage)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp; // activate current link&lt;br&gt;&amp;nbsp;&amp;nbsp; string pname = Request.ServerVariables["SCRIPT_NAME"];&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; string result = pname.Substring(pname.LastIndexOf("/"), pname.Length - pname.LastIndexOf("/"));&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; if (currentpage.IndexOf(result)&amp;gt;=0)&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = "current";&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; return result;&lt;br&gt;}&lt;br&gt;&lt;br&gt;Keywords : CSS, activate current page, asp.net&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=74</link>
      <pubDate>Tue, 14 Jul 2009 13:21:42 GMT</pubDate>
    </item>
    <item>
      <title>Sorenson Squeeze for reducing .flv files</title>
      <description>For starters, Sorenson Media has been the global leader in video encoding and compression technology for nearly a decade and a half.&lt;br&gt;&lt;br&gt;What does that mean? It means that every day thousands of people rely on Sorenson Media for all their video encoding, publishing and delivery needs. So then the question becomes: Why wouldn't you?&lt;br&gt;&lt;br&gt;When quality counts, turn to the company you can trust, turn to Sorenson Media.&lt;br&gt;&lt;br&gt;Raw, uncompressed video is a huge beast. Traditionally, getting it online meant sending any large, foreboding video to the unknown server in the sky so they can encode and deliver to you when they got around to it. This takes up resources, bandwidth and most importantly time. Oh yeah, and it can cost a lot of money.&lt;br&gt;&lt;br&gt;Utilizing Sorenson's desktop and web-based applications you can compress that video down to a manageable size, upload it to the web and publish to your site in a matter of minutes.&lt;br&gt;&lt;br&gt;This is my experience steps for reducing size of flv file :&lt;br&gt;&lt;br&gt;- Get .flv file with "Import File"&lt;br&gt;- Select "Format Sort" in "Audience presents"&lt;br&gt;- Select "Adobe Flash Video (.flv)" at line third&lt;br&gt;- You can choose "F8_256K" to best performance (according to my experience)&lt;br&gt;- Click "Apply" button to apply filter&lt;br&gt;- Click "Squeeze it!" at right bottom side of screen to start conversion.&lt;br&gt;- You can access converted file at directory that original file already located.&lt;br&gt;&lt;br&gt;Keywords : Reducing .flv video file without loss of quality. Sorenson Squeeze v5.0&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=73</link>
      <pubDate>Sat, 27 Jun 2009 22:32:09 GMT</pubDate>
    </item>
    <item>
      <title>Configuring Awstats for Mulitple web sites</title>
      <description>I explained something about installation Awstats log analyzer tool before. I list all required steps to implement much more web site to use Awstats report. Here we go : &lt;br&gt;&lt;br&gt;&lt;br&gt;1. Configure W3SVC log format in IIS (in Website tab)&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; You should delete all previos log file in Log files directory (ex: C:\WINDOWS\system32\LogFiles\W3SVC129507843) If you can not delete anything in that folder, please try to stop website and delete it again. Then set these properties to enable.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Date (date) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Time (time) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Client IP Address (c-ip) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Username (cs-username) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Method (cs-method) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; URI Stem (cs-uri-stem) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; URI Query (cs-uri-query) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Protocol Status (sc-status) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Bytes Sent (sc-bytes) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Protocol Version (cs-version) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; User Agent (cs(User-Agent)) &lt;br&gt;&amp;nbsp;&amp;nbsp; -&amp;nbsp; Referrer (cs(Referrer)) &lt;br&gt;&lt;br&gt;2. Access to web site with Internet explorer/firefox to create sample log file in server's LogFiles directory.&lt;br&gt;&lt;br&gt;3. Create configuration file in "C:\perl\wwwroot\cgi-bin" (ex : awstats.www.sampledomain.com.tr.conf)&lt;br&gt;&lt;br&gt;4. Update 3 parameters according to new site.&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; - LogFile="C:\WINDOWS\system32\LogFiles\W3SVC129507843\ex%YY-24%MM-24%DD-24.log"&lt;br&gt;&amp;nbsp;&amp;nbsp; - SiteDomain="www.sampledomain.com.tr"&lt;br&gt;&amp;nbsp;&amp;nbsp; - HostAliases="sampledomain.com.tr www.sampledomain.com.tr"&lt;br&gt;&lt;br&gt;5. Copy icon folder in "C:\perl\wwwroot\icon" to your root website directory (ex: C:\Inetpub\wwwroot\sampledomain\sampledomain)&lt;br&gt;&lt;br&gt;6. Create stats folder in web root to publish report (ex : C:\Inetpub\wwwroot\sampledomain\sampledomain\stats)&lt;br&gt;&lt;br&gt;7. Right click on the stats folder in IIS and select properties, then click documents tab and add default html page name (ex : awstats.www.sampledomain.com.tr.html) Then, move it to first line.&lt;br&gt;&lt;br&gt;6. Create batch file with following lines (ex : AwstatsService.bat)&lt;br&gt;&amp;nbsp; &lt;br&gt;&amp;nbsp; C:\Perl\wwwroot\cgi-bin\awstats.pl -config=www.sampledomain.com.tr -update&lt;br&gt;&amp;nbsp; C:\Perl\tools\awstats_buildstaticpages.pl -config=www.sampledomain.com.tr -update -lang=en -dir="C:\Inetpub\wwwroot\sampledomain\sampledomain\stats" -awstatsprog="C:\Perl\wwwroot\cgi-bin\awstats.pl"&lt;br&gt;&lt;br&gt;&amp;nbsp; Hint : This batch file use previous day log records. see 9th line below if you want to see current traffic.&lt;br&gt;&lt;br&gt;7. Create scheduled task in Control Panel for batch file (AwstatsService.bat) to run it in anytime.&lt;br&gt;&lt;br&gt;8. You can access report by http://www.sampledomain.com.tr/stats/&lt;br&gt;&lt;br&gt;9. Use this batch file (ex : AwstatsCurrent.bat) if you want to see current usage in traffic report.&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp; C:\Perl\wwwroot\cgi-bin\awstats.pl -config=www.sampledomain.com.tr -update -logfile="C:\WINDOWS\system32\LogFiles\sampledomain\W3SVC1370046439\ex090620.log"&lt;br&gt;&amp;nbsp;&amp;nbsp; C:\Perl\tools\awstats_buildstaticpages.pl -config=www.sampledomain.com.tr -update -lang=en -dir="C:\Inetpub\wwwroot\sampledomain\sampledomain\stats" -awstatsprog="C:\Perl\wwwroot\cgi-bin\awstats.pl"&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; Because AwstatsService.bat (in 6th item)&amp;nbsp; use previous day log records.&lt;br&gt;&amp;nbsp;&amp;nbsp; Note : You should change logfile name that end of first line everyday. (ex090620.log)&lt;br&gt;&lt;br&gt;10. Note : Don't run batch file (ex : AwstatsCurrent.bat) in 2 minutes again.&lt;br&gt;&lt;br&gt;Keywords : Awstats configuration for multiple web sites.&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=71</link>
      <pubDate>Fri, 26 Jun 2009 14:44:33 GMT</pubDate>
    </item>
    <item>
      <title>Flash Player Detection Kit</title>
      <description>The Flash Player Detection Kit helps developers implement robust player detection for a variety of deployment environments by providing a set of templates and techniques to successfully detect the version of Flash Player installed on a user's computer, and, if needed, to then install the latest version of Flash Player. The kit also includes a detailed explanation and sample files for implementing the new, player-based Flash Player Express Install experience. The scripts in the Flash Player Detection Kit are also incorporated into Flash Professional 8.&lt;br&gt;&lt;br&gt;Please click &lt;a href="binary/Client-Side%20Detection.rar"&gt;here&lt;/a&gt; to download Client-side/Javascript Detection samples.&lt;br&gt;&lt;br&gt;More detail : http://www.adobe.com/products/flashplayer/download/detection_kit/&lt;br&gt;&lt;br&gt;Keywords : Flash version detection, javascript&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=70</link>
      <pubDate>Thu, 25 Jun 2009 10:51:57 GMT</pubDate>
    </item>
    <item>
      <title>The remote certificate is invalid</title>
      <description>If I enable EnableSsl for smtpclient am getting an exception: "The remote certificate is invalid according to the validation procedure." &lt;br&gt;&lt;br&gt;It means the server certificate isn't valid by regular validation rules. You can simply use this snippet to by-pass it: 
&lt;blockquote&gt;public static bool AcceptAllCertificatePolicy(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)&lt;br&gt;{ return true; } &lt;/blockquote&gt;&lt;br&gt;public static void SendMail(string body, string to, string subject, string attachFilename)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;MailMessage message = new MailMessage();&lt;br&gt;&amp;nbsp; message.Priority = MailPriority.Normal;&lt;br&gt;&amp;nbsp; message.To.Add(new MailAddress(to));&lt;br&gt;&amp;nbsp; message.Subject = subject;&lt;br&gt;&amp;nbsp; message.IsBodyHtml = true;&lt;br&gt;&amp;nbsp; message.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-9");&lt;br&gt;&amp;nbsp; message.Body = body; &lt;br&gt;&lt;br&gt;&amp;nbsp; if (attachFilename != string.Empty)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; message.Attachments.Add(new Attachment(attachFilename));&lt;br&gt;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp; ServicePointManager.ServerCertificateValidationCallback = AcceptAllCertificatePolicy;&lt;br&gt;&amp;nbsp; SmtpClient client = new SmtpClient();&lt;br&gt;&amp;nbsp; client.EnableSsl = true;&lt;br&gt;&amp;nbsp; client.Send(message);&lt;br&gt;}&lt;br&gt;&lt;br&gt;Keywords : Smtpclient, asp.net, system.net.mail, EnableSSL, validation.</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=69</link>
      <pubDate>Wed, 24 Jun 2009 22:54:49 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET GridView Paging Style</title>
      <description>&lt;strong&gt;Tip 1: Change the style of the selected page or highlight the current page in the GridView Pager control&lt;br&gt;&lt;/strong&gt;A simple way is to use CSS as shown below. The &amp;lt;PagerStyle&amp;gt; is set to a css class which modifies the style of the pager:&lt;br&gt;&amp;lt;head runat="server"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;style type="text/css"&amp;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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .cssPager span { background-color:#4f6b72; font-size:18px;}&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;lt;/style&amp;gt;&lt;br&gt;&amp;lt;/head&amp;gt;&lt;br&gt;&amp;lt;asp:GridView ID="GridView1" runat="server" AllowPaging="true" AutoGenerateColumns="false" DataKeyNames="ProductID" DataSourceID="SqlDataSource1"&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;PagerStyle CssClass="cssPager" /&amp;gt;&lt;br&gt;...&lt;br&gt;The output is as shown below, with the style set for the current page. &lt;br&gt;&lt;img src="http://www.dotnetcurry.com/images/aspnet/Tip1.jpg"&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Tip 2: How to increase the spacing between the ASP.NET GridView Pager Numbers&lt;br&gt;&lt;/strong&gt;One simple way is to use CSS again. Observe how we have set a cssClass to the PagerStyle, similar to what we saw in Tip 1, and are increasing the padding for the &amp;lt;td&amp;gt;:&lt;br&gt;&amp;lt;head runat="server"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;style type="text/css"&amp;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;.cssPager td&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;&amp;nbsp;&amp;nbsp; padding-left: 4px;&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; padding-right: 4px;&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;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/style&amp;gt;&lt;br&gt;&amp;lt;/head&amp;gt;&lt;br&gt;&amp;lt;asp:GridView ID="GridView1" runat="server" AllowPaging="true" AutoGenerateColumns="false" DataKeyNames="ProductID" DataSourceID="SqlDataSource1"&amp;gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;PagerStyle CssClass="cssPager" /&amp;gt;&lt;br&gt;...&lt;br&gt;The output looks similar to the following with the increased space between the page number display.&lt;br&gt;&lt;img src="http://www.dotnetcurry.com/images/aspnet/Tip2.jpg"&gt;&lt;br&gt;&lt;br&gt;Keywords : Some Tips and Tricks while Using ASP.NET GridView Paging</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=68</link>
      <pubDate>Tue, 23 Jun 2009 10:05:07 GMT</pubDate>
    </item>
    <item>
      <title>Classic ASP Error Messages in IIS 7.5</title>
      <description>In earlier versions of IIS, error messages from classic ASP scripts were sent to a Web browser, by default. Because these error messages might reveal sensitive information to malicious users, IIS 7.0 disables this feature by default. When your classic ASP scripts encounter an error in IIS 7.0, you receive the following error message by default:&lt;BR&gt;&lt;BR&gt;&lt;B&gt;An error occurred on the server when processing the URL. Please contact the system administrator.&lt;/B&gt;&lt;BR&gt;&amp;nbsp; &lt;B&gt;If you are the system administrator please click &lt;A href="http://go.microsoft.com/fwlink/?LinkID=82731" target=_blank mce_href="http://go.microsoft.com/fwlink/?LinkID=82731"&gt;here&lt;/A&gt; to find out more about this error.&lt;/B&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp; &lt;BR&gt;You can customize the ASP script error message, and also determine whether to return the script errors to a Web browser. &lt;B&gt;Note&lt;/B&gt;: As a best practice for security, you should only enable sending ASP script error messages to a Web browser on a development or test computer; returning script error messages to a Web browser can unintentionally expose more information than you intended to show. &lt;B&gt;Customizing Classic ASP Error Messages&lt;BR&gt;&lt;/B&gt;The configuration settings that you use to customize these settings are in the following list:&lt;BR&gt;&lt;BR&gt;&lt;B&gt;scriptErrorMessage&lt;BR&gt;&lt;/B&gt;This is an optional string attribute that specifies the error message that will be sent to the browser when specific debugging errors are not sent to the client.&lt;BR&gt;&lt;B&gt;scriptErrorSentToBrowser&lt;BR&gt;&lt;/B&gt;This is an optional Boolean attribute that specifies whether the writing of debugging specifics to the client browser is enabled&lt;BR&gt;You can configure these settings by using IIS Manager. To do so, open IIS Manager and navigate to the site or application where you want to enable or disable script messages, and then double-click the &lt;B&gt;ASP&lt;/B&gt;feature.&lt;BR&gt;&lt;BR&gt;&lt;IMG border=0 alt="" src="http://learn.iis.net/file.axd?i=1531" width=500 height=326&gt;&lt;/A&gt;&lt;BR&gt;&amp;nbsp; &lt;BR&gt;In the list of ASP features, configure the &lt;B&gt;Script Error Message&lt;/B&gt; and &lt;B&gt;Send Errors To Browser&lt;/B&gt; options.&lt;BR&gt;&lt;BR&gt;&lt;A href="http://learn.iis.net/file.axd?i=1532"&gt;&lt;IMG border=0 alt="" src="http://learn.iis.net/file.axd?i=1532" width=500 height=326&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;Keywords : Classic ASP script error messages are no longer shown in a Web browser by default.</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=67</link>
      <pubDate>Mon, 22 Jun 2009 13:39:56 GMT</pubDate>
    </item>
    <item>
      <title>Installing Classic ASP on Windows 7</title>
      <description>1. Click Start, and then click Control Panel.&lt;br&gt;2. In Control Panel, click Programs and Features, and then click Turn Windows Features on or off.&lt;br&gt;3. Expand Internet Information Services, then World Wide Web Services, then Application Development Features.&lt;br&gt;4. Select ASP, and then click OK.&lt;br&gt;&lt;br&gt;&lt;img alt="" src="http://learn.iis.net/file.axd?i=1524" border="0"&gt;&lt;br&gt;&lt;br&gt;Keywords : Classic ASP is not installed by default on IIS 7.0 and IIS 7.5</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=66</link>
      <pubDate>Mon, 22 Jun 2009 13:17:58 GMT</pubDate>
    </item>
    <item>
      <title>Character convertion in FCK Editor</title>
      <description>&lt;STRONG&gt;Question&lt;/STRONG&gt; : &lt;BR&gt;When I write "ü" character (ASCII 252 code), FCEditor convert this character to "&amp;amp;uuml;". How do I stop this? &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Answer&lt;/STRONG&gt; :&lt;BR&gt;Do these changes step by step&lt;BR&gt;&lt;BR&gt;1. \FCKEditor\fckconfig.js: &lt;BR&gt;&amp;nbsp;&amp;nbsp; FCKConfig.IncludeLatinEntities = false ; &lt;BR&gt;&lt;BR&gt;2. \FCKEditor\editor\source\internals\fckxhtmlentities.js: &lt;BR&gt;&amp;nbsp;&amp;nbsp; Change the content of "FCKConfig.IncludeLatinEntities" variable. Or delete related character line.&lt;BR&gt;&lt;BR&gt;3. Very important: After change, clear the browser cache. And use Ctrl+F5 to refresh page.&lt;BR&gt;&lt;BR&gt;Keywords : FCKEditor, asp.net, FredCK.FCKeditorV2.dll</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=65</link>
      <pubDate>Fri, 19 Jun 2009 22:55:21 GMT</pubDate>
    </item>
    <item>
      <title>Lambda Expression</title>
      <description>Lambda Expressions provide a more concise,&amp;nbsp; functional syntax for writing anonymous methods.&amp;nbsp;&amp;nbsp;They end up being&amp;nbsp; super useful when writing LINQ query expressions - since they provide a&amp;nbsp; very compact and&amp;nbsp;type-safe way to&amp;nbsp;write functions that can be passed as&amp;nbsp; arguments for subsequent evaluation.&amp;nbsp; &lt;strong&gt; &lt;br&gt;&amp;nbsp; &lt;br&gt;Example:&lt;/strong&gt;&amp;nbsp; &lt;br&gt;&lt;strong&gt;Sample 1 :&lt;/strong&gt;&amp;nbsp; &lt;br&gt;public class Person&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;public string FirstName;&lt;br&gt;&amp;nbsp;&amp;nbsp;public string LastName;&lt;br&gt;&amp;nbsp;&amp;nbsp;public int Age;&lt;br&gt;}&lt;br&gt;&lt;br&gt;List&amp;lt;person&amp;gt; people = new List&amp;lt;person&amp;gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;new Person{FirstName = "Ferhat", LastName = "Karatas", Age=10},&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;new Person{FirstName = "Elif", LastName = "Sila", Age=5},&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;new Person{FirstName = "Sevim", LastName = "Karatas", Age=15}&lt;br&gt;};&amp;nbsp; &lt;br&gt;&amp;nbsp; &lt;br&gt;// return all Karatas&lt;blockquote&gt;IEnumerable&amp;lt;person&amp;gt; results = people.Where(p =&amp;gt; p.LastName == "Karatas");&lt;/blockquote&gt;double averageAge = people.Average(p =&amp;gt; p.Age);&lt;br&gt;Label1.Text = results.Count().ToString() + "-" + averageAge.ToString();&lt;strong&gt;&lt;br&gt;&lt;br&gt;Sample 2 :&lt;/strong&gt;&lt;br&gt;var numbers = new List&amp;lt;int&amp;gt;() { 1, 2, 3, 4, 5, 6, 7, 8, 9 };&lt;br&gt;&lt;blockquote&gt;var evennumber = numbers.FindAll(p =&amp;gt; p % 2 == 0);&lt;/blockquote&gt;foreach (int item in evennumber)&lt;br&gt;{&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;Label1.Text += item + "-";&lt;br&gt;}&amp;nbsp; &lt;br&gt;&amp;nbsp; &lt;br&gt;The p =&amp;gt;&amp;nbsp;expressions highlighted above&amp;nbsp; in red are&amp;nbsp;Lambda expressions.&amp;nbsp; In the sample above I'm using the first&amp;nbsp; lambda to specify the filter to use when retrieving people, and the&amp;nbsp; second lambda to specify the value from the Person object to use when&amp;nbsp; computing the average.&lt;br&gt;&lt;br&gt;Keywords : Linq, lambda expression</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=64</link>
      <pubDate>Sat, 23 May 2009 13:39:41 GMT</pubDate>
    </item>
    <item>
      <title>AWstats Installation - Best IIS Log Analyzer</title>
      <description>AWStats is a &lt;strong&gt;free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically&lt;/strong&gt;.&amp;nbsp; This &lt;strong&gt;log analyzer&lt;/strong&gt; works as a &lt;strong&gt;CGI or from command line&lt;/strong&gt; and shows you all possible information your log contains, in &lt;strong&gt;few graphical web pages&lt;/strong&gt;.&amp;nbsp; It&amp;nbsp; uses a partial information file to be able to process large log files,&amp;nbsp; often and quickly.&amp;nbsp; It can analyze log files from all major server tools like Apache log&amp;nbsp; files (NCSA combined/XLF/ELF log format or common/CLF log format),&amp;nbsp; WebStar, IIS (W3C log format) and a lot of other web, proxy, wap,&amp;nbsp; streaming servers, mail servers and some ftp servers.&lt;br&gt;&lt;br&gt;AWStats is such a great statistical tracking program to use, but there seems to be a lack of easy-to-&amp;nbsp; follow documentation available for installing AWStats on IIS.&amp;nbsp; This document covers the basic setup &amp;nbsp; process and will certainly get you started tracking statistics for your websites.&amp;nbsp; If anyone is having &amp;nbsp; troubles getting AWStats to work with IIS 6.0 (or IIS 5.1) after following this documentation please write to me&amp;nbsp; and I will do my best to respond.&lt;br&gt;&lt;br&gt;&lt;a href="binary/AWStatsEN.pdf"&gt;Installation guide for English&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="binary/AWStatsTR.pdf"&gt;Installation guide for Turkish&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;Troubleshooting : &lt;/strong&gt;&amp;nbsp; &lt;br&gt;&amp;nbsp; When you trying to install AWstats after Perl, you may encounter this error : &amp;nbsp;"The installer did not find any PERL interpreter in your PATH"&lt;br&gt;&lt;br&gt;&lt;strong&gt;Resolution : &lt;/strong&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1] In Windows Explorer, right click on "My Computer" then goto properties.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2] Click the Advanced tab&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3] Down the bottom click "Enviroment Variables"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4] Click to New under the "User variables for .." Variable name : pl Variable Value : c:\perl (perl root directory)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5] Click ok on all open windows &lt;br&gt;&lt;br&gt;Keywords : AWStats, best IIS log analyzer</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=63</link>
      <pubDate>Tue, 19 May 2009 21:57:37 GMT</pubDate>
    </item>
    <item>
      <title>EXCEPT and INTERSECT (Transact-SQL)</title>
      <description>The INTERSECT keyword returns a combined result set that consists of all of the rows that exist in both result sets.&lt;br&gt;&lt;br&gt;Suppose you want to find a list of employee numbers that includes:&lt;br&gt;&lt;br&gt;People in department D11&lt;br&gt;&lt;br&gt;People whose assignments include projects MA2112, MA2113, and AD3111&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;INTERSECT &lt;/span&gt;returns the all of the employee numbers that exist in both result sets. In other words, this query returns all of the people in department D11 who are also working on projects MA2112, MA2113, and AD3111.&lt;br&gt;&lt;br&gt;To do this, specify: &lt;br&gt;&lt;br&gt;SELECT EMPNO FROM CORPDATA.EMPLOYEE WHERE WORKDEPT = 'D11' INTERSECT SELECT EMPNO FROM CORPDATA.EMPPROJACT&amp;nbsp; WHERE PROJNO = 'MA2112' OR&amp;nbsp; PROJNO = 'MA2113' OR&amp;nbsp; PROJNO = 'AD3111' ORDER BY EMPNO&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;EXCEPT &lt;/span&gt;returns any distinct values from the left query that are not also found on the right query.&lt;br&gt;&lt;br&gt;Keywords : Intersect and Except in Sql Server&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=62</link>
      <pubDate>Sat, 16 May 2009 12:25:57 GMT</pubDate>
    </item>
    <item>
      <title>'System.web.extensions' is already defined.</title>
      <description>Error : Section or group name 'system.web.extensions' is already defined. Updates to this may only occur at the configuration level where it is defined.&lt;br&gt;&lt;br&gt;I have a web application project which developed under 3.5 .net framework. Also there is a virtual directory under the project that developed in previous framework. These two sections belongs to their web.config file.&lt;br&gt;&lt;br&gt;Root Project's config : &amp;lt;sectionGroup name="system.web.extensions" type= "System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"&amp;gt;&lt;br&gt;&lt;br&gt;Virtual Directory's config : &amp;lt;sectionGroup name="system.web.extensions" type= "System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&amp;gt;&lt;br&gt;&lt;br&gt;Solution : &amp;lt;configuration&amp;gt; &amp;lt;configSections&amp;gt; &amp;lt;sectionGroup name="system.web.extensions2". I&amp;nbsp; changed the "name" attribute of the sectionGroup of the Virtual Directory. Site and everything seems to be working now.&lt;br&gt;&lt;br&gt;Keywords : sectionGroup inheritance issue, ajax migration, system.web.extension.&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=61</link>
      <pubDate>Sun, 08 Feb 2009 20:28:33 GMT</pubDate>
    </item>
    <item>
      <title>SQL Function</title>
      <description>CREATE FUNCTION Hesapla (@Fiyat int)&lt;br&gt;RETURNS int&lt;br&gt;AS&lt;br&gt;BEGIN&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DECLARE @donenDeger int&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @donenDeger = @Fiyat * 1.18&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN @donenDeger&lt;br&gt;END &lt;br&gt;&lt;br&gt;-- to call&lt;br&gt;select dbo.Hesapla(30) &lt;br&gt;&lt;br&gt;&lt;br&gt;Keywords : Create sql function in MS SQL&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=60</link>
      <pubDate>Sat, 07 Feb 2009 22:09:58 GMT</pubDate>
    </item>
    <item>
      <title>Large File Uploading in ASP.NET</title>
      <description>In your web.config, add a line under your system.web &amp;lt;httpRuntime executionTimeout="54000" maxRequestLength="512000" /&amp;gt; where execution timeout is in seconds, and maxRequestLength is in KB. executionTimeout, is basically the amount of time a thread will continue to run, and accept data by IIS/.NET. maxRequestLength, is the total amount of data that can be sent through HTTP Post to the server. The default is 4MB (4096)...and is generally set low so that your server will not be overwhelmed by possible DoS attacks. &lt;br&gt;&lt;br&gt;Memory deallocation is a major issue, that has no current solution. Whenever you upload files via HTTP Post, the file is stored in the memory of the aspnet_wp.exe process, and never deallocates completely (if your lucky a few MB gets released). One of the config settings for .NET processes, allows them to utilize 60% of physical memory on the server, at which point the process is recycled and all execution is stopped. Whenever a new upload is started, though, some memory is de-allocated, but not enough compared to memory that was used in prior uploads.&lt;br&gt;&lt;br&gt;Microsoft is aware of this problem, and has assured us that it will be fixed with some upcoming releases of the .NET framework. Some solutions that they suggested to us, was to use Classic ASP, Third Party Components, or Custom Built ISAPI filters.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;NeatUpload&lt;/span&gt;&lt;br&gt;The NeatUpload T ASP.NET component allows&amp;nbsp; developers to stream uploaded files to storage (filesystem or database) and allows users to monitor upload progress. It is open source and works under Mono's XSP/mod_mono as well as Microsoft's ASP.NET implementation.&lt;blockquote&gt;Streams uploads directly to storage.&amp;nbsp; This conserves server memory,
allows larger uploads, and helps prevent Denial of Service attacks.&lt;/blockquote&gt; It features 2 custom controls:&amp;nbsp; InputFile allows the user to select a file to upload, and ProgressBar displays the upload progress either inline or in a popup. ProgressBar uses AJAX-style refreshless updates on modern browsers when JavaScript is available, but also allows users without JavaScript to see upload progress. &lt;br&gt;&lt;br&gt;http://www.brettle.com/neatupload&lt;br&gt;&lt;br&gt;Keywords : NeatUpload, Large File Upload, maxRequestLength, executionTimeout.</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=59</link>
      <pubDate>Fri, 17 Oct 2008 09:40:28 GMT</pubDate>
    </item>
    <item>
      <title>Inherit the parent's HttpHandlers and HttpModules</title>
      <description>IIS virtual directories inherit the parent's HttpHandlers and HttpModules. Basically copying the dlls into the virtual directory is solve problem.&lt;br&gt;&lt;br&gt;If there is no httpModules in virtual directory then you have another option.&lt;br&gt;&lt;br&gt;&amp;lt;httpModules&amp;gt;&lt;br&gt;&amp;lt;clear /&amp;gt;&lt;br&gt;&amp;lt;/httpModules&amp;gt; &lt;br&gt;&lt;br&gt;That's a feature, not a bug! All the configs are nested from machine.config -&amp;gt; root web.config -&amp;gt; virtual web.config -&amp;gt; folder web.config.&lt;br&gt;&lt;br&gt;Since configuration settings are inheritable, the child directories inherit configuration settings of the parent directory. As a consequence, child directories might inherit some unwanted HTTP modules as part of the parent configuration; therefore, we need a way to remove those unwanted modules. We can use the &amp;lt;remove&amp;gt; node for this.&lt;br&gt;&lt;br&gt;If we want to remove all of the inherited HTTP modules from our application, we can use the &amp;lt;clear/&amp;gt; node.&lt;br&gt;&lt;br&gt;The following is a generic example of adding an HTTP module:&lt;br&gt;&lt;blockquote&gt;&amp;lt;httpModules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;add type="classname, assemblyname" name="modulename"&amp;nbsp; /&amp;gt;&lt;br&gt;&amp;lt;httpModules&amp;gt;&lt;/blockquote&gt;The following is a generic example of removing an HTTP module from your application.&lt;blockquote&gt;&amp;lt;httpModules&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;remove name="modulename"&amp;nbsp; /&amp;gt;&lt;br&gt;&amp;lt;httpModules&amp;gt;&lt;/blockquote&gt;Keywords : IIS, inherit, HttpHandlers and HttpModules, &amp;lt;remove&amp;gt;, &amp;lt;clear&amp;gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=58</link>
      <pubDate>Wed, 15 Oct 2008 23:01:00 GMT</pubDate>
    </item>
    <item>
      <title>Regular Expressions Usage</title>
      <description>The source code shows how to use Regular Expressions in C#.&lt;blockquote&gt;public static bool IsEmail(string strEmail)&lt;br&gt;{&lt;br&gt;string regex_Email = @"^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$";&lt;br&gt;Regex re = new Regex(regex_Email);&lt;br&gt;return re.IsMatch(strEmail) ? true : false;&lt;br&gt;}&lt;/blockquote&gt;&lt;br&gt;Keywords : Regular Expression&lt;br&gt;&lt;br&gt;</description>
      <link>http://www.fkaratas.com/Comments.aspx?ArticleID=57</link>
      <pubDate>Mon, 13 Oct 2008 19:51:23 GMT</pubDate>
    </item>
    <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>