Tuesday, May 16, 2006

Smart refence state class for web apps

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.SessionState;

public partial class _Default : System.Web.UI.Page
{
MyState _state = null;

protected void Page_Load(object sender, EventArgs e)
{
this._state = MyState.Init(this.Session);
}
protected void Button1_Click(object sender, EventArgs e)
{
this._state.Antal += 1;
_tbAntal.Text = this._state.Antal.ToString();
}
protected void Button2_Click(object sender, EventArgs e)
{
this._state.Antal += 3;
_tbAntal.Text = this._state.Antal.ToString();
}
}

class MyState
{
const string _name = "{1374BFDE-B051-4fa3-8A7A-E506233B2AB6}";

public int Antal = 0;

public static MyState Init( HttpSessionState state )
{
MyState s = null;
if(state[_name] == null)
{
s = new MyState();
state[_name] = s;
}
else
s = state[_name] as MyState;

return s;
}
}

Visual Studio 2005 Web Application Projects

Web Application Projects provide a companion web project model that can be used as an alternative to the built-in Web Site Project in Visual Studio 2005. This new model is ideal for web site developers who are converting a Visual Studio .Net 2003 web project to Visual Studio 2005. (Released May 8, 2006)


More info

Friday, May 12, 2006

Week of year

Updated post that works for Sweden:

private static int WeekNumber_Entire4DayWeekRule( DateTime date )
{
// Updated 2004.09.27. Cleaned the code and fixed a bug. Compared the algorithm with
// code published here . Tested code successfully against the other algorithm
// for all dates in all years between 1900 and 2100.
// Thanks to Marcus Dahlberg for pointing out the deficient logic.
// Calculates the ISO 8601 Week Number
// In this scenario the first day of the week is monday,
// and the week rule states that:
// [...] the first calendar week of a year is the one
// that includes the first Thursday of that year and
// [...] the last calendar week of a calendar year is
// the week immediately preceding the first
// calendar week of the next year.
// The first week of the year may thus start in the
// preceding year
const int JAN = 1;
const int DEC = 12;
const int LASTDAYOFDEC = 31;
const int FIRSTDAYOFJAN = 1;
const int THURSDAY = 4;
bool ThursdayFlag = false;

// Get the day number since the beginning of the year
int DayOfYear = date.DayOfYear;

// Get the numeric weekday of the first day of the
// year (using sunday as FirstDay)
int StartWeekDayOfYear = ( int ) ( new DateTime ( date.Year, JAN, FIRSTDAYOFJAN ) ).DayOfWeek;
int EndWeekDayOfYear = ( int ) ( new DateTime( date.Year, DEC, LASTDAYOFDEC ) ).DayOfWeek;

// Compensate for the fact that we are using monday
// as the first day of the week
if( StartWeekDayOfYear == 0 )
StartWeekDayOfYear = 7;
if( EndWeekDayOfYear == 0 )
EndWeekDayOfYear = 7;

// Calculate the number of days in the first and last week
int DaysInFirstWeek = 8 - ( StartWeekDayOfYear );
int DaysInLastWeek = 8 - ( EndWeekDayOfYear );

// If the year either starts or ends on a thursday it will have a 53rd week
if( StartWeekDayOfYear == THURSDAY || EndWeekDayOfYear == THURSDAY )
ThursdayFlag = true;

// We begin by calculating the number of FULL weeks between the start of the year and
// our date. The number is rounded up, so the smallest possible value is 0.
int FullWeeks = ( int ) Math.Ceiling( ( DayOfYear - ( DaysInFirstWeek ) ) / 7.0 );

int WeekNumber = FullWeeks;

// If the first week of the year has at least four days, then the actual week number for our date
// can be incremented by one.
if( DaysInFirstWeek >= THURSDAY )
WeekNumber = WeekNumber +1;

// If week number is larger than week 52 (and the year doesn't either start or end on a thursday)
// then the correct week number is 1.
if( WeekNumber > 52 && !ThursdayFlag )
WeekNumber = 1;

// If week number is still 0, it means that we are trying to evaluate the week number for a
// week that belongs in the previous year (since that week has 3 days or less in our date's year).
// We therefore make a recursive call using the last day of the previous year.
if( WeekNumber == 0 )
WeekNumber = WeekNumber_Entire4DayWeekRule( new DateTime( date.Year-1, DEC, LASTDAYOFDEC ) );

return WeekNumber;
}

Friday, March 24, 2006

Winform 2.0 annoyance on XP

Having problems seeing your design when running you windows forms app on XP? Looks good in VS design, but colorless and dull in runtime?

Then you need to make this fix to the main method:

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
// Calling DoEvents after the above method call seems to fix this issue
Application.DoEvents();
Application.Run(new Form1());
}

// Lazze

Saturday, February 25, 2006

First blog first time

Howdy,

As they say - It is a first time for everything!

I'll try to compose myself and publish some good stuff about .NET programming (C#) and maybe some general PC/Hardware stuff!

Good to be here!

//Lazze

Lazzes Smart Home - 2023

Here is an overview of the components in the Smart Home as of now. More stuff than I tought :-)