New skin for my site

This day I get boring with my code.
Looking my site, and want to change the skin.
I open my Photoshop and start drawing my skin.
I want to make it simple, but nice look.
After 1 hours, I finish my design and code.
Start to upload.
And it's much better now.

Back to work.. :(

Coolite web control for Asp.Net build on Ext Javascript Framework

Coolite had build a suite of professional ASP.NET Web Controls.
It built on the Ext JavaScript Framework.

It fast and easy to implement. I had try to run it on DotNetNuke and WOW.. it's work GREAT.
I cannot wait till all controls are available.


Create a Simple DNN Container with CSS (Single Image)

Almost everytime Create a DotNetNuke Container always using table. There is another alternatif and easy way to create a Container. Rounded corner boxes using CSS, was a method I use to create my own Container. Only using one single image, you can create your own Container.

 

CSS Code :

/* set the image to use and establish the lower-right position */
.cssbox, .cssbox_body, .cssbox_head, .cssbox_head h2 {
    background: transparent url(demobox.png) no-repeat bottom right;
}
.cssbox {
    width: 100% !important; /* intended total box width - padding-right(next) */
    width: 100%; /* IE Win = width - padding */
    padding-right: 15px; /* the gap on the right edge of the image (not content padding) */
    margin: 20px auto; /* use to position the box */
}

/* set the top-right image */
.cssbox_head {
    background-position: top right; margin-right: -15px; /* pull the right image over on top of border */
    padding-right: 145px; /* right-image-gap + right-inside padding */
}

/* set the top-left image */
.cssbox_head h2 {
    background-position: top left;
    margin: 0; /* reset main site styles*/
    border: 0; /* ditto */
    padding: 25px 0 10px 25px; /* padding-left = image gap + interior padding ... no padding-right */
    height: auto !important; height: 1%; /* IE Holly Hack */
}

/* set the lower-left corner image */
.cssbox_body {
    background-position: bottom left;
    margin-right: 25px; /* interior-padding right */
    padding: 5px 0 10px 25px; /* mirror .cssbox_head right/left */
}

 Your Container :

<div class="cssbox" align=left style='width:100%'>
    <div class="cssbox_head">
        <h2>
            <dnn:ACTIONS runat="server" ID="dnnACTIONS" />
            <dnn:ICON runat="server" ID="dnnICON" />
            <dnn:TITLE runat="server" ID="dnnTITLE" CssClass="title" />
        </h2>
    </div>
    <div class="cssbox_body">
        <div id="ContentPane" runat="server" align="center" style='width:100%;'></div>
        <br />
        <div>
<dnn:ACTIONBUTTON2 runat="server" ID="dnnACTIONBUTTON2" CommandName="SyndicateModule.Action"
                            DisplayIcon="True" DisplayLink="False" />
                        &nbsp;<dnn:ACTIONBUTTON3 runat="server" ID="dnnACTIONBUTTON3" CommandName="PrintModule.Action"
                            DisplayIcon="True" DisplayLink="False" />
                        &nbsp;<dnn:ACTIONBUTTON4 runat="server" ID="dnnACTIONBUTTON4" CommandName="ModuleSettings.Action"
                            DisplayIcon="True" DisplayLink="False" />       
        </div>
        <p>

        </p>
    </div>
</div>


erwin yulianto
 justaskins

Desktop Tower Defense Considered Harmful

Last night I turn on my laptop and start browsing like usual. Read some Article from blogs, and the I'm on Jeremy Zawodny blos and read it's, it's say "Whatever you do, please DO NOT click the link and start playing that game. You may find yourself in the very same time warp that I did...", but I did, I click it. I clik on Desktop Tower Defense, and now I'm trap on it.

It's funny, cause I get warned before, and still click it.
Don't click it...

You have been warned.

Update from AJAX Beta 2 or RC to AJAX RTM on DotNetNuke

This is the continous article from Install AJAX on DotNetNuke

To install the new ASP.NET AJAX Release and AJAX Control Toolkit, download it from http://ajax.asp.net/downloads 

First thing must do is uninstall the RC version of ASP.NET AJAX Beta 2, then Install the ASP.NET AJAX Release.
If its not changes then it should on folder C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025.

When the installation are done, and you had extract the AjaxControlToolkit, now you had done your preparation.

Open your DotNetNuke Project with ASP.NET AJAX Beta 2 inside. Collect from the installation folders the followings files and place them on your website under the bin directory:

  • System.Web.Extensions.dll
  • System.Web.Extensions.Design.dll
  • AJAXExtensionsToolbox.dll
  • AjaxControlToolkit.dll

AJAX Update

The AutoCompleteExtender control is now part of the ASP.NET AJAX Control Toolkit. If you used the AutoCompleteExtender control in ASP.NET Web pages, you must install the Control Toolkit and then update the tag prefix for that control. The following examples show the required change.

ASP.NET AJAX RC :

<asp:AutoCompleteExtender ID="autoComplete1" runat="server"
    TargetControlID="LocationTextBox2"
    ServicePath="UIService.asmx"
    ServiceMethod="GetCities" />

Changes it to this (ASP.NET AJAX RTM) :

<ajaxToolkit:AutoCompleteExtender ID="autoComplete1" runat="server"
    TargetControlID="LocationTextBox2"
    ServicePath="UIService.asmx"
    ServiceMethod="GetCities" />

Update The Web.Config

As part of the migration, you must manually change the Web.config file of existing ASP.NET AJAX applications as shown in this section, or you can look at the sample under Web.Config on installation folders.

<system.web>
  <pages>
    <controls>
 
  • The AutoCompleteExtender control is now part of the ASP.NET Control Toolkit and is therefore not part of the same namespace as controls in the core release. To use the AutoCompleteExtender control, you must download and install the Control Toolkit as described earlier, and then register the toolkit tag prefix by adding the following entry in the <controls> section:
 
<add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit"
  assembly="AjaxControlToolkit"/>
 
 
<system.web>
  <pages>
    <tagMapping>
 
  • The ASP.NET AJAX validator controls that were part of the RC release have been removed. You must remove the following registration entries for those controls from the <tagMapping> section and remove any instances of these controls in your pages.
 
<add tagType="System.Web.UI.WebControls.CompareValidator"
    mappedTagType="System.Web.UI.Compatibility.CompareValidator,
    System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
    PublicKeyToken=31bf3856ad364e35"/>
    
<add tagType="System.Web.UI.WebControls.CustomValidator"
  mappedTagType="System.Web.UI.Compatibility.CustomValidator,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35"/>
  
<add tagType="System.Web.UI.WebControls.RangeValidator"
  mappedTagType="System.Web.UI.Compatibility.RangeValidator,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35"/>

<add tagType="System.Web.UI.WebControls.RegularExpressionValidator"
  mappedTagType="System.Web.UI.Compatibility.RegularExpressionValidator,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35"/>

<add
  tagType="System.Web.UI.WebControls.RequiredFieldValidator"
  mappedTagType="System.Web.UI.Compatibility.RequiredFieldValidator,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35"/>

<add tagType="System.Web.UI.WebControls.ValidationSummary"
  mappedTagType="System.Web.UI.Compatibility.ValidationSummary,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35"/>

<add verb="*" path="*_AppService.axd" validate="false"
  type="System.Web.Script.Services.ScriptHandlerFactory,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35"/>
 
 
 
<system.web>
  <httpHandlers>
 
  • The Application Service entry point is now implemented as an HTTP handler that requires the following change to the <httpHandlers> section:
 
<add verb="*"
  path="*_AppService.axd"
  validate="false"
  type="System.Web.Script.Services.ScriptHandlerFactory,
      System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
      PublicKeyToken=31bf3856ad364e35"/>
 
 
<system.webServer>
  <httpHandlers>
 
  • If you are using IIS 7, you must add the following entries as well:

 

<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>

<add name="ScriptHandlerFactory" verb="*" path="*.asmx"
  preCondition="integratedMode"
  type="System.Web.Script.Services.ScriptHandlerFactory,
      System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
      PublicKeyToken=31bf3856ad364e35"/>

<add name="ScriptHandlerFactoryAppServices" verb="*"
  path="*_AppService.axd" preCondition="integratedMode"
  type="System.Web.Script.Services.ScriptHandlerFactory,
      System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
      PublicKeyToken=31bf3856ad364e35"/>

<add name="ScriptResource"
  preCondition="integratedMode" verb="GET,HEAD"
  path="ScriptResource.axd"
  type="System.Web.Handlers.ScriptResourceHandler,
  System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
  PublicKeyToken=31bf3856ad364e35" />
 
erwin yulianto

Install Ajax on DotNetNuke

Please download and install locally Microsoft ASP.NET AJAX v1.0 BETA 2 and ASP.NET AJAX Control Toolkit.

Collect from the installation folders the followings files and place them on your website under the bin directory:
  • Microsoft.Web.Extensions.dll (ASP.NET AJAX v1.0)
  • Microsoft.Web.Extensions.Design.dll (ASP.NET AJAX v1.0)
  • AJAXExtensionsToolbox.dll (ASP.NET AJAX v1.0)
  • AjaxControlToolkit.dll (ASP.NET AJAX Control Toolkit)
Copy also the folder ScriptLibrary (ASP.NET AJAX v1.0) to the root folder of DotNetNuke.

Modify your web.config

Please make a backup of your existing web.config before proceeding. Following is a web.config provided with ASP.NET AJAX v1.0 BETA 2 (you can find it in the installation folder). Modify your site configuration with the values here listed.

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="microsoft.web" type="Microsoft.Web.Configuration.MicrosoftWebSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="Microsoft.Web.Configuration.ScriptingSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="webServices" type="Microsoft.Web.Configuration.ScriptingWebServicesSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="Microsoft.Web.Configuration.ScriptingJsonSerializationSection,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission="false" />
<section name="profileService" type="Microsoft.Web.Configuration.ScriptingProfileServiceSection,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission="false" />
<section name="authenticationService" type="Microsoft.Web.Configuration.ScriptingAuthenticationServiceSection,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission="false" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>

<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="Microsoft.Web.UI"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="Microsoft.Web.UI.Controls"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
<tagMapping>
<add tagType="System.Web.UI.WebControls.CompareValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.CompareValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.CustomValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.CustomValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RangeValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.RangeValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RegularExpressionValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.RegularExpressionValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.RequiredFieldValidator"
mappedTagType="Microsoft.Web.UI.Compatibility.RequiredFieldValidator,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagType="System.Web.UI.WebControls.ValidationSummary"
mappedTagType="Microsoft.Web.UI.Compatibility.ValidationSummary,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</tagMapping>
</pages>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="false">
<assemblies>
<add assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>

<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET" path="ScriptResource.axd" type="Microsoft.Web.Handlers.ScriptResourceHandler"  validate="false"/>
</httpHandlers>

<httpModules>
<add name="WebResourceCompression" type="Microsoft.Web.Handlers.WebResourceCompressionModule,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptModule" type="Microsoft.Web.UI.ScriptModule,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web> <microsoft.web>
<scripting>
<webServices>
<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
<!--
<jsonSerialization maxJsonLength="500">
<converters>
<add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
</converters>
</jsonSerialization>
-->

<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "true|false"/>
-->

<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
and modified in Atlas applications, you need to add each property name to the setProperties and
getProperties attributes. -->
<!--
<profileService enabled="true"
setProperties="propertyname1,propertyname2"
getProperties="propertyname1,propertyname2" />
-->
</webServices>
</scripting>
</microsoft.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>

<modules>
<add name="ScriptModule" preCondition="integratedMode" type="Microsoft.Web.UI.ScriptModule,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>

<handlers>
<remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="Microsoft.Web.Script.Services.ScriptHandlerFactory,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
</configuration>

 

In the end, check the value of the xhtmlconformance parameter. It must be set to "Transitional" in order to work with ASP.NET AJAX v1.0.

<xhtmlconformance mode="Transitional">

 

Transitional">

Modify your skin

DotNetNuke renders a page through a dynamic process that includes many steps. A ScriptManager, the core object of ASP.NET AJAX, must to be included on top of the skin that you want to use with AJAX.

Locate your skin ASCX files under /Root/Portals/_default/Skins/[YourSkin].

The following example shows how to modify the DNN-Blue skin shipped with DotNetNuke. The skin is composed by 4 ASCX:
  • Horizontal Menu - Fixed Width.ascx
  • Horizontal Menu - Full Width.ascx
  • Vertical Menu - Fixed Width.ascx
  • Vertical Menu - Full Width.ascx

Apply the part in blue to each file (or to the one you intend to use) as shown below.

<%@ Control language="vb" CodeBehind="~/admin/Skins/skin.vb" AutoEventWireup="false" Explicit="True" 
           Inherits="DotNetNuke.UI.Skins.Skin" %>
<%@ Register TagPrefix="dnn" TagName="LOGO" src="/dnn/Portals/0/~/Admin/Skins/Logo.ascx" %>
<%@ Register TagPrefix="dnn" TagName="BANNER"
                         src="/dnn/Portals/0/~/Admin/Skins/Banner.ascx" %>
<%@ Register TagPrefix="dnn" TagName="MENU"
                         src="/dnn/Portals/0/~/Admin/Skins/SolPartMenu.ascx" %>
<%@ Register TagPrefix="dnn" TagName="SEARCH"
                         src="/dnn/Portals/0/~/Admin/Skins/Search.ascx" %>
<%@ Register TagPrefix="dnn" TagName="CURRENTDATE"
                         src="/dnn/Portals/0/~/Admin/Skins/CurrentDate.ascx" %>
<%@ Register TagPrefix="dnn" TagName="BREADCRUMB"
                         src="/dnn/Portals/0/~/Admin/Skins/BreadCrumb.ascx" %>
<%@ Register TagPrefix="dnn" TagName="USER" src="/dnn/Portals/0/~/Admin/Skins/User.ascx" %>
<%@ Register TagPrefix="dnn" TagName="LOGIN" src="/dnn/Portals/0/~/Admin/Skins/Login.ascx" %>
<%@ Register TagPrefix="dnn" TagName="COPYRIGHT"
                          src="/dnn/Portals/0/~/Admin/Skins/Copyright.ascx" %>
<%@ Register TagPrefix="dnn" TagName="TERMS"
                          src="/dnn/Portals/0/~/Admin/Skins/Terms.ascx" %>
<%@ Register TagPrefix="dnn" TagName="PRIVACY"
                         src="/dnn/Portals/0/~/Admin/Skins/Privacy.ascx" %>
<%@ Register TagPrefix="dnn" TagName="DOTNETNUKE"
                         src="/dnn/Portals/0/~/Admin/Skins/DotNetNuke.ascx" %>
<%@ Register TagPrefix="dnn" TagName="LANGUAGE"
                         src="/dnn/Portals/0/~/Admin/Skins/Language.ascx" %>

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />

Congratulations, the installation of ASP.NET AJAX v1.0 BETA 2 is now completed!

Find my ID, Bloging again

Today, I just sitting alone in my office.
working with my computer infront of me.
Today, I check my old email, try to delete some old files.
and then I just found my ID on this blogs.
uuuuu.... I'm so happy, cause now I can start bloging again.
for one year I forgot my ID and Password for this blog, don't know what to do.

and now, I can express my self in this blogs.
bisa cuap-cuap sepuasnyaaa...(indonesia languages) hihi...

in english of course.

^_^

9 application in 1 month, a crazy project

From the begin of december (1 december 2005 to 31 december 2005), I had a lot of work to do. There was a huge project must made. And it must done on 31 december 2005. I call it "New Year Project DOOM"

A goverment project, Build not just one application but nine (9) application must be made. It Sound Crazy is'n it??
I love .Net, and I'd want to made it with this tools. But can it done the project?

In my company, there is only a little person, 10 person in the central team (2 Project manage, 3 Program manage, 1 Sys Eng, 4 developer, and 1 out source developer). others person is just for help.

Goal :
"Build an integrated application, for 35 client server in diferent location with 1 central server, and can access with the public"

That 10 person, think so hard. How could be made 9 integrated application in just one month??, and then we had a decision :

  1. Use a Scanner to fast entry data
  2. Use SQL Server 2000 as the database
  3. Use SharePoint Portal to manage entire application
  4. Use Cube for reporting
  5. and last Use MSOffice Infopath to build fast application

Database            : More than 400 integrated table, 1 database developer
Share point Portal  : 1 developer, and 1 sys eng to build the web and manage portal
Scanner Application : 1 developer to build the form letter so users can entry handwrite
                     
data
Infopath            : 1 developer(me) and 1 out source dev.
                      We build with Infopath so users can entry data when their status 
                      
is Offlines or Online.

 

Conditions till now :

  • 150 Infopath Application form had made, and need at least 50 more forms.
  • more than 300 table had made
  • at least 100 Scanner form application had made

 

 

two days more till the death line....


Wish me luck, guys...