Friday, May 30, 2008

External Tables - Oracle 10.2E

Note: We have to create PRODUCTS directory and data.csv file should be avaible in the PRODUCTS directory
CREATE TABLE "PRODUCTDATA"."PRODUCTS"
(
"COL1" NUMBER(19,0),
"COL2" CLOB,
"COL3" VARCHAR2(25 BYTE),
"COL4" VARCHAR2(10 BYTE),

)
ORGANIZATION EXTERNAL
(

TYPE ORACLE_LOADER
DEFAULT DIRECTORY "PRODUCT"
ACCESS PARAMETERS
(

records delimited by newline
fields terminated by ','
missing field values are null

)
LOCATION
(

'data.csv'

)

);

Wednesday, May 28, 2008

Search Engine Optimization(SEO) and URL Rewriting using HTTPModules - Microsoft ASP.NET

Implement IHttpModule interface, which has Initialization(public void Init(HttpApplication context)) methods. In there we attach URL Rewrite method to AuthorizeRequest (for windows authorization)
Note:This is a simplified version. For more information please see references at the end of this post.
namespace Root.Client.SEOHandler
{
    public class SEOModule : IHttpModule
    {
        public void Init(HttpApplication context)
        {
            context.AuthorizeRequest += new EventHandler(SEOModuleAuthorizeRequest);
        }
        public void SEOModuleAuthorizeRequest(object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication)sender;
            /// 
            ///we must implement switches collection in CustomConfiguration as a property. 
            ///See complete description of how to implement a custom configuration 
            ///section in web.config please see 
            ///Adding new section to web.config - Microsoft ASP.NET
            ///
            List<Switch> switches =((CustomConfiguration) HttpContext.Current.Cache ["customConfiguration"]).Switches;
            for (int i = 0; i < switches.Count; i++)
            {
                string lookFor = string.Format("{0}/{1}",app.Context.Request.ApplicationPath,switches[i]);
                if(string.Compare(lookFor,app.Request.Path)==0)
                app.Context.RewritePath(
                string.Format("{0}/{1}","required_page.aspx", app.Context.Request.ApplicationPath);
            }
        }
    }
}

Register assembly in web.config

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <system.web>
    <httpModules>
      <add name="SEOModule" type="Root.Client.SEOHandler.SEOModule" />
    </httpModules>
  </system.web>
</configuration>



Reference: URL Rewriting in ASP.NET

Tuesday, May 27, 2008

Adding new section to web.config - Microsoft ASP.NET

Create new section handeler for your new config section (implement IConfigurationSectionHandler interface)

Add a reference to your new config section and register it with the assembly

    public class CustomConfiguration : IConfigurationSectionHandler
    {
        public object Create(object parent, object input, XmlNode node)
        {
            /// 
            /// add your logic here ...
            /// 
            return new object();
        }
    }

Set custom configuration section in application start event(global.ascx) and add it to the cache

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <configSections>
    <section name="customConfiguration" 
             type="Root.Client.Configuration.CustomConfiguration, Root.Client.Configuration" />
  </configSections>
  <customConfiguration>
    .....
    //
    // your custom configuration
    //
    .....
    <customConfiguration>
</configuration>
public override void Application_Start(object sender, EventArgs e)
{
    HttpContext.Current.Cache.Insert("CustomConfiguration", 
        ConfigurationSettings.GetConfig("customConfiguration"as CustomConfiguration);
}

Friday, May 23, 2008

How to get generated html of a page and change it.

public override void Render(System.Web.UI.HtmlTextWriter writer)
{
    StringBuilder sb = new StringBuilder();
    HtmlTextWriter htw = new HtmlTextWriter(new StringWriter(sb));
    base.Render(htw);
    string html = sb.ToString();
    ///
    /// Example
    /// 
    html.Replace("<b>""<strong>");
    html.Replace("</b>""</strong>");
    /// 
    /// Insert the meta tags
    /// Insert webtrends meta tags
    /// Move hidden system inserted fields
    /// Move viewstate
    /// Perform SEO checks
    /// And finally, write the HTML to original writer
    writer.Write(html);
}

Thursday, May 22, 2008

ASP.NET Master Pages and overriding attributes of Body tag

Default.Master page

<body id="MasterPageBody" runat="server" >
</body>

Code behind

public HtmlGenericControl Body
{
     getreturn this.MasterPageBody}
     setthis.MasterPageBody = value;}
}

Content pageRegister

<%@ MasterPage VirtualPath="~/virtual/path/to/your/master/page" %>

Code Behind

public void Page_Load(object sender, EventArgs e)
{
     this.MasterPageBody.Attributes
            .Add("onload","javascript:alert('I am here')");
}
 

Tuesday, May 13, 2008

How to jQuery with Asp.net Ajax

Symptom:

<script language="javascript">
    $(document).ready(function () {
        ///
        ///execute only when a full page refresh.
        ///
    });
</script>

ready() function executes only when a page does a full page refresh not when it does a partial page refresh inside a update panel
Solution:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="rounded">
            Welcome to AJAX.Net
            <asp:Button ID="Button1" runat="server" Text="Button" CssClass="button" />
        </div>
        <script type="text/javascript" language="javascript">
            Sys.Application.add_load(functionNeedToBeExecuted);
            function functionNeedToBeExecuted() {
                // code need to be executed ....
            }
        </script>
    </ContentTemplate>
</asp:UpdatePanel>

Azure Storage Account Types

Defferent Types of Blobs Block blobs store text and binary data. Block blobs are made up of blocks of data that can be managed individually...