Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: VB6 to VB.NET
anonim




Typ: Nie zarejestrowany
VB6 to VB.NET

Od niedawna mam VB.net i odkryłem że chba najlepiej uczyc sie go pisząc coś najpierw w vb6 i konwertując.

Dobrze działa to z krótkimi przykładami.

15-04-2004 15:33
  
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

VB.NET ma zupełnie zmienioną filozofię i została wyrzucona część komend a w ich miejsce jest  "CLR" czyli common runtime language, którego możliwości są dużo wieksze niż VB6

01-05-2004 21:05
Pokaż profil ogis  Wyślij email do ogis   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

VB.NET ma zupełnie zmienioną filozofię....
i rzeczywiście że filozofia została zmieniona np; brak współpracy z kotnrolkami typu COM z VB6, ale jak zwykle Microsoft ma już na to lekarstwo - oczywiście tylko dla użytkowników z legalną kopią Visual Studio ( mam to szczęście że do nich należę). Lekarstwem tym jest plik Visual6.REG, który to odblokowyuje licencje na czas projektowania dla kontrolek COM


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

09-05-2004 07:19
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

W wypadków kontrolek com - VB.NET inaczej obsługuje kontrolki, które nie mają tzw. "reprezentacji wizualnej" tak jak np. Timer. Wtedy, taką kontrolkę wciagamy do referencji i traktujemy jako zwykly obiekt. Np kontrolka ADOX (pochodząca z MDAC służąca do obsługi baz danych).
po wprowadzeniu do referencji trzeba zrobić:

Imports ADOX
'a w gdzieś na poziomie modułu:
        Try
            Dim a As New ADOX.Column()
            Dim b As New ADOX.Column()
            Dim sc As String = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=baza.mdb;"
            Dim tabl As New ADOX.Table()
            tabl.Name = "NowaTabela"
            a.Name = "a"
            tabl.Columns.Append(a, ADOX.DataTypeEnum.adChar, 10)
            b.Name = "b"
            tabl.Columns.Append(b, ADOX.DataTypeEnum.adBigInt, 10)
            Dim cat As New ADOX.Catalog()
            cat.Create(sc)
            cat.Tables.Append(tabl)
        Catch e As Exception
            MsgBox(e.ToString)
        Finally
            Console.WriteLine("ready ..." )
        End Try

Na dysku zostanie utworzony plik bazy akcesa z tabelą NowaTabela.

Generalnie nowa filozofia jest super, bo na tyle ile się to dało VB.Net został zunifikowany z VC++ z VC.Net przy zachowaniu składni VB. Nieprzyjemne jest wprawdzie, że zginęła metoda Print, właściwości Caption. Ale np. w obrębie klasy Properties i definiowanie nowych kontrolek postawiono wreszcie na nogi, bo w VB6 stało na głowie. 100% przejście na OOP niestety nieco utrudniło możliwość drukowania i obsługiwania grafiki, ale za to możliwość tworzenia aplikacji wielowątkowych, tworzenie własnej obsługi zadarzeń
i wprowadzenie porządnej obsługi STDIN, STDOUT i STDERR dało niesamowite mozliwości. Np. teraz napisanie programu związanego z przetwarzanie potokowym to jest pestka. Nie wspominając już o innych dobrodziejstwach platformy NET. Tak, że teraz VB.Net standard ma większe możliwości niż VB6 Pro.

09-05-2004 10:56
Pokaż profil ogis  Wyślij email do ogis   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Oczywiście masz rację, ale jednak ja w pracy mam kłopoty z przeniesieniem kodu z VB6 do VB.Net z powodu braku licencji na czas projektowania między innymi dla mojej pracy bardzo ważnych kontrolek ActiveX np; MSFlexGrid nie mówiąc już o mnogości innych niedostępnych kontrolek, ale tak jak już wcześniej pisałem Microsoft przyznał że to jest ich niedopatrzenie i że należy się skontaktować z Supportem Microsoftu w celu usunięcia usterki - niestety ale nie mogę używać nielicencjonowanych kontrolek zwłaszcza w dużej firmie - po prostu chcę spokojnie spać - niemniej jednak nowa filozofia VB.NET zaczyna mi się podobać ot choćby właśnie piękne kotwiczenie i dokowanie kontrolek na formatce ( ile trzeba było namachać linijek kodu w VB6 dla tylko tych dwóch opcji Anchor i Dock nie mówiąc już o innych b.dobrych pomysłach) - jednak ja się na początek trochę zraziłem do VB.NET nawet pod kątem pisania składni kodu i instrukcji - być może z czasem mi to minie ( napewno) ale jak to w pracy bywa hmmm.. program miałeś napisać na wczoraj - już czekają następne projekty do wdrożenia

[Post edytowany dnia 09-05-2004 14:13 przez Piotr T]


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

09-05-2004 14:12
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

Tak, zawsze wszystko jest spóźnione .
Czytałem trochę książeczkę, która jest w pudełku VB.Neta. No i tam udowadniają, że mozna aplikacje przenieś`c z 6tki do Net bardzo łatwo . Ale trzeba się tyle namęczyć, że chyba lepiej zrobić od nowa. W sumie .NET daje dużo rozszerzeń, które zastępują stare Activex'y. Np. DataGrid jest niezły, ale zeby z nim powalczyć, trzeba się doczytać, że najpierw trzeba zdefiniować nowe instacje Table, Column i Row. Z tego skomponować tabele danych i dopiero to połączyć z DataGrid i jest OK. W sumie największą porażką jest Help do VB.Net, bo podają abstrakcyjne i bezsensowne przykłady: np. z grafiką nie podają jak to się robi normalnie, tylko jak to jest w przypadku zdrzenia OnPaint, a jak człowek chce coś wyrysować na Formie lub czymś innym po kliknięciu, to z tego nie wynika jak to zrobić. I to dotyczy wielu rzeczy. Człowiek musi spędzić pare godzin nad znalezieniem czegoś w helpie. No ale za to jest cały SDK dla wszystkich języków i wszystkich platform.
Ale po doświadczeniach z Delphi BC++ to nowy VB wydaje sie naprawde bardzo przyjazny dla uzytkownika.

09-05-2004 22:45
Pokaż profil ogis  Wyślij email do ogis   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

No właśnie w kwestii przenoszenia kodu z VB6 do VB.Net - otóż zrobiłem ciekawą kontrolkę w VB6 i to nawet kawałek kodu jest zbudowany przez VB6 Wizard User Control.


Private Sub UserControl_WriteProperties(ByRef PropBag As PropertyBag)
' to jest komentarz dodany przez VB.NET  ( UPGRADE_ISSUE: PropertyBag method PropBag.WriteProperty was not upgraded.Chodzi o ten podkreślony kawałek kodu

Call PropBag.WriteProperty("AKTUALNIE", m_AKTUALNIE, m_def_AKTUALNIE)

End Sub

Skompilowany ocx w VB.6 działa super

No i jak tu nie zostać przy VB6


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

10-05-2004 10:42
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

Właściwie to kontrolki w .Net to już nie Activexy a Windows.Forms, czyli coś zupełnie innego. Mniej więcej polega to na tym, że pozostały im właściwości, metody, zdarzenia. PropertyBag nie jest w żaden sposób upgradowane. Niestety trzeba to zmienić na Property i tyle. W VB.Net nie ma możliwości edytowania właściwości pochodzących z PropBag tak jak to było w VB6 i starszych. Tylko to co z boku na pasku właściwości, żadnych okienek dialogu. A jeżeli kontrolka ma być tak jak np. Timer - bez reprezentacji wizualnej to musi być zdefiniowana jako zwykła klasa.

Ale zawsze w wolnej chwili mozna ściągnąć darmowe Visual Basic Control Creation (odpowiednik VB5) i powspominać stare dobre czasy . Kiedyś korzystałem z VB5 a po dłuższej przerwie przeszedłem od razu na VB.Net i jakoś idzie po pierwszych bolach.

11-05-2004 00:35
Pokaż profil ogis  Wyślij email do ogis   
Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1