ASP.Net, Mijn ervaringen tot nu toe

Door neothor op woensdag 9 april 2008 09:22 - Reacties (18)
CategorieŽn: Afstuderen, The Dev Zone, Views: 9.265

Ik werk nu een aantal weken met asp.net en de taal begint redelijk vertrouwd aan te voelen. De meeste dingen kan ik zonder al te veel problemen bouwen al blijf ik soms wat hard leers.

Nu kan ik dan ook voor mezelf een duidelijker beeld vormen over ASP.Net en wat ik er nou eigenlijk van vind. Ik ben dan ook tot de conclusie gekomen dat het absoluut niet mijn taal voor webontwikkeling is.

C# Code-behind _/-\o_
Het grootste pluspunt van ASP.Net is de code-behind en dat is in mijn geval C# En ik vind het heerlijk. Mischien komt die omdat ik vanaf de JAVA af kom maar de taal zit heel lekker in elkaar.

Tot nu toe ben ik maar tegen 1 ding aangelopen en dat betreft de exceptions. Ik kon vanuit JAVA een try-catch block forceren vanuit een functie en dit kan helaas niet in C#. Wel kan je in de comments meegeven dat deze gegooid kan worden maar hij hoeft niet opgevangen te worden. Toch een beetje jammer vooral als je code schrijft waar andere mensen mee verder gaan.

Namespaces
Meerdere namespaces :9~. Iets wat er wel aan zit te komen in PHP5 (mischien al is :?) maar tot op heden nog niet mee kon werken wat betreft webontwikkeling. Geen geklooi meer je klassen hernoemen maar gewoon in een eigen namespace.

Presentatielaag
En hier begin ik het minder leuk te vinden :+ Er is een dappere poging gedaan om een runtime te simuleren om het (denk ik) makkelijker te maken om applicatie ontwikkelaars over te laten stappen op webontwikkeling maar dit gaat helaas tenkoste van de flexibiliteit.

Standaard Webcontrols voldoen 9 van de 10 keer niet aan mijn eisen en de HTML output is vaak om te huilen. Het hoogtepunt was nog wel de standaard meegeleverde Menu Webcontrol.

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<script type="text/javascript">
<!--
var theForm = document.forms
<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// -->
</script>


<script src="/Foobar/WebResource.axd?d=WKWYyDjwZ0uaYkU4gDPqJA2&amp;t=633253723763395285" type="text/javascript"></script>


<script src="/Foobar/WebResource.axd?d=6yB-78mTVPhibFGaZ-bJvw2&amp;t=633253723763395285" type="text/javascript"></script>
    <div>
        <a href="#Menu1_SkipLink"><img alt="Skip Navigation Links" src="/Foobar/WebResource.axd?d=YQx4JndOIIVr5Wfrgl_9YA2&amp;t=633253723763395285" width="0" height="0" style="border-width:0px;" /></a><table id="Menu1" class="Menu1_2" cellpadding="0" cellspacing="0" border="0">
    <tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="Menu1n0">
        <td><table cellpadding="0" cellspacing="0" border="0" width="100%">

            <tr>
                <td style="white-space:nowrap;width:100%;"><a class="Menu1_1" href="foobar.aspx">Foobar</a></td><td style="width:0;"><img src="/Foobar/WebResource.axd?d=smienqi_03xrDeFTJVhcrH1jcwcHrgu0A16uZqJ-xkE1&amp;t=633253723763395285" alt="Expand Foobar" style="border-style:none;vertical-align:middle;" /></td>
            </tr>
        </table></td>
    </tr><tr onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="Menu1n1">
        <td><table cellpadding="0" cellspacing="0" border="0" width="100%">
            <tr>
                <td style="white-space:nowrap;width:100%;"><a class="Menu1_1" href="Pellentesque.aspx">Pellentesque porta</a></td>

            </tr>
        </table></td>
    </tr>
</table><div id="Menu1n0Items" class="Menu1_0">
    <table border="0" cellpadding="0" cellspacing="0">
        <tr onmouseover="Menu_HoverDynamic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="Menu1n2">
            <td><table cellpadding="0" cellspacing="0" border="0" width="100%">
                <tr>
                    <td style="white-space:nowrap;width:100%;"><a class="Menu1_1" href="Lorum.apsx">Lorum Ipsum</a></td>

                </tr>
            </table></td>
        </tr><tr onmouseover="Menu_HoverDynamic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="Menu1n3">
            <td><table cellpadding="0" cellspacing="0" border="0" width="100%">
                <tr>
                    <td style="white-space:nowrap;width:100%;"><a class="Menu1_1" href="Sed.aspx">Sed sollicitudin</a></td>
                </tr>
            </table></td>

        </tr>
    </table><div class="Menu1_0" id="Menu1n0ItemsUp" onmouseover="PopOut_Up(this)" onmouseout="PopOut_Stop(this)" style="text-align:center;">
        <img src="/Foobar/WebResource.axd?d=cAxLL5NOVQFD69E_hHONQuaACnmYBYO7IC0lkWIQOgk1&amp;t=633253723763395285" alt="Scroll up" />
    </div><div class="Menu1_0" id="Menu1n0ItemsDn" onmouseover="PopOut_Down(this)" onmouseout="PopOut_Stop(this)" style="text-align:center;">
        <img src="/Foobar/WebResource.axd?d=YP27Fhxd7MDlCgi1iXmpgZyyc8aMY1Ohk1RSG4l-ZJA1&amp;t=633253723763395285" alt="Scroll down" />
    </div>
</div><a id="Menu1_SkipLink"></a>
    
    </div>
    

<script type="text/javascript">
<!--
var Menu1_Data = new Object();
Menu1_Data.disappearAfter = 500;
Menu1_Data.horizontalOffset = 0;
Menu1_Data.verticalOffset = 0;
// -->

</script>


I rest my case ;)

Conclusie
Ik zal uiteindelijk toch gaan voor PHP5 voor webontwikkeling maar ik zal zeker verder gaan verdiepen in C#/Mono.

Listening to Chimaira with Overlooked