Coffeehouse Thread

33 posts

Visual Studio 2008: Impressions.

Back to Forum: Coffeehouse
  • User profile image
    Secret​Software

    Hi,
        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.

    First The Controls For Windows Forms.
    :
        Which Win Forms Controls you think should be updated or even removed?

    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.

    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 Wink).

    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).

    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.

    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.

    Unit Testing
    :
        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.

    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 ..)


    LINQ Project:
     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 IDE:

    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.

    The Performance is good, but can be better. Debugging in Orcas Beta 1 is fast and fun.


    Finally:
    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.


    Just my impressions, what are yours?







  • User profile image
    offwhite

    I agree about opening multiple solutions in a single running copy of VS, although I would only want to do that if 1) it saves overall memory from running muliple copies of VS and 2) if it was easy to switch between the solutions. I assume that if multiple copies of VS are running it does not need to load the same assemblies into memory which takes up more memory. But I would not want them to attempt this if it complicated the IDE too much. I know they are already juggling a million features. I will take performance and stability over a few more features.

  • User profile image
    Secret​Software

    Plus, I want the Conversion Wizard for .NET 2.0 apps to take advantage of new features that the compiler offers. Like Automatic properties.

    so it should alter the code, to make use of that (delete private fields, and change properties to use set; get;).

  • User profile image
    Secret​Software

    offwhite wrote:
    I agree about opening multiple solutions in a single running copy of VS, although I would only want to do that if 1) it saves overall memory from running muliple copies of VS and 2) if it was easy to switch between the solutions. I assume that if multiple copies of VS are running it does not need to load the same assemblies into memory which takes up more memory. But I would not want them to attempt this if it complicated the IDE too much. I know they are already juggling a million features. I will take performance and stability over a few more features.


    Yes. I asked for this for the reasons of memory consumption. Plus when you shutdown VS instance it saves settings of the IDE, and then saves it again and again. Its just a bad. So Its more manageable if they allow us to open multiple solutions in one session of IDE running.

    That way I can work on multiple solutions from one IDE. This is good for Client/Server apps that needs to be separated in 2 or more solutions. or other kinds of apps.

    This will mean that the compiler has to be able to handle multiple debuggee instances. So I can debug 2 or more applications of 2 or more different solutions at the same time.

  • User profile image
    Secret​Software

    I keep wondering what is the next big feature for VS after LINQ? What is going to be Rosario's big feature?

    Automatic Code Generation? Code using microphone?

  • User profile image
    ktr

    SecretSoftware wrote:
    Hi,

    LINQ Project:
    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.



    it makes more sense that way.. think about it. those namespaces are mostly extension methods. it makes more sense for the team that owns system.xml to own the implementation of linq to xml. you as a developer will never be able to extend System.Linq, but you can extend YourCompany.Project.Linq Big Smile

  • User profile image
    DigitalDud

    You don't put all of LINQ in the same assembly, or you have to load the entire thing into memory to use one type.

  • User profile image
    Sven Groot

    SecretSoftware wrote:
    First The Controls For Windows Forms.:
        Which Win Forms Controls you think should be updated or even removed?

    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.

    Where do you get this statistic of "most apps"? I use the progress bar as is quite often, and I've never even seen this "circular progress indicator" you speak of (unless you mean like IE shows in the tab when its loading a page? In that case I've still never seen it outside of IE).

    Most applications that need to show a working state without showing progress can use the progress bar in marquee mode (which unfortunately is only supported in XP and newer).

  • User profile image
    Dziyakerxs

    Nothing new for me...
    Same old VS, difference feel.

    And I think no one would be buying unless you put in coding using a microphone (right on SecretSoftware)...

  • User profile image
    AndyC

    SecretSoftware wrote:
    

    That way I can work on multiple solutions from one IDE. This is good for Client/Server apps that needs to be separated in 2 or more solutions. or other kinds of apps.



    Wouldn't it make more sense to keep those as two projects in the same solution? Or am I missing something obvious?

  • User profile image
    Maddus Mattus
  • User profile image
    Maddus Mattus

    It's a nice control, but I would not go as far as to call it advanced. It's new, different and refreshing. But it's been done before.

  • User profile image
    Secret​Software

    AndyC wrote:
    
    SecretSoftware wrote:
    

    That way I can work on multiple solutions from one IDE. This is good for Client/Server apps that needs to be separated in 2 or more solutions. or other kinds of apps.



    Wouldn't it make more sense to keep those as two projects in the same solution? Or am I missing something obvious?


    No. But sometimes you have to have them in 2 separate solutions for special arrangements.

    Client/Server is one example, there are other examples where you need to group projects into separate solutions.

    Some companies, divide client/Server projects into separate teams with separate solutions. You sometimes have to work with 2 separate solutions and you need to open 2 or more sessions of devenv.exe, and its just bad for organization etc..

    most devs open more than 1 instance of VS IDE, and I think IDE should support multiple solutions + multiple debuggees.

  • User profile image
    Secret​Software

    Sven Groot wrote:
    
    SecretSoftware wrote:
    First The Controls For Windows Forms.:
        Which Win Forms Controls you think should be updated or even removed?

    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.

    Where do you get this statistic of "most apps"? I use the progress bar as is quite often, and I've never even seen this "circular progress indicator" you speak of (unless you mean like IE shows in the tab when its loading a page? In that case I've still never seen it outside of IE).

    Most applications that need to show a working state without showing progress can use the progress bar in marquee mode (which unfortunately is only supported in XP and newer).


    If you have worked with SQL Server 2005, you have seen it. Most advanced apps have it.

    There are very few situations now, where you as a developer would know the % of progress. Sometimes this % is not really accurate. Hence for more honesty with users, just let us use what SQL SERVER 2005 uses, and other apps too. % complete is not really relevant , unless you know what is the work, like in file transfers or files generally. And in this case you can combine the circular progress bar with a numerical % indicator underneath it or in its center , when such info is available, and if not then just let the progress bar indicate its working , like it does in SQL Server 2005 Management Studio.

    Generally, there are controls in VS 2005, that should be updated for the better, and it would be for the benefit of all.

  • User profile image
    Secret​Software

    Generally I feel, that as far as winforms are concerned, Updating of a control using a different thread, should be without thinking, the compiler has to figure out how to do it behind the scenes through some sort of callback mechanisms (event Update or what ever). That way people would just feel at home as before.

    Not to say that the invoke system does not work. It works fine, but its too much to think about, and MS should let the compiler think about that. Andres And C# Team they tell us that the future is about telling the compiler what you want done, but letting the compiler figure it out. Well, here is an area where the compiler should be smart enough to figure that i am trying to update a control in a form, from a backgroundworker thread, and it should figure out a mechanism to do it (setting up an event that updates a control with event args in the background).

    That way programmers get on with rapid software development much more easily and much more efficiently.

    I don't want to be a plummer, I want to be an architect of software. Let it figure out the little details of how to accomplish tasks of the pluming nature. Its much more fun to say the what, rather than the how, because of flexibility.

  • User profile image
    Dr Herbie

    SecretSoftware wrote:

    Unit Testing
    :
        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.




    Unit tests should be kept permenantly; one of their purposes is for regression testing to make sure the maintenance changes have no side effects. 
    Putting them into a separate project means that you don't have to deliver them to customers with production code.  It also keep the production code 'clean' by separating out all the tests. Subsequent generation of tests will default to the same project as the first set of tests, so you only end up with a single extra project.  Before VS2005 had unit testing, this was how most developers structured their projects anyway.

    If you want in-situ running is tests, TestDriven.NET does exactly that (right-click in code window and select test execution option).


    SecretSoftware wrote:

    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))?


    I have a feeling that the ability to run specific methods with parameters is possible in VS2005 using tools like the immediate window and (I think) the Object Test Bench .


    SecretSoftware wrote:

    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 ..)



    Doesn't the Code Analysis tool (FxCop) already do this to a certain extent?  I believe it's extendable, so you can add any new security rules that you can dream up.


    Herbie

  • User profile image
    p-mec

    SecretSoftware wrote:
    Hi,

    First The Controls For Windows Forms.
    :
        Which Win Forms Controls you think should be updated or even removed?

    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.


    Use progress bar style property and switch it to Marquee.
    Marquee Indicates progress by continuously scrolling a block across a ProgressBar in a marquee fashion.

  • User profile image
    harumscarum

    SecretSoftware wrote:
    
    Sven Groot wrote:
    
    SecretSoftware wrote:
    First The Controls For Windows Forms.:
        Which Win Forms Controls you think should be updated or even removed?

    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.

    Where do you get this statistic of "most apps"? I use the progress bar as is quite often, and I've never even seen this "circular progress indicator" you speak of (unless you mean like IE shows in the tab when its loading a page? In that case I've still never seen it outside of IE).

    Most applications that need to show a working state without showing progress can use the progress bar in marquee mode (which unfortunately is only supported in XP and newer).


    If you have worked with SQL Server 2005, you have seen it. Most advanced new MS apps have it.

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.