Category Archives: Visual Basic

Catch me at the Capital Area .NET Users group!

As I intimated a few posts ago, I’m going to be back on the East Coast at the end of the month. Part of the reason is to visit family (my family this time), but part of it is to give a talk at the Capital Area .NET Users group. You can find their website at http://www.caparea.net/, and here’s the blurb:

Visual Basic 9.0: Language Integrated Query (LINQ), XML integration and beyond…

Tuesday, September 26, 2006 at 7:00 PM

With its second version on the .NET Framework, Visual Basic has largely completed the process of moving from its previous home in COM to its new home in the CLR. As a full-fledged language on a premier runtime platform, the inevitable next question is: Now what? Come hear a discussion and see demos of where Visual Basic is headed in the future. Visual Basic 9.0 will offer radical improvements in its ability to query data in all its forms, whether as objects, XML, or relational data. Also, working with data interchange becomes significantly easier as XML becomes integrated directly into the language. And, finally, we’ll take a look back at Visual Basic’s dynamic language and scripting roots to see what lessons from the past might be brought into future versions and look ahead at where the language might be headed beyond 9.0.

The talk will mostly cover LINQ and will be a more developed version of the talk I gave at the PDC (i.e. it will include all the work and thinking that we’ve done since last November). It’ll also have some teaser stuff at the end that covers a bit of what we talked about at Lang .NET (which I’ll also discuss here once I’ve dug out a bit more).

If you’re in the VA/DC/MA area, I hope to see you there!

Two wild and crazy guys…

Normally, I don’t promote videos and stuff that I haven’t actually watched, but since I’m still buried under vacation emails, and I know that it’s just got to be good stuff, I recommend checking out:

Erik Meijer: Democratizing the Cloud

and

Brian Beckman: Monads, Monoids, and Mort

Erik and Brian are just two crazy guys with lots of crazy ideas who’ve been a lot of fun to interact with over the past couple of years… Without Erik, there’d be no XML support coming in VB and he’s added a lot to our LINQ discussions. And, well, I haven’t quite figured Brian out yet, but I’m working on it! <g>

VB 2005 Performance QFE released…

Despite the fact that we made what I still feel is a solid release, we’ve been clearly seeing some customers having problems with the performance of the VB 2005 compiler when used on large VB projects. In response to a number of problems that we’ve isolated, we’ve released a QFE that addresses many of the major problems people are having. To quote the announcement in the forums:

We’ve received feedback, both directly from developers and in the forums, regarding slow performance of the Visual Basic 2005 IDE in certain situations (larger projects, projects with many errors, etc.).

I’m sorry that these issues made it to production and degraded the performance of the IDE. The Visual Basic Performance team is working hard to address these issues via hotfixes and the upcoming Visual Basic 2005 SP1 while we work on engineering changes to make sure that issues such as these never make it into a shipping product in the future.

Based on this feedback and forum posts, we’ve been working with customers to address these performance issues.  We recently released a performance hotfix to address the following areas of Visual Basic 2005 performance:

  1. Improves the performance of single-stepping (F10) debugging.
  2. Improves the performance of Task/Error List Refresh.
  3. Improves the performance of Intellisense.

You can learn more about this hotfix in the KB 920805 article (http://support.microsoft.com/kb/920805/en-us). In order to get this hotfix, you need to contact support and reference KB 920805.  Details on contacting support can be found at http://support.microsoft.com/contactus/?ws=support.

Note that this hotfix rolls up all performance hotfixes to date, so installing this hotfix will give you the best IDE performance. 

Again, we appreciate your feedback and we thank you for your patience while we address these issues. Please contact vbperf@microsoft.com if you continue to see issues after applying this hotfix.

Thanks,

            Chris Mayo
            Visual Basic Performance Program Manager

As Chris says, these hotfixes (which you currently have to go through support to get, so we can track the QFEs we’re handing out) will be rolled into SP1. I encourage people to email vbperf@microsoft.com if you are having performance problems that aren’t addressed by the QFE so we can work on isolating the problems you’re seeing and get them fixed.

“Want to build a compiler?” redux.

Interested in working for Microsoft? Want to build a compiler? Want to work on the coolest programming language ever? (Note for the humor-impaired: that last statement includes an implicit self-deprecating wink and a smile.) Don’t want to mange managers? We’ve also opened a new position on the compiler team that involves working directly on the compiler/language and doesn’t require managing people:

Want to help chart the future of one of the most popular programming languages in the world? Interested in building a highly interactive tool that brings programming to the masses and makes professional programmers even more productive at the same time? Want to work on melding dynamic language and scripting concepts into a statically typed language? The Visual Basic development team is looking for a highly motivated software development engineer to work on future versions of the Visual Basic language. Responsibilities include:

  • Working with the language design team to help design new features for Visual Basic.
  • Planning, scheduling, and developing those new features.
  • Helping to develop the infrastructure used to build and test the product.

The ideal candidate will have a minimum of a B.S. in Computer Science/Software Engineering and 4 years of industry practice. A background in compiler architecture, database technology, and/or Microsoft .NET Framework usage is a plus. If you’re ready to step up and join a dynamic, fast-paced team which delivers high-quality development tools to millions of customers, we’re waiting for you!

Here’s a link to the actual listing.

Lang .NET 2006: Where are we going, where have we been?

Back in April, I mentioned that we’re going to have a compiler/languages symposium here in Redmond in August called Lang .NET 2006. Erik just announced that registrations are open, so sign up! As it turns out, I’m going to be giving a talk at the symposium. Ignore the title currently on the site (“Visual Basic 9”), here’s my current proposed title and abstract:

Visual Basic: Where are we going, where have we been?

With its third version on the .NET Framework, Visual Basic has largely completed the process of moving from its previous home in COM to its new home in the CLR. As a full-fledged language on a premier runtime platform, the inevitable next question is: Now what? This talk will discuss future directions for the Visual Basic language, both from a short-term and long-term perspective. Integrating data access and XML directly into the language is the next major challenge on the horizon, and we will cover some of the interesting insights and challenges that have arisen from this work. We’ll also take a look back at Visual Basic’s dynamic language and scripting roots to see what lessons from the past might be brought into future versions and look ahead at where the language might be headed in the long run.

I hope to see everyone there!

Want to build a compiler?

Interested in working for Microsoft? Want to build a compiler? Want to work on the coolest programming language ever? The Visual Basic compiler development lead position is open and we’re looking for someone with the right stuff to fill it:

Microsoft Visual Basic is used by millions of developers worldwide, and is widely acclaimed for both its power and ease-of-use. As the next Development Lead of the Visual Basic Compiler and Editor team, you will be the guiding hand behind the development of the next version of Visual Basic’s powerful programming language. Data/Language integration -LINQ-, advanced IntelliSense and other editor features, and an enhanced runtime library are just a few of the exciting features that you will be driving as you lead a team of highly motivated and experienced engineers. As Dev Lead, your responsibilities will include:
– Contributing to planning new compiler and editor features
– Coordinating feature work with leads on other teams both internal and external to Visual Basic
– Managing compiler team feature work
– Mentoring your team in their careers, including dev leads reporting to your position
– Following up with customers to ensure we deliver the best Visual Basic product ever
This is a “manager of managers” position, and prior experience as a development lead is a requirement. The ideal candidate will be skilled in leadership, technology, and collaboration, and will have a history of high management review scores. Qualifications include a BS in CS/EE -or equivalent-, a minimum of 3 years as a development lead, and 7 or more years of software engineering experience overall. Shipping experience and deep knowledge of compiler, debugger, and editor technologies are a must.

Here’s a link to the job on the Microsoft career site. If you’ve got the qualifications, this is a great job with a great bunch of people. And you really can take my word for it, since it used to be my job!

Happy 15th Birthday to Visual Basic!

Wow, where does the time go? I can remember when VB was just this tall. Soon it’ll be driving!

Microsoft Announces Visual Basic at Windows World ’91 General-Purpose, High-Productivity Programming System for Microsoft Windows

ATLANTA — May 20, 1991 — Microsoft today announced MicrosoftR Visual BasicTM programming system at the Windows World ’91 industry trade show.  Visual Basic is a graphical application development system for Microsoft WindowsTM graphical environment version 3.0 that combines visual design tools with a powerful, general-purpose programming language and Windows .EXE compiler.  It provides a simple solution to the complex task of creating real Windows-based software applications.

“We set out to create the fastest, easiest way to program for the Windows environment,” said Bill Gates, Microsoft founder and CEO.  “My goal from the start was to make developing Windows applications as easy and natural as possible.  We also wanted this tool to appeal to a broad spectrum of people interested in programming for Windows — from professional corporate programmers and consultants solving business problems to independent software vendors and casual programmers.”

Visual Basic programming system combines a rich, event-driven programming model with the world’s most widely used programming language in a tightly integrated package.  General development for the Windows environment is faster than ever.  The Visual Basic programming system provides visual user-interface design capabilities with powerful general-purpose programming tools, making it easy for any programmer to create compiled Windows .EXE files that can be freely distributed without run-time fees or royalties of any kind.

“This is the most important software product of the year, if not the decade,” said Steve Gibson, president of Gibson Research Inc.  “It’s the ultimate intellectual tool. Thanks to Visual Basic, both casual and professional programmers can produce compelling and beautiful results. Now it’s easy to put together real Windows version 3.0 applications.”

“We needed to create an application that incorporated Microsoft Word for Windows and Microsoft Excel,” said Craig Ellis, senior programmer analyst, Reuters Information Systems.  “Visual Basic was the tool to do this.  It filled our needs, allowed us to develop a fast and effective application and cut our development time by more than half.  It’s a fantastic product that allowed us to incorporate a family of Microsoft products into one application.”

The Visual Basic programming system can be used to develop any Windows-based application, including corporate business systems, tools and utilities, front ends to data (mainframe, server and local) or commercial Windows software products.  It is also useful for integrating multiple Windows-based applications and for automating software testing through dynamic data exchange (DDE).

Visual Basic programming system provides visual design tools for creating the user interface components — windows and dialogs — of an application.  A full set of Windows interface components (including command buttons, text fields, list boxes, pictures, drop-down menus and file system controls) are created visually, without writing any code.  The forms engine for building the interface incorporates technology acquired from Cooper Software.  A powerful, structured programming language is then used to add functionality to these interface components, responding to events that are automatically trapped by the system.

The Visual Basic language is a derivative of the Microsoft QuickBasicTM modern programming system, modified for the graphical environment and the event-driven programming language.  It uses a threaded p-code incremental compiler and source-level debugging tools, including an interactive immediate window, in a tightly integrated system.

Extensibility

Support is provided for DDE, the mechanism for exchanging data with other Windows-based applications.  The Visual Basic system also supports dynamic link libraries (DLLs), which allow the user to establish links with other Windows systems facilities and call the Windows API or routines written in other languages and compiled into DLLs.  The control set itself can be extended by developers using C and the Windows SDK and the Microsoft Visual Basic Control Development Kit, available separately.  This extensibility will provide the ability to fully integrate new user interface components into the graphical design and code development environment.  Examples could include multimedia, pen controls and data access.

Printed documentation and online Help provide step-by-step instructions for writing programs.  The online Help system provides context-sensitive reference information and sample code that can be copied and pasted into a Visual Basic program.  An icon library of approximately 400 designs and an icon editor written in Visual Basic language are also included.  “The built-in help is excellent,” said Lee Perryman, deputy director of Associated Press Broadcast Services in Washington, D.C.  “The debugging features are superb, and the controls are rich and feature-packed.  Because there is almost no learning curve for users familiar with the Basic language, Visual Basic makes Windows programming a snap.”

Visual Basic programming system for Windows will be available in June 1991 for a suggested retail price* of $199.  German and French versions are expected to ship in August, with other foreign language versions to follow.

The Visual Basic programming system runs in either the standard or enhanced mode of Microsoft Windows graphical environment version 3.0 or higher.  The system requirements include a personal computer using 80286 processor or higher; hard disk; mouse; CGA, EGA, VGA, 8514, HerculesR or compatible display; MS-DOSR operating system version 3.1 or later and one or more megabyte of memory.

Microsoft Corporation (NASDAQ “MSFT”) develops, markets and supports a wide range of software for business and professional use, including operating systems, network products, languages and applications as well as books, CD-ROM products and hardware for the microcomputer marketplace.

#########

Microsoft, the Microsoft logo and MS-DOS are registered trademarks and Microsoft QuickBasic, Visual Basic and Windows are trademarks of Microsoft Corporation.
Hercules is a registered trademark of Hercules Computer Technology.

*Prices listed are U.S. suggested retail prices.

And many happy returns…

New LINQ CTP!

FYI, we just released an updated community preview of our LINQ support for both VB and C#, entitled “Microsoft Visual Studio Code Name “Orcas” Language-Integrated Query, May 2006 Community Technology Preview.” Or you could just call it “the May CTP.” Anyway, this new CTP has a lot of new goodies for VB programmers, as our LINQ support is greatly expanded. To crib straight from the readme, here’s some of the stuff we did:

Enhanced DLinq Support: This CTP adds support for Inheritance, Stored Procedures, User-Defined Functions, and Optimistic Concurrency Conflict Resolution (OCCR).  The new DLinq Designer provides a visual design surface for creating DLinq entity classes from database tables.

LINQ over DataSet: The full power of LINQ can now be applied to the DataSet, allowing you to use the Standard Query Operators and some DataSet-specific extensions to query against DataRows.

“Group By” Query Comprehensions: The compiler now supports “Group By” as a valid clause in LINQ Queries. 

Outlining support for XML Literals in the Editor: In this release, we added outlining support for XML literals. You can now expand or collapse any Xml element literal that spans across more than one line. 

Value extension property for XML axis properties: We added a Value extension property to the collections that are returned from the XML axis properties (i.e. IEnumerable(Of XElement) and IEnumerable(Of XAttribute)). This extension property does two things, it first picks up the first object in that IEnumerable, and if this object exists, it calls the “Value” property on this object (either XElement or XAttribute).

Global Xml namespace support: XML namespaces that are declared using the Imports statement can now be used in the XML literals.Select/From syntax: The previous tech preview supported using Select before From.  In an effort to provide better IntelliSense™, we’re switching to the From/Select format for this CTP.

Joins don’t require “It”:  You don’t need to use the iterator variable “it” anymore when performing a join operation, though it’s still required for grouping operations.

Xml axis properties syntax: The late bound Xml feature has a new name and a new distinct syntax where we wrap the element name with angle brackets. This new syntax makes the Xml axis properties visually distinct and solves problems that the previous CTP syntax had. See more information in this blog.

Enjoy!