Go C# .NET for the larger applications?

E

ectoplasm

Is there a list somewhere of companies or other software applications
initiatives that are using .NET for implementation? (i.e. software
running on the CLR)

I'm especially thinking of the larger applications. E.g. something
which maintains a large database or extensive GUI, etc. I just thought
of this example: would it be feasible to implement a large development
environment like Visual Studio in .NET? I'm sure it can be done, but
what can be said for it, or against it?

Maybe the question was asked before many times, but it's 2007 now and I
need to ask again (or point me to some urls please): When I have ideas
for a new software I want to develop, :

Why would I choose to implement in .NET? (probably using C#)

Pro's, cons, compared to writing a native code application? I know most
of the technical advantages, but put it this way: How would you explain
the choice to target the .NET platform to the management of a/your
company? (This latter question would be irrespective of application
size).
 
E

ectoplasm

Imagine, someone says right into your face that "CLR apps start and run
slow", "C# is for small web applications", ".NET will fail" then .... ?

Even if each of these is not true, WHAT is it that would justify a
switch to C# .NET? (taken into account that switching also costs time &
money)

I mean, there must be an _advantage_ to justify a switch to .NET.
 
E

ectoplasm

I guess I could also say:

Where are the C++ application developers that decide to switch to C#
..NET, and why do / would they switch?
 
E

ectoplasm

You could also said that, productivity wise and debugging wise C# is
waaayyyy more productive.

I've heard that claim (productivity wise). I believe it's true (a huge
library, much simpler code, easy to maintain). But for a business, say
the engineers need a switch from C++ to C#. While language wise it's
easy to go C# from C++, the whole mindset is different in C#. You
cannot just think "how would I do this in C++?". A company would need
to *bleed* first before getting to the advantages. Those engineers need
to learn C# and .NET. So, training.

Productivity, debugging wise, yes good one, I didn't think of that one
yet. Metadata increases debugability enormously. And no more wild
crashes.

The websites you mentioned are mostly code examples. But where are the
big apps that are made on .NET?
 
L

Laurent Bugnion

Hi,
I guess I could also say:

Where are the C++ application developers that decide to switch to C#
.NET, and why do / would they switch?

I work in a firm with a solid C++ experience (I programmed in C++ myself
before, though I wouldn't call my experience "solid" ;-) and now we work
since 2002 with .NET too (parallelly: Maintenance in C++, new
development in .NET).

The productivity gain is real. You write less lines of codes, you must
debug less because the code is more stable. Basically, if it compiles,
you are already quite far with testing ;-)

Additionally, I want to add the fun factor. Programming in C++ can be
tedious work (though I am sure that many developers love it). However,
programming with .NET is really fun, especially C#. I know many
developers who switched from C++ to C# and swore "never again C++". But
then again, everyone has his opinion about that I guess.

Greetings,
Laurent
 
K

Kevin Spencer

The productivity gain is certainly real, and really impressive. In addition,
you have the option to go as low-level as you need to. Whereas, if you work
in C++ alone, you do not have the option to move to a higher level when
productivity will be improved by doing so. It is the history of software
development to, as hardware technology advances, and demand for more complex
and broad-reaching applications increases, build platforms on top of
platforms for greater productivity, starting with Assembler, and moving
forward all the way to the .Net platform and Java (so far).

--
HTH,

Kevin Spencer
Microsoft MVP
Bit Player
http://unclechutney.blogspot.com

Where there's a Will, there's a William.

Laurent Bugnion said:
Hi,
I guess I could also say:

Where are the C++ application developers that decide to switch to C#
.NET, and why do / would they switch?

I work in a firm with a solid C++ experience (I programmed in C++ myself
before, though I wouldn't call my experience "solid" ;-) and now we work
since 2002 with .NET too (parallelly: Maintenance in C++, new development
in .NET).

The productivity gain is real. You write less lines of codes, you must
debug less because the code is more stable. Basically, if it compiles, you
are already quite far with testing ;-)

Additionally, I want to add the fun factor. Programming in C++ can be
tedious work (though I am sure that many developers love it). However,
programming with .NET is really fun, especially C#. I know many developers
who switched from C++ to C# and swore "never again C++". But then again,
everyone has his opinion about that I guess.

Greetings,
Laurent
--
Laurent Bugnion [MVP ASP.NET]
Software engineering: http://www.galasoft-LB.ch
PhotoAlbum: http://www.galasoft-LB.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
 
E

ectoplasm

Thanks,
learning C# is not that hard.....

Yes, I am in C and C++ for a few years already. Now I'm reading the
boek from Troelsen (C# and the .NET 2.0 Platform) after seeing some
real nice C# examples on the web. In the meantime I tried rewriting
some of my own C++ libraries in C#, and must say I am impressed. I feel
I still must take a real good look if .NET is being adopted in the
corporate world as well, and also to see if this is a popular thing
that is, in general, 'embraced' as the next big thing (it seems it is).
I've also read critical stuff and all the 'Java vs. C#' (real juicy
stuff out there, fun to read too and giving many insights).

So with these questions I just want some of my own doubts cleared. I
think it's my wish to make a switch to C# (though it seems that in
Taiwan, where I am living, hasn't got much job openings in C# non-web
applications.... wink, wink ;-)

Anyway thanks for the feedback.
 
E

ectoplasm

Laurent said:
Additionally, I want to add the fun factor. Programming in C++ can be
tedious work (though I am sure that many developers love it). However,
programming with .NET is really fun, especially C#.

Kevin said:
The productivity gain is certainly real, and really impressive.

I believe that, and I understand how this makes a difference. Just only
look at header files and include dependencies for example: how many
hours are wasted with this in C++??
 
G

Guest

www.ukvaluation.co.uk/Default.aspx (my work - mathematical model to value
houses)
www.live.com - (MS search engine site and the whole spaces concept is asp.net)
www.windowsforms.net - Itsself is in ASP.NET
www.sourcegear.com - Vault is an excellent source control tool, way better
than source safe, written in C#

I am currently writing an application for a multinational bank in London
with a user base of about 6000 internal users and massive data processing
requirements.

..NET is a serious tool width serious performance, I dont know who your
employer is but they have no idea what they are talking about. .NET
applications far outstrip Java in terms on performance an scalability and
often can outperform C++ due to the better optimizations that can be done.
The load is slower due to just in time compilation but thats a choice not a
requirement, you can run ngen.exe provided with the frame to run jit on an
application a save the results so there is no jit at runtime. Anyone who
turns down .NET without a good reason is a fool. It will save companies money
as it is easier to code, faster to code (due to more active class library
saving you code and tools which can code gen) and easier to debug. It is
safer will garbage collected memory and pointer less programming but also
gives you the option of using pointers and direct memory access when speed is
neeeded without type checking.

Post more about the company or products you write and you could get a more
targetted response
 
K

Kevin Spencer

Well, besides the increasing body of software that Microsoft is writing with
the .Net platform, I can mention that we did a project for the NASA SATS
initiative which ended last year. The project culminated in a Managed
Direct3D situational awareness application designed to be used on a laptop
in a small aircraft with a GPS. It models terrain and nearby airport data
visually in real time, based on the GPS coordinate of the aircraft, as well
as onboard position information, including altitude, pitch, roll, yaw, etc.
It was demonstrated at the Danville SATS expo last March, and well-received.

All of the software we currently develop is written for the .Net platform
using C# (with some C and C++ mixed in).


--
HTH,

Kevin Spencer
Microsoft MVP
Bit Player
http://unclechutney.blogspot.com

Where there's a Will, there's a William.
 
E

ectoplasm

Thanks.
.NET is a serious tool width serious performance, I dont know who your
employer is but they have no idea what they are talking about. .NET
Post more about the company or products you write and you could get a more
targetted response

I think it doesn't matter. They want to go on beating their legacy C++
MFC code into new shapes for every customer every time. If only there
were more people in my company (openly) enthousiastic about .NET, it
would have a chance.

Unfortunately (for us, the software guys) this is how it goes often,
right. I am eager to do new stuff but I will have to switch jobs for
it. Companies want to sell things to bring some money in, and this kind
of technology switch is not a small thing (and in a way they are
right). BUT, in 5 years they will still be saying "we do C++ and MFC".
Shame on them.

But that goes in many ways... .NET superior to Java? It might be
superior to a lot of stuff but for widespread success..... it all has
to come together on many levels. Let's hope it will.
The load is slower due to just in time compilation but thats a choice not a
requirement, you can run ngen.exe provided with the frame to run jit on an
application a save the results so there is no jit at runtime. Anyone who

Yes. Now that you mention it, I know one good app in C#, and that is
Paint.NET (www.getpaint.net). I have used it and I *hated* the slow
startup time. I mean, any pic I chose "edit" and MS Paint would pop up
almost instantly. But with Paint.NET... I just hated the ten seconds of
waiting for it to start!!! But you say ngen.exe. I'll look at that.
www.ukvaluation.co.uk/Default.aspx (my work - mathematical model to value
houses)

So your work is ASP.NET (web applications, right). But I think I would
prefer windows forms applications. It has more software architecture in
it to build a whole app. After all ASP.NET is stateless (input,
process, output; no relations to previous inputs). Tell me if you think
I have wrong impressions of it.
 
E

ectoplasm

Kevin said:
initiative which ended last year. The project culminated in a Managed
Direct3D situational awareness application <....>

Also in C# .NET?
All of the software we currently develop is written for the .Net platform
using C# (with some C and C++ mixed in).

May I ask for what kind of parts you relied on C and C++? I mean I
assume you call this C/C++ code from C# code.
 
E

ectoplasm

Just to partly answer my own question now (shame, shame!):

I had to think of the Mono project (www.mono-project.com). That is,
..NET on Mac OS X and Linux, amongst others. They have a page where they
show a list of applications that rely on .NET (and that, thanks to
Mono).

http://www.mono-project.com/Companies_Using_Mono

Mono project will release their .NET 2.0 version in Q2 this year but
windows forms will be 100% completed in Q4 (as is scheduled). Lagging
behind a bit for full support, but still.... it's coming...
 
E

ectoplasm

Talking of slow startup time,

I thought it's interesting the CLR is really a little 'software CPU',
isn't it?

Thinking of IL (CIL) as analogous to assembly language (it does look
similar), who knows we'll have CPUs (real hardware CPUs I mean from
Intel) that can eat IL? Or at least some CLR support at the hardware
level?
 
K

Kevin Spencer

Also in C# .NET?

Yes, that's why I mentioned using Managed Direct3D. Managed Direct3D is a
set of .Net Direct3D libaries. I was surprised at how well it performed, but
from what I've learned, these were not wrappers for the unmanaged Direct3D
programming interface, but were built from the HAL layer up. In fact, most
3D support is provided through the video card these days. All the
programming interface does is to enable one to create the various vertices,
matrices, etc., and they are then pushed to the video card for processing.
So, it performs very well. Of course, this is also why Vista's 3D
vector-based GUI layer is also not a slow performer.
May I ask for what kind of parts you relied on C and C++? I mean I
assume you call this C/C++ code from C# code.

Sure. Actually, I only wrote a couple of components in unmanaged C++,
because they had to work with Flight Simulator for testing and demonstration
purposes (rather than having to fly an aircraft to test it every time!). As
for the C code, it was unsafe blocks of code in the C# code files, which
performed various functions with Bitmaps, and it had nothing to do with the
3D part of the app.

To be more specific, the app ran off of USGS Digital Elevation Model data,
which was stored (originally by the USGS) in text files. To speed things up,
I came up with a proprietary Bitmap "database" format which stored elevation
data in the pixels of Bitmaps. Because the DEM data was in a grid structure,
the Bitmap raster format was perfect for storage. But reading a Bitmap
pixel-by-pixel in Managed code is a very slow process. So, I created an
unsafe pointer to the first pixel, and would scan the pixels with pointer
arithmetic to build a VertexBuffer of coordinates that covered a 60X60-mile
patch of terrain, with vertices spaced 30 meters apart. This was by far the
most processor-intensive and memory-intensive part of the app, since the
VertexBuffer had to be rebuilt periodically as the plane moved, and swapped
out transparently. So, it ran on a background thread. Took about 20-30
seconds to build it each time. But it didn't affect the speed of the
display, which, as I said, relied on the video card to do the actual
drawing.

--
HTH,

Kevin Spencer
Microsoft MVP
Bit Player
http://unclechutney.blogspot.com

Where there's a Will, there's a William.
 
J

Jon Skeet [C# MVP]

.NET is a serious tool width serious performance, I dont know who your
employer is but they have no idea what they are talking about. .NET
applications far outstrip Java in terms on performance an scalability and
often can outperform C++ due to the better optimizations that can be done.

Um, any evidence (other than the discredited PetStore) for saying that
..NET applications "far outstrip Java" in those terms?

Java and .NET both end up JITted to roughly the same performance as
native code in my experience - there are some things which are a bit
faster in Java, and some things which are a bit faster in .NET. They're
both perfectly valid choices for large application development.
 
J

Jon Skeet [C# MVP]

Nope, not if you are thinking in terms of security. Java far outpaces .NET
in terms of reported security vulnerabilities when compared over time.
Source: Comparing Java and .NET Security - Uni of Virginia Paul/Evans.

Note that that paper only refers to the VM/CLR - and it's quite
possibly relevant that Sun makes its Java bug database publicly
available, whereas Microsoft doesn't (it has *a* bug database
available, as well as the knowledge-base, but Ladybug is only
relatively recent and I'm sure it's not the whole story).

Can you remember the last time you heard about anyone actually being
burned by a security vulnerability in either .NET or Java? I can't
remember any off-hand, myself. I'm not saying that .NET isn't more
secure than Java - I wouldn't like to say either way. I'm saying that I
haven't found it to be an issue in real life, myself.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top