I have joined MCW Technologies as a senior consultant. Very exciting and quite an honor.
This blog is moving to http://www.mcwtech.com/CS/blogs/rgreen/default.aspx
See ya there!
After 8 ½ years at Microsoft it is time to move on to the next phase of my career. April 15 is my last full day at Microsoft. I am going to pursue the life of the independent contractor and return to something that has been a passion of mine since before I came to Microsoft: teaching developers how to use our products.
I think Visual Studio 2005, aka Whidbey, is a fantastic product and I believe it is going to be a smash hit. I think there is an important role to be played by people who help others learn how to use it to its fullest. I want to be one of those people.
I plan on staying part of the developer community. You’ll see me on the newsgroups and forums. You’ll see me speaking at conferences and writing articles (and maybe a book?). And I will create a new blog and post to it on a regular basis.
See you soon!
The Windows Forms team is having a contest to see who can enter the most bugs related to Windows Forms, Windows Forms controls or ClickOnce deployment. Check out http://msdn.microsoft.com/smartclient/challenge/default.aspx for official rules.
To get credit for a bug, you must enter it on the MSDN Product Feedback Center and be the first person to enter it. And of course it needs to be reproducable. And it needs to be something we can either fix or postpone in Whidbey. So suggestions don't count. And neither do bugs that get resolved Won't Fix.
It doesn't matter what language you use. And it doesn't matter when you enter the bug if you choose Windows Forms as the technology or if you choose VB or C# as the Technology and Windows Forms as the category. The PFC is smart enough to route WinForms and ClickOnce bugs to the Client team.
There are monthly prizes for most bugs. The contest runs through the end of May. I am one of the judges. Hope to see you entered!
As of this afternoon the VB team has 232 suggestions entered through the MSDN Product Feedback Center. This is up from 186 the last time I reported, which was August 25. Over the past two weeks we have made a serious effort to reduce our backlog on these and have now resolved 166 of the suggestions, up from 104. By the end of next week we hope to have the backlog mostly eliminated and moving forward we hope to respond to suggestions within a week of receiving them.
Not yet resolved
See my August 25 entry for detailed explanations on all of these categories. In a nutshell, By Design means we did it this way on purpose and there is nothing to consider changing. Won't Fix means someone asked for a change and we won't/can't change it. Fixed means it was either in there all along or we're adding it to VB 2005. Postponed means it's a good idea that won't happen in VB 2005 but we'll consider it for versions after that. A Duplicate could mean the suggestion is actually a bug that was already entered or it could be a duplicate of another suggestion. Not Repro means either we couldn't see what you see or we don't understand and you didn't respond to our request for more info. External means some other team is being counted on to do the work.
The videos of the VSLive Keynotes are on the Fawcette web site.
Soma announced VS 2005 Standard in his keynote and has the latest dev tools roadmap. There is also a seperate link to the reg-free COM demo in his keynote. Reg-free COM is coming in Whidbey and is an important piece of ClickOnce. This lets you install (on a Windows XP machine) any COM components in your application without having to write to the Registry. Dave Templin of the VB team is working on an article explaining this in detail.
Dave Mendlen, who is now the Director of Web Services Technical Marketing, talks about Web services and SOA in his keynote. This is a good opportunity for you to get an understanding of what these are going to mean to VS developers today and over the next few years.
Jay Roxe explains VS Standard in eWeek
"With Visual Studio 2005 Standard Edition we've recognized there is no one right tool for all developers and we've tried to target the line at the different types of developers," said Jay Roxe, product manager for Visual Basic, in an interview with eWEEK. "With Standard Edition we're targeting individuals who develop professional commercial quality applications but who develop on their own. The announcement of Standard Edition completes the picture for the Visual Studio product line."
and in InfoWorld
“With the Standard product, we’re looking to move the Visual Basic 6.0 developer forward and also looking at Web developers who might be using, say, [Macromedia’s] Dreamweaver,” for Web development, said Jay Roxe, Microsoft product marketing manager for Visual Studio.
Good ink Jay!!
Dim whatAboutMe as ShamelessSelfPromotion = True
Yesterday I ran the Super Jock 'n Jill Half Marathon. 13.1 miles in 1:43:20, or a pace of 7:53 per mile. I was shooting for a 1:45:00 (8:00 per mile) and I beat that, in spite of it being quite sunny and warm (nice day yes, but warmer weather drains you faster as a runner) and in spite of undertraining the past 10 days due to a sore Achilles tendon. I finished 331 out of 1193 total runners. Today I have stiff quads and calves, but all in all I feel great.
whatAboutMe = Nothing
Control software for the car is C and assembler. Analysis and simulation is mainly done with Matlab. Other projects are written in object-oriented languages (C++, Delphi and Visual Basic, depending on preference).
This is from a very interesting article on CNET where Dieter Gundel, head of racetrack electronics at Ferrari, talks about Ferrari's use of software in Formula One.
Check out the VB Dev Center Community page. Duncan and I have spend a lot of time lately talking about this page and what we can do to make it more of a community page. The ultimate goal is to make this page more of a community portal, a front door to what's happening in the VB community. Sites like www.asp.net and www.windowsforms.net serve this purpose. Without going off and creating a separate site we want to bring this to the VB Dev Center.
Yesterday we updated the Community page and have taken the first steps to where we want to be. The Community page headlines today list upcoming 3rd party conferences (VSLive, VSConnections, .NET Advisor Live) that the VB team and other VB luminaries will be speaking at. Also on the page are links to VB articles on various VB sites. And we also have links to VB videos and Webcasts featuring VB team members.
In the next week we'll be adding a more comprehensive list of VB bloggers and VB sites. We'll be refreshing the list of articles on a weekly basis. We'll have a feed from this blog. The cool thing about that is I can add a blog entry about something interesting I read in somebody else's blog, a new or old article I ran across, or news about who is appearing at what user group and it will automatically appear on the VB Community page. That lets me keep the page up to date and changing without having to edit the actual page. This by the way, is already done with Duncan's blog on the VB Dev Center page.
Over the course of the next several months we will introduce user submitted article links, which www.asp.net and www.windowsforms.net have already. We will have feeds from the MSDN Product Feedback Center (top VB bugs and suggestions). We'll be looking into listing top newsgroup postings from not only the Microsoft newsgroups, but also forums on vbCity and other sites. And in the longer term we have other ideas which right now are top secret.
What do you think of these ideas? What do you want to see on the VB Community page? Let me know.
As of 8/24, the VB team has 186 suggestions entered through the MSDN Product Feedback Center (up from 169 the week before), 168 of which have been entered since Beta 1. Of the 186 total suggestions, 104 have been resolved (up from 93 the week before).
Not yet resolved
What does all this mean? First a little background. As you hopefully know, you can enter not only bugs, but also suggestions, at the Product Feedback Center (PFC). Do you want features added to the product? Do you want existing features to behave differently? Do you want existing features taken out? Let us know. All bug and suggestions entered via the PFC are copied into our internal bug database where they wait to be triaged.
Every morning (Monday - Friday anyway <bg>) I run a triage query that shows me all the VB bugs and suggestions that came in the previous day. I assign the bugs to Marc Rodman. Marc reviews the bug, checks to make sure he can repro it (see http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=19bbb25f-f51e-405b-ada3-d9c751ca142c for an example of when he couldn't and asked the submitter for help) and assigns it to the different team if needed (more on that later).
I am the first person to look at VB suggestions (again, this happens daily). Sometimes these can be answered right away. Sometimes they need to be sent to another team. The majority of suggestions get assigned to the Program Manager who owns the feature area. Language suggestions go to Amanda Silver, My to Joe Binder, Data to Steve Lasker, Projects and ClickOnce to Sean Draine, IDE to Jay Schmelzer and Express to Paul Yuknewicz. Some I assign to myself, particularly if they don't fall into one of these feature areas. Before I assign the suggestion to one of them I thank the sender and acknowledge that we got the suggestion and will look at it. I have to admit that this acknowledgement is a more recent thing and we didn't do this the first few weeks. Hey, we're learning. <g>
The table above shows 8 different statuses for suggestions. What do they mean?
Not yet resolved (82 of 186)
The suggestion has been assigned to a PM, who has not yet answered. This doesn't mean the PM hasn't looked at the suggestion. It just means they haven't answered. Suggestions are very important to us, but let's be honest, they aren't as important right now as bugs. We are driving down bugs on the road to Beta 2 and if a PM has 25 bugs on their plate and 10 suggestions, they are going to focus on the bugs. That said, it does no good for a customer to make a suggestion and not hear anything from us for a month or more. We are trying to strike the appropriate balance and will get better at it. Thanks for your patience.
Won't Fix vs Postponed
Marie has talked about Won't Fix vs Postponed in the Product Feedback Center blog and whether customers know the difference and what each means to them. Both mean we aren't going to implement the feature in VS 2005. Won't Fix means we won't consider doing it in the version after that and Postponed means we would consider the feature post VS 2005. That's what they should mean. I don't think we have been consistent in this usage although we are trying to be.
Won't Fix (26 of 186)
Auto Update feature in Setup Project (http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=31c09c32-de5a-422a-8a81-a60e073dad4e) is a good example of a Won't Fix. FDBK12582 asked for an Auto Update feature in the Setup project. Sean replied that auto-update is a feature of the ClickOnce deployment model and the feature would be in there rather than in the Setup project. So moving forward (this time and in the future) we will focus our efforts on ClickOnce as the deployment technology and are not likely to add this to the previous deployment technology.
Upgraded Windows Forms (http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=120644d7-c1f6-442d-8ec8-297b6648f549) is another good example. Shorty points out that when you upgrade a VS 2003 project to VS 2005 the forms are not upgraded to the VS 2005 style (Form1.vb and Form1.Designer.vb). So your new forms will have the designer generated code in the Designer file but your existing forms won't. I responded that we looked at this but decided the risk of getting it wrong outweighed the benefit. We don't want to take a form that works and convert it into a form that doesn't. I also pointed out how to manually do the conversion.
By Design (24 of 186)
Don't use ''' for XML comment designation (http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=d38461b0-1cc0-4f2b-9b84-33276943f7eb) is a good example of By Design. FDBK12582 asked us to use /// for XML comments like C#. I explaned that quotes are the way VB has always done comments and that's why we chose ''' for XML comments.
Fix "And" and "Or" Keywords to shortcircuit and drop that goofy "AndAlso" and "OrElse" stratements (http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackid=d3a0e50b-7025-4c0f-a33c-7060ebb2f6f2) is another good example. Matt Gertz (a dev on the VB team) responded to this suggestion from dkangel explaining that having And and Or shortcircuit would break VB6 (and prior) code so we chose not to do it. Also, dropping AndAlso and OrElse would cause much pain among customers currently using those statements.
Fixed (23 of 186)
Very often these suggestions are for features the customer has not yet discovered in VS 2005. XML Comments, Renaming, TryCast are a few examples. In a couple of cases the suggestion was for something we are going to do in VS 2005.
Postponed (18 of 186)
These are all fine ideas. But we won't be able to implement them this time around. We will consider them for next time. Keep these coming and vote on the ones you really like. These suggestions will help us build a better VB and a VB that is more of what you want.
Not repro (7 of 186)
Either we couldn't see the same behavior the customer saw or we asked for more information and didn't get a response.
Duplicate (5 of 186)
2 of the 5 were suggestions that had already been entered. 3 of these are duplicates of existing bugs that we are working on fixing either for Beta 2 or RTM.
External (1 of 186)
This one is also an existing bug, but the work is being done by a different team.
Internal terminology vs external terminology
You will not find any suggestions resolved as External in the Product Feedback Center. How do you know what that means? And if it is a bug, why should you care who has to fix it? The Microsoft Status of the External bug is still Under Review. The comments from Microsoft state that it is a bug. It is still Under Review because the team that is fixing it is still fixing it. Also, the 3 Duplicate suggestions have Under Review as their Microsoft Status on the PFC. They are duplicates of existing bugs and once those bugs are resolved the suggestions will be resolved as well (hopefully Fixed).
I will provide this summary every week so you can keep track, along with us, of the suggestions. Thanks to those of you who have made suggestions. And we encourage all of you to send us more.
Jackie Goldstein has posted the slides, demos and videos of the VB to VB .NET Upgrade Tour on the Microsoft Israel Web site. Way to go Jackie!
And speaking of Jackie, he will be speaking at the VB Meeting of the .NET Developers Association this Monday at 7:00 PM. The topic is ADO.NET: Lessons learned with 1.1 and coming attractions in 2.0.
WERS 88.9 FM Emerson College Radio in Boston, at www.wers.org
I first heard this station when I was in Boston (out for a run in my home town of Marblehead). I recently found them on the Web. The weekday show Jazz Oasis is 10 AM to 2 PM EST, which is 7 AM to 11 AM PST, which is perfect for early morning listening (unless I am listening to John in the Morning on www.kexp.org). As the name suggests it is a jazz show and a good one. The show after that, Gyroscope, is "an eclectic mix of rhythms and melodies from around the world".
They don't have archives or a real-time playlist. But they are worth checking out.
Check out John Dvorak's list of the 10 worst software packages of all time:
10. Microsoft Bob
9. Combined Category: Dead Programming Languages
8. MicroPro Easy
7. Windows 1.0
6. Access (the telecom program, not the database)
4. Lotus Symphony and Lotus Jazz
2. Microsoft OS/2
Never heard of these? Waddya, one of them young punks with no sense of software history? Used any of these? How does it feel to be old enough to be the father of those young punks you work with?
Robert blogged for awhile. Then he stopped. Then he sort of started again, but not so much. Then he stopped, or more accurately, stopped starting again. But now he is back, again. And is committed to regular blogging. You'll see.
Josh Ledgard linked to my post about the Power Pack and rizzo commented that the descriptions you get on Workspaces are too short. So you have to download the controls to see if you want them.
I will put a link to the Power Pack article on MSDN on the workspace to see if that helps.
For your viewing pleasure, the article can be found at http://msdn.microsoft.com/vbasic/default.aspx?pull=/library/en-us/dv_vstechart/html/vbpowerpack.asp .
It’s been a little over a month since we shipped the Power Pack. As of this morning, the controls have been downloaded 17,401 times!! And there are more than 100 members of the Power Pack Workspace (http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=167542e0-e435-4585-ae4f-c111fe60ed58). Nathan Blecharczyk, an intern on the VB team for the summer, has been added as an Owner to help manage the Workspace. The community has contributed the following releases to supplement the controls: In addition, there are community-based localization efforts underway. The first success is a Russian version of the Power Pack (http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=ddd39346-8c09-4999-af50-2ff4334d9bb1). There have been 162 downloads of this so far.
It’s been a little over a month since we shipped the Power Pack. As of this morning, the controls have been downloaded 17,401 times!! And there are more than 100 members of the Power Pack Workspace (http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=167542e0-e435-4585-ae4f-c111fe60ed58). Nathan Blecharczyk, an intern on the VB team for the summer, has been added as an Owner to help manage the Workspace.
The community has contributed the following releases to supplement the controls:
In addition, there are community-based localization efforts underway. The first success is a Russian version of the Power Pack (http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=ddd39346-8c09-4999-af50-2ff4334d9bb1). There have been 162 downloads of this so far.
I have spent much of the past few months getting the Visual Basic Power Pack ready and released. The Visual Basic Power Pack is a VB team community project. It consists of seven custom controls written in Visual Basic .NET 2003. The controls provide enhanced user interface elements and enable you to create more interesting and more colorful client based applications.
The Power Pack controls are:
- BlendPanel. Provides a gradiant fill background you can use on forms. Set the start color, the end color and the direction for the gradiant.
- Notification Window. Provides a way to display messages using “toast“ like Windows Messenger uses.
- UtilityToolbar. Provides a graphical toolbar that looks and behaves very much like the one in Internet Explorer.
- ImageButton. Provides a button that displays images on a transparent background. So your button displays just the image and not the whole rectangle with the image.
- TaskFrame. A container for TaskPanes. This control looks and behaves like the TaskPane in Word 2003 or Excel 2003. The TaskPanes are collapsable windows that can contain any control.
- FolderViewer. Displays a hierarchy of folders on a computer.
- FileViewer. Displays the files in a specfied folder.
The Power Pack controls live in the VB Power Pack workspace on GotDotNet. The controls come with the complete source code, as well as an article and short sample.
The controls were written by a contractor who used to be as a developer at Microsoft. Several members of the VB team provided valuable Testing and additional Development work. I was the Program Manager.
The Power Pack controls are unsupported code and you can freely change and redistribute them. We encourage you to visit and join the Workspace. The controls are up there and have been downloaded more than 500 times since they went live Wednesday afternoon. Come and discuss them in the Message Board. Join the workgroup and help us update and revise them.
I am in Boston today for a mini-vacation. When I get back in the office on Tuesday I will blog about the individual controls. In the meantime, play with them and let me know what you think.
Good morning from Orlando. I am here for VSConnections. I flew down Sunday (7:20 AM flight through Dallas and then arriving in Orlando at 5:30 PM). Monday morning I was the demo guy (internally we use a different term but I'm not sharing that with you!) for Alan Griver's keynote. It went well. Alan did a very good job of laying out the vision for VS 2005. My first demo was of the Class Designer, which is a visual way of creating and managing classes in an application. You can drag a class out of the Toolbox onto the class diagram. This immediately creates a class file in your VS project. You can add the properties and methods in the Class Designer or in the code editor. And your code and the class diagram are continuously in synch. You can select a class in the designer and see not only its base classes but also its derived classes. Very nice!
I next showed the Consolidated Insurance demo that Jay Roxe debuted at VSLive in Bill Gates' keynote. It shows a WinForm with some nice UI (a gradiant background supplied by an image) plus the new Toolstrip control with image buttons. I dragged and dropped claim data that came from an object. I then showed a snippet that uses My to talk to the printer and also Edit and Continue. Here is the snippet code:
' Click for more: 'ms-help://MS.VSCC.v80/MS.MSDNQTR.80.en/commoner/redir/redirect.htm?keyword="a1520853-292b-4f38-b838-6a7fccc44a48"'
.FontStyle = FontStyle.Bold + FontStyle.Italic
.FontSize = 16
.HorizontalAlignment = HorizontalAlignment.Center
.WriteLine("Consolidated Insurance Claim " + curClaim.ClaimID)
.WriteLine("Claim Date: " & curClaim.IncidentDate.ToShortDateString)
.FontStyle = FontStyle.Regular
.FontSize = 10
.HorizontalAlignment = HorizontalAlignment.Left
.WriteLine("Customer " + curClaim.Customer)
Finally I showed the 2005 version of VS Tools for Office. I showed an Excel based expense report that gets expense data from a Web service. It also has 2 user controls, one that displays user info and one that displays the expense items. When you run the spreadsheet you see an Excel list and also the 2 user controls on the spreadsheet. How do you see user controls on the spreadsheet? Because they are added to the ActionsPane, which is similar to the Excel Task Pane except that it is a container for .NET controls. Here is the code that sits in the Workbook.vb file in this project:
Partial Class ThisWorkbook
<Cached()> Private Expenses As ExpenseData
Private UserInfo As New UserInfoControl
Private Transactions As New TransactionsControl
Protected Sub ThisWorkboox_InitializationComplete(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Initialize
Me.Expenses = ExpenseService.GetExpenses()
Me.UserInfo.DataSource = Me.Expenses.ExpenseReport
Me.Transactions.Expenses = Me.Expenses
Globals.Sheet1.List1.DataSource = Me.Expenses.Expense
Me.ActionsPane.BackColor = System.Drawing.Color.FromArgb(CType(101, Byte), CType(143, Byte), CType(224, Byte))
The code retrieves expense info from the Web service, sends the expense report level data to the UserInfo control and then sends the expense items data to the Transactions control. List1 is an Excel 2003 list which we can now treat as a .NET object and the code sets the DataSource of the list. The last two lines add the two user controls to the ActionsPane and so they appear in the spreadsheet. The current version of VS Tools for Office is very cool and powerful and the next version is a tremendous leap forward over that.
After the keynote I gave a Building Windows Apps in VB talk while Dan Fernandez gave the C# version of that talk. Then I did a Data talk which drilled down into the drag and drop data capabilities in VS. Sean Draine showed ClickOnce in the next talk and in the final talk Joe Binder drilled into some of the advanced VB language features and My.
In addition to showing lots of exciting new features and capabilities, we tried to get across the following very important points
- You get a lot of productivity from the data and My features. We write a bunch of code for you that you don't now have to learn and write yourself. However, behind the scenes we are writing a lot of the same code that you have to write today. So there is not going to be a signficant performance penalty from using drag and drop data or using My.
- VB and C# are both very powerful languages and will both continue to get more powerful (generics etc). But VB is also very heavily focused on productivity. So with features like My and background compilation and compiler warnings etc we want VB to both extremely powerful and extremely productive.