InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

"Squiggles" for C#

Posted by Jonathan Allen on Jul 25, 2008

Sections
Development
Topics
IDE ,
.NET
Tags
Visual Studio ,
C#

Since the beginning VB.NET has had a background compiler that gave developers real-time feedback on compiler errors, continuously updated code-completion data, and a host of other features. The downside of this is that it could not be turned off, too many features relied on always having that data. C#, on the other hand, has been limited to syntax checking and a code completion that is fully updated only at compile time.

This isn't however what Microsoft intended. Since before VS 2005, the C# team has been trying to find the time to catch up to the VB team. With Live Semantic Errors, also known as "Squiggles", they have finally started to do so.

One of the reasons it took so long is that prior to VS 2008, Visual Studio didn't use the real C# compiler for normal operations such as syntax checking. That was handled instead by a lightweight pseudo-compiler specifically designed for that purpose. With 2008's Language Analysis Framework, VS can now communicate with the real compiler.

According to an interview with DJ Park, only files currently open in the IDE will be analyzed. This suggests that changes to an open file that creates errors in other files will not be detected until compile time.

While scheduling demands prevented releasing this in VS 2008, it will be included in Service Pack 1.

Visual Studio still playing catch-up by Neil Bartlett Posted
Resharper by Marc Adler Posted
Another example why ReSharper is still mandated and assumed by Damon Wilder Carr Posted
Real Programmers Don't Need Crutches by Charles Cherry Posted
  1. Back to top

    Visual Studio still playing catch-up

    by Neil Bartlett

    Great! I'm sure C# developers will appreciate finally having this feature, which has been available for Java developers using Eclipse since 2002
    ;-)

  2. Back to top

    Resharper

    by Marc Adler

    What does this mean for folks who are using Resharper for precisely the same things that Squiggles give us?

  3. Back to top

    Another example why ReSharper is still mandated and assumed

    by Damon Wilder Carr

    We have had this functionality and far beyond it for a while now. Even after this is released nothing changes in that we still must augment with JetBrain's Resharper unless a staggering change develops far beyond this SP.



    For more scan this. For those forced to execute at levels not in line with all .NET developers, but at levels of 'all software engineers' you've got little choice to scale a team.



    See Working Effectively with Legacy Code by Michael Feathers for a fantastic introduction to understanding this set of expections for the software engineer.



    Damon Wilder Carr

    blog.domaindotnet.com

  4. Back to top

    Real Programmers Don't Need Crutches

    by Charles Cherry

    Aren't some of these features why VB has been seen as a "toy" language by C, C++, and now C#, developers? VB developers needed these "crutches" because they were not real programmers. Hmmm...

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.