How do you organize .NET?


Shaykat and I have been having a discussion about how we organize information that we present to customers. Specifically, we’re trying to figure out how to present “What’s new/what’s changed” information. There are two options we’ve been considering.


The first option considers the language attribute to be the high-order bit. It would look something like:


What’s new in C#
* C# Language
* C# IDE
* Debugger
* XML
* Data
* ASP.NET
* Windows Forms
* Smart Client
* CLR
* BCL


What’s new in VB
* VB Language
* VB IDE
* Debugger
* XML
* Data
* ASP.NET
* Windows Forms
* Smart Client
* CLR
* BCL


The second option is to consider language one of the organizational attributes, but not the only attribute. It would look something like:


What’s new in C#
* C# Language
* C# IDE

What’s new in VB
* VB Language
* VB IDE


Application Types
* What’s new in ASP.NET
* What’s new in Windows Forms
* What’s new in Smart Client applications


Technologies
* What’s new in the CLR
* What’s new in the BCL
* What’s new in Data
* What’s new in XML

Which one of these organizations do you prefer? Please add a comment with “Language” if you prefer the first one, and “Attribute” if you prefer the second one. Or, if you think there’s another organization that’s better, feel free to explain.


Thanks


Eric


Comments (48)

  1. Attribute gets my vote. It makes the most sense to be language-neutral whenever possible.

  2. Scott Allen says:

    +1 for Attributes.

    Otherwise, I feel obligated to read through "the other language’s list" to see if there was something I missed.

  3. vinnie tripodi says:

    Attribute+=1

    what Josh and Scott said

  4. I think Microsoft does a good job doing just that on their roadmap, and it might give you some ideas: http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx#whidbey

    It could use a better layout though.. right now, it feels like a whitepaper.

  5. Michael Potter says:

    Attribute, without reservation.

  6. peter wieland says:

    Attribute

  7. Aaron says:

    Definitely attribute. With .NET, so many things aren’t language-specific that it would duplicate a lot of work if you use the first method.

  8. RichB says:

    Attribute

    This is topical for me. Today I was searching mscom for "what’s new in vs.net 2003" – because I seem to remember there was a new feature in 2003 which made WinXP manifests/themeing easier. The mscom website is so awkward that I never found the answer.

  9. Chance Gillespie says:

    Attribute, most definately. I agree with Scott and Josh as well. There should be a seperation of the language(s) and the platform.

  10. TRivers says:

    Attribute

  11. Ricky Dhatt says:

    Attribute +1

    Agreed with Scott Allen; I switch between VB.NET/C# often, I wouldn’t want go back and skim everything for the other lang.

    Also Attribute is organized into more managable chunks; rather than two long chunks.

  12. Sherrod says:

    Attribute (it matches my mental model)

  13. Attribute. It just makes sense that common things to the CLR should be in a so named item.. not duplicated because it affects by C# and VB.NET for example.

    Besides… it should re-enforce the idea that most things .NET are language agnostic.

  14. Evil Bert says:

    language – because nobody said it yet and because c# sucks?

  15. Jeff Key says:

    Attribute. People, especially journalists, often attatch CLR features onto one particular language. This is bad for Microsoft, as the "it’s the framework, not the language, stupid" message gets lost.

  16. Sean Terry says:

    Attribute

  17. Attribute, absolutely. Language is just a huge pain in the butt for those of us who switch between languages frequently (even if we don’t seem to be on the target market for either team).

  18. Peter Drier says:

    Attributes.. and as an added bonus, RSS feeds at each level in the tree, recursively collecting everything below them. So you can subscribe to any particular bits you’re interested in.

  19. Jeffrey Peel says:

    Attribute makes sense to me.

  20. Cory Smith says:

    As if you need another vote…

    Do

    attributes += 1

    Loop

  21. Mark Pearce says:

    Attribute

  22. Mary McRae says:

    Why do I have to pick? I should be able to navigate the information in any number of ways. While one method may seem intuitive to one group, another group will be completely lost trying to find the information they need. We have the technology! Take advantage of XML – create some metadata, and let me view the tree via whichever classification method I prefer at the time – which is always subject to change.

  23. secretGeek says:

    Another way…. (similar to attribute but with one crucial improvement)

    What’s new in VB.net

    * VB.net Language

    * VB.net IDE

    What’s new in C#

    * C# Language

    * C# IDE

    Application Types

    * What’s new in ASP.NET

    * What’s new in Windows Forms

    * What’s new in Smart Client applications

    Technologies

    * What’s new in the CLR

    * What’s new in the BCL

    * What’s new in Data

    * What’s new in XML

    cheers

    leon

  24. Eric Gunnerson asks How do your organize .NET. He offers two suggestions and each suggestion is applicable to different groups. Picking one over the other is probably going to be a problem for someone. I guess I’d suggest the documentation be documented in such a way that each new item is assigned categories or attributes so customers can view the information in a way that’s appripriate for them. In this way, it should be simple to show a look at what’s changed in C# by finding all new items with the C# attribute. The results can then be categorized by…

  25. Mary – I could not agree more.

  26. Kent Tegels says:

    Good grief, I can’t believe that Attribute is winning in such a landslide! That said, +1 Attribute.

  27. In the bag tonight: Less bitch’n and whin’n. Counts:Blogging: 8; Dev: 22; Otherwise: 8; SQL: 5; WILY: 8. Line of the night:

  28. Gavin Greig says:

    I was immediately drawn to the language list, but logically prefer the attributes once I think about it.

    However, since you want people to be immediately drawn to the selected solution, I think there’s something that’s not right about the organisation of the attributes list either, which reduces its accessibility.

    For me, I think that it might be a combination of the slightly more complex structure and the order of presentation. With a more structured list of this sort, I expect to find the more generic information first, gradually drawing me down towards the greatest specialisation at the bottom of the list – so I would suggest:

    Technologies

    Application Types

    What’s new in C#

    What’s new in VB

    …rather than starting with the language specialisation.

  29. Iain says:

    Attribute – stuff that is not specifically exploring language features should not be in the language’s section.

  30. Iain says:

    Attribute – stuff that is not specifically exploring language features should not be in the language’s section.

  31. Claudio says:

    Attribute++

  32. Miguel Mendoza says:

    Attribute

  33. Frank Hileman says:

    Attribute

  34. Attribute. It’s all about the CLR and BCL.

  35. mnrp says:

    Attributes. Watch consistency though. Should be:

    What’s new in C#

    * C# Language

    * C# IDE

    What’s new in VB

    * VB Language

    * VB IDE

    What’s new in Application Types

    * ASP.NET

    * Windows Forms

    * Smart Clients

    * Mobile [can you add this?]

    What’s new in Technologies

    * CLR

    * BCL

    * Data

    * XML

  36. Keith Hill says:

    +1 for Attribute. I use C# primarily but it is nice to be able to differentiate new features that are unique to only C# vs those available to other .NET languages.