Coffeehouse Thread

23 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

VS14 CTP available

Back to Forum: Coffeehouse
  • User profile image
    Ian2

    • The core IDE and editing experiences for C# and Visual Basic have been replaced with new experiences that are built on the .NET Compiler Platform "Roslyn." Generally, the experience should be unchanged. However, there are numerous small improvements.

    • C# refactoring support has been completely revamped. There are two new core refactorings: Inline Temporary Variable and Introduce Explaining Variable. Additionally, refactoring support for Visual Basic has been added for the first time.

    • You can use specific code-aware guidance for the Microsoft platforms and NuGet packages that you're targeting to obtain live code analysis and automatic fixes as you type.

    • Includes support for Swift*

     

    Blog: http://blogs.msdn.com/b/somasegar/archive/2014/06/03/first-preview-of-visual-studio-quot-14-quot-available-now.aspx

     Download: http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs

    * Not Really

     

  • User profile image
    Proton2

    What a coincidence, just last night I was searching for news about Visual Studio 2014. Didn't find a thing. I've been working a lot with my Visual Studio 2010 Pro, lets just say I'm ready for Roslyn.

  • User profile image
    cheong

    Just one quick question... will the corresponding version of Crystal Report runtime make it to ship when VS14 released this time?

    Btw, I think people more or less got used to download it seperately. LOL

    Recent Achievement unlocked: Code Avenger Tier 4/6: You see dead program. A lot!
    Last modified
  • User profile image
    Proton2

    Why is there so little activity on this forum about this?

    By the way, VS 14 wants (or suggests) to get rid of my templated asserts, for example:

    Assert.IsEqual<int>(0, foo.Count);

    To Assert.IsEqual(0, foo.Count);

    Completely eliminating the entire reason for using templated asserts.

    Ps: why is there so much activity about non existent global warming / climate change on this forum?

  • User profile image
    cheong

    VS14 CTP can't do side-by-side installation, so unless you got spare machine, you can't play with it yet.

    I guess you can't have much to say about something you got no opinion on.

     

    Recent Achievement unlocked: Code Avenger Tier 4/6: You see dead program. A lot!
    Last modified
  • User profile image
    bondsbw

    , Proton2 wrote

    By the way, VS 14 wants (or suggests) to get rid of my templated asserts, for example:

    Assert.IsEqual<int>(0, foo.Count);

    To Assert.IsEqual(0, foo.Count);

    Completely eliminating the entire reason for using templated asserts.

    Due to type inference the generic version is called regardless of explicitly specifying the type parameter.  Thus the type parameter isn't necessary and the IDE is suggesting it be removed.

    Only if the two parameters were different types (that don't have automatic conversions such as int/double/numeric), or if the two parameters were cast to object, would the non-generic version be called.

  • User profile image
    felix9

    @cheong: Client Hyper-V is a feature for Windows >= 8

  • User profile image
    spivonious

    Additionally, refactoring support for Visual Basic has been added for the first time.

    Finally! I never understood why C# had this and VB didn't.

    C# changes: http://blogs.msdn.com/b/csharpfaq/archive/2014/06/03/visual-studio-14-ctp-now-available.aspx

    C# gets a conditional access operator. That will definitely help shorten some code.

    VB changes: http://blogs.msdn.com/b/vbteam/archive/2014/06/03/visual-studio-14-ctp-now-available.aspx

    Since we've literally rebuilt the very foundations of VB...

     

    If you could install it side-by-side, I'd be using it now. Anxiously awaiting a beta to try out.

  • User profile image
    Blue Ink

    , spivonious wrote

    C# gets a conditional access operator. That will definitely help shorten some code.

    and cause facial cramps; I don't think I'll be able to stop smiling for a while :)

  • User profile image
    kettch

    , spivonious wrote

    *snip*

    If you could install it side-by-side, I'd be using it now. Anxiously awaiting a beta to try out.

    They're really serious this time. Normally they say you shouldn't install SxS, and I've done it anyway and it's worked fine. However, this time it's "DO NOT". I think I'll believe them for now.

  • User profile image
    Proton2

    , bondsbw wrote

    *snip*

    Due to type inference the generic version is called regardless of explicitly specifying the type parameter.  Thus the type parameter isn't necessary and the IDE is suggesting it be removed.

    Only if the two parameters were different types (that don't have automatic conversions such as int/double/numeric), or if the two parameters were cast to object, would the non-generic version be called.

    The purpose of the generic version is to cover a case where... I think I will just copy and paste the reason... hold on gotta Bing it first.

    I give up, but believe you me, there is a good reason to use generic versions of Assert in the unit tests code.

  • User profile image
    Proton2

     " C# gets a conditional access operator. That will definitely help shorten some code. "

    Love it. But probably can't use it for backwards compatibility issues with my current project. Future projects, yes. :)

  • User profile image
    androidi

    I'm in middle of doing some non-coding things for a while ... I did have a quick run with some old C# projects. C# F5 from one bp to next and just f5 from not running to running (atleast after warm up) seems much snappier. Which is great as sometimes you just want to have couple breakpoints and quickly look at whats happening in the watch/locals while rapidly going through them - keeping F5 held to step through in the old compiler/debugger was not too deterministic in how it behaved. Of course I'm running a bit older system which makes noticing this easy - on a high end system it might seem like there's some "perf budget" to "piss away" now - I'd reserve that budget for making intellitrace perform decently, assuming that's even possible (I wonder do those new 128 MB cache Broadwells help with Intellitrace...).

  • User profile image
    babelshift

    , Proton2 wrote

    *snip*

    The purpose of the generic version is to cover a case where... I think I will just copy and paste the reason... hold on gotta Bing it first.

    I give up, but believe you me, there is a good reason to use generic versions of Assert in the unit tests code.

    I think you're confused.

    The compiler is inferring the type of the generic based on your parameters. It's not "ignoring" it as you seem to suggest.

  • User profile image
    spivonious

    , babelshift wrote

    *snip*

    I think you're confused.

    The compiler is inferring the type of the generic based on your parameters. It's not "ignoring" it as you seem to suggest.

    You learn something every day. I did not know type inference also applied to method parameters.

  • User profile image
    Sven Groot

    , spivonious wrote

    *snip*

    You learn something every day. I did not know type inference also applied to method parameters.

    Generic argument inference only works on methods. It's always been that way in C# (and incidentally is also the case with C++ templates). That's why e.g. there's a Tuple.Create method, because with the Tuple constructor the generic arguments can't be inferred.

  • User profile image
    Blue Ink

    , babelshift wrote

    *snip*

    I think you're confused.

    The compiler is inferring the type of the generic based on your parameters. It's not "ignoring" it as you seem to suggest.

    There is a possible problem; it all depends on how the new compiler handles it. Assume we have:

    void Foo<T> (T a) {
      // feed a fluffy kitten
    }

    void Foo (int a) { 
      // kill a fluffy kitten
    }

    If we call:

    Foo<int>(5);

    we are obviously calling the generic version.

    Now, if the compiler told us to remove the generic parameter, it would essentially ignore our choice and we would end up calling the non-generic version, which is semantically different (and not very popular with kittens).

    I expect the compiler to detect that removing the generic parameter would change the overload resolution and not emit the suggestion in this case, but I don't have a spare machine to try it out.

    P.S.: yes, only horrible people write overloads of the same method that are semantically different. I know that. I occasionally also watch naked pointers.

  • User profile image
    CaRDiaK

    Is there any sort of reference to a final release anywhere available? 

    I've been tasked with gathering some requirements for upgrades... I'm not sure if I should put 13 on the list (from 12) or hold out for 14, which I would rather do. I can't seem to find anything beyond the CTP. 

    Thanks.

    We can only see a short distance ahead, but we can see plenty there that needs to be done.
    Last modified

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.