C# for a serious desktop app? (newbie question)...

  • Thread starter Thread starter MustRide
  • Start date Start date
M

MustRide

I am looking for the best tool to develop a multi-tiered desktop app. I know
that C# is a solid choice, but HOW good of a choice is it in the long run? I
will have a website (asp.net probably) tied into the app and components
including Macromedia Flash, to name but one. Would C++ (or others?) possibly
serve me better?

I really know its a over-generalized question, but I am very stumped and I
am afraid to make a choice until I know 100% that its the right choice for a
major application....any help would be appreciated. Just want to make the
right choices before I begin down a major project.

I am really looking for an un-biased opinion. I used to be high-geared for a
particular language for any problem...but I wizened up a bit and I am now
focusing on using the RIGHT tools for the job instead of the other way
around....

Thanks,
iLogic.
 
I am really looking for an un-biased opinion. I used to be high-geared
for a particular language for any problem...but I wizened up a bit and I
am now focusing on using the RIGHT tools for the job instead of the
other way around....

Well, I'm not sure anybody can claim to be truly unbiased ... I would say
C# + WinForms is a relatively safe choice, assuming that you know your
target audience will always be running Windows operating systems. Its
interoperability with native code is quite seamless, so if one particular
part of the application needed to be written in native code it should be a
fairly simple matter to integrate.

If you are less certain of your target audience's platform preferences,
you might consider a more cross-platform solution, such as C# using Mono /
GTK# or perhaps Java using Swing or SWT.

Good luck,

-Derek
 
I'm not going to be very unbiased either. I think C# is definitely the
better way to go.

1: I think you'll find your productivity increases dramatically over C++.
Mine certainly did and that seems to be fairly common.

2: Using .NET as a platform will let you use your data access layer from
both the ASP.NET and Windows Forms clients, allowing seemless code re-use.

3: C# is a better choice for developing .NET apps than managed C++ in most
instances. There's little difference in generated code. Frankly, managed C++
seems almost like a hack, whereas C# was built from the ground up for .NET.

4: You've got easy access to older stuff as well, such as COM components,
ActiveX controls, and so forth, if you need it.

5: Did I mention increased productivity? I really can't stress this enough.
In the past year and a half, I've produced more C# code than in my previous
5 years doing C++. It practically writes itself. Just my opinion, but I'll
stand by it.

Pete
 
MustRide said:
I am looking for the best tool to develop a multi-tiered desktop app. I know
that C# is a solid choice, but HOW good of a choice is it in the long run? I
will have a website (asp.net probably) tied into the app and components
including Macromedia Flash, to name but one. Would C++ (or others?) possibly
serve me better?

I really know its a over-generalized question, but I am very stumped and I
am afraid to make a choice until I know 100% that its the right choice for a
major application....any help would be appreciated. Just want to make the
right choices before I begin down a major project.

I am really looking for an un-biased opinion. I used to be high-geared for a
particular language for any problem...but I wizened up a bit and I am now
focusing on using the RIGHT tools for the job instead of the other way
around....

Thanks,
iLogic.

I thought C#/.NET would be ideal for desktop applications, until I
messed about with the controls, and found *big* problems here. I've
detailed these problems to some extent in recent threads I've started.

Interestingly, though, the few people who've tried the test code
involved and have posted their results have declared that they've
experienced no such problems.

I'd like to look into this further, because, even if some others don't
experience these problems, as they claim, how many more people are out
there with similar problems to me?

Sure, C#/.NET makes it so easy for the programmer, and I like the whole
idea of it; but my confidence with .NET is lost now. From what I've
seen, .NET forms and controls appear to be a messy hack on top of the
Windows API.

C# is such a nice language, and a framework class library that adheres
strictly to the object-oriented paradigm, such as .NET, is such a great
idea. Maybe it's too good to be true, at the current time.

Enough of my problems; how about the bigger question --
where are the big C#/.NET apps?

Why aren't MS releasing .NET apps? Is it because .NET can't perform?
Is it because .NET isn't *really* their future plan?

Why didn't MS bundle the .NET redistributable with Windows XP? Again,
this begs the question of whether MS are commited to .NET or not.

What *is* .NET good at? I couldn't answer that question straight. I
wonder if /anyone/ could; even MS.
 
The primary objective of .NET was and remains a future
where software is delivered as a service. Everything else
is ancillary to that objective.

--
<%= Clinton Gallagher
A/E/C Consulting, Web Design, e-Commerce Software Development
Wauwatosa, Milwaukee County, Wisconsin USA
NET (e-mail address removed)
URL http://www.metromilwaukee.com/clintongallagher/
 
Nobody has bothered to mention the fact that Windows
applications developed using the .NET Framework require
that framework to be present on the machine where the
application runs. The framework is an additional 20 Mb
and must be downloaded or otherwise somehow distributed
and installed locally.

Lastly, Windows applications developed via the framework
are inherently insecure if you want to protect your code. The
only secure way to protect your code is to run it on a web
server via ASP.NET.

--
<%= Clinton Gallagher
A/E/C Consulting, Web Design, e-Commerce Software Development
Wauwatosa, Milwaukee County, Wisconsin USA
NET (e-mail address removed)
URL http://www.metromilwaukee.com/clintongallagher/

LaGarde StoreFront 5 Affiliate: e-Commerce Solutions
SEE: http://www.storefront.net/default.asp?REFERER=-201499070
 
I can see your point of view, the thought of secure code does raise an
important question....will my code be secure from reverse-engineering?

I thought the framework distributable was only about a 5MB download?
 
I think it's 2X MB

Anyway, few years later, when longhorn becomes the major OS in the market.
together with new WinAPI in Longhorn such as XAML/Avalon/etc.
..Net will rules.
 
I can see your point of view, the thought of secure code does raise an
important question....will my code be secure from reverse-engineering?

seriously - why is this such an issue.

think of it logically, what sort of people will buy your software, what
sort of people will actively search for a way to bypass any security in
your software - are your prospective customers people who will do this.

in all likelyhood they are not

your average jo doesnt have a clue about crax.ws (or whatever the flavor of
the month crack search engine is). people who do generally have more of a
clue about what "other" things these cracks will do to a persons computer -
there aint nothing stopping that keygen, crack you ran to get a cd-key for
MS Office 2003 from installing a backorriface server on your box.

as for your IP, the java community have delt with this "issue" and figured
out that you can either obsfuctercate (however you spell it) or not worry
about it - but then again the java community is more OSS minded than the
microsoft developer community - which is niether a good or bad thing.

it is your IP so you can guard against curious eyes if you so wish - but
what is the big secret.
 
MustRide,

I work in a .Net shop that provides Windows Applications to major
corporations (including Fortune-500) and in some cases must coordinate with
real-time high speed hardware. C# has served us well in quickly creating
these applications. These apps require interfacing with a non-windows host
(via TCP/IP), storing data in a local MSDE database, reacting to events
raised by the hardware, in a limited time slice (otherwise it would muck up
the process), handling errors gracefully, as well as providing a user
interface.

We use platform invoke, interact with .ocx's and COM objects as well.

How big am I talking about? Well, just the *.cs files for one project alone
are 3.25 MB. The *.resx files are over 4 MB. The compiled exe and dll's
are around 2.5 MB (thanks to the Framework carrying much of the size load).

So, there are indeed large real world applications being used.

The Framework is over 20 MB, but for distribution with large companies, we
burn CD's or sometimes FTP the files needed, depending on the requirements.
Also, if code security is important to you, check out the Dotfuscator
included with VS.Net Studio 1.1. Since we sell the code to our customers,
that isn't an issue with us.

Chris R.
 
Thanks for all the help and suggestions. I think I will do the app in C#, in
all likelihood it will do all that I need.......I just need to research my
customer environments in greater detail (which will be probably be VERY
diverse in location, accessibility and type) to see if the distributable
runtime is a viable option. (although I can't think of a reason why it
wouldn't be...)

Must.
 
clintonG said:
Nobody has bothered to mention the fact that Windows
applications developed using the .NET Framework require
that framework to be present on the machine where the
application runs. The framework is an additional 20 Mb
and must be downloaded or otherwise somehow distributed
and installed locally.

Well... 20Mb isn't much really is it? There's usually room on a CD for it.
In fact when you consider the other updates you probably need with your
application, it's not even the biggest. (We redistribute IE, MSDE, .NET and
various other odds and ends).

Also I believe it's pretty widely known that the framework is a requirement.
Lastly, Windows applications developed via the framework
are inherently insecure if you want to protect your code. The
only secure way to protect your code is to run it on a web
server via ASP.NET.

In terms of insecure, it depends on your clients. The only apps which aren't
cracked are those where all the customers feel they are paying more for the
'service' than for the 'bytes'. Security is always about degress of
difficulty, never about secure/insecure. Thinking compiled C++ can't be
decompiled or cracked is a rather naive belief.

I've been coding C#/MC++ for two years now on a commercial application
(shortly to release v2.0) and I definitely believe we made the correct
decision to go down the .NET route.

Of course, that's not to say it's best for everyone or every project --
obviously you'll need to weigh it up. I'd suggest perhaps a trial
application to familiarise yourself with the environment, its pitfalls and
strengths.
 
Back
Top