472,145 Members | 1,452 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

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

In need of .NET advocacy

Hello people,

The following is not a troll but a serious request.

I found myself in a position where I have to present a Pro/Con list to management and architects in our company with regard to developing new products (specifically - desktop products) in C#/.NET instead of the usual C++/COM that we do.

Since I am not an experienced .NET developer by any definition, I don't have a good grip on the "Pro" part.

The argument that I hear most extols the virtues of the garbage collection in .NET.
Frankly, I am not really convinced by it myself because I started since consistently using smart pointers and RAII, I did not have to worry about deallocations. I also feel that the lack of deterministic destructors is a big drawback that makes managing non-memory resources cumbersome.

Therefore I ask the community to provide me with reasons that could persuade me, and the people I will present them to, that switching would be beneficial to the company (they would be mostly interested in lowering risks, increasing productivity and saving money).

Both links and prose are welcome.
Best regards,
Alex.
--
Please replace myrealbox with alexoren to reply by email.

Jul 21 '05
55 3677
Hello Olaf,

"Olaf Baeyens" <ol**********@skyscan.be> wrote in message news:42***********************@news.skynet.be...
Although I am a big favour of .NET it has also cons sides.
And it would morally be not right if I would hide these negative sides.

* The resistance of people to install the .NET framework. You would not
believe what stories they come up in order not to install it. Typical would
be: It slows down my computer, It is too big, I don't believe in it,....
Not an issue in our case.
The customer gets a "black box", they should not care if it uses the CLR, the JVM or P-Code...
* At this moment installing the .NET framework is far too complicated. New
distributions of Windows XP seems to contain the .NET framework, but from
the summer on we will have a new one the v2.0. So I hope the installation
becomes a one click situation. The situation through critical updates is
currently too complicated for my grandmother that wants to browse the
Internet and read email.
Did I mention that our company makes money on support as well? :-)
* Installation is a bit complicated because of the security issuses if the
program needs internet and/or LAN access. Luckily this can be easily fixed
by creating a managed dll that contains registration code to give your
program enough access to access the LAN and Internet. You cannot grant
access rights from inside your program, but you can make the setup run that
managed code to give program user rights. The setup.exe is not a managed
code so it does have access to the user rights. And if people double click
on a setup then we assume that they know what they are doing.
Not relevant at this time but good to know.
* The resistance of the VB and C++ programers since they have to relearn
everything, becoming a newbie.
Nah, some our developers *want* to switch and the rest will be pigeonholed into maintaining old C++/COM/MFC/ATL code.
* The error reporting that would give a user a heart attack when something
goes wrong like no LAN access, or when you try to run the program from a
networkdrive by double clicking on it. You get an error like the "access
violation" type with a list of all assemblies loaded, where even normal
programmers have no idea what it all means. This is very user-unfriendly.
Looks like an uncaught exception to me (and we know what to do with those in any language).
These are the ones that comes to my mind...


So far, they all seem to have reasonable workarounds.

Best wishes,
Alex.

--
Address email to user "response" at domain "alexoren" with suffix "com"
Jul 21 '05 #51
Hello Nick,

"Nick Malik [Microsoft]" <ni*******@hotmail.nospam.com> wrote in message news:co********************@comcast.com...
Hello Alex,

Perhaps this will help.

Microsoft Canada Co.
1950 Meadowvale Blvd
Mississauga, Ontario
L5N 8L9

Canadian Head Office: (905) 568-0434
Customer Inquiries: (877) 568-2495
Microsoft TT/TDD: (905) 568-9641
Microsoft Order Centre: (800) 933-4750



I don't know how far Mississauga is from your location (especially since I
don't know precisely where your location is :-), but I'm sure that they will
be helpful. I've worked with the good folks in my local district office on
occasion over the years, and they are nothing if not helpful, fair, and
informative.


Thanks, I am already communicating with Ryan Storgaard (http://blogs.msdn.com/stoey) on this subject.
His last update was that he got some people in Redmond digging for info and he'll let me know when anything happens.

Best wishes,
Alex.

--
Address email to user "response" at domain "alexoren" with suffix "com"
Jul 21 '05 #52
Hello Nick,

"Nick Malik [Microsoft]" <ni*******@hotmail.nospam.com> wrote in message news:go********************@comcast.com...
Why don't you tell me what design patterns the framework implements?


Clearly, the Observer pattern (and its cousin, the Event pattern) are
heavily used, as are the Factory Method, Builder, Iterator, Strategy and
Bridge.
I can make a case for Singleton as a supported pattern but I don't know
where the framework uses it.
I'm pretty sure that IClonable is essentially an implementation of the
Prototype pattern.
The XML classes use Composite quite a bit.
The IO classes make use of the Decorator pattern.
.Net Remoting and web services make heavy use of the Proxy pattern .
I could make a fairly strong case that Visitor and Adapter are used by the
data classes.

A page of articles on design patterns in .Net can be found here
http://www.windowsforms.net/Articles...131&tabindex=3


Thanks.

I am yet unfamiliar with most of the framework parts that you mentioned, that's why I asked.

As an aside, I think of design patterns as mostly documentation aids.
Most (if not all) SW design patterns boil down to adding an extra level of indirection.
However, knowing a commonly used name for it saves us from lengthy explanation where and how it is added. :-)

Best wishes,
Alex.

--
Address email to user "response" at domain "alexoren" with suffix "com"
Jul 21 '05 #53

"Olaf Baeyens" <ol**********@skyscan.be> wrote in message news:42***********************@news.skynet.be...
But when I need the raw processing power, most funtions are still
conventional C++.
I wrote some embedded C++ for ECI telecom some time ago.
At the time, the hardware was not powerful enough to run a virtual machine with the required performance for the given price.
Now, I don't know...
I see that ATI have a .NET program to configure the their network card.


I can only say good for them!
(My previous job was with ATI, maintaining and enhancing HydraVision, so I know what I'm talking about).

Hmmm... Network card???

Jul 21 '05 #54
>I can only say good for them!
(My previous job was with ATI, maintaining and enhancing HydraVision, so I know what I'm talking about).
Hmmm... Network card???

Oops video card, not network card. Sorry....

--
http://www.skyscan.be

Jul 21 '05 #55
Another Microsoft product that requires the .NET framework:

Windows® Media Connect :
http://www.microsoft.com/windows/win...t/default.aspx

In the readme you see that they need .NET v1.1.

It looks that the new programs tend to start using the .NET, older programs
like Office somehow are kept as none-.NET maybe of the large code base that
is hard to convert to the .NET way.

--
http://www.skyscan.be
Jul 21 '05 #56

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

10 posts views Thread by jbailo | last post: by
354 posts views Thread by Montrose... | last post: by
42 posts views Thread by slickn_sly | last post: by
55 posts views Thread by Alex | last post: by
6 posts views Thread by Jeff Rush | last post: by
reply views Thread by Marcus | last post: by
reply views Thread by Saiars | last post: by

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.