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

# Friday, August 11, 2006
Friday, August 11, 2006 10:25:39 PM (GMT Daylight Time, UTC+01:00) ( ASP.NET )

Onlangs heb ik een project moeten migreren van .Net 1.1 naar .Net 2.0. Vele warnings kreeg ik omdat klassen obsolete waren. Vandaag had ik het Xml Webcontrol nodig en wilde daar dynamisch xslt aan meegeven. Hiervoor had ik de Transform property nodig, welke een XslTransform object verwacht. Hey was deze niet obsolete? Raar dat je tijdens een migratie eerst alle obsolete klassen moet vervangen en dan vervolgens  bij de eerstvolgende toevoeging weer een obsolete klasse moet gebruiken. Ik weet wel dat de warnings te omzeilen zijn maar ik vind het niet netjes van Microsoft ze hier geen aandacht aan hebben geschonken.

Comments [0] | | # 
# Sunday, July 30, 2006
Sunday, July 30, 2006 4:21:32 PM (GMT Daylight Time, UTC+01:00) ( ASP.NET | Atlas )

Regelmatig spreek ik ASP.Net ontwikkelaars. Vaak vraag ik hen of ze wel eens gebruik maken van Atlas, het Ajax Framework van Microsoft. De meest gehoorde antwoorden zijn; “ja”, “duurt lang om te implementeren” , “maar dat is toch nog niet officieel uit?” “ransig met Javascript”, “ransig met dat XML script”. Op antwoord twee wil ik me voor nu even concentreren.

Via onderstaande ASP.Net applicatie kan een gebruiker zijn/haar naam invoeren en na een druk op de submit knop wordt de invoer getoond, lijkt mij een wereld applicatie :-).

Onderstaand de source:

HTML:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs"
Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Een webapplicatie</title>
</head>
<body>
    <form id="wepappForm" runat="server" defaultbutton="submit">
    <div>
        <asp:Label ID="applicatieInfo" runat="server" Text="" />
        <br /> <br />
        <asp:Label ID="yourName" runat="server" Text="Naam:" />
        <asp:TextBox ID="nameField" runat="server" />
        <asp:Button ID="submit" runat="server" Text="Submit" OnClick="submit_Click" />
        <br /><br />
        <asp:Label ID="typedValue" runat="server" Font-Bold="True" Font-Size="Large" />
        </div>
    </form>
</body>
</html>

C# CodeBehind :

using System;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.applicatieInfo.Text = string.Format("Datum: {0} ", DateTime.Now);
}
protected void submit_Click(object sender, EventArgs e)
{
this.typedValue.Text = string.Format("Uw naam is {0}",this.nameField.Text);
}
}

Wanneer de applicatie wordt gestart wordt bij elke submit de pagina compleet ververst, zie de tijdsindicatie.



Applicatie gestart zonder Atlas functionaliteit




Submit zonder Atlas functionaliteit


Wat je eigenlijk zou willen is dat alleen het formulier wordt ververst en niet de gehele pagina. Met Atlas is dit binnen 5 minuten te realiseren. Allereerst downloaden en installeren we de nieuwste versie van het Atlas Framework. 

Vervolgens kopiëren we de Microsoft.Web.Atlas.dll naar de bin folder van onze applicatie en maken een referentie naar deze DLL.  Deze DLL is te vinden in \Mijn documenten\Visual Studio 2005\Templates\ProjectTemplates\Visual Web Developer\CSharp\ASPNETAtlasWebApplicationCS.zip voor cSharp developers, of Mijn documenten\Visual Studio 2005\Templates\ProjectTemplates\Visual Web Developer\VisualBasic\ASPNETAtlasWebApplicationVB.zip voor de Visual Basic variant.

Voeg aan je system.web sectie van je web.config onderstaande elementen toe

     <pages>
      <controls>
        <add namespace="Microsoft.Web.UI" assembly="Microsoft.Web.Atlas" tagPrefix="atlas"/>
        <add namespace="Microsoft.Web.UI.Controls" assembly="Microsoft.Web.Atlas" tagPrefix="atlas"/>
      </controls>
    </pages>

Dit zijn overigens de minimaal benodigde instellingen. Download hier een volledig voorgeconfigureerde web.config.

Aan de HTML Source voeg ik een Scriptmanager en een Updatepanel toe(in Bold en Italic weergegeven).

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs"
Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Een webapplicatie</title>
</head>
<body>
    <form id="wepappForm" runat="server" defaultbutton="submit">
<atlas:ScriptManager  runat="server" ID="scriptMngr" EnablePartialRendering="true" /> 
    <div>
        <asp:Label ID="applicatieInfo" runat="server" Text="" />
        <br /> <br />
        <atlas:UpdatePanel ID="updName" runat="server">
        <ContentTemplate>
            <asp:Label ID="yourName" runat="server" Text="Naam:" />
            <asp:TextBox ID="nameField" runat="server" />
            <asp:Button ID="submit" runat="server" Text="Submit" OnClick="submit_Click" />
            <br /><br />
            <asp:Label ID="typedValue" runat="server" Font-Bold="True" Font-Size="Large" />
        </ContentTemplate>
        <Triggers>
        <atlas:ControlEventTrigger ControlID="submit" EventName="Click" />
        </Triggers>
        </atlas:UpdatePanel>
     </div>
    </form>
</body>
</html>

In een latere blogpost kom ik nog gedetailleerder op de Scriptmanager en Updatepanel terug, maar voor nu is het voldoende om te weten dat de scriptmanager verantwoordelijk is voor de communicatie tussen Atlas controls en code behind files. Het Update panel is verantwoordelijk voor het verversen van de controls die binnen het ContentTemplate element vallen en het doorsluizen van events die binnen het triggers element vallen. 

In ons geval wordt na het drukken op de submit knop Event Click afgevangen, de postback wordt uitgevoerd en het formulier wordt ververst. Nu starten we onze webapplicatie met Atlas functionaliteit



Applicatie gestart met Atlas functionaliteit


 

Submit met Atlas functionaliteit

Constateer dat de datum/tijd dit keer niet veranderd omdat deze buiten het update panel is geplaatst en dus niet ververst wordt. Ook heb ik niks aan mijn codebehind file hoeven aan te passen. Uiteraard is dit slechts basis functionaliteit, maar in een volgende blogpost over Atlas zal ik dieper ingaan op het Framework.

Downloads:
Comments [4] | | # 
Sunday, July 30, 2006 8:59:11 AM (GMT Daylight Time, UTC+01:00) ( Tools )

Op diverse weblogs is al enige tijd te lezen dat Microsoft komt met een documentatie tool, namelijk  Sandcastle. De CTP hiervan is vanaf nu te downloaden.

Sandcastle Overview:

• Produces quality, comprehensive, familiar MSDN-like documentation.
• Works with or without authored comments.
• Supports Generics and .NET Framework 2.0
• Sandcastle has 2 main components (MrefBuilder and Build Assembler)
• MrefBuilder generates reflection xml file for Build Assembler
• Build Assembler includes syntax generation, transformation..etc
• Sandcastle is used internally to build .Net Framework documentation

Sandcastle is zeer welkom, zeker nu de maker van NDoc heeft aangekondigt zijn contributie aan NDOC te stoppen.

Op de weblog van Sandcastle is tevens  een artikel geplaatst waarin wordt uitgelegd hoe je een chm file maakt met gebruik van Sandcastle.

Download Sandcastle
Lees hier de uitleg

Update 30-7-2006 19:43

Lees tevens de FAQ die zojuist geplaatst is.

Comments [0] | | # 
# Thursday, July 27, 2006
Thursday, July 27, 2006 11:27:47 AM (GMT Daylight Time, UTC+01:00) ( Visual Studio )
Op deze site word je uitgelegd hoe je in Visual studio kan googelen op geselecteerde tekst. Je kan niet alleen zoeken in je source window maar ook in je output windows. Google wordt gestart als een nieuw tabblad binnen visual studio.

De macro werkt in Visual Studio 2003 en 2005

Comments [0] | | # 
# Friday, July 07, 2006
Friday, July 07, 2006 12:10:59 PM (GMT Daylight Time, UTC+01:00) ( Visual Studio )
Wanneer je normaliter een webservice project toevoegt aan je solution wordt deze automatisch meegestart wanneer je je windows applicatie start. Van de week had ik te maken met een webservice die niet automatisch wilde starten en mocht ik deze handmatig gaan starten. Waarom de webservice niet automatisch startte was me onduidelijk. Achteraf bleek dit te komen doordat de webservice was ontwikkeld met gebruik van het web application project. Het web application project wordt behandeld als een windows applicatie i.p.v. website en daardoor wordt de webservice niet automatisch gestart. Inmiddels had ik al een work arround gevonden. Op je solution properties kan je aangeven dat je meerdere projecten wilt starten. Ook kan je de volgorde instellen. In onderstaande afbeelding heb ik mijn webservice en windows project opgegeven. Ik laat de webservice als eerste starten omdat ik op deze manier zeker weet dat deze gestart is voordat mijn applicatie hem gaat consumeren en hierdoor een foutmelding geeft.

Nu wordt zowel de webservice als de windows applicatie gestart. Het vervelende is alleen dat de webservice tijdens het starten een browser scherm opent. Dit is op te lossen door de project properties van de webservice te openen. In het onderdeel web kan je een start action opgeven. Zet deze op "Don't open a page. Wait for a request from an external application".

Comments [0] | | # 
# Monday, July 03, 2006
Monday, July 03, 2006 7:09:08 PM (GMT Daylight Time, UTC+01:00) ( Tools )
Intellisense wordt voor steeds meer talen ondersteund en eigenlijk kan ik ook niet meer zonder. Zojuist heb ik SQL Prompt gedownload waarmee intellisense op SQL statements mogelijk wordt. Na het typen van een sql statement krijg je een lijst met mogelijke velden/tabellen/functies aangeboden.

Ook kan SQL Prompt automatisch je statements naar uppercase omzetten, zodat je niet elke keer hoeft te switchen met je Caps Lock. Deze optie vind je onder "Auto insert"

Verder wordt er gebruik gemaakt van snippets. Wanneer je in je editor “ssf “ intoetst maakt SQL Prompt hier standaard “SELECT * FROM” van. Standaard worden twee snippets meegeleverd, maar deze zijn simpel uit te breiden via de snippet manager. In onderstaande afbeelding maak ik een snippet voor het “INSERT INTO” statement welke via “ii” te benaderen is.

Met de standaard instelling wordt intellisense niet getriggerd door het typen van het SELECT statement. Dit is echter aan te passen in het options scherm van SQL Prompt door het SELECT statement aan de lijst toe te voegen.

SQL Prompt draait in je taskbar en biedt ondersteuning voor :
- SQL Server Management Studio
- Query Analyzer
- Enterprise Manager
- Visual Studio 2003  en 2005
- UltraEdit
- Edit plus 2

SQL PLUS is gratis, mits voor 1 september 2006 gedownload. Download deze must have tool via deze link
Comments [0] | | # 
# Sunday, June 25, 2006
Sunday, June 25, 2006 1:39:47 PM (GMT Daylight Time, UTC+01:00) ( )
De afgelopen drie weken ben ik op vakantie geweest. Het mooie van vakanties is dat je eens een ander biertje dan normaal drinkt. Dit jaar smaakte het verdomd goed. Na een blik op het glas geworpen te hebben begreep ik waarom :-)

Comments [0] | | # 
# Friday, June 02, 2006
Friday, June 02, 2006 7:07:02 PM (GMT Daylight Time, UTC+01:00) ( )

Wanneer het verwijderen van een klein bestand erg lang duurt is het verstandig eens naar de map “Mijn netwerklocaties” te kijken.

Veelal is deze map de oorzaak van alle problemen. In deze map staan snelkoppelingen naar bezochte netwerklocaties. Veelal zijn deze verouderd of verwijderd. Wanneer je deze snelkoppelingen verwijderd zal het verwijderen van bestanden sneller gaan.

Wanneer dit het probleem niet oplost, is het ook verstandig om je (windows) prullenbak te legen.  Des te meer items in je prullenbak des te trager het verwijderproces.

Comments [0] | | # 
# Monday, May 29, 2006
Monday, May 29, 2006 1:04:27 PM (GMT Daylight Time, UTC+01:00) ( Visual Studio )

Zoals ik in een eerdere post al eens heb aangegeven staat Option Strict standaard uit in VB.Net. Dit is echter een optie die je altijd aan wil zetten. In VS2005 is dit aan te passen. Volg hiervoor de volgende stappen:

- Selecteer Tools
- Selecteer Options
- Selecteer "Show all settings"
- Klap het menu "Projects and Solutions" uit

Onder VB Defaults kan je de standaard instellingen aanpassen.

Comments [0] | | # 
# Wednesday, May 24, 2006
Wednesday, May 24, 2006 7:55:41 PM (GMT Daylight Time, UTC+01:00) ( )
Mijn doel is om steeds minder gebruik te maken van de muis. Je krijgt er op den duur pijn van in je pols en ook het gebruik van de muis is minder snel dan het gebruik van shortcuts op je toetsenbord. Onderstaand de shortcuts van producten die ik dagelijks gebruik.

Windows
Visual Studio
XML-Spy

Comments [0] | | #