C# Antipatterns?

  • Thread starter Thread starter John McClenny
  • Start date Start date
J

John McClenny

Java has been around long enough to collect a large set of antipatterns
to collect knowledge about things that don't work/scale well.

Does anyone have good sources for the equivalent .NET/C# antipatterns?
What are the gotchas in building complex/large C# apps?

TIA
 
John,

I haven't heard of any anti-patterns for C# yet, but for such large
applications, I am sure that there are bad ideas that should be avoided,
regardless of the technology.

If you find any, could you post them? Knowing what not to do can be
just as valuable as knowing what to do in certain situations.
 
Java has been around long enough to collect a large set of antipatterns
to collect knowledge about things that don't work/scale well.

Does anyone have good sources for the equivalent .NET/C# antipatterns?
What are the gotchas in building complex/large C# apps?

C# and Java are *very* similar. I would expect that the two sets of
antipatterns have a very large intersection.


Robert C. Martin | "Uncle Bob"
Object Mentor Inc. | unclebob @ objectmentor . com
501 N. Riverside Dr.| Tel: (800) 338-6716
Suite 206 | Fax: (847) 775-8174 | www.objectmentor.com
| | www.XProgramming.com
Gurnee, IL, | Training and Mentoring | www.junit.org
60031 | OO, XP, Agile, C++, Java, C# | http://fitnesse.org
 
John McClenny said:
Java has been around long enough to collect a large set of antipatterns
to collect knowledge about things that don't work/scale well.

Would you mind posting some URLs?

M.
 
Java has been around long enough to collect a large set of antipatterns
to collect knowledge about things that don't work/scale well.

Does anyone have good sources for the equivalent .NET/C# antipatterns?
What are the gotchas in building complex/large C# apps?

TIA
First and most important C# antipattern:

Don't use C#.
 
Many "anti-patterns" are common to statically reliant OOPLs, though of
course every OOPL has specific ones. I would look to see if ones for
Java, C++, Eiffel, Ada, etc. might apply to C#.
First and most important C# antipattern:

Don't use C#.

I find that C# offers the closer to the power of C++ than Java, without
some of the "hidden gotcha's" of C++. Or the need to learn many of the
complex esoterics given with C++.

Plus C# being more "modern" has built-in networking support, like Java,
support for embedded components, especially of course COM components.
C# has direct and extremely powerful support for PACAKAGING code in way
that to an appropriate extent decouples the packaging of code from the
logical program functionality (wrt use cases) of the code. C# does so
via its "ASSEMBLIES" concepts and tools. Finally C# supports web
programming and web services directly as a feature of the language, more
like Java and unlike C++.

[The ludicrosity of supporting birds of a feather shows itself in blind
support for those who simply trashed without useful, and detailed
analytical criticism.]

Elliott
 
Came across this article on .Net remoting and when/when
not to use it. Its not quite an anti-pattern but good
reading all the same...

http://www.ingorammer.com/RemotingFAQ/RemotingUseCases.htm
l

Sam
-----Original Message-----
John,

I haven't heard of any anti-patterns for C# yet, but for such large
applications, I am sure that there are bad ideas that should be avoided,
regardless of the technology.

If you find any, could you post them? Knowing what not to do can be
just as valuable as knowing what to do in certain situations.


--
- Nicholas Paldino [.NET/C# MVP]
- (e-mail address removed)

John McClenny said:
Java has been around long enough to collect a large set of antipatterns
to collect knowledge about things that don't work/scale well.

Does anyone have good sources for the equivalent .NET/C# antipatterns?
What are the gotchas in building complex/large C# apps?

TIA


.
 
Why?

C# was designed from the outset as a .NET language and is without a doubt
the best .NET language available today ... and even has features that can
give many other non-.NET object-oriented languages a run for their money.

C# ROCKS!!!

Which language would you suggest? VB.NET .... <no comment/>

;)

- Doug
 
TLOlczyk said:
First and most important C# antipattern:

Don't use C#.
----------------------------
The reply-to email address is (e-mail address removed).
This is an address I ignore.
To reply via email, remove 2002 and change yahoo to
interaccess.

You've already caught two fools in your troll.NET, an impressive
demonstration of the low IQ of C# developers. With the release of
..NET, seems that most of the sharp C++ and VB developers moved to
Java, Perl and PHP ( or any ther non-Microsoft language). To the
remaining unwashed:

An "antipattern" is a pattern you do NOT want to follow. See
http://c2.com/cgi/wiki?AntiPatterns

If "don't use C#" is an antipattern, that means that it is bad to NOT
use C#, i.e., that it is good to use C#.

However, I believe what Thaddeus intended to say was that "Use C#" is
an antipattern!-))
tom
 
The ECMA and ISO think other wise, you can move to youre propriety solution
slike VB and Java. I will stick to standards.


Oh wait, DOH im the third.
 
[snipped]

You've already caught two fools in your troll.NET, an impressive
demonstration of the low IQ of C# developers. With the release of
.NET, seems that most of the sharp C++ and VB developers moved to
Java, Perl and PHP ( or any ther non-Microsoft language). To the
remaining unwashed:

This wasn't a troll. I have been learning C# and am moving into larger
scale server applications. Java has a well documented set of gotchas (
see books 'Bitter Java' and 'J2EE Antipatterns'). C#/.Net will have a
set of bad things to avoid/work around and I would like to not have to
find these on my own. Some of these have been discussed on usenet, but I
am sure that there are many more lurking out there.

And yes, I do know C++/Java/Perl/etc. , but that wasn't what I was asking
about. I am not locked into either the MS/anti-MS camps, but try to use
the tool that fits the requirements. Sometimes the requirements include
a choice of OS/language/platform that must be used and I want to add
another tool to the toolbox with C#.
 
One difference would be structs, lightweight user defined data types
unavailable in Java. With structs some of the Java performance antipatterns
might not be applicable in C#, because structs are usually on the stack and
passed by value. But many of the Java antipatterns are probably similar to
C# ones.
 
Guess I needed to have some coffee before reading that last message and
replying...

Nice gotcha ... I'll have to remember that one, embarassing considering I
already know what an antipatten is.
 
tom said:
If "don't use C#" is an antipattern, that means that it is bad to NOT
use C#, i.e., that it is good to use C#.

Makes sense. If you're writing Perl in your C# application, chances are
good that it won't compile, much less run.
 
Back
Top