Inside Visual Studio 2005 Team System
An anonymous reader writes "ZDNet has posted a top 10 list of things you need to know about Visual Studio 2005 Team System. From the article: Everybody talks about collaborative development tools, and heaven knows you can't surf the major developers' for 10 minutes without getting hit by banners trumpeting the latest. We can't fault Microsoft for wanting a piece of that action; but we need more than just a collaborative environment."
We can't fault Microsoft for wanting a piece of that action
you must be new here...this is slashdot
we can fault Microsoft for anything...-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This is MY galaxy...go find your OWN!
The Army reading list
As Microsoft had already completely nailed collaborative development with Visual SourceSafe.
What about the plans for Microsoft Visual Studio 2007?! That one just has to be listed!
Somehow this article slipped through the /. MS filter and is not sufficient anti-MS! Quick, call Neo! Fortunately, having a free MSDN subscription that ended at the end of October got me just under the wire for the release of Team System Developer's Edition. Nevermind that I don't have the extra 3 GB to play around with right now...
This sig donated to Pater. Long live
http://www.sciencegeek.net/lingo.html
there are many more.
To build decent apps today, and Internet apps in particular, you need more than an idea, more than good tools
OK I need more than a tool.
Team System is addressing this shortfall in its Team Edition for Software Architects with a tool called Application Designer, a graphical workhorse for solution architecture.
So you give me a tool.
Huh?
Check out Microsoft Takes it on the Chin Over Test-Driven Development. For comparison, check out Wikipedia on Test-Driven Development. This is particularly ironic given the recent Slashdot article about Microsoft adopting Scrum, one of the agile methodologies which, along with Extreme Programming, is instrumental in promoting Test-Driven Development as a core software engineering practice. I've also got a very brief article on my blog about the Qualities of an Ideal Test.
Helping with organizational effectiveness is our job.
So this new collaborative development environment, isn't it going to be as bulky, loaded and lacking in a basic concept as all other MS products? Take for example Visio. Some of the errors it gives me simply don't make any sense and get fixed by restarting it. Or MS Word, that hasn't been able to figure out yet, how to do numbering. Or maybe its way too advanced for us backward users, so it takes control and numbers my document on its own! I think Eclipse is a very well thought over IDE and the I would be happy with being provided something extremely lightweight for starts for which people would develop plugins that I could download install on a need-basis.
Life is about being a Phoenix!
Inside? I'd like to remain firmly outside visual studio. Give me emacs and cvs any day.
Microsoft had an old saying... I have it on a mug honest... "One company does it all." Its true in everything Microsoft does, whether it be desktop os and app integration, the convergence around entertainment systems, or development tools.
I think the problem is that no unification theory holds. I software development, from a team perspective, from design to implementation to testing... regardless of what model you follow... the development team is most effective when they are not constrained by a tool.
In my current work environment, the company tried to standardize on one web server, one IDE, one OR mapper... it failed miserably. The reality is we have 4 web servers, a multitude of IDEs, and tons of different technologies that are fitting specific needs. Even on the Microsoft platform.
I do not doubt that the team tools are cool for collaboration. But they are going to be pushed into organizations that already have team tools, or ways of doing stuff.
Right tools for the right job? Most Rose managed projects I know fail. Who uses all the lifecycle stuff in JBuilder 2005? Is anyone tired of development environments that take gigs?
/\/\icro/\/\uncher
Why do you like to develop for Linux? Do you want to die poor and lonely?
It's all superfluous it tell you! The best collaborative development tool is the low lying cubical partition! All else pales to it's abilites to facilitate a tight dev team. Oh and emails.
All this rubbish cruft in Visual studio these days. It's from the people that broght you Visual SourceSafe-Studio integration. Windows only, MS centric, homogenous coding standards, catering to the lowest common denominator of programmer in an effort to make coding more quantifyable for management. Basically, it's all just tools for making windows developers even more lazy than they already are, and to make project managers think they're more in control of their projects because of all the shiny graphs, network tools and printed reports.
Expect coding standards to drop in line with their usage.
May the Maths Be with you!
But I looked at that web page: Codex, T-SQL, inscrutable jokes about woodpeckers, meta-models, Da Vinci, Biztalk Server 2004, Visio and text whose individual words I understand and yet whose sentences I can't grasp. I must be some kind of dinosaur ('dragon' if you live in Kansas) from an age gone by. Uh...uh...uh...>panic!...I've no clue what they're talking about. Does that mean I'm not collaborating properly? I didn't even realize. This is so awful. What can I do? Obviously just talking to people isn't enough.
That being said...
I've seen a fair number of high-power tools offerred that do everything from soup to nuts, UML, Code generation, integrated testing, etc, etc, etc. It's been my sense that to fully leverage these tools you kind of have to buy in all the way, you can use their architect tools, but you need to put a fair amount of effort into learning the tool, and then you're not developing in C# or whatever, but in the tool. You're then also locked into the constraints imposed by the tool.
Every sophisticated tool I mess with these days seems like it has this issue, and I guess it's structural- you have a simple core surrounded by proprietary extensions that in theory offer a lot of power and in practice require a huge buy in of time to leverage the extensions. For example, most java application servers have all kinds of built-in goodies (e.g. Jboss) but whenever I've worked with them I've seen almost no use of the proprietary stuff. Same for web frameworks, most projects I've seen don't leverage the frameworks nearly as well as they could. This indicates to me that the learning curve is too high and that in practice it's not realistic to expect that people can master and fully utilize proprietary tools in addition to languages, patterns, and other necassary knowledge.
To be fair, I don't work in the Microsoft universe, and it may be a bit more realistic to expect tool buy-in in a world where there's one major tool vendor.
...as long as the underlying system for a single guy at his desk isn't up to scratch, it doesn't really matter how good the collaboration aspects and high-level funkiness are.
We've been working with VC++2005 since the early betas, and it's been very hit and miss. On some systems it runs fine, but on others ("possibly those without hyperthreading processors" is the closest we've got to a pattern so far) it can go into a trance for literally minutes while it faffs around updating all that clever Intellisense it does on-the-fly these days.
Add to that a debugger that really does run code orders of magnitude slower than a properly compiled version when you step through it, and you've got a serious problem with the two main tools in VC++. Worse, these are things that were fine back in VC++ 6, and rapidly went downhill when MS started relying on .Net and a multi-language framework for the dev tools a few years ago, which isn't exactly a great recommendation for all this new technology MS want us to use.
In other words, the TS stuff is all very well, but until the fundamental problems with the single-user everyday stuff are fixed, it's rather academic at this point. Several of my colleagues never "upgraded" from VC++6 to any of the earlier .Net versions because the basic functionality wasn't up to the job, and the same is in danger of happening this time, too.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Yes.
OK, here goes: does anyone here actually work on an application that uses so-called web services? I've heard so much hype about these things in the past few months that anyone would think desktop applications or client-server over a network were dead. Given the high-tech city I work in, it's therefore slightly surprising that I've never encountered a genuine (as-in, not a toy, not a prototype) web service in use, other than possibly via a couple of Big Name Companies that could use any architecture they wanted with the resources they've got. In other words, I think this:
actually wins the prize for "highest bull**** factor" in the quote, beating the other buzzwords by a considerable margin!
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Two days ago I got a free copy of Visual Studio 2005 beta 2 (4 DVDs in one box), delivered by DHL directly to my door. Because Microsoft charges $20 for delivery (based on what other trials cost), and, say, $5 for CDs, they spend $25 on a guy who hates them as much as possible.
The funniest thing is that I wanted to switch to Windows back from Ubuntu (seriously!). But now that evil idea is gone...
So basically they've recreated http://www.gforge.org/ out of proprietary components.
Borland's JBuilder 2006 has a pretty neat p2p feature, so you can pass a token around for editing, or watch the editing in follow mode. I found it very helpful and quick. I believe it uses the jabber protocol, and even works with google talk.
Error: Id10t detected
Maybe it's just because I'm a Java programmer, but it seems to me that many of the items in the top 10 list have been considered best practices for quite some time. Examples include 3-tier architecture, datasource management, and Integrated testing.
It's probably actually a good thing that MS is including it. That being said, "it's about time" went throught my mind more than once while reading the article.
-Pete
Soccer Goal Plans
I've really been enjoying some of the videos being posted on Channel 9--part of MSDN. It's great to see what real MS engineers are working and thinking on. Just the other day, they posted a video covering Visual Studio TFS.
I'm surprised at myself for liking these videos. I keep going to Chan.9 more than once a day. It's great to get a peek behind the scenes at MS development.
"A diplomat is a man who always remembers a woman's birthday but never remembers her age." -Robert Frost
So there now three editions: Architect, that makes code from powerpoint-like sketches, Developer that has the PPT-tool without the code generation, and Tester. Which means that testers arent allowed to design things, architects cant test and developers get to do a bit of neither, but not very well.
What kind of organisation does this represent? I guess it reflect's microsoft world view. But it doesnt match that of OSS applications.
You are so hardcore! Thank you for adding that to the discussion!
But VS is still the best development tool around.
I don't know why some people are complaining about this software, its the best MS has come out with yet. Intellisense in any version takes a big hit on performance, the bottom line is, would you build a house with a hammer or a shoe. I can't understand why anybody would develop software for a living with an underpowered system! Complaints about VS underperforming can easily be resoled by simply upgrading to an Athlon64 or Opteron system.
I've noticed only a few minor usability issues, but these are things that have plagued every release of a VS product, little gaffs which may be annoying, but are infrequent and do not interrupt productivity.
Overall, the environment is much more streamlined, even menu items seemed to be intuitively placed within easy reach for quick access. They finally implemented region support within C++ files, so you can micro manage large classes by separating chunks of related code into sections that can be hidden, and finally outlining preserves its state when you save and reload the file.
When it comes to intellisense, NO OTHER development tool comes close to the speed that VS does. Sure, your CPU usage might spike to 100% for the first few minutes after openning up a project, but a list of class methods and members always pops up instantly when you type a . or -> and text completion is fast. When I was playing around with XCode, I though that it didn't have ANY intellisense like functionality until one day I just happen to notice it took about 10 - 20 seconds for XCODE to show a list of object methods or offer a suggestion for word completion.
The Team collaboration is the buzz word of the day for MS. It is their major focus to get people to upgrade to VS2005. I honestly can't see us using it. Its a small office and we are a pretty tight development team. At most, the Community menu item that appears allows you to bitch to MS about software bugs and feature requests.
But why anybody wouldn't upgrade to 2005 is beyond me. VS2002 was clearly a beta and VS2003 was its patch, but VS2005 is altogether a markedly improved and mature product, finally integrating tight ANSI and ISO C++ standards along with at least recognizing insecure standard library calls and dramatically improved STL support with better debugging support of STL objects. Within the first week, we found numerous minor bugs that could cause the odd random crash in our software simply by compiling the software with VS2005. We also came across multithreading issues due to better optimization of the compiled code allowing for faster program execution that caused race conditions or deadlocks. Something VS2002 or VS6 wasn't making us aware of.
In any regards, if you develop Windows software for a living, not using VS is a detrement. Sure there may be other decent tools if you develop cross platform apps, but using a 3rd party development suite to develop Windows tools only shows your not serious about Windows software development. We are already looking at XAML and Windows Presentation Layer development because we can get the latest beta tools directly from the horses mouth, other development systems are only guessing what XAML will actually become and making a half assed attempt at offering a retail package before Vista is released.
Finally, MS integrated embedded device development in the IDE that allows you to emulate the device virtually, complete with a skin to look like a phone or PDA screen. They have had these tools in some external install, but integration in the IDE is key to getting more and better software written for mobile platforms. I may even get a PocketPC to start learning how to develop for the mobile platform.
Say what you will about MS, Windows, an their other software, but they actually know how to write a decent development platform.
I haven't thought of anything clever to put here, but then again most of you haven't either.
If collabware is the next big thing, why are the collabware startups all run by lone CEOs instead of a collaboration?
First, the uninstaller is broken. Plan on reformatting before you play with this beast. Also, plan on 2GB+ of RAM. The 1GB minimum is a lie even for a single user. Also, if your source repository is larger than 4GB, you'll need SQL Server 2005. It's demanding on the clients also. Plan on generous RAM & CPU speed.
I can't migrate my company's Visual SourceSafe repository. The built-in analyze tools to repair corruption lock up before they do anything useful. VSS corrupts by nature. Since my repository is trashed and the repair tools are broken, I have no way of importing my source tree... into the less-mature and unreleased (still beta) Team Server.
Keep in mind, TFS's source code management is supposed to be better than VSS... not a replacement for Subversion. That's a big difference to keep note of. My most recent gripe: Rollbacks are sometimes impossible for merges. There is also no help documentation on this product, aside from marketing fluff. Even the docs are in beta.
If Team Foundation Server 1.0 is anything like Visual SourceSafe 1.0, keep your eyes open.
How much does the new suite cost per developer?
I had to use GCC to return actual errors in my code because the only thing MSVC++ compiler would tell me is Internal Compiler Error (ICE) over and over again. Seriously, M$ cannot get a compiler right, it cannot get a text file right (why use ^M\n instead of just \n? ..a source of many headaches), and yet they claim to innovate technology which has been available for 5+years on other systems/os's. People eat their crap up left and right and you just increase M$ end objective M$$$$$ for terrible software.
One company that does it all, One company to find them, One company to bring them all and in the DRM bind them.
I am also still using VS 6. I have code to ship, I don't have time to futz around with compilers that have more bugs than I do.
It was always said that Visual Studio C++ is bullet-proof because that's what MS uses to build their own products. If they're not using VS.NET to build the Windows operating system itself, then it will never be as solid.
Slashdot entertains. Windows pays the mortgage.
Take that, feeble Visual Studio user!
Oh, Ned, you are a vi man!
The source control module in VS series has been pretty crap for ages. (Something called Visual Sourcesafe but I have never been involved.) As the major devlopment platform under windows, I wonder why they ignored the most important parts of VS. how developers of MS use VS for their team development?
Look at the banner on the VS/TS site. One, those sexy fashion model nouveau boys are using a CRT. Two the CRT is on a glass table. Three team system is so good that they have to use pencil and paper.
Now that is some cutting edge software company.
If you've never been involved in working with Visual Sourcesafe, how can you assert with great authority that it 'has been pretty crap for ages'? Were you just hoping for a karma-boost by making an MS-bashing post?
First off, take a pill!
Second, let me point out that [cr][lf] is the only true and correct way to end a line, assuming that there is a line to follow it.
[cr] should only return the carriage to the left side of the page and [lf] should only move the carriage down a line. Why do you think that both of those control codes exist?
L/Unix use of the [lf] to perform both a [cr] and a [lf] as well as Apple's thinking that [cr] should do both are both wrong! They are both using a short hand way of performing a true [cr][lf].
If Linux and Mac want a single code to perform both a [cr] and a [lf] then they should have invented a new control code to do so. Of course they would have both been different anyway...
This is one case where Microsoft is 100% right and Linux and Mac are 100% wrong.
My employer's product uses SOAP to connect all of the features to the authentication engine.
http://www.sci-s.com/id-management.htm
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
..SCO.
;)
Jerk.
Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
Software Factories:Assembling Applications with Patterns, Models, Frameworks, and Tools by Jack Greenfield, Keith Short, Steve Cook, Stuart Kent, John Crupi (Foreword)
I recommend starting at page 509.
What are these 'woodpecker jokes' the article talks about? Can't say I've heard of one and googled and found nothing but stuff about housing development and woodpecker habitat stuff.
Clue me please!
"how can you assert with great authority that it 'has been pretty crap for ages" ============== Your logic does not make sense. How can you assert with great authority that it "HIV is a bad disease"? You will try to get it? The actual story is: I got lots friends in differnet teams who have over 5-10 years experiences on Windows based devlopment and none of them are familiar with VSS. Many of them just manually copy each of their working copy version into a folder. And others are using CVS. This information is enough to me. "Were you just hoping for a karma-boost by making an MS-bashing post?" ============ It looks like you are pretty sensitive about karma stuff. I basically dont care how it works, sorry. Is that the one major reason for you posting comments?
Pah. We just had ones and zereos in my day.
CVS + Sourceforge (including forums). Ta-da! :D
If you just remember that M$ is evil and they want to be the only ones that makes and sales profitable software for windows you'll quicky realise that the purpose of any tool that M$ makes for developers is to hinder the developers.
-- ZeroZenith
while Architect and Tester are eliminated in favor of Noisy Fanboy, who just gets a web browser.
Yes, but is it Firefox or Opera?
When I was playing around with XCode, I though that it didn't have ANY intellisense like functionality until one day I just happen to notice it took about 10 - 20 seconds for XCODE to show a list of object methods or offer a suggestion for word completion.
First of all, doesn't your proclamation to use the fastest computer apply equally to macs?
Now secondly (and far more importantly) what makes you think the delay is the computers fault? XCode has, in preferences, a way to set a delay before suggestion. The default I think, is half a second... if I set it to zero on my computer then it comes up as soon at the . is typed - and I have an older Powermac (one of the first G5's so I won't claim it's a snail, but it's not near the newer ones in terms of speed).
Why would you want a delay? Because many people find the INSTANT appearance of the suggestion dialogue to be the most distracting thing ever when you are just typing. 99% of the time I know exactly what I am going to type and often find it faster to finish typing than to take even a second pulling down an item from a list. Having the Intellisense pop up after every dot is like having the Son of Clippy come down from on hi and yell BOYAH in my face while I am typing.
Having the Intellisense display as "Instant" is actually one of the things that turn people off Visual Studio. While probably you can configure it in there, an unpleasant default for anything is a black mark against an IDE. I have used visual studio before and really didn't think it was all that powerful, compared to some of the modern Java IDE's (like Eclipse of course or JBuilder or even NetBeans, or of course XCode). Visual studio is sometimes easier to use to be sure, but when developing code power of tools can often trump sheep UI as you can learn to live with UI hiccups.
On a sidenote I also want to say that I personally think using only intellisense to drop in method names is a bad habit that leads to a developer simply not knowing a library well at all. If you don't generally know what method you are going to be calling before you start typing, you have a problem and more importantly later on your code is more likely to have problems.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Let's see. I write a tiny terminal program that gets characters from the PC serial port and writes them to the screen. Not a big deal. Maybe ten lines of code in Turbo C for DOS maximum. Maybe a 10-20K byte executable.
.NET has a mother fking 26 Megabyte RunTime supplemental file. For a ten line trival program. Forget it. Beyond reasonable. Time to switch to Linux. I doubt that anyone uses .NET who hasn't purchased the .NET development system. Certainly not anyone using ME, Win2000, or Win98.
Visual Studio requires me to either include the MS Run Time support supplemental file or have my users download it. Visual Basic 3 had a 330K RunTime supplemental file. Absurd, irritating, but no big deal.
Visual Basic has a 1.2 Megabyte RunTime supplemental file. Bloated and stupid, but just roll your eyes 'cause it's Microsoft.
Now
So what's the size of the 'support' file foe Visual Studio 2005? Over 100 Megabytes? Or did someone in Redmond come to their senses and do away with the whole idea have having to download a RunTime supplemental file in order to run a relatively simple application?
--Not likely-- Common sense stops at Olympia and doesn't start to come back until the Canadian border.
http://lab.msdn.microsoft.com/productfeedback/view feedback.aspx?feedbackid=e976ea2a-ba1e-4537-9493-4 6af9429a81e
I see a lot of people throwing out opinions one way or the other about VC, VC vs. GCC, etc, so I figure I'll throw in my two cents as well.
I am a professional reverse engineer. That means that my time is spent looking at the output of compilers: my job is to disassemble raw executables and read the assembly language. I analyze malware and discover novel security vulnerabilities in closed-source software.
I can say, hands down, MSVC produces the nicest code of any compiler that I see regularly. Intel's compiler is very nice, as is CodeWarrior, but these two are rare. Next in the list would be Borland's compiler, followed by GCC, followed by LCC.
I always dread having to disassemble executables produced by GCC. GCC's x86 optimizations are laughable (hello!? "sub esp, 4 / mov [esp], ebx" is NOT an optimization over "push ebx"!), and the x86 code generation is just terrible and downright dangerous at times.
Case in point, I was reverse engineering a well-known binary-only internet service a few weeks ago. I had my choice: disassemble the MSVC Windows executable, or the GCC linux binary (I chose the former). After I'd found an exploitable bug, I tried to pinpoint the buggy function in the linux binary.
That binary was just a mess. There was a function in the Windows executable that was about 150 lines of assembly; its corresponding function in the GCC binary was about 1500 lines of assembly, including a half-dozen baffling switch statements that were absent from the MSVC binary.
Finally, since I also develop software, I can say that my experience *using* GCC has been an utter nightmare. Am I the only one who routinely gets weird calling convention issues manifesting themselves at runtime?
Visual Studio 8 has so many problems right now that it's not worth trying to use. Unless you use .NET, there is very little you stand to upgrade. So many outstanding problems were not fixed. It is quite obvious that Microsoft spent all their time on the new .NET and web features but almost no time with updates to the core standard C++ language.
/hotpatch to put small stubs at the beginning of functions to allow hooking by placing a jmp instruction. These are a very bad idea to use in a game company like mine, but are otherwise good. .NET scares me. It seems to indicate that Microsoft considers unmanaged code wholly deprecated. Here is a line from MSDN showing evidence of this:
Broken compiler
- Complicated floating-point code will many times result in bad code generation without warning. Sometimes, the x87 register allocation algorithm fails and produces code that causes an x87 stack overflow exception at runtime.
- Complicated templates, such as with 8 parameters or more, can cause internal compiler errors.
Annoyances
- The default deprecation of much of the standard C library in favor of the Microsoft-only so-called "secure" versions is annoying. Compiling standards-compliant code now requires #pragmas or compiler switches to disable warnings.
- The _M_AMD64 flag macro used in the prototype 7.1 x64 compiler was changed to _M_X64, grr.
Missing features
- VC8 still does not have stdint.h and cstdint like every other compiler out there.
- VC8 does not have built-in variable-sized stack allocation (IE, "char buffer[x]" with x a variable). GCC has had this for years now, and it is being seriously considered for the C++ standard. (It's not very hard to implement, after all.)
- VC8 does not have __asm in x64. This is a terrible mistake. It would have been very easy for Microsoft to have implemented this feature (it's not very different from x86)! This is the most severe problem my company has with Visual Studio 8. We have resorted to using a GCC cross-compiler to compile our x64 C programs with embedded x64 assembly language.
The few minor features that were added
- *printf now understand "%llx" and similar "ll" constructions. This was something they forgot when they finally added support for "long long" in VC7.1.
- *printf now allow ordered arguments; this is important for localization.
- swprintf now has the length parameter as standardized. (I don't like how swprintf takes this parameter - that should be called "snwprintf" - but I accept it because it's standard.)
- OpenMP is implemented. I don't like OpenMP but at least it's a standard.
-
- UTF-8 source files work, as do Unicode identifiers.
Future versions of Windows will increasingly require components and applications to be verifiable.
Melissa
"Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
I think you do need full time testers, but they should be good programmers who are writing tests to bring the app to its knees. You dont treat them as second class citizens.
Architects need to write tests because otherwise they write specifications that are untestable. and the tester gets the blame. Also, the test suite forms part of the formal definition of system behaviour.
I have problems @work with various W3C and OASIS Web Services specs that were written by committees of architects (WS-Addressing, WS-RF, etc). None of these specs have tests. Instead it is left to implementations to sort it out, which of course they dont as they each have to write tests and everyone argues about whose test suite is the correct interpretation of the spec.