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.287

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

Volgende: De Saga van de Oorlog van de Grote Scheuring 05-'08 De Saga van de Oorlog van de Grote Scheuring
Volgende: Over 4000 geeks 02-'08 Over 4000 geeks

Reacties


Door Tweakers user Sebazzz, woensdag 9 april 2008 09:50

In PHP5 zijn al namespaces mogelijk hoor ;)
http://www.php.net/manual...namespaces.definition.php

Jammer dat het in feite alleen maar draait op Windows. Een brakke mono implementatie wil je niet op een Linux Apache server die 24/7 online moet zijn.

Door Tweakers user BonzO, woensdag 9 april 2008 10:13

Ik programmeer met beide talen, thuis het liefst asp.net, nu bij het afstuderen php. Ik moet zeggen dat als je met asp.net de juiste web user controls hebt klaarstaan het maken van een website vele malen makkelijker gaat dan bij php, waarbij zoiets met includes (niet helemaal te vergelijken) kan worden gedaan, wat naar mijn mening omslachtiger is.

Misschien helaas voor de php fanaten, maar ik denk dat er meer toekomst zit in het gebruiken van asp.net dan php. Aangezien er met goed opgebouwde classes erg makkelijk een koppeling gemaakt kan worden met .net applicaties. En natuurlijk omdat er .net gebruikt kan worden, wat ervoor zorgt dat je vrij veel functies niet zelf hoeft te schrijven. Php staat naar mijn mening veel zwakker op het gebied van frameworks/functies die er gebruikt kunnen worden, het include principe is veel minder praktisch dan het gebruik van dll's etc.

Verder over de html output die de controls geven: om eerlijk te zijn vind ik dat die vertaalslag nog vrij goed is als je kijkt naar welke opties je aan de control kunt meegeven (helaas wel tables ipv divs). Vooral als je kijkt naar de output van controls die ajax gebruiken, is dat zelfs vrij netjes gedaan.

Door Tweakers user PolarBear, woensdag 9 april 2008 10:14

Je kan natuurlijk de render methodes van de ASP.net controls prima overriden. Werkt prima.

Door Tweakers user neothor, woensdag 9 april 2008 10:44

@BonzO en PolarBear:
Ik overschrijf ook de render methodes maar zou imo niet moeten. Een menu in een tabel is gewoon een slechte output.

@BonzO:
Ik denk niet dat er nu meer toekomst ligt in asp.net dan eerder. Beide talen blijven door ontwikkelen en ik zie in zowel PHP als ASP.Net toekomst.

Door Tweakers user IJsbeer, woensdag 9 april 2008 10:59

Die output is idd om te huilen, maar dat heeft MS ook al ingezien: http://www.asp.net/CSSAdapters/

Ze kunnen het helaas niet default in het framework mikken ivm backwards compatibility.

En trouwens, als andere mensen jou fouten niet afvangt, krijgt de eindgebruiker het mooie gele .net scherm te zien... tja, niet jou probleem, toch?

Door Tweakers user PrisonerOfPain, woensdag 9 april 2008 11:26

@Sebazzz die zijn pas mogelijk vanaf PHP 5.3, de huidige stable is PHP 5.2.5. Kortom, het is alleen nog mogelijk in beta releases.

Door Tweakers user mOrPhie, woensdag 9 april 2008 11:51

Het is ook lastig om PHP en ASP.NET te vergelijken. PHP zal voornamelijk in websites gebruikt worden, waar ASP.NET (net als Java met jsp en beans) wellicht vaker wordt ingezet als omgeving voor intranet-webapplicaties. Als je de website-ontwikkel-kant op wilt, zul je veel meer PHP-werk vinden dan ASP.NET, wil je de LOB-kant op, dan zul je meer werk in ASP.NET vinden. :)

Door Tweakers user Chilly_Willy, woensdag 9 april 2008 14:08

Je kan iid heel mooie dingen maken met .NET, alleen jammer van de presentatie. Ik heb voor de presentatie nog niks beters gevonden dan Coldfusion.

Door Tweakers user GrooV, woensdag 9 april 2008 14:40

Je zou ook eens naar 3rd party controls kunnen kijken, deze zijn meestal wel betaald maar kunnen beter werken!

Door Tweakers user pasz, woensdag 9 april 2008 17:10

No offence, maar hoe lang heb je er over gedaan om bovenstaand menuutje (I rest my case-code) aan te maken en hoe lang doe je erover in PHP5 ?

Middels Masterpages en een goede css kan je al heel veel bereiken.

Ik denk dat je je er toch iets meer in moet verdiepen, want dit is wel een hele snelle conclusie.

Door Tweakers user neothor, woensdag 9 april 2008 17:51

@pasz:
Dat menu is een voorbeeld van een standaard menu. Sleur pleur en paar items toevoegen. En met mijn eigen framework in php doe ik het net zo snel. Verder gaat het mij om de HTML niet op de styling.

Door Tweakers user Alex, woensdag 9 april 2008 18:59

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.
1 woord: Honestly. Erik Meijer, een Nederlandse language designer bij Microsoft legt het uit in de volgende film:
http://channel9.msdn.com/ShowPost.aspx?PostID=374141
Dit is een bewuste keuze, maar nogal lastig uit te leggen.

Krachtigste van ASP.NET vind ik persoonlijk dat je een heel eigen model erop kan verzinnen. Ik werk voor een ISV en wij hebben een XAML naar ASP.NET convertor, zonder verlies van functionaliteit.

Teglijkertijd is het wel weer een enorm complex ding wat lastig is te doorgronden. Graag zou ik de learning curve wat lager zien. Maarja, dat zal niet zo maar gebeuren. Gelukkig zijn er dan ook websites als http://aspnet.4guysfromrolla.com :).

Door Ruben, woensdag 9 april 2008 19:51

Ik zou als ik jou was eens naar Volta gaan kijken :)

http://labs.live.com/volta/

Door Tweakers user neothor, woensdag 9 april 2008 21:25

Thnx all ik zal er zeker naar gaan kijken en het kan best zijn dat mijn mening bijgesteld wordt ;)

Door Tweakers user Alex, donderdag 10 april 2008 09:27

Vola is nog niets een halverwege op het level waar ASP.NET is. En dan praat ik niet over het concept. Maar Volta is simpelweg nog niet af.
Het is leuk om ermee te spelen, maar meer ook niet.

Door Li-z, zondag 18 mei 2008 20:38

Heey Mark.

Toevallig weer is hier aan beland en dan laat ik natuurlijk ook even een berichtje achter.
Veel inhoud heeft het niet, want ik snap maar weinig van die computer-shizzl.
Maar klinkt goed hoor (Y) Haha.
Was alles gelukt zaterdag?
Was nog even op nummer 8, koffie doen en warm worden maar ben op gegeven moment toch maar gegaan, dus heb je waarschijnlijk net misgelopen?

Groetjes!

Oh trouwens, kwam wat foto's van je tegen op m'n verjaardag! Zal ze binnenkort is sturen.

Door Wisdom, maandag 19 augustus 2013 09:12

Hallo Gerda,Oei, dat is pech hebben. Niet knenun overgaan tot de vertrouwde draai van de week. Hopelijk heb je dit euvel niet opgelopen afgelopen zondag in het stemhokje, om de computer zodanig te draaien, dat de bruine lijsten aan de achterkant kwamen te zitten. ;-)Nog een geluk dat we op de dag van vandaag nog eens knenun lachen met al de ellende in dit land. Eens te meer is deze belastingsregering alweer op zoek naar enkele miljoenen en waar gaan ze die halen, juist bij de werkende mens. Goe bezig in dit land en de toekomst ziet een al heel wat minder rooskleurig uit na vorige week!

Door free life insurance quote, donderdag 29 augustus 2013 15:00

hello there and thanks to your information ‚Äď I have definitely picked up anything new from proper here. I did alternatively experience several technical issues the use of this site, since I experienced to reload the web site many times prior to I could get it to load correctly. I were wondering in case your web host is OK? No longer that I’m complaining, but sluggish loading circumstances times will very frequently impact your placement in google and can damage your quality score if ads and ***********|advertising|advertising|advertising and *********** with Adwords. Well I‚Äôm adding this RSS to my e-mail and could glance out for much more of your respective fascinating content. Make sure you update this again very soon..

Reageren is niet meer mogelijk