VB.NET
Реализация языка программирования BasicVisual Basic.NET (VB.NET) — объектно-ориентированный язык программирования, который следует рассматривать как развитие Microsoft Visual Basic на платформе .NET. В VB.NET были произведены существенные изменения, которые привели к несовместимости с версиями Visual Basic, что делает автоматический перенос приложений из VB 6.0 в VB.NET по крайней мере очень проблематичным. Открытие проектов старых версий (*.vbp) возможно только после предварительного преобразования их в формат VB.NET специальным мастером (Migration Wizard). Кроме того, и это наиболее существенно, изменилась логика и концепция разработки.
Учитывая запросы со стороны сообщества программистов VB, разработчики VB.NET представили обновленную, гораздо более мощную и гибкую версию, чем все предыдущие. Microsoft включила в VB.NET ряд новых возможностей, в числе которых полная поддержка объектно-ориентированного программирования и расширенные средства разработки web-приложений. Но обнаружилась и оборотная сторона медали. Прежде всего, для освоения обновленного инструмента требуются немалые усилия. Проблема усугубляется еще и тем, что огромная армия VB программистов очень неоднородна по квалификации и характеру решаемых задач. Именно это обусловило раскол VB-сообщества на две части по отношению к новому инструменту.
Большинство разработчиков VB.NET использует Visual Studio .NET как интегрированную среду обработки (IDE).
Связь с VB6 и младшими версиями
Нужно ли рассматривать Visual Basic.NET как новую версию Visual Basic или как совершенно новый язык — тема дебатов. Ответ не так очевиден. Основной синтаксис языка не претерпел сильных изменений, были добавлены различные расширения для поддержки новых особенностей. Были произведены два важных изменения типов данных. По сравнению с VB6 тип Integer был расширен с 16 битов до 32, а тип Long с 32 до 64. Данные изменения присутствуют во всех версиях VB.NET. Старый же целочисленный тип сохранен под именем Short. Редактор графического интерфейса остался практически неизменным. Семантика же языка претерпела значительные изменения.
Изменения затронули множество предположений о «правильных» вещах, для обеспечения производительности и обслуживания. Некоторые функции и библиотеки перестали существовать; другие остались доступны, но не являются эффективными. И даже если старые проекты, написанные на VB6, откомпилируются, он потребует значительных изменений для полного использования преимуществ .NET. нового языка.
Полемика
Большое количество программистов верных Visual Basic жалуются на Visual Basic.NET. Поводом тому служит их несовместимость, уменьшение количества языковых конструкций, особенностей пользовательского интерфейса, изменение семантики. Это привело к тому, что VB.NET стали уничижительно называть Visual Fred или DOTNOT.
Сторонники VB.NET заявляют, что новый язык является более сильным, чем оригинал, включает современную объектно-ориентированную парадигму, что делает программирование более естественным, последовательным и логичным. Противники же настаивают на том, что хотя у VB6 и есть недостатки в объектной модели, усилия по импортированию кода слишком велики по сравнению с преимуществами VB.NET. Независимые разработчики, производящие программное обеспечение для сети Интернет, также остаются на стороне противников.
Microsoft поставляет конвертер VB6-to-VB.NET с Visual Studio .NET, который улучшался в течение долгого времени, но так и не способен корректно преобразовать весь код, и практически все нетривиальные программы после конвертирования нуждаются в ручной доработке. Программы, написанные на Visual Basic, чаще всего являются алгоритмическими по своей природе и могут быть импортированы с небольшими усилиями, однако иначе дело состоит с программами, которые работают с базами данных, графикой, неуправляемыми операциями.
В 2005 компания ArtinSoft, разрабатывавшая конвертер VB6-to-VB.NET, разработала инструмент миграции, названный ArtinSoft Visual Basic Upgrade Companion. Он расширяет возможности конвертора VB6-to-VB.NET и обеспечивает дополнительные возможности. Используя алгоритмы искусственного интеллекта, он может обнаруживать шаблоны кода, которые могут быть реализованы более структурно.
Ссылки:
Примеры:
Hello, World!:
Пример для версий VB.NET 9 (2008), vbnc 2.4.2Module Module1
Sub Main()
Console.WriteLine("Hello, World!")
End Sub
End Module
Факториал:
Пример для версий VB.NET 9 (2008), vbnc 2.4.2Используется рекурсивное определение факториала.
Module Module1
Function Factorial(ByVal n As Integer) As Long
If n = 0 Then
Return 1
Else
Return n * Factorial(n - 1)
End If
End Function
Sub Main()
For i As Integer = 0 To 16
Console.WriteLine(i & "! = " & Factorial(i))
Next
End Sub
End Module
Числа Фибоначчи:
Пример для версий VB.NET 9 (2008), vbnc 2.4.2Используется рекурсивное определение чисел Фибоначчи.
Module Module1
Function Fibonacci(ByVal n As Integer) As Long
If n < 3 Then
Return 1
Else
Return Fibonacci(n - 1) + Fibonacci(n - 2)
End If
End Function
Sub Main()
For i As Integer = 1 To 16
Console.Write(Fibonacci(i) & ", ")
Next
Console.WriteLine("...")
End Sub
End Module
Квадратное уравнение:
Пример для версий VB.NET 9 (2008), vbnc 2.4.2Module Module1
Sub Main()
Dim A, B, C, D As Integer
Dim p1, p2 As Double
Try
Console.Write("A = ")
A = Val(Console.ReadLine())
Console.Write("B = ")
B = Val(Console.ReadLine())
Console.Write("C = ")
C = Val(Console.ReadLine())
Catch ex As Exception
Console.WriteLine("Invalid input.")
Return
End Try
If A = 0 Then
Console.WriteLine("Not a quadratic equation.")
Return
End If
D = B * B - 4 * A * C
p1 = -B / 2.0 / A
p2 = Math.Sqrt(Math.Abs(D)) / 2.0 / A
If D = 0 Then
Console.Write("x = " & p1.ToString())
ElseIf D > 0 Then
Console.WriteLine("x1 = " & (p1 + p2).ToString())
Console.WriteLine("x2 = " & (p1 - p2).ToString())
Else
Console.WriteLine("x1 = (" & p1.ToString() & "," & p2.ToString() & ")")
Console.WriteLine("x2 = (" & p1.ToString() & ",-" & p2.ToString() & ")")
End If
End Sub
End Module
Комментарии
]]>blog comments powered by Disqus
]]>