Visual Studio 2008 Beta 1, is cool. Its better than the 2005 release of Visual Studio. Waaay better in terms of performance of the IDE (Please give us more performance). However there are a few things that I want to see changed in Visual Studio 2008.
Interesting. I have no issues with the performance of 2005, and see no difference in 2008 (actually, there's a few areas that are decidedly worse, but given this is beta software running on a VPC there's numerous reasons to suspect I won't see these cases
when 2008 is released).
First The Controls For Windows Forms.:
Which Win Forms Controls you think should be updated or even removed?
Not an IDE consideration. But I'll play along.
For me its the Progress Bar control. Should it not be updated? Most apps don't really use the Progress Bar, but rather a circular progress indicator, that does not really convey realtime progress but rather that the application is working or doing some work
in the background.
So why not update the Progress Bar control, so that it is more meaningful in todays apps.
What your describing is NOT a progress bar, and definately should NOT replace it. I wouldn't have an issue with providing this as a new control, though I'm uncertain how you'd implement something like this. Every application uses a different animation for
this, so the vast majority of the work required to create this on your own will remain if there's a canned control available in the library. I mean, seriously, the reusable interface here consists basically of Start and Stop methods.
Most Controls should have new properties, that allows us to easily update a forms controls without thinking too much about threads. I want there to be a way to have callbacks that allows me to update a given control in the form without thinking about invokes
(compiler should think about that
We all know about Invokes, and all, but its a bit of a mess. There should be a way to communicate through call backs with objects on a form. So a thread would just calll the callback, and without any problems it would update the WinForm Control (Control Responds
to Update Event with its event args array of parameters).
You already have this in the form of the BackgroundWorker. That's a better design than modifying every control to add this functionality.
Further, there should be new controls that deals with hardware directly, and especially graphics and sound. One can drop a control, assign to it the kind of sound encoding, and the control would be able to interact with Windows Sound APIs, to enable me to rapidly
make my media player. or VOIP solution. There are 3rd party controls that does this, but I think MS should give us one.etc.. Generally Hardware related Controls (dealing with Sound Card , video card, mics, etc..(where assembly is required).
I know one can use the WinMediaPlayer dlls, but then there are alot of limitations. There should be some kind of a generic control for media and sound. that allows us to use custom encoding and decoding.
This I can agree with, but it would be mighty low in my list of things Microsoft should focus on. For the most part, you're talking about niche technology that is helpful to a few. I'm glad to see they are focusing on the larger stuff, that effects everyone.
IOW, rich data, databinding, etc.
Also, there should be an updated Win Forms Control that Deals with Sockets in a more flexible way. I want to be able to have a control that is able to ensure that a packet send is a packet received (does all packet recognition using say RegEx on XML?). And
in general a more robust socket control that wraps the Socket class in .NET.
I don't see any problems here. I certainly don't want a control. I want libraries for this (this kind of functionality doesn't belong in the UI portion of my code). And WCF does this.
I hate the way Unit Testing is implemented in Orcas. I mean why does it have to generate an entire Project just for Unit Testing a class (thats what happened when I tried it) ? Why can't I do Unit testing In-Situ? Where the IDE would simulate debugging
just the code I am interested in, by allowing me to give it the parameters I want, at design time, so I can be sure that this method is bug free for my purposes. Creating an entire Project is just something that disrupt user experience and is just not good
to work with. It should be done behind the scenes on the same IDE session on the same code page.
You're talking about some sort of ad-hoc user testing, not reproducible automated unit testing. Maybe useful, but not much. The automated unit testing is much more important. And for that, you need libraries. I can point out several things that should be
improved here (it should be easier to run specific (sets of) tests, for instance), but none are what you seem to be asking for.
At least with SQL Server 2005, when you want to step through an SProc, you get a form that you supply the parameters in and it lets you step through it, Nice and clean. Hence, I wish for VS 2008, to have unit testing in-situ (simulate debugging senario on the
IDE itself of just one code block that the Programmer specifies (through highlighting, then context menu selection >> Debug This (Or Unit Test This) and the smallest testable unit is the algorithm that takes parameters and returns values (methods))?
Further, there should be automatic way to test for code vulnerability. VS should try to guess or report of potential security problems in a given code block, and report suggestions. (I mean common senarios ..)
Code analysis (FXCop) does some of this. New rules to do even more would be useful, yes, but don't talk like there's nothing along these lines today.
Why do we have LINQ project spread over many DLLs? Why not put all of LINQ classes into one DLL? System.LINQ? Why System.Data.LINQ, System.Xml.LINQ? , why not put them all in one place and we can say System.LINQ.Xml, or System.LINQ.Entities, or just leave
it as System.LINQ. Too much namespaces.
The DLLs have little to do with namespaces. But I'll address both. From an assembly stand point, you need this stuff seperated because it's unlikely anyone will be using all of LINQ and so the memory footprint and download sizes would be bloated by code that's
never used. Namespaces, you want the seperation in order to make human consumption easier. As humans, we psychologically deal with large sets of data (in this case, APIs) better when it's logically organized. In this case, the way to organize is to seperate
things into namespaces. For example, just imagine the intellisense dropdown you'd have to deal with when trying to find a class in LINQ you rarely use if all of it were in the same namespace.
Its the same as in VS2005, but we need more space. And the Start Page sucks. I want to be able to right click and remove Recent Projects. and it should tell me what is the time a project was accessed last.
I'd like to be able to better manage the recently used list, yes.
The Performance is good, but can be better. Debugging in Orcas Beta 1 is fast and fun.
Allow us to open multiple Solutions in the same IDE session. Its good for productivity. You can work in one session on multiple solutions with same IDE settings.
I, personally, don't want this. If the "solutions" are related, they should probably be one solution with multiple projects. Otherwise, I'd rather have two IDE sessions open for this.