Posts

Showing posts from 2009

Session Timeout Notification

Image
Sometimes you may need to get notification if session of an Asp.net application get expired. For the basics of session management you can find my post here.

In all of the above cases, the session supposed to be timeout. It will handle by the asp.net runtime, which we can set in the web.config <sessionState timeout="1" />. Default timeout is 20 mins. Which means after 20 min session will become abandon and if you are not correctly handle it will leads to system crash. What general recommendation is, always check null of the session item that you’re going to refer. But in most user oriented application, we should notify the user that ,"Hello your current session has expired, what do you want to do?"

How to achieve this?

Future IT Practitioner : Ethics

Ethics in a profession will describe professional behavior among professionals. Further it will describes an individual’s behavior towards to his or her profession. Because misbehaving of few professional will disrupt the profession as whole. Hence professional bodies like BCS, IEEE defines “Code of Ethics” for their members.

In both “Code of Ethics” we can see common areas they tried to address.
Public Safety
We have responsibilities to protect the public in many ways. Special due care should be paid for designing, developing and maintaining critical systems.
Therac -25  and London ambulance service failure  are two incidents that come into play.Avoid Discriminations
This is a wide area to talk about but, basically we should not less favorable because of race, skin colour, religion etc.Professional Obligations
Here it addresses, our competency level, integrity with other professionals ,avoiding conflict of interest etc.Legal Obligations
This has wide scope that will differ from countr…

Future IT Practitioner

It is crystal clear that our current society became information society. Throughout the world organizations and individuals are now starving for information. This happens purely because of following factors,
Expansion of IT
IT is no longer an isolated unit in an organization. It is link into other units with helping out for their work.Evaluation of technologies
Inevitably Internet, ERPs, SOA, SAAS (Software as a service) etc.By considering all the facts, IT became truly global profession. All IT practitioners across the world have contributed and contributing to this global profession.

Even though, IT is global profession it has no limitations as a profession like other prominent professions, Medical practicing, Lawyers, Accountants etc. What I’m trying to say is, for an example, no control of entry for IT, like, doctors or engineers. Although this type of control of entry is necessary but it’s too late to implement at the moment. We know, UK and USA had put enormous efforts for this,…

Update Progress with AJAX UpdatePanel

Image
In this post I will demonstrate how to create update progress with UpdatePanel, a similar one that we can see in our gmail, like following,


Following key things to be addressed.
It should be on top-center of the pageIt should be on top all other HTML controlsWhen scrolling it should be placed on relative position of the current scroll position.To achieve this we can use many alternatives but I would use a simple approach.
In addition to the UpdatePanel, I will use </div>, CSS style and javaScript.

Here we go.
Add a div tag within body element.
<div class="divProg" id="divProg"></div>Note that id and class attributes are necessary.

Add following css class to the web page or style sheet file. Keep in mind, without position: absolute;z-index: 10; css properties this won’t work as we expected.
.divProg { position: absolute; left: 0px; top: 0px; width: 100px; height: 0px; z-index: 10; border: 1px none #000000; visibility: hidden; background-colo…

Be Aware Gmail SMS

Image
You may received an email saying Send & Receive SMS From Your Email !!!

Don't trust that, it's completely fake, but 100% same as GMail logging screen. This will stole your password.

C# New features

Image
I have move to .net 3.5 and found really cool enhancements in C# language(in VB.Net too).
We can create properties like this
class ProcessData { public int ID { get; set; } public string Name { get; set; } public long Memory { get; set; } }
Compiler will emits the private variables for properties and nothing diffrent in IL code.

Object Initializer
Lets say we want to populate list of ProcessData class, before C# 3.0 came we have to code like this
List processList = new List(); foreach (Process p in Process.GetProcesses()) { ProcessData pd = new ProcessData(); pd.ID = p.Id; pd.Name = p.ProcessName; pd.Memory = p.WorkingSet64; processList.Add(pd); }
Note its IL code,
IL_001f: ldloc.2 IL_0020: ldloc.1 IL_0021: callvirt instance int32 [System]System.Diagnostics.Process::get_Id() IL_0026: callvirt instance void NewFeatures.ProcessData::set_ID(int32) IL_002b: nop IL_002c: ldloc.2 IL_002d: ldloc.1 IL_002e: callvirt instance string [System]System.Diagnostics.Process::get_ProcessName() IL_0033: c…

Application File Not Valid in XBAP

Image
When you see this error in XBAP application, which means you changed application manifest file from outside. To resolve this
we can use .net tool, which comes with .net SDK, called mage.exe or mageui.exe. More about mage.exe Frequently used commands to resolve this is mage.exe -u and mage.exe -cc. Actually this really happened to me, for one user, problem was remain even use mage.exe until he re-install .net runtime.

How to create Biztalk schema from FOR XML EXPLICIT

Image
It's very straightforward to create Biztalk schema for SQL adapter if we use FOR XML AUTO. But we'll come across that FOR XML AUTO is not enough to get data from SQL, so that we use FOR XML EXPLICIT. In this case we have to follow some additional things to get biztalk schema generated properly. I''l go step-by-step with an example. This situation really came to me that's why I motivated to do this post.

Assume my SP,BIZTK_GetPPS300Attributes @pono, will generates required XML data set with FOR XML EXPLICIT.
Open Visual Studio and switch to Biztalk Explorer.
Create a Receive Port.
Create a Receive Location for that port and set following properties

Set Address(URI) property as following

Value of Document Root Element Name will be Root Element of schema.
Document Target Namespace will be schema's target namespace
For this example SQL Command will be exe BIZTK_GetPPS300Attributes 12345

Create a send port and set following properties

Enable Receive Location and start Send po…

Asp.NET Session Management

Image
In Asp.net, there are 4 methods available for session management.

InProc
This is the default mode used in ASP.net. Session state will be stored on same ASP.net
process and perform best. If IIS restarts session state will lost.
Use when, Session data is not critical and Web application hosted in a single server.

StateServer
This is, Windows NT service called ASPState, used to store session state out of ASP.net process.


To enable this , Start the service, run command
net start aspnet_state 
In the web.config add or change following element

<configuration>
<system.web>
<sessionState mode="StateServer"
stateConnectionString="tcpip=servername:portno"
cookieless="false"
timeout="20"/>
</system.web>
</configuration>
By default stateConnectionString is 127.0.0.1:42424

SqlServer
Sess…

Silverlight Competition

Image

Kaspersky Web Site Hacked With SQL Injection

The hacker, known as Unu, hacked Kaspersky web site on Feb. 7, 2009  via a simple SQL injection attack. more ...
As I know that site was built using php & mysql.
In ASP.Net, such SQL injection attack can avoid if we follow standard guidelines. As a developer keep followings in mind.

Always, don’t believe in what user has input.If executes SQL command from a page, don’t use concatenated SQL commands. Always use respective DbParameter class to build a command string.
Following example using  SQLParamerter.
Incorrect
“SELECT cusid,cusname  FROM customer WHERE cusid= “ + userinput “
Correct
“SELECT cusid,cusname  FROM customer WHERE cusid= @userinput “
In the production version of your web application, turn off tracing and avoid <customErrors mode="Off"/> setting in web.config.
Don’t give error messages that intruder can guess information about your database.