Navigatie

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Archief

Categorieën

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Sign In

Zoeken

# Tuesday, 14 February 2006
Tuesday, 14 February 2006 09:33:22 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Via onderstaande deze url kan je de Visual Studio 2005 poster met meestgebruikte Namespaces en Classes downloaden.
Comments [0] | | # 
# Friday, 03 February 2006
Friday, 03 February 2006 22:57:45 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

In VB.Net is het mogelijk type safety te omzeilen en standaard staat het omzeilen van de checks aan(ook in VB.NET 2005). Ik vraag me af waarom dit standaard wordt gedaan? Het zal toch niet zijn omdat je dan minder fouten tijdens het compileren krijgt? Persoonlijk vind ik een runtime fout namelijk veel erger. Neem de volgende functie:

Function GetValue(ByVal i As Single) As Single

    If i = 1 Then

        Return i

    Else

        Return "waarde als string"

    End If

End Function

 

Wanneer ik onderstaande regel gebruik om deze functie aan te roepen zal er geen foutmelding ontstaan, er wordt immers een single terug gegeven.

 

Dim waarde As Single = GetValue(1)

 

Wanneer ik echter de volgende aanroep gebruik  krijg ik wel een foutmelding omdat er geprobeerd wordt een string aan een single terug te geven.

 

Dim waarde As Single = GetValue(2)

 

Met Option Strict On zorg je ervoor dat type safety checks aanstaan. Zet deze optie dus altijd aan als je in VB.Net programmeert. Het beste kan je dit in de properties van je project instellen.

Comments [4] | | # 
# Monday, 23 January 2006
Monday, 23 January 2006 20:19:16 (GMT Standard Time, UTC+00:00) ( ASP.NET )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Afgelopen week liep ik tegen een probleem aan waarbij authenticatie timeout minuten eerder optrad dan sessie timeout, terwijl beide op 20 minuten stonden ingesteld. De oorzaak was een verschil tussen de werking van sessie timeout en authenticatie timeout.

Sessie timeout wordt elke keer vernieuwd wanneer een pagina wordt opgevraagd. Dus wanneer je in je web.config aangeeft dat de sessie na 20 minuten verloopt, zal deze elke keer dat een pagina wordt opgevraagd 20 minuten na nu worden gezet(wat logisch is). Authenticatie timeout wordt pas vernieuwd wanneer 50% van de resterende tijd verstreken is. Dus wanneer je de authenticatie timeout dezelfde waarde geeft als sessie timeout zal deze de eerste 10 minuten niet vernieuwd worden. Even terug naar de pagina waar een gebruiker inlogt om 8:00. De volgende waarden worden gezet:

Sessie Timeout = 8:20
Authenticatie Timeout = 8:20

Vervolgens doet de gebruiker na 8 minuten weer een actie. De volgende waarden worden gezet:

Sessie Timeout = 8:28
Authenticatie Timeout = 8:20

Om 8:25 vraagt de gebruiker een pagina op en wordt naar de loginpagina verwezen omdat er een authenticatie timeout is opgetreden. Het menu wordt echter opgebouwd aan de hand van een sessie variabele.  Deze variabele bestaat nog steeds en toont dus het verkeerde menu. Ik heb dit opgelost door authenticatie timeout drie keer hoger te zetten dan sessie timeout.

In het Session_OnStart event van het global.asax bestand log ik middels onderstaande regel de gebruiker automatisch uit wanneer een nieuwe sessie wordt gestart(zelfs als deze niet is ingelogd).

FormsAuthentication.SignOut()

De reden waarom ik dit in het Session_OnStart event heb geplaatst is dat het Session_OnEnd event niet altijd getriggerd wordt en op deze manier weet ik zeker dat een gebruiker niet is ingelogd wanneer een sessie start.

Comments [0] | | # 
# Monday, 16 January 2006
Monday, 16 January 2006 16:26:35 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Momenteel zit ik op een klus waar VB.NET gebruikt wordt. Daarom ben ik erg blij met de "Paste As Visual Basic" add-in. Waar ik zonder problemen mijn C# code als VB.NET Code kan pasten. Download de add-in hier

Comments [0] | | # 
# Sunday, 11 December 2005
Sunday, 11 December 2005 08:52:15 (GMT Standard Time, UTC+00:00) ( ASP.NET )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Via onderstaande link word je uitgelegd hoe je een website project vanuit windows explorer kan starten. Erg handig.

Lees meer

Comments [0] | | # 
# Thursday, 08 December 2005
Thursday, 08 December 2005 16:54:54 (GMT Standard Time, UTC+00:00) ( C# )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

LINQ is een extensie op C# 2.0. LINQ stelt ons in staat Stong Typed Queries op in memory collecties, Relationele data, of XML bestanden uit te voeren. Ook al wordt deze technologie pas in C# 3.0 geïntegreerd is het zeker de moeite waard om eens mee te experimenteren. Onderstaand een lijst met meer links naar informatie:

Comments [0] | | # 
# Monday, 05 December 2005
Monday, 05 December 2005 10:53:10 (GMT Standard Time, UTC+00:00) ( C# )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Het C# team heeft een lijst met handige tools op MSDN geplaatst. Meer info vind je hier.

Comments [0] | | # 
# Wednesday, 30 November 2005
Wednesday, 30 November 2005 10:40:17 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Sinds vandaag mag ik me Microsoft Certified Application Developer (For Microsoft .NET) noemen. Ook mag ik het bijbehorende logo gebruiken. Wat ik me wel afvraag is of ik dat logo ooit voor een ander doel dan dit blogartikel zal gebruiken.

MCAD logo

Comments [3] | | # 
# Thursday, 24 November 2005
Thursday, 24 November 2005 17:46:57 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Soms wil je een pagina in zijn geheel cachen met uitzondering van één element(bijvoorbeeld loginnaam, of de tijd waarop de pagina is opgevraagd). In ASP.Net 1.1 kan je voor dat ene element een control ontwikkelen en deze in de output cache directive VaryByControl opgeven. In ASP.NET 2.0 vind je het substitution Control. Dit control wordt in zijn geheel nooit gecached. Verder kan je binnen dit control een Static Methode opgeven. Deze methode moet de parameter (HttpContext context) bevatten en een string retourneren.

Door het gebruik van onderstaand page directive zorgen we ervoor dat de pagina voor één minuut volledig gecached wordt.
<%@ OutputCache Duration="60" VaryByParam="none" %>

Onderstaand element wordt altijd gecached

De pagina staat in cache sinds:
<asp:Label ID="lblInCache" runat="server" Text="Label"></asp:Label>

Onderstaand element wordt niet gecached omdat gebruik is gemaakt van een Substitution control. Dit control roept de methode GetCurrentDateTime aan wat de huidige datum en tijd als retourneerd.

Pagina werd opgevraagd op:
<asp:Substitution ID="sbstPageAccessed" runat="server" MethodName="GetCurrentDateTime" />

In het code behind bestand wordt de waarde van lblInCache gevuld met de huidige datum en tijd. Omdat de pagina in de cache geplaatst is wordt deze regel alleen uitgevoerd wanneer de pagina verlopen is, of voor de eerste keer wordt opgevraagd.

protected
void Page_Load(object sender, EventArgs e)
{
   lblInCache.Text = DateTime.Now.ToString();
}

Onderstaande regel wordt altijd uitgevoerd omdat deze vanuit het substitution control wordt aangeroepen.

protected
static string GetCurrentDateTime(HttpContext context)
{
   return DateTime.Now.ToString();
}

Download de voorbeeldcode hier.

Comments [0] | | # 
# Wednesday, 09 November 2005
Wednesday, 09 November 2005 07:52:23 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Met Visual Studio 2005 is het mogelijk een website te ontwikkelen op basis van een starter kit. Starter kits bieden volledig werkende  basis functionaliteit, zijn  in Visual studio geïntegreerd en volledig uit te breiden. Microsoft heeft een aantal starter kits ontwikkeld, maar ook de de .NET community zit niet stil. Vanochtend zag ik dat een Webwinkel met Paypal(de sponsor) functionaliteit Starter Kit ontwikkeld is. De Starter Kit biedt onderstaande functionaliteit:

  • Product catalogus
  • Shopping Cart
  • Credit card betalingen via de PayPal Website
  • Login Based en anoniem winkelen
  • Order History
  • Gebruikers logs

Eigenlijk geen starter kit meer te noemen dus. De starter kit is open source en hier te dowloaden.

Comments [1] | | #