Home page

Nov 19, 2007 at 11:04 AM
Hi!

I just have looked on home page and have a several questions:

1. Why do you add suffix 'Collection' to all of your collections? I think it is excessively.

2. List of features:
> Full support of the LINQ language extensions in .NET 3.5 for the C# 3.0 and VB 9.0 languages.
What are you doing to get full support? I think nothing. Please advice.
> As easy to use as the collections that ship with the .NET framework.
> Rich Visual Studio debugging support
It is should be by default. So, this is not an issue to take notice.
> Algorithms that solve common problems for common data structures, from linked lists to strings.
This is the most interesting! So this should be first in the list. Also, there are should be examples' list of problems, that can not be solved by .NET FLC collections and can be solved by your.

3. Examples:
One think that I saw in your example that I can not do using FLC is AddFirst/AddLast/AddAfter. But in example I do not see, why I need this.
I do not understand why I should use StackCollection instead of System.Collections.Generic.Stack ?

> StackCollection<int> stack = new StackCollection<int>();
why not
var stack = new StackCollection<int>();

> IEnumerable<int> divisibleByTwo = stack.Where<int>(x => x % 2 == 0);
why not
var divisibleByTwo = stack.Where(x => x % 2 == 0);
or
var divisibleByTwo = stack.Where(x => x % 2 == 0).ForEach(Console.WriteLine)
?

Thanks,
Ivan.
Coordinator
Nov 19, 2007 at 12:41 PM
Hi Ivan,

1. Adding the sufficx Collection is a best practive when adding custom collections - this is an FxCop rule most tend to ignore but I chose not to as I wanted to distinguish between the DSA collections and those in the BCL.

2.
> Full support of the LINQ language extensions in .NET 3.5 for the C# 3.0 and VB 9.0 languages.
What are you doing to get full support? I think nothing. Please advice.

Actually in order to get LINQ support you need to have something that implements IEnumerable, this is old as I wanted to make claer that all collections in DSA implemented ALL standard interfaces that the BCL stuff does so you could switch in between the two without loss of functionality and I felt like LINQ was something to maybe emphasise given its coverage.

> Rich Visual Studio debugging support
It is should be by default. So, this is not an issue to take notice.

Actually if you don't specify a visualizer for a collection you get the raw view by default, with the DA stuff you get a simplified view like those in the BCL and araw view - again the point was to make it clear that DSA provides the same level of VS debugging support as the BCL stuff.

> Algorithms that solve common problems for common data structures, from linked lists to strings.
This is the most interesting! So this should be first in the list. Also, there are should be examples' list of problems, that can not be solved by .NET FLC collections and can be solved by your.

Point taken - I will work on that thank you for your feedback.

3. Ok, this is where it is offered purely out of curiosity. The fact is that implementing a Queue and Stack was easy given the other collections already done so I did them for completeleness - use whichever implementation you wish but I understand your point.

I used IEnumerable<int> because I have been using LINQ now for about a year and a half and I always used to be explicit but if people feel that var is more clearer then I would modify that.

I would also like to point out that the homepage info hasn't really been updated since DSA 0.1 which was released a while back so I will take all your points into consideration and wil revise the homepage in the next week.

Thanks,

Granville.
Nov 19, 2007 at 4:41 PM
1. Yep! You are right. But not in the way, when you are developing a library of collections. Just take a look at the PowerCollections.
3. As for IEnumerable<int> I think you are right. .NET community is not ready infer types in a head yet. So, will be nice to use declarations when type of a variable is not an obvious.

Thank,
Ivan.
Coordinator
Nov 19, 2007 at 6:30 PM

1. Yep! You are right. But not in the way, when you are developing a library of collections. Just take a look at the PowerCollections.


I will look into this, the idea is good of the Collection suffix to differentiate the collections but if people think it is over zealous then I will modify all affected.

The PowerCollections project have either suppressed the warning altogether or just not runned code analysis - the first is more likely :-)

I have opened a work item for this for DSA 0.3, but if its what people want then its what they will get!!

The project can only get better with great feedback - thanks Ivan.

And about point 3 - yes, I don't mind the type inference but many are not ready to embrace it yet but maybe this would be a good thing to show them of its great use :-) making code more readable.

Thanks,

Granville.