Avatar billede dingemann Novice
08. juli 2006 - 13:34 Der er 18 kommentarer og
1 løsning

.NET 1.1 > fra C# til VB.NET

hey folkens - jeg har haft nogenlunde samme spørgsmål herinde før men måske ikke med samme indgangsvinkel og muligvis derfor blev mit problem ikke løst. Jeg prøver derfor igen :)

Se - jeg blogger (www.dnup.dk). dassBlog er en C#-blog skrevet i 1.1 og kildekoden følger med. Jeg har været på forummet og læst lidt om hvordan man laver sine egne moduler til bloggen - fx vil jeg gerne ha en random-quotes ude i siden og jeg har dælme tænkt mig at programmere den selv (xml-filer osv). Men mit generelle problem er at al kodning til denne blog sker i C# og jeg er VB'er - på forummet har jeg opstøvet en guide til hvordan man laver et plugin men selvf. er denne til C#.

Er der nogen der med et ben i både C# og VB.NET der kunne være behjælpelig med at, om ikke oversætte, så guide mig til en VB-kode så jeg kan lave et modul i VB.NET

C#-guiden har jeg smidt på http://www.dnup.dk/newmacro.doc
Desuden skal jeg lige nævne at jeg har prøvet at spørge i forummet til bloggen men da alle er C#'ere er der ingen hjælp at hente...


// peter
Avatar billede arne_v Ekspert
08. juli 2006 - 15:40 #1
har du prøvet at tage nogle C# eksmepler og hælde gennem en af de
automatiske C#->VB.NET konvertere ?
Avatar billede dingemann Novice
08. juli 2006 - 17:03 #2
jarp - altså det drejer sig jo om at få lavet samme struktur i VB.NET som den C#-koden har sig og jeg har prøvet at konvertere med en converter - men VB.NET-dll'en virker ikke (og filstørrelsen er også væsentligt mindre - ved ikke om det siger noget - altså eksempelfilen med 'Hello World'). Jeg kender jo ikke C# så jeg har ingen muligheder for at se om min VB.NET-kode er korrekt...
Avatar billede arne_v Ekspert
09. juli 2006 - 04:25 #3
selvom du ikke kan kode i C# så kan du vel nogenlunde læse det ?
Avatar billede dingemann Novice
09. juli 2006 - 11:55 #4
jojo - jeg er ikke helt sat af - men ikke desto mindre så dur det stadigvæk ikke det jeg får lavet og derfor spørger jeg her... længere er den ikke
Avatar billede arne_v Ekspert
09. juli 2006 - 21:08 #5
kan du poste C# koden og VB.NET så kan vi jo prøve og se om vi kan finde forskellen
Avatar billede dingemann Novice
09. juli 2006 - 22:33 #6
tjoooh - altså C#-koden er jo i doc-filen som jeg linkede til men her er den:

using System;
using System.Web;
using System.Web.UI;
using newtelligence.DasBlog.Runtime;
using newtelligence.DasBlog.Web.Core;

namespace HelloWorldPlugin
{
    public class HelloWorldMacros
    {
        protected SharedBasePage requestPage;
        protected Entry currentItem;

        //IMPORTANT – this method signature is required...
        public HelloWorldMacros(SharedBasePage page, Entry item)
        {
            requestPage = page;
            currentItem = item;
        }

        //The Hello World Macro
        public virtual Control HelloWorld(string name)
        {
            return new LiteralControl("Hello World! " + name);
        }
    }
}



og VB.NET-koden konverteret med http://www.kamalpatel.net/ConvertCSharp2VB.aspx :



Imports System
Imports System.Web
Imports System.Web.UI
Imports Newtelligence.DasBlog.Runtime
Imports Newtelligence.DasBlog.Web.Core

Namespace HelloWorldPlugin
    Public Class HelloWorldMacros
        Protected requestPage As SharedBasePage
        Protected currentItem As EnTry

        'IMPORTANT – this method signature is required...
        Public  Sub New(ByVal page As SharedBasePage, ByVal item As EnTry)
            requestPage = page
            currentItem = item
        End Sub

        'The Hello World Macro
        Public Overridable Function HelloWorld(ByVal name As String) As Control
            Return New LiteralControl("Hello World! " & name)
        End Function
    End Class
End Namespace

'----------------------------------------------------------------
' Converted from C# to VB .NET using CSharpToVBConverter(1.2).
' Developed by: Kamal Patel (http://www.KamalPatel.net)
'----------------------------------------------------------------
Avatar billede arne_v Ekspert
09. juli 2006 - 23:23 #7
når jeg bygger de to stykker kode får jeg præcis samme størrelse:


09-07-2006  17:22            3.584 cs.dll
09-07-2006  17:22            3.584 vb.dll
Avatar billede dingemann Novice
10. juli 2006 - 12:42 #8
wierd - min fylder 6kb
Avatar billede dingemann Novice
10. juli 2006 - 13:00 #9
(C# koden fylder 16kb)
Avatar billede dingemann Novice
10. juli 2006 - 13:04 #10
uhm - hvis du vil så har jeg smidt hele projektet med diverse imports på http://www.dnup.dk/macros.rar -

det er btw ikke fordi jeg ikke gider at lave det selv - nærmere så du/I kan se forskellen - ikke mindst når projektet bliver buildet med de referencer der skal være...
Avatar billede arne_v Ekspert
13. juli 2006 - 04:13 #11
nu har jeg kigget lidt

AssemblyInfo.cs og AssemblyInfo.vb er ikke ens - de er substantielt forskellige !
Avatar billede dingemann Novice
13. juli 2006 - 11:15 #12
okay? - se der er jeg lidt på herrens mark - jeg aner intet om de autogenererede filer - må jeg be om lidt supprt?
Avatar billede arne_v Ekspert
14. juli 2006 - 04:17 #13
åben de to filer og kig på dem

forskellen er ret nem at identificere

og jeg vil næsten tro at de også er nemme at tilrette
Avatar billede dingemann Novice
20. juli 2006 - 15:06 #14
netop hjemvendt fra ferie -

jeg forstår det stadig ikke... hvad er sammenhængen med assembly-filen og hvor ligger forskellen - jeg har siddet og gloet i begge i en halv times tid
Avatar billede arne_v Ekspert
22. juli 2006 - 04:37 #15
assembly filen definerer nok hvordan klassen ser ud som COM objekt

og de indeholder jo forskellige attributter
Avatar billede dingemann Novice
31. juli 2006 - 23:00 #16
okay nu har jeg simpelthen siddet i to stive dage og forsøgt mig. Jeg har forsøgt at lave en C# og en VB i 2005 (Framework 2.0) - det dur imidlertid ikke - dvs det er kun Framework 1.1 / VS2003 der kan generere brugbar dll-fil. Til gengæld kan jeg stadigvæk ikke se mig ud af det. Dll-filen som VB laver er kun 7kb og så virker den ikke - C#'en er på 14kb og den virker. Jeg har kigget i Assembly-filen men syntes ikke jeg blev klogere - jeg kender heller ikke det vilde til den men alligevel. Jeg har oven i købet forsøgt at oversætte C#-assemblyen til VB med en net-converter uden held.

Jeg trænger til hjælp :)
Avatar billede arne_v Ekspert
02. august 2006 - 03:15 #17
Hvis det der skal kalde den DLL ikke kan bruge .NET 2.0 så er det jo
nødvendigvis nødt til at skulle buildes med .NET 1.1

AssemblyInfo indeholder kun attributter - og hvis jeg husker rigtigt mindre end 10 - det
må være nemt at checke om de indeholder der samme attributter
Avatar billede dingemann Novice
02. august 2006 - 11:20 #18
præcis - grunden til at jeg prøvede VS2005 var at jeg så en der brugte 2005 i en guide - der stod ikke explicit at det var VS2005 men det kunne jeg se på screendumpnes layout. Derfor er det nok også i 2003 jeg skal holde mig. Og nej jeg tror ikke at det har noget at gøre med assembly-filen jeg har kigget i den og jeg har endda oversat C#-assemblyfilen med en converter...

Jeg står måløs tilbage og fatter nada... ja jeg har endda været derude hvor jeg har, med mine meget svage C#-evner, forsøgt at programmere et C#-modul der henter et VB-modul ind. Altså to dll-filer i kæde...

Jeg forstår det simpelthen ikke -
Avatar billede dingemann Novice
07. november 2006 - 18:13 #19
lukker
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
Kategori
Kurser inden for grundlæggende programmering

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