472,961 Members | 2,760 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,961 software developers and data experts.

my list of wanted features in .NET

Here is a list of features I've wanted in .NET as pulled from my lab
notebook. If some of them are already there, maybe somebody could point
them out to me. If you have an opinion positive or negative on any, I'd
like to hear it. Thanks. They are in no particular order

1. GDI+::Graphics -draw a super ellipse
2. Add an attribute(s) similar to Obsolete for marking Dangerous,
Advanced, or requiring Prerequisites on functions.
3. Add functions for Priority to PropertyInfo
4. Add more complex post-build event handling for multi-project
coordination
5. Have a built in collection that represents a sparse 2d array.
6. Add some basic generics for tuples of 2,3,4; I end up way overusing
the KeyValuePair
7. GDI+::Graphics -Add an angle parameter overload to the draw/fill
functions that so that I don't have to call translate and rotate when I
want that functionality.
8. Add an IDE option to find all inheritors (actually, there is a lot
of Resharper functionality that would be nice to have built in but if
you could steal just a few of the searches...)
9. Add an IDE option to sync the current file to the solution and class
views (my projects have thousands of files in them)
10. Make the custom drawn trees and properties easier (I don't know
what specifics to add for this other than they are a bit of a pain
currently; I needed a tree that had dual selection: the leaf and the
current root node; that was a royal pain and I never could get double
buffering on it)
11. Add an editable ListView
12. Add intersection functions for generic collections
13. GDI+::Graphics -Point, Rectangle should have operator overloads
for add/subtract/etc.
14. GDI+::Graphics -LinearGradient should handle negative values in
width, height
15. I need an "is namespace" functionality
16. ICloneable should be a generic
17. I need a "where is primitive"
18. I think a "where is List<>" (aka unspecified type) could be useful
19. PropertyValueChanged event should have a way to revert the value
20. Add directory support to the GZIP stuff
21. IDE search of other property references on the same object
22. Fix the double buffering on transparent controls
23. Add some way to specify multiple namespaces for a single object
declaration
24. GDI+::Graphics -There should be a way to build a Region from a
(alpha) bitmask
25. GDI+::Graphics -Add a way to inflate a closed graphics path

Jan 5 '07 #1
10 1196
>2. Add an attribute(s) similar to Obsolete for marking Dangerous,
>Advanced, or requiring Prerequisites on functions.
Well there's the EditorBrowsable attribute for hiding "advanced"
members in the IDE.
>3. Add functions for Priority to PropertyInfo
And what would be the meaning of the priority of a property?
>4. Add more complex post-build event handling for multi-project
coordination
MSBuild is very extensible.
>11. Add an editable ListView
Isn't the existing ListView editable?
>15. I need an "is namespace" functionality
Where? In the IDE, class libraries or in a language? What would the
feature do?
>16. ICloneable should be a generic
That doesn't solve the bigger problem of not defining whether to
perform a deep or shallow clone.
>17. I need a "where is primitive"
You mean to determine if a type is primitive? There's Type.IsPrimitive
if that's what you're looking for.
>18. I think a "where is List<>" (aka unspecified type) could be useful
You can do that with reflection.
>21. IDE search of other property references on the same object
I don't understand what you mean by this.
>23. Add some way to specify multiple namespaces for a single object
declaration
Not sure what you mean here either.
Mattias

--
Mattias Sjögren [C# MVP] mattias @ mvps.org
http://www.msjogren.net/dotnet/ | http://www.dotnetinterop.com
Please reply only to the newsgroup.
Jan 5 '07 #2
Also, VS.Net currently (and at least as far back as 2002) has an option
called "Track Active Item in Solution Explorer" that performs the file part
of #9 (although it does not highlight the current class; in fact, VS's Class
View is something I find only useful insofar as it shows me when I've
misnamed some namespaces, so I never even need to track by class)
Jan 5 '07 #3
3. Add functions for Priority to PropertyInfo
And what would be the meaning of the priority of a property?
As it was a few months back I wrote that down, I'm not sure I remember
the issue entirely. I basically wanted a clean way to handle multiple
attributes of the same type where only one was expected.
GetCustomAttributes returns all of a given type. I just use the first
one it returns. Is that common?
4. Add more complex post-build event handling for multi-project
coordination
MSBuild is very extensible.
I confess that I want Nant functionality built-in. Handling the
dependencies for my post-build nant script is a pain and making it run
always (which I currently do) slows things down.
11. Add an editable ListView
Isn't the existing ListView editable?
I think I meant text-editing in the cells.
15. I need an "is namespace" functionality
Where? In the IDE, class libraries or in a language? What would the
feature do?
I want a runtime operator that tells me if an object is in a namespace.
The function would be similar to the IsInheritableFrom function.
16. ICloneable should be a generic
That doesn't solve the bigger problem of not defining whether to
perform a deep or shallow clone.
True. Tack those onto the list.
17. I need a "where is primitive"
You mean to determine if a type is primitive? There's Type.IsPrimitive
if that's what you're looking for.
By "where" I mean the C# keyword "where". Type.IsPrimitive doesn't help
me with restricting my generics.
18. I think a "where is List<>" (aka unspecified type) could be useful
You can do that with reflection.
By "where" I mean the C# keyword "where". I guess it is rare that you
insist something be inherited from or an instance of List<rather than
IList, but maybe that would be useful. Actually, maybe it would be
useful to force that a generic be an inheritor in general.
21. IDE search of other property references on the same object
I don't understand what you mean by this.
The FindReferences function in the IDE can be called on a private
member's function reference, but not limited to references of that
private member.
23. Add some way to specify multiple namespaces for a single object
declaration
Not sure what you mean here either.
namespace bob, larry {
class blah {}
}

Elsewhere you would (possibly) need to specify the full namespace to
avoid ambiguous reference. I think it would be useful for refactoring
projects that are referenced in multiple solutions.

Jan 5 '07 #4
1. What's special about the Super ellipse? If its quality, then you can
specify that now, defaults to Low..
2. You can make you own attributes and check for them.
3. ?
4. I can probably be done now, but some things could be simpler I agree..
5. Ok, could build one but is nice if there is a standard.
10. Third party is probably the way to go here.
13. Agree.
19. Agree.
21. Agree. I usually rename the object and look at the error list.
23. Gray area, Why not make a separate namespace and have them all ref the
new namespace?
24. I think this is possible. Try the Drawing newsgroup.

"not_a_commie" <no********@gmail.comwrote in message
news:11**********************@51g2000cwl.googlegro ups.com...
Here is a list of features I've wanted in .NET as pulled from my lab
notebook. If some of them are already there, maybe somebody could point
them out to me. If you have an opinion positive or negative on any, I'd
like to hear it. Thanks. They are in no particular order

1. GDI+::Graphics -draw a super ellipse
2. Add an attribute(s) similar to Obsolete for marking Dangerous,
Advanced, or requiring Prerequisites on functions.
3. Add functions for Priority to PropertyInfo
4. Add more complex post-build event handling for multi-project
coordination
5. Have a built in collection that represents a sparse 2d array.
6. Add some basic generics for tuples of 2,3,4; I end up way overusing
the KeyValuePair
7. GDI+::Graphics -Add an angle parameter overload to the draw/fill
functions that so that I don't have to call translate and rotate when I
want that functionality.
8. Add an IDE option to find all inheritors (actually, there is a lot
of Resharper functionality that would be nice to have built in but if
you could steal just a few of the searches...)
9. Add an IDE option to sync the current file to the solution and class
views (my projects have thousands of files in them)
10. Make the custom drawn trees and properties easier (I don't know
what specifics to add for this other than they are a bit of a pain
currently; I needed a tree that had dual selection: the leaf and the
current root node; that was a royal pain and I never could get double
buffering on it)
11. Add an editable ListView
12. Add intersection functions for generic collections
13. GDI+::Graphics -Point, Rectangle should have operator overloads
for add/subtract/etc.
14. GDI+::Graphics -LinearGradient should handle negative values in
width, height
15. I need an "is namespace" functionality
16. ICloneable should be a generic
17. I need a "where is primitive"
18. I think a "where is List<>" (aka unspecified type) could be useful
19. PropertyValueChanged event should have a way to revert the value
20. Add directory support to the GZIP stuff
21. IDE search of other property references on the same object
22. Fix the double buffering on transparent controls
23. Add some way to specify multiple namespaces for a single object
declaration
24. GDI+::Graphics -There should be a way to build a Region from a
(alpha) bitmask
25. GDI+::Graphics -Add a way to inflate a closed graphics path

Jan 5 '07 #5
11. I usualy use a grid here.
15. Reflection will do this.
23. You can have a namespace as such: MarcoSoft.Products.XControl
"not_a_commie" <no********@gmail.comwrote in message
news:11**********************@11g2000cwr.googlegro ups.com...
>3. Add functions for Priority to PropertyInfo
And what would be the meaning of the priority of a property?

As it was a few months back I wrote that down, I'm not sure I remember
the issue entirely. I basically wanted a clean way to handle multiple
attributes of the same type where only one was expected.
GetCustomAttributes returns all of a given type. I just use the first
one it returns. Is that common?
>4. Add more complex post-build event handling for multi-project
coordination
MSBuild is very extensible.
I confess that I want Nant functionality built-in. Handling the
dependencies for my post-build nant script is a pain and making it run
always (which I currently do) slows things down.
>11. Add an editable ListView
Isn't the existing ListView editable?
I think I meant text-editing in the cells.
>15. I need an "is namespace" functionality
Where? In the IDE, class libraries or in a language? What would the
feature do?
I want a runtime operator that tells me if an object is in a namespace.
The function would be similar to the IsInheritableFrom function.
>16. ICloneable should be a generic
That doesn't solve the bigger problem of not defining whether to
perform a deep or shallow clone.
True. Tack those onto the list.
>17. I need a "where is primitive"
You mean to determine if a type is primitive? There's Type.IsPrimitive
if that's what you're looking for.
By "where" I mean the C# keyword "where". Type.IsPrimitive doesn't help
me with restricting my generics.
>18. I think a "where is List<>" (aka unspecified type) could be useful
You can do that with reflection.
By "where" I mean the C# keyword "where". I guess it is rare that you
insist something be inherited from or an instance of List<rather than
IList, but maybe that would be useful. Actually, maybe it would be
useful to force that a generic be an inheritor in general.
>21. IDE search of other property references on the same object
I don't understand what you mean by this.
The FindReferences function in the IDE can be called on a private
member's function reference, but not limited to references of that
private member.
>23. Add some way to specify multiple namespaces for a single object
declaration
Not sure what you mean here either.
namespace bob, larry {
class blah {}
}

Elsewhere you would (possibly) need to specify the full namespace to
avoid ambiguous reference. I think it would be useful for refactoring
projects that are referenced in multiple solutions.

Jan 5 '07 #6
1. What's special about the Super ellipse? If its quality, then you can
specify that now, defaults to Low..
Super ellipses and rectangles with rounded corners are useful in
drawing flow chart-type graphs.
4. I can probably be done now, but some things could be simpler I agree..
5. Ok, could build one but is nice if there is a standard.
24. I think this is possible. Try the Drawing newsgroup.
I think a lot of these things can be done now. I just think they could
be easier.
10. Third party is probably the way to go here.
Know any third-party root-and-leaf select tree views?
13. Agree.
19. Agree.
21. Agree. I usually rename the object and look at the error list.
23. Gray area, Why not make a separate namespace and have them all ref the
new namespace?
I don't want to break old solutions that rely on a specific namespace.

Jan 5 '07 #7

Keith Patrick wrote:
Also, VS.Net currently (and at least as far back as 2002) has an option
called "Track Active Item in Solution Explorer" that performs the file part
of #9
Thanks! I feel better about life already.

Class View is something I find only useful insofar as it shows me when I've
misnamed some namespaces, so I never even need to track by class)
Class view is quite useful for COM objects, but I usually don't use it
otherwise.

Jan 5 '07 #8
>3. Add functions for Priority to PropertyInfo
>And what would be the meaning of the priority of a property?

As it was a few months back I wrote that down, I'm not sure I remember
the issue entirely. I basically wanted a clean way to handle multiple
attributes of the same type where only one was expected.
GetCustomAttributes returns all of a given type. I just use the first
one it returns. Is that common?
If it's your attribute, set the AttributeUsage to be AllowMultiple=false.
That's the most common solution. The other one is to break out of your
foreach after the first iteration.
>
>11. Add an editable ListView
Isn't the existing ListView editable?
I think I meant text-editing in the cells.
..Net 3.0 (Windows Presentation Foundation) can do this (it's styling
features are obscenely flexible)
>
>15. I need an "is namespace" functionality
Where? In the IDE, class libraries or in a language? What would the
feature do?
I want a runtime operator that tells me if an object is in a namespace.
The function would be similar to the IsInheritableFrom function.
How about: myObj.GetType().FullName.Equals(String.Format("{0} .{1}",
myTestNameSpace, myObj.GetType().Name)) ? Not easy-to-read, but it should
do in a jam until MS comes out with the equivalent to String.IsNullOrEmpty()

>23. Add some way to specify multiple namespaces for a single object
declaration
Not sure what you mean here either.
namespace bob, larry {
class blah {}
}
I'm going to get all philosophical and say "since OO mimics the real world,
and the Pauli exclusion principle says that two objects cannot occupy the
same space (and vice versa), that shouldn't be possible." However, throwing
that aside, what is it you want to achieve by doing that (I'm not seeing the
refactoring benefit). You *may* want to check out the "using" statement
(for aliasing namespaces, not referencing them) to see if that gets you what
you're looking for

Jan 5 '07 #9
2. Add an attribute(s) similar to Obsolete for marking Dangerous,
Advanced, or requiring Prerequisites on functions.

Well there's the EditorBrowsable attribute for hiding "advanced"
members in the IDE.
Thanks for the information on EditorBrowsable. That is what I wanted
with the Advanced type. I still think MS should expand that list to
include Dangerous, NeedsUIThread, and others.

Jan 8 '07 #10
not_a_commie wrote:
9. Add an IDE option to sync the current file to the solution and class
views (my projects have thousands of files in them)
Tools Options Projects and Solutions General Track Active Item
in Solution Explorer
24. GDI+::Graphics -There should be a way to build a Region from a
(alpha) bitmask
http://www.bobpowell.net/region_from_bitmap.htm

Jan 8 '07 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: Nicolas Girard | last post by:
Hi, Forgive me if the answer is trivial, but could you tell me how to achieve the following: {k1:,k2:v3,...} --> ,,,...] The subtle point (at least to me) is to "flatten" values that are...
10
by: bearophile | last post by:
This is my first Python program (it's an improvement of a recursive version by Luther Blissett). Given a list like this: , ]]] It produces the "flatted" version: I think this operation is...
35
by: erikwickstrom | last post by:
Hi all, I'm sorry about the newbie question, but I've been searching all afternoon and can't find the answer! I'm trying to get this bit of code to work without triggering the IndexError. ...
8
by: per9000 | last post by:
Hi, I wanted to test to compile an application I build for .NET 2.0 in with the 1.1 C# compiler. I encountered difficulties since I had a List<myClass>. I found a list of what is new in .NET 2.0...
0
by: shapper | last post by:
Hello, I have an enum as follows: Public Enum Feature Title Content Date Search End
9
by: Sheldon | last post by:
Hi, I am trying to understand linked lists and the different ways to write a linked list and double linked list. I have been trying to get this function called insert_word to work but to no...
0
by: jappenzeller | last post by:
I've got a coding standard question for generic lists and .NET 2.0. I have created some custom strongly typed lists like, MyClassList:List<MyClass>. We did this because we wanted to reuse some...
6
by: Steve | last post by:
Hello all: I am working on a project that has two list boxes side-by-side on a form. What I want to happen is when a user clicks on an item in the list box on the left, the list box on the...
5
by: JS | last post by:
There are 2 features that I keep wishing C# had. These are not groundbreaking ideas, and I haven't given these too much thought, but I wonder if others have also wanted these types of language...
0
by: lllomh | last post by:
Define the method first this.state = { buttonBackgroundColor: 'green', isBlinking: false, // A new status is added to identify whether the button is blinking or not } autoStart=()=>{
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 4 Oct 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
0
by: Aliciasmith | last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
1
by: Teri B | last post by:
Hi, I have created a sub-form Roles. In my course form the user selects the roles assigned to the course. 0ne-to-many. One course many roles. Then I created a report based on the Course form and...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 1 Nov 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM) Please note that the UK and Europe revert to winter time on...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.