Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7

 

  Вопрос: Стоит ли переходить на .NET? Добавлено: 29.07.07 05:02  

Автор вопроса:  программист
Вот думаю над этим вопросом. Дело в том, что я как бы уже опоздал с переходом. И думаю дождаться новой версии ВБ (9.0), хотя на сайте МиркоСофта пишут, что оный ВБ будет ставится на ВизуалСтудию 2005 (что собственно и есть .NET), или всеже еще малость подождать?!

Да и еще сможет ли хороший программист (это я не про себя - мне еще до этого звания далеко) скажем за 2 недели перейти на .NET?

Ответить

  Ответы Всего ответов: 95  

Номер ответа: 1
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #1 Добавлено: 29.07.07 06:50
Если собираешься переходить на VB.NET, то начинай прямо сейчас, нет смысла дожидаться новой версии.

Ответить

Номер ответа: 2
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #2
Добавлено: 29.07.07 13:10
Вот думаю над этим вопросом. Дело в том, что я как бы уже опоздал с переходом.
С переходом на .NET нельзя опоздать, эта технология все больши и больше рахвивается..., с другой стороны - не имеет абсолютно никакого значения оставаться на вб6, потому что он с каждым днем стареет и также безвозвратно стареют стереотипы, которыми руководствуются программисты вб6.

И думаю дождаться новой версии ВБ (9.0), хотя на сайте МиркоСофта пишут, что оный ВБ будет ставится на ВизуалСтудию 2005 (что собственно и есть .NET), или всеже еще малость подождать?!
между этими версиями не будет абсолютно никакой разницы за исключением пары каких-нибудь новых библиотек... ты как новичек эту разницу даже не заметишь

Да и еще сможет ли хороший программист (это я не про себя - мне еще до этого звания далеко) скажем за 2 недели перейти на .NET?
хороший программист в чем?
Если в вб6, то как минимум месяц, чтобы более менее начать ориентироваься в .NET, это при том, что он сразу уловит идею ООП

ИМХО

Ответить

Номер ответа: 3
Автор ответа:
 dNW



Вопросов: 30
Ответов: 683
 Профиль | | #3 Добавлено: 29.07.07 13:53
Программист vb6 без проблем перейдет на .нет.
Сложности начнутся, когда человек захочет полезть в апи, да и принципы ООП, как уже сказано, никто не отменял :)

Я сидел на вб6 пять лет, после чего я освоил .net за неделю.

Ответить

Номер ответа: 4
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #4
Добавлено: 29.07.07 14:14
значит не только на вб6 сидел ;)

Ответить

Номер ответа: 5
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #5 Добавлено: 29.07.07 17:13
А может ли VB.NET компилить в Native-code (читсый код). Если да, то я задумаюсь над переходом на него.
В Микрософт хитрые ребята - сами кодят на С++ или чем-то подобном, а остальных программеров отупляют тормозным, но удобным .NETом
Тесты .NET уже проводились здесь не раз, даже интерпретируемый код ПХП его обходит по производительности. Зато проги на .NET можно написать быстро и без проблем. Оно вам надо? =)

Когда же придумают какой-нибудь Native compiler для VB.NET... =)

Ответить

Номер ответа: 6
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #6
Добавлено: 29.07.07 18:07
В Микрософт хитрые ребята - сами кодят на С++ или чем-то подобном, а остальных программеров отупляют тормозным
ничего тормознутого в нем нет, просто тестить не умели... Я когда-то сам здесь тему начинал про тормознутость .NET, =D))..., получив результат, что вб6 быстрее .НЕТ раз в 6... но как показали дальнейшие исследования, я просто не умел компилить... - .НЕТ оказался в два раза быстрее вб6 и всего лишь на 10% уступал Анепосредственному вызову АПИ из С++.



А может ли VB.NET компилить в Native-code (читсый код).
всем известно, что .НЕТ компилирует в IL, подобный асму..., который в дальнейшем преобразуется в native-code а это уже получше любого компилирования в него из вб6...

http://blogs.msdn.com/brada/archive/2004/01/09/48925.aspx
Before the code is run, the IL is compiled into native executable code. And, since this compilation happens by the managed execution environment (or, more correctly, by a runtime-aware compiler that knows how to target the managed execution environment), the managed execution environment can make guarantees about what the code is going to do. It can insert traps and appropriate garbage collection hooks, exception handling, type safety, array bounds and index checking, and so forth.


Тесты .NET уже проводились здесь не раз, даже интерпретируемый код ПХП его обходит по производительности.
это какие же?DDD

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 29.07.07 18:37
это какие же?DDD

Ффпоиск

Ответить

Номер ответа: 8
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #8 Добавлено: 29.07.07 18:44
всем известно, что .НЕТ компилирует в IL, подобный асму..., который в дальнейшем преобразуется в native-code а это уже получше любого компилирования в него из вб6...
Я советую приводить только факты того или иного, а свою оценку приводить под грифом ИМХО, дабы не разводить флейм.

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 29.07.07 19:05
Тесты .NET уже проводились здесь не раз, даже интерпретируемый
код ПХП его обходит по производительности.

Вообще-то тесты показывают, что наоборот, код .NET в разы быстрее
интерпретируемого ПХП. ВО всяком случае бенчмарк Sharp'а показывал
такие результаты.

Ответить

Номер ответа: 10
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #10 Добавлено: 29.07.07 19:20
-АлександР-, узреть бы код+настройки проекта как правильно компилить (лучше всего - код правильного бнчмарка).

Ответить

Номер ответа: 11
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #11
Добавлено: 29.07.07 21:10
.NET:
Public Class Form1

    Dim h As Boolean
    Private Sub Button1_Click(ByVal sender As System.Object, _
                            ByVal e As System.EventArgs) Handles Button1.Click

        h = True
        Me.Refresh()

    End Sub


    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        If h = True Then
            Dim Start As Integer = System.Environment.TickCount

            For i As Integer = 1 To 10000
                e.Graphics.DrawLine(Pens.Plum, 0, 0, 100, 100)
            Next i

            MsgBox(System.Environment.TickCount - Start)
            h = False
        End If
    End Sub

End Class
Так как я в свое время увлекался графикой, то меня интересовала именно эта сторона .NET, и мне была важна скорость именно вывода графики. Вышеприведенный код чертит 10000 линий, от точки А(0,0) к точке В(100,100)

Результат: 15мс.

тоже самое на вб6:
Option Explicit
Dim i As Integer
Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Command1_Click()
    Dim j As Long
    j = GetTickCount
    For i = 1 To 10000
        Line (0, 0)-(1500, 1500), 5
    Next i
    MsgBox GetTickCount - j
End Sub
100мпикс = 15000твипов...
Результат: 31мс. (самый лучший)

Ответить

Номер ответа: 12
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #12
Добавлено: 29.07.07 21:13
ЗЫ: цвета линий не подбирал, взял произвольно...

ЗЗЫ: компиляция под .НЕТ - релизная, а не дебажная (F5 + Ctrl)

Ответить

Номер ответа: 13
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #13 Добавлено: 29.07.07 22:14
Правильнее на VB6.0 будет:
Dim i As Long
И зря ты его закинул в паблик. Он должен находиться в процедуре.

Кстати я VB6.0 с .NET не сравнивал. VB6.0 использует msvbvm60.dll, что тоже его очень тормозит.

На АПИ чуть быстрее стал.
Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Declare Function LineTo Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function MoveToEx Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByRef lpPoint As Long) As Long

Private Sub Command1_Click()
Dim i As Long
Dim i2 As Long
Dim j As Long
    j = GetTickCount
    For i2 = 0 To 32766
        For i = 0 To 15
            MoveToEx hdc, 0, 0, 0
            LineTo hdc, 100, 100
        Next i
    Next
    MsgBox GetTickCount - j
End Sub


Power Basic вне конкуренции по быстроте кода среди бейсиков =)
#Compile Exe
#Register None
#Dim All
%ID_BUTTON = 201
Global hDlg As Dword

Declare Function GetTickCount Lib "kernel32.dll" Alias "GetTickCount" () As Dword
Declare Function LineTo Lib "gdi32.dll" Alias "LineTo" (ByVal hdc As Dword, ByVal x As Dword, ByVal y As Dword) As Dword
Declare Function MoveToEx Lib "gdi32.dll" Alias "MoveToEx" (ByVal hdc As Dword, ByVal x As Dword, ByVal y As Dword, ByRef lpPoint As Dword) As Dword
Declare Function GetWindowDC Lib "user32.dll" Alias "GetWindowDC" (ByVal hwnd As Dword) As Dword
%WM_COMMAND = &H111
%WS_EX_TOOLWINDOW = &H80&
%WS_EX_TOPMOST = &H8&
%WS_SYSMENU = &H80000
%SS_CENTER = &H1&

Sub Command1_Click()
Dim i As Dword
Dim i2 As Dword
Dim j As Dword
Dim hDC As Dword
    hdc = GetWindowDC(hDlg)
    j = GetTickCount
    ! MOV i2, 32766
    lb1:
    ! MOV i, 15
    ! DEC i2
    ! CMP i2,0
    ! JE lb3
    lb2:
    ! DEC i
    ! CMP i,0
    ! JE lb1
    MoveToEx hdc, 0, 0, ByVal 0
    LineTo hdc, 100, 100
    ! JMP lb2
    ! JMP lb1
    lb3:
    MsgBox Str$(GetTickCount - j)
End Sub

CallBack Function DlgProc
  Select Case CbMsg
  Case %WM_COMMAND
    If CbWParam = %ID_BUTTON Then Command1_Click()
  End Select
End Function

Function PBMain
   ;Dialog New 0, "Bench",,, 300, 40, %WS_SYSMENU, %WS_EX_TOPMOST Or %WS_EX_TOOLWINDOW To hDlg
   Control Add Button, hDlg, %ID_BUTTON, "Bench", 5, 10, 290, 15, %SS_CENTER
   ;Dialog Show Modal hDlg Call DlgProc
End Function

Ответить

Номер ответа: 14
Автор ответа:
 shuffle



Администратор

ICQ: 201502381 

Вопросов: 15
Ответов: 737
 Профиль | | #14 Добавлено: 29.07.07 22:32
Power Basic вне конкуренции по быстроте кода среди бейсиков =)
Ага, особенно если использовать ассемблерные вставки :)

Ответить

Номер ответа: 15
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #15
Добавлено: 29.07.07 23:03
Power Basic вне конкуренции по быстроте кода среди бейсиков =)
И какой же у него результат? Заценить не могу, поскольку в PB - ламер. У меня он не запустился...

PS С++ как всегда показал класс:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        HANDLE DC = this->GetDeviceContext(this->Handle);
        int c = GetTickCount();

        for (int i=1; i < 100000 ;i++)
        {
                MoveToEx(DC,0,0,NULL);
                LineTo(DC,100,100);
        }

        int t = GetTickCount() - c;
        ReleaseDC(this->Handle,DC);
        ShowMessage(IntToStr(t));

}
при 100'000 линиях получилисьтакие результаты:
С++ - 78мс :)
VB.NET - 219мс
VB6 - 375мс.

Dim i As Long
И зря ты его закинул в паблик. Он должен находиться в процедуре.
никакой разницы не почувствовал. Как это может повлиять на скорость?

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам