Avatar billede cborg Nybegynder
26. juni 2005 - 18:18 Der er 12 kommentarer og
2 løsninger

Brug af VB.NET til codebehind i et C# VS.NET projekt

Overskriften siger vist det hele. Er det muligt at oprette webforms i et C# web project, der benytter vb.net til codebehind på en overskuelig måde?

Eller er det simpelthen nødvendigt at kompilere dll-komponenter og referere disse via C#?

Grunden til dette er et shared webprojekt som både en vb.net og C# programmør gerne hver især skulle kunne udvikle sider til.
Avatar billede arne_v Ekspert
26. juni 2005 - 18:24 #1
du kan sagtens have en .aspx med en smule embedded C# inherit fra en klasse
i en dll som er skrevet i VB.NET

en .NET dll er en .NET dll uanset sprog

men hvis du spørger om hvorvidt Visual Studio kan finde ud af at compile
det, så må jeg melde pas, da jeg ike selv bruger Visual Studio
Avatar billede cborg Nybegynder
26. juni 2005 - 19:47 #2
Jeg tænkte umiddelbart ikke på direkte embedded kode, idet at html bliver skrevet af en helt tredje person, men primært på codebehind filer (eller src for den sags skyld), der i visse aspx filer skal referere til en .cs source fil og andre til en .vb source fil, på en måde, således at vs.NET kan både håndtere det og kompilere det.

Men som sagt, det kan være at jeg beder om for meget...
Avatar billede arne_v Ekspert
26. juni 2005 - 19:52 #3
altså

foobar.aspx laves af en web designer
foobar.aspx.cs laves af en C# programmør
util.vb laves af en VB.NET programmør

og kode i foobar.aspx.cs skal bruge kode i util.vb ?

Det kan vel løses ved at lave et VB.NET projekt util som creater
util.dll og et andet projekt foobar som bruger util.dll ?
Avatar billede roenving Novice
26. juni 2005 - 23:32 #4
-- det er præcis det punkt hvor .NET er genial, for alle former for kompileret kode vil kompileres til JIT-kode, som næsten vil være den samme uanset udviklingssprog ...

-- så et projekt kan, som arne_v gør opmærksom på, ganske udmærket udføres af en webdesigner, som laver selve .aspx-filen, f.eks. en c#-programmør, som laver den core .aspx.cs-fil, samt adskillige andre programmører, som laver diverse utilities i C#, VB.NET, J#, JScript.NET og kompilerer dem til JIT-kode !-)
Avatar billede hvideg Nybegynder
27. juni 2005 - 00:29 #5
En forms eget code behind kan være hvad som helst. Problemet at er conditional compile stadig ikke fungerer så godt, så man må som arne foreslår benytte et dll til at ineragere. Du kan jo godt lave vb form klasser, eller page nedarvere som du så laver dine udvidelser i og så inherit'e hele namespacet fra dll'et så du kan lave sådan en præcis knap eller form, eller div eller dataaccessobject som util.vb leverer

Men du kan ikke lave code behind i VB.Net i et projekt som kompilerer i C#.Net web application project endnu, men jeg tror at det er på trapperne.
Avatar billede burningice Nybegynder
27. juni 2005 - 02:34 #6
ellers må man bare have to projekter... et vb.net og et c#, og i disse to projekter befinder der sig så de respektive codebehind-klasser skrevet i henholdsvis vb.net og c#.

roenving>> det du tænker på er vel MSIL og ikke JIT. JIT betyder Just In Time, og kan ikke bruges til at navngive/kategorisere et sprog, men bruges om en process. F.eks. JIT-compilering.
Avatar billede roenving Novice
27. juni 2005 - 02:39 #7
>>burningice

-- selvfølgelig tænker jeg i Internediate Language og ikke på den maskine, som bruges til at oversætte IL til maskinkode on-the-run ...
Avatar billede runesoft Nybegynder
27. juni 2005 - 08:22 #8
Jeg synes det lyder som en rodet affære. Jeg har selv skulle merge to web projekter skrevet i forskellige sprog...  Jeg endte med at lave to projekter der lå samme sted, og med samme bin mappe. Det fungerer, men kan helt sikkert ikke anbefales.

Jeg synes helt klart at i skulle blive enige om et sprog og lave det hele i det. Hvis man kan ét .Net sprog er det jo ikke så svært at lære et andet. Og så går arkitekturen heller ikke i vasken bare fordi i skal være flere om det.

I modsætning til så mange andre synes jeg ikke at undestøttelse af flere sprog er en fordel ved .Net. Derfor!  Vælg et sprog og hold jer til det.
Avatar billede hvideg Nybegynder
27. juni 2005 - 12:14 #9
At omskole en programmør fra vb eller asp til vb.net tager væsentligt kortere tid af lav produktion, så derfor bør man bruge namespaces til at adskille de forskelligt kompilerede dele og siden bruge imports, så kan det gøres med minimal gnidning. men det betyder naturligvis at vi ikke har nogen brug for c# programmørere i projekter hvor vb.net bruges til at binde asp sammen med server side session objekter og logik. Jeg mener at det taler for fler-tier arkitektur, så alle kan udfolde sig optimalt i deres egne namespaces. På den måde behøver logik og datapræsentation t.eks ikke at blive lave af samme person, eller i samme sprog, så ved at lade gamle asp (perl folk vil have nemmere ved c# tror jeg, kan evt. bruges til web controls) kode med webcontrols og databinding, så kan html/script folk lave asp.net html'en imens virksomhedens CLR.Net pionerer på få enkelte hænder laver virksomhedens logik i inkluderbare namespaces. som når forankret kan lære objekt brug og adfærd til de som binder frontends, imens designerne kan gå igang med den næste opgave... men det kræver at man er mindst 3, ellers er samarbejdskompatabiliteten i projekter måske også en sekundær overvejelse :D

.Net er om noget Wrappingens kunst
Avatar billede runesoft Nybegynder
27. juni 2005 - 12:28 #10
Det tager kort tid for en vb programmør at lære at skrive sin første kode i VB.Net..  men det er ikke syntaksen der er det svære ved at programmere, det er selve tankegange, og at lave en løsning der også holder om 2 år. Hvis man lader en vb programmør skrive VB.Net applikationer, vil disse applikationer med garanti være lavet som gamle VB applikationer...  dvs. modules, ingen nedarvning, ingen brug af interfaces, brug af late binding etc.  Derfor mener jeg godt at det kan anbefales at vælge at bruge C# selvom man har nogle VB programmører i forvejen.

Simpelthen for at tvinge programmørerne til at lære .Net
Avatar billede arne_v Ekspert
27. juni 2005 - 20:40 #11
og et svar for seperat projekt og dll
Avatar billede hvideg Nybegynder
28. juni 2005 - 19:49 #12
runesoft >> Jep. Netop selve eventsbaseringen er dog helt lig med vb, så det er for så vidt det samme man skal lave, men der er visse ting, som nedarvning og i det hele taget OOP er måske ikke noget en VB programmør kender, men hvis man husker at fortælle dem at en web form grundliggende er som en windows form.
Bagved er der naturligvis den forskel at selv VB6 var ikke implementeret som objekter, selvom de opførte sig sådan, og det er de nu. Det betyder dog ikke det helt store i praksis. Du har nedarvning i VB det eneste du ikke kan bruge i den forbindelse er multipel nedarvning, det behøver man også kun i et par procent af faktiske situationer. C# er ikke rentablelt, hvis du ikke har programmørere som kender C eller lign i forvejen. Naturligivs vil de ikke programmere som i VB. Du starter naturligvis med at købe en bog som er skrevet til at introducere VB programmørere og hvis de læser så skriver de allede i uge et applikationer i .net som tilsigtet. Jeg synes ikke at du kan antage at programmørerne nødvendigvis er dovne, som argument til at vælge C slap *gg*
Avatar billede runesoft Nybegynder
28. juni 2005 - 21:58 #13
Jeg fandt lige en artikkel som jeg er enig i ;)http://www.codeproject.com/dotnet/CSharpVersusVB.asp

.Net's events er vel ikke ligesom VB's. VS.Net autogenererer bare kode således at det kan se sådan ud. Jeg er som sådan ikke imod VB.Net...  Jeg synes bare de skulle koncentreret sig om ét sprog...  så havde IDE'en sikkert også fungeret bedre.

Jeg tror simpelthen ikke på at VB programmør kan blive gode .Net programmører på en uge!
Avatar billede arne_v Ekspert
24. juli 2005 - 15:39 #14
cborg ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester