[ASP.NET] applicatie ontwikkelen in VB.NET of C#

Pagina: 1
Acties:

  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Zomaar eens even een balletje opgooien.
Zijn er, afgezien van persoonlijke voorkeuren, ook argumenten om een ASP.NET applicatie , maar wellicht ook een applicatie in het algemeen, juist wel/niet in C# of VB.NET te programmeren, indien de keus hiertussen vrij is?

Een file op de A12 is nooit grappig...


Verwijderd

C# is door MS gekozen als een soort referentietaal van .Net, en wordt daarom door hen vaak in voorbeelden gebruikt. Daarintegen is er een grote userbase van Visual Basic programmeurs die waarschijnlijk hun code in VB.Net gaan schrijven, waardoor daardoor in het publieke domein veel VB.Net code zal rond gaan zwerven. So take your pick ...

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
De keus is redelijk vrij.... VB.NET kun je misschen wel als een 'skin' van C# beschouwen.
C# is meer dan de referentie - taal van .NET, C# is de taal waar de CLR naar mapt.

Op m'n werk werd er door een grote groep mensen vooral in VB6 gewerkt, nu wordt er overgestapt naar .NET en is er voor C# gekozen en niet voor VB.NET.

https://fgheysels.github.io/


Verwijderd

In C# heb je method overloading en in-line commenting (tik /// in je code en je krijgt een help-xml-template, hiermee kan je je eigen msdn-style helpfiles genereren 8) ) wat je in VB.NET niet hebt.

En ookal ben ik VB gewend toch heeft C# een veel lekkerder syntax.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Verwijderd schreef op 26 september 2002 @ 22:38:
In C# heb je method overloading

Operator overloading bedoel je? AFAIK heb je method overloading in VB.NET gewoon ook hoor.

https://fgheysels.github.io/


Verwijderd

oh? ehh kan.. ik doe nooit vb-en

  • tijn
  • Registratie: Februari 2000
  • Laatst online: 31-07 00:06
In C# heb je method overloading
In VB.NET ook hoor
en in-line commenting (tik /// in je code en je krijgt een help-xml-template, hiermee kan je je eigen msdn-style helpfiles genereren 8) ) wat je in VB.NET niet hebt.
Das inderdaad een erg fraaie feature van C# (in VS.NET dan he).

Als je in het verleden VB of VBScript hebt geprogrammeerd is het verfrissend om op een nieuw platform ook eens een andere taal te gebruiken (C#). Kun je lekker met een schone lei beginnen en verval je niet te snel in oude VB ranzigheid. Helaas denken mijn VB collega's daar anders over :(.
Een ander voordeel van C# is dat je naast de .NET samples ook lekker kunt meeliften met de dingen die in de Java wereld bedacht worden ;).

Cuyahoga .NET website framework


  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 27-08 08:10
maakt niets uit... je kan met beide exact hetzelfde

Verwijderd

Nou.. C# heeft geen With statement..

maar om daar nou je taalkeuze van af te laten hangen

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Wat op zich wel grappig is: C# is inderdaad nogal de 'versyntaxing' van de intermediate language, maar toch is er 1 feature die niet in C# aanwezig is, wel in de IL en ook in VB .NET: run-time member functions (dan heb ik het dus niet over static methoden). Dit zijn een soort globale functies/procedures. In C# zijn deze niet opgenomen, maar in de IL is dit dus wel beschikbaar. In VB .NET is er weer voor gekozen om ze ook voor de programmeur beschikbaar te stellen. Merkwaardig verschil als je het mij vraagt (maar dat doet niemand ;) ).

Zie deze post die alles nog wat beter uitlegt, met VB .NET en IL voorbeelden.
[rml]mbravenboer in "[ C#] Hoe doe ik dit in C#"[/rml]

Dit is overigens iets heel anders dan de with statement en dergelijke: deze worden door de compiler verwijderd. Het is in feite vrij eenvoudig suiker om het geheel aantrekkelijker te maken (of dat ook gelukt is mag ieder voor zich beoordelen ;) ). In dit geval gaat het om een constructie die niet in een andere vorm uit te drukken is en rechtstreeks vertaald wordt in IL constructies.

Laat het overigens duidelijk zijn dat dit zeker geen reden is om nu voor VB .NET te gaan kiezen en dat het ook geen reden is om nu voor C# te gaan kiezen :Y) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Owja, misschien heb je wel iets aan dit topic:

[rml][ Alg] C# of VB.NET[/rml]

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
[nohtml]
mbravenboer schreef op 27 september 2002 @ 00:59:
Wat op zich wel grappig is: C# is inderdaad nogal de 'versyntaxing' van de intermediate language, maar toch is er 1 feature die niet in C# aanwezig is, wel in de IL en ook in VB .NET: run-time member functions (dan heb ik het dus niet over static methoden). Dit zijn een soort globale functies/procedures. In C# zijn deze niet opgenomen, maar in de IL is dit dus wel beschikbaar. In VB .NET is er weer voor gekozen om ze ook voor de programmeur beschikbaar te stellen. Merkwaardig verschil als je het mij vraagt (maar dat doet niemand ;) ).

Zie deze post die alles nog wat beter uitlegt, met VB .NET en IL voorbeelden.
[rml]mbravenboer in "[ C#] Hoe doe ik dit in C#"[/rml]
In die post zeg je dat een run-time member function eigenlijk een public static method is. Die heb je in C# gewoon ook, maar het enige verschil met de VB.NET manier is dat je je classname ervoor moet plakken:
code:
1
Class.StaticMethod

En dit is eigenlijk mooier dan die 'run-time members' van VB.NET.
Dit is overigens iets heel anders dan de with statement en dergelijke: deze worden door de compiler verwijderd. Het is in feite vrij eenvoudig suiker om het geheel aantrekkelijker te maken (of dat ook gelukt is mag ieder voor zich beoordelen ;) ). In dit geval gaat het om een constructie die niet in een andere vorm uit te drukken is en rechtstreeks vertaald wordt in IL constructies.
Dat het With statement niet in C# zit, daar ben ik niet rouwig om. Ik heb het zelf nog nooit (Delphi) gebruikt, want ik vind dat het toch redelijk onduidelijke code kan opleveren.

https://fgheysels.github.io/


Verwijderd

whoami schreef op 26 september 2002 @ 22:44:

[...]

Operator overloading bedoel je? AFAIK heb je method overloading in VB.NET gewoon ook hoor.
Maak daar maar een grote NEE van. In VB.NET moet je expliciet op_implicit() troep aanroepen en om de regel zowat CType() handel.

In C#:
DateTime da1, da2;

// fill da1, da2 with values

if(da1 < da2)
{
// do something
}

nou vergeet dat maar in VB :P

Verder, waarom kan ik wel dit doen in C#:
SqlInt32 i;
int j;

j=10;
i = j;

Maar moet ik in VB.NET doen:

Dim i as SqlInt32
Dim j as Integer

j=10
i = new SqlInt32(j)

en werkt
i = j

niet.

Hint: implicit operator overloading is niet aanwezig in VB.NET, dus de conversieroutines die zijn gedefinieerd op SqlInt32 als implicit operators werken niet in VB.NET.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Verwijderd schreef op 27 september 2002 @ 10:24:
[...]

Maak daar maar een grote NEE van. In VB.NET moet je expliciet op_implicit() troep aanroepen en om de regel zowat CType() handel.

In C#:
DateTime da1, da2;

// fill with values
if(da1 < da2)
{
// do something
}

nou vergeet dat maar in VB :P

:?
Wat heeft dit met method overloading te maken? Ik denk dat je iets te snel gelezen hebt. :P

Method overloading kan gewoon in VB.NET:
Overloading is the creation of more than one procedure, instance constructor, or property in a class with the same name but different argument types.

Overloading is especially useful when your object model dictates that you employ identical names for procedures that operate on different data types. For example, a class that can display several different data types could have Display procedures that look like this:
code:
1
2
3
4
5
6
7
8
9
Overloads Sub Display(ByVal theChar As Char)
' Add code that displays Char data.
End Sub
Overloads Sub Display(ByVal theInteger As Integer)
' Add code that displays Integer data.
End Sub
Overloads Sub Display(ByVal theDouble As Double)
' Add code that displays Double data.
End Sub

https://fgheysels.github.io/


Verwijderd

paulgielens schreef op 26 september 2002 @ 22:59:
maakt niets uit... je kan met beide exact hetzelfde
Absoluut niet. VB.NET heeft een aantal syntactische dingetjes die wellicht nuttig kunnen zijn (With) maar C# heeft zaken die VB.NET absoluut niet heeft (operator overloading).

VB:
m_iErrorCode = New SqlInt32(CType(scmCmdToExecute.Parameters.Item("@iErrorCode").Value, Integer))

C#:
m_iErrorCode = (Int32)scmCmdToExecute.Parameters["@iErrorCode"].Value;

Het moge duidelijk zijn wat mijn voorkeur heeft. Naast het feit dat VB.NET's editor door debielen gemaakt is en bv niet voorziet in autowire event handling code generation in ASP.NET pages. (en andere zaken).

Verwijderd

whoami schreef op 27 september 2002 @ 10:29:

[...]

:?
Wat heeft dit met method overloading te maken? Ik denk dat je iets te snel gelezen hebt. :P
Denk het niet. Operator overloading is niet alleen explicit operator overloading maar ook implicit operator overloading. Al die operators die zijn gedefinieerd bij de .NET classes in de API kun jij niet gebruiken in VB.NET. Je kunt alleen explicit operators definieren, maar niet implicit. De implicit operators, die nu juist zo handig zijn, kun je vergeten.
Method overloading kan gewoon in VB.NET:
[...]
Leg me dan maar eens uit hoe het zit met de implicit operators mbt Sql* types die wel werken in C# maar die je expliciet via op_implicit() moet aanroepen in VB.NET.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Otis: ik heb het niet over operator overloading, maar wel over method overloading.

https://fgheysels.github.io/


Verwijderd

hmmm, idd verkeerd gelezen. Ik raakte in de war omdat jij operator overloading zei.

maar iig: VB.NET heeft geen operator overloading, iets dat inmens nadelig is voor software development met .net.

Verwijderd

De vraag gaat over ASP.NET, en daarin maakt het niet uit of je VB.NET of C# gebruikt. Heb je een VB achtergrond, neem dan VB.NET, ben je meer bekend met c(++) of java, pak dan C#
Je werkt voornamelijk met het framework, en die is uiteraard gelijk!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
whoami: In die post zeg je dat een run-time member function eigenlijk een public static method is. Die heb je in C# gewoon ook, maar het enige verschil met de VB.NET manier is dat je je classname ervoor moet plakken
Nee, er is wel een belangrijk verschil: de functie/procedure in IL en VB .NET bevindt zich namelijk niet in een klasse. Het gaat hier dus niet om gewone static methoden. Bekijk het pdf'je maar eens wat ik daar link (en uit quote).
Dat het With statement niet in C# zit, daar ben ik niet rouwig om. Ik heb het zelf nog nooit (Delphi) gebruikt, want ik vind dat het toch redelijk onduidelijke code kan opleveren.
With vind ik zelf ook niet zo heel erg fantastisch, op een volgende methode invocatie is wel een aardig iets. In de Java library zie je bijvoorbeeld op enkele plaatsen dat methoden 'this' opleveren om op een volgende methode invocatie mogelijk te maken. Dit maakt de library onduidelijk en is typisch iets wat gewoon in de taal moet worden opgelost.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

In VB.NET heb je nog altijd On Error Resume Next. Dit kan handig zijn als je bij het vullen van 200 properties niet de exceptions wilt zien (bv NULL values). Er is nl. geen alternatief met try/catch, of je moet om elke property set een try/catch zetten. (veel plezier met al die properties :P)

Niet fraai, wel handig

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 17-08 22:44
Indien je niet kunt kiezen, dan zou ik zeker voor C# gaan. En helemaal als je C, C++ of java ervaring hebt. C# dwingt je om netter te werken dan Basic. Daarnaast is de taal C# expressiever dan Basic. Kijk alleen al is naar error handling.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Verwijderd schreef op 28 september 2002 @ 00:22:
In VB.NET heb je nog altijd On Error Resume Next. Dit kan handig zijn als je bij het vullen van 200 properties niet de exceptions wilt zien (bv NULL values). Er is nl. geen alternatief met try/catch, of je moet om elke property set een try/catch zetten. (veel plezier met al die properties :P)

Niet fraai, wel handig
Anders ga je effe labels promoten!!! 14(!) jaar geleden was goto & gosub een revolutie, maar nu mag je er niet meer over praten. :P * mulder zal niet meer of minder dronken posten

oogjes open, snaveltjes dicht


Verwijderd

The - DDD schreef op 28 september 2002 @ 02:20:
Indien je niet kunt kiezen, dan zou ik zeker voor C# gaan. En helemaal als je C, C++ of java ervaring hebt. C# dwingt je om netter te werken dan Basic. Daarnaast is de taal C# expressiever dan Basic. Kijk alleen al is naar error handling.
C# dwingt je niet netter te werken dan Basic, sterker, omdat je meer zelf moet doen kun je op meer plaatsen er een potje van maken. De VB editor in vs.net is daarnaast slimmer dan de C# editor en insert/format code voor je, zodat het geheel er netjes uitziet.

C# is wel expressiever, dwz, je moet meer zelf doen (denk aan eventhandler creation: in C# moetje zelf de delegates aanmaken, in VB gebeurt dat onder water). De error handling is in VB expressiever, want naast trycatchfinally heb je ook on error goto/resume.

  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Verwijderd schreef op 28 september 2002 @ 10:18:
[...]

C# dwingt je niet netter te werken dan Basic, sterker, omdat je meer zelf moet doen kun je op meer plaatsen er een potje van maken. De VB editor in vs.net is daarnaast slimmer dan de C# editor en insert/format code voor je, zodat het geheel er netjes uitziet.
Met als nadeel dat dit bij een groot project en een niet zo snelle computer erg vertragend kan werken en je deze "feature" niet uit kan zetten (voor zover ik zie).

Verwijderd

Ooit van tools/options gehoord? daar kun je van alles instellen, zoals formatting.
Pagina: 1