Navigatie

Archief

Categorieën

Blogroll

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Disclaimer
De inhoud van deze weblog betreft uitsluitend mijn persoonlijke mening, niet die van mijn werkgever. Mijn werkgever is niet verantwoordelijk voor de inhoud en sluit hierbij iedere aansprakelijkheid uit.

Sign In

Zoeken

 Thursday, December 08, 2005
Thursday, December 08, 2005 4:54:54 PM (W. Europe Standard Time, UTC+01:00) ( )

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, December 05, 2005
Monday, December 05, 2005 10:53:10 AM (W. Europe Standard Time, UTC+01:00) ( )

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

Comments [0] | | # 
 Wednesday, November 30, 2005
Wednesday, November 30, 2005 10:40:17 AM (W. Europe Standard Time, UTC+01:00) ( )
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, November 24, 2005
Thursday, November 24, 2005 5:46:57 PM (W. Europe Standard Time, UTC+01:00) ( )

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, November 09, 2005
Wednesday, November 09, 2005 7:52:23 AM (W. Europe Standard Time, UTC+01:00) ( )

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] | | # 
 Tuesday, November 01, 2005
Tuesday, November 01, 2005 4:50:42 PM (W. Europe Standard Time, UTC+01:00) ( )

URL Mapping is nieuw in Asp.Net 2.0 en wordt gebruikt om een alias als url te kunnen gebruiken. Dit kan erg handig zijn wanneer je een pagina ontwikkelt, welke afhankelijk is van een parameter in de querystring (bijvoorbeeld http://www.mijnsite.nl/default.aspx?pageid=1 voor de homepage). Je wilt dat de bezoeker alleen maar http://www.mijnsite.nl/home te zien krijgt.
Onderstaande sectie in de web.config geeft aan dat de bezoeker bij het opvragen van http://www.mijnsite.nl/home in werkelijkheid http://www.mijnsite.nl/default.aspx?pageid=1 opvraagt. Ook is het mogelijk een andere paginanaam op te geven (bv profile.aspx) voor de url default.aspx?pageid=4.

<urlMappings enabled="true">
   <add url="~/home" mappedUrl="~/default.aspx?pageid=1"/>
   <add url="~/blog" mappedUrl="~/default.aspx?pageid=2"/>
   <add url="~/faq" mappedUrl="~/default.aspx?pageid=3"/>
   <add url="~/profile.aspx" mappedUrl="~/default.aspx?pageid=4"/>
</urlMappings>

In het code behind bestand van default.aspx kan je  vervolgens de pagina benaderen alsof deze direct werd opgevraagd. Onderstaande code bekijkt welke pagina werd opgevraagd.

switch (Context.Request["pageid"]){
  case "1" :
    lblOut.Text = "Home";
    break;
  case "2":
    lblOut.Text = "Blog";
    break;
  case "3":
    lblOut.Text = "Faq";
    break;
  case "4":
    lblOut.Text = "Profile.aspx";
    break;
  default:
    lblOut.Text = "Default.aspx";
    break;
}

Bijgevoegd zip bestand bevat bovenstaande web.config en code. Download

Comments [0] | | # 
 Monday, October 31, 2005
Monday, October 31, 2005 1:47:40 PM (W. Europe Standard Time, UTC+01:00) ( )

Met de komst van visual studio 2005, SQL Server 2005 en Biztalk 2006 wordt tevens een nieuw certificeringstraject gelanceerd. Men kan kiezen voor:

  • Microsoft Certified Technology Specialist (MCTS)
  • Microsoft Certified IT Professional (MCITP)
  • Microsoft Certified Professional Developer (MCPD)

Waar bij MCTS echt de focus ligt op de technische kennis van het product. Bij MCITP en MCPD ligt de focus op zowel technische kennis als het ontwerpen van een applicatie, management en planning. Er komen upgrade examens voor MCAD en MCSD gecertificeerden.

Bovenop deze trajecten bestaat er een Microsoft Certified Architect Program. Om hier deel aan te kunnen nemen moet je 10 jaar ervaring als IT-er hebben en 3 jaar architect zijn. Ook wordt de deelnemer eerst gescreened door Microsoft voordat de deelnemer kan aanvangen.

Lees meer

Comments [0] | | # 
 Wednesday, October 19, 2005
Wednesday, October 19, 2005 3:59:46 PM (W. Europe Daylight Time, UTC+02:00) ( )

Om een website te compileren en te deployen in ASP.Net 1.x was een build, copy van ASPX files en de bin directory voldoende. ASP.Net 2.0 maakt geen gebruik meer van dit mechanisme. ASP.Net 2.0 compileerd de bestanden on the fly en maakt van elk codebehind file een kleine DLL wanneer een gebruiker een pagina van de website opvraagt. Dit houdt in dat Codebehind files ook op de server geplaatst moeten worden, iets dat we absoluut niet willen. Daarom is een command line tool beschikbaar waarmee de website volledig gecompileerd wordt.  Deze command line tool heet aspnet_compiler.exe.

Via onderstaand commando heb ik ons eerste .Net 2.0 project succesvol gecompileerd. 
aspnet_compiler -p e:\Inetpub\tom-du.net\Framework c:\compiled -v tomdu.

-p staat voor physieke locatie op schijf
e:\Inetpub\tom-du.net\Framework is de locatie van de sources
c:\Compiled is de target folder
-v staat voor virtuele folder (in ons geval tomdu)

In bovenstaand voorbeeld wordt code en layout gecompileerd in Dll's. In de aspx vind je alleen "This is a marker file generated by the precompilation tool, and should not be deleted!". Mocht je de aspx file wel willen wijzigen zonder opnieuw te compileren kan je de optie -u gebruiken.  

Om nu niet teveel te typen kan je via www.west-wind.com is een gratis tool downloaden wat beschikt over een GUI.

Comments [0] | | #