.NET Applications

Discuss anything related to portable freeware here.
Message
Author
ohadsc
Posts: 10
Joined: Fri Apr 02, 2010 11:35 am

.NET Applications

#1 Post by ohadsc »

I know there has been some discussion about these, but I haven't seen a thread dedicated to it and as a .NET developer myself I have a few points to make
Obviously .NET will not be present on every computer, but consider:
  • Windows Vista comes with .NET 3.0 and Windows 7 comes with .NET 3.5 (source)
  • Well over 90% of the PCs in the world have some version of the .NET Framework installed,
    and over 65% of Windows PCs in the world have .NET 3.5 SP1 installed (source)
  • The .NET Framework is intended to be used by most new applications created for the Windows platform (source)
    This means that the above numbers are only likely to increase
  • If you have .NET 2 or above, .NET 3.5SP1 and its fixes will show as Important in windows update (meaning automatic updates will install them).
    If you don't have .NET 2.0 or above, the same updates will be offered as recommended (source)
    BTW, contrary to some posts I've seen here, no service pack of WinXP will install any version of the .NET framework (source1, source2, source3)
    Do note, however, that .NET 2.0 and above is only supported on WinXP SP2 and above (source)
So again, .NET apps may not be purely portable, but IMHO for many people in many scenarios they can be considered as such
Just my 2 cents...

(Edited for clarity)
Last edited by ohadsc on Sun Apr 04, 2010 5:26 pm, edited 2 times in total.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: .NET Applications

#2 Post by m^(2) »

ohadsc wrote:
  • The .NET Framework is a Microsoft offering and is intended to be used by most new applications created for the Windows platform (source)
How does it relate to portability?
ohadsc wrote:
  • Well over 90% of the PCs in the world have some version of the .NET Framework installed, and over 65% of Windows PCs in the world have .NET 3.5 SP1 installed (source)
Why do you consider this source reliable? It doesn't quote own source and is not a known to me (so also "not a reliable for me") analytic. This is actually the only strong point in your post and w/out further explanation it's worthless.

That said, I agree with your conclusion:
ohadsc wrote:for many people in many scenarios they can be considered as such
And I'm still wary about putting .NET apps here - because I *believe* there are too many cases when their portability is insufficient, yet no indication is clear enough, some people will always miss it's drawback. I believe that the PFC database would be better w/out because even a noob that's tired and in a hurry will always get full quality product, one that always works as expected (except for bugs...but they are devs' stuff).
Yet I'm not as much against putting .NET apps here as I was before because I see that it's popularity increased, so problems will be somewhat less common.

BTW, supposing that the 90/65% numbers are right; one uses 10 different machines; availability of .NET on the machines is independent, there's 35% that all have .NET 2 and 1% that all have 3.5.

lyx
Posts: 84
Joined: Mon Feb 15, 2010 1:23 am

Re: .NET Applications

#3 Post by lyx »

I think the actual issue is why some people here, including me, like "portable apps". What these people actually like is not just "portability" but more somthing like "autonomous apps" - that is, the app is self-contained and has minimum external dependencies. Problem is that no application running on an OS is actually "totally self-contained", because it at minimum must use facilities provided by the kernel. Well, okay, thats not much, sounds acceptable. But wait, an OS nowadays is not just "the OS itself" but also a bunch of middleware. Like for example: directX - it technically isnt part of the OS - and yet, it is such a usual "system library", that people have no problem calling an app which requires directx portable. Technically however, such an app isn't self-contained/autonomous anymore - directX isn't something that is necessary for the OS to function - it's an additional library which is pushed really hard by the vendor being the same as the one who makes the OS (yes, we're again arriving at "that topic").

So, the point at which an external dependency becomes acceptable/inacceptable comes down to:

- Popularity (marketshare) of the dep. Why this criterion seems reasonable should be obvious. Let me add a not-so-obvious counterargument against this criterion: When you run an application on someone elses machine, then part of the "being nice" is that you do bring everything you need with you, portable, so that the existing system is as little modified as possible (you're a guest). However, by basing portability on popularity, you're implicitely *expecting* the owner of that other machine to have this external dependency installed "because its popular". What this means in the big picture is that "popularity makes right", and individual choice takes a back seat place.

- Individual preferences. To get back to the earlier example: At least until a few years ago, directX was actually rather compact AND the "host" doesn't need to install a certain directX update - just put the requred lib in your portable app dir, and it works. Now NET, is a huge dinosaur, and of course please have all versions of it installed redundantly, PLUS the "host" MUST install it OS-wide - there is no way to bundle required NET libs with the application, so that the OS machine doesnt need to be modified.

To summarize: If these vendors of giant middleware libs want their libs to be used in portable applications, then they should make it possible to optionally bundle their libs portable. If some person wants to retain individual choice about which middleware to install on his/her OS, then i want to respect that WITHOUT some of my apps suddenly being disfunctional. To give a comparision: GTK on linux would be considered "standard" by many - and yet, if someone doesn't want to have it installed, it can still be directly linked into an app. I do not see why we should give middleware vendors - regardless of if they're commercial or opensource - a free pass regarding portability, just because "preinstalls, bullying and marketshare makes right".

User avatar
webfork
Posts: 10818
Joined: Wed Apr 11, 2007 8:06 pm
Location: US, Texas
Contact:

Re: .NET Applications

#4 Post by webfork »

Edit: I wrote this response before I read lyx's responses so there's some overlap.

---

I agree with many of m^(2)'s points. Let me give you a path to success: here's how you make me an advocate for your cause:

1. Make dot net REALLY portable. Create a software that will contain portable dot net libraries! Many Mozilla programs here on the site contain java components right now, so why not .NET stuff?

2. Advocate better licenses. Encourage Microsoft to open up the program to a less restrictive license. This will help you to do #1 and attract more developers who won't feel intimidated by patent threats.

3. Somehow solve the "Sword" problem Calling dot net 3.5 portable is like calling a sword portable. Sure, you can take it to a few scenarios that allow for that sort of thing but you're not going to get anywhere in most public places.

4. Build our faith in the platform

- Post strong numbers on the *current* state of dot net deployment, not what Windows update "recommends".
- Don't list statistics by a guy who WORKS FOR MICROSOFT and got the information from ONE OF HIS BOSSES about 90% market penetration. That's both hearsay and bias in the same stat.
- Do dot net 2.0 applications require the latest bug fixes for 2.0 to run the latest software? Or can they run the stuff packaged in with WinXP?
- Is Microsoft going to have some kind of end-of-life thing for 2.0 applications like they have with their other software? Are you sure?

M@tty
Posts: 192
Joined: Wed May 02, 2007 9:32 am
Contact:

Re: .NET Applications

#5 Post by M@tty »

It's pretty late so this reply will be brief (not in a rude manner).
webfork wrote:Create a software that will contain portable dot net libraries!
Have you tried Mono? Seems to fit the bill for what you're referring to.
webfork wrote:Encourage Microsoft to open up the program to a less restrictive license.
Check out http://en.wikipedia.org/wiki/Shared_Sou ... astructure
webfork wrote:Calling dot net 3.5 portable is like calling a sword portable. Sure, you can take it to a few scenarios that allow for that sort of thing but you're not going to get anywhere in most public places.
Agreed.
webfork wrote:Post strong numbers on the *current* state of dot net deployment, not what Windows update "recommends".
http://www.statowl.com/microsoft_dotnet.php

Obviously this is quite subjective as these are only figures for Internet Explorer users, but I'd say they are strong numbers.

ohadsc
Posts: 10
Joined: Fri Apr 02, 2010 11:35 am

Re: .NET Applications

#6 Post by ohadsc »

m^(2) wrote: How does it relate to portability?
I am merely suggesting that the popularity statistics, on whose relevance we agree, are likely to grow with time (I edited my post to clarify that)
m^(2) wrote: Why do you consider this source reliable? It doesn't quote own source and is not a known to me (so also "not a reliable for me") analytic. This is actually the only strong point in your post and w/out further explanation it's worthless.
You mean worthless to non believers such as yourself :wink:
From the source's comments:
This data is provided by NetApps to Microsoft and is not something we release on a regular basis (same folks who do the browser statistics) and it is not poll or survey based data. However, we thought it was intersting to share a point in time view since we thought transparency and knowledge was a good thing. Any methdology is going to be imperfect, but the market in general is comfortable with the way NetApps measures browser share so we have piggy backed on the same stuff. It is a view of *all* internet connected devices (so it does include things like Macs and iPhones in the denominator, but those #'s don't materially impact the outcomes (maybe we'd be 1-2% higher if we modulo'd that out).
Fundamentally we are interrogating internet traffic around the globe (LOTS OF IT) so it is not biased or skewed to "high IQ users" but is a reasonable view of the broad internet connected PC population.
Hope this helps provide some color.
Thanks,
Brian Goldfarb
Director, Developer Platforms and UX
Microsoft Corporation
Update: Brian is right, these stat are from a third-party, NetApps. WU plays a part though (they have stats, although these aren't theirs) as the rapid increase in the number of installs of the latest version of the .NET Framework reflects both the speed with which WU has been able to update those PCs with .NET 2.0 and above to .NET 3.5 SP1, as well showing the adoption of Vista and Windows 7, which ship with .NET 3.0 and .NET 3.5 SP1 respectively.
Now you could, as webfork has, claim that they are all biased Microsoft liars and to that I say - to each his own. I consider reputable key figures in Microsoft like Brian Goldfarb and Scott Hanselman (well, well known in the development community) reliable, not to mention they have a lot to lose by lying (or even misinforming).
m^(2) wrote: And I'm still wary about putting .NET apps here - because I *believe* there are too many cases when their portability is insufficient, yet no indication is clear enough, some people will always miss it's drawback. I believe that the PFC database would be better w/out because even a noob that's tired and in a hurry will always get full quality product, one that always works as expected (except for bugs...but they are devs' stuff). Yet I'm not as much against putting .NET apps here as I was before because I see that it's popularity increased, so problems will be somewhat less common.
That's all good and well, besides the fact that sometimes pure portable applications doing what you want don't exist. Or maybe the managed alternatives are better. I say the users should have the right to choose based on their perceived trade-off between portability and functionality. You could put a big red warning saying "not completely portable" or some such, but ignoring .NET applications altogether is burying your hand in the sand.
m^(2) wrote: BTW, supposing that the 90/65% numbers are right; one uses 10 different machines; availability of .NET on the machines is independent, there's 35% that all have .NET 2 and 1% that all have 3.5.
Your assumption of availability independence is flawed. They all have the serious correlation of being used by you. This could mean all computers at your workplace, all computers at your home, etc. In such cases .NET applications may be "portable enough".

ohadsc
Posts: 10
Joined: Fri Apr 02, 2010 11:35 am

Re: .NET Applications

#7 Post by ohadsc »

@webfork - It seems M@tty is more qualified than myself to answer most of your points, however regarding your question
Do dot net 2.0 applications require the latest bug fixes for 2.0 to run the latest software? Or can they run the stuff packaged in with WinXP?
Seeing that no .NET version is packaged with any version of windows xp, I assume you mean a vanilla .NET 2.0 installation on WinXP. I'm pretty sure most .NET 2.0 programs will work without any updates installed, but keep in mind the updates exist for good reasons, like fixing bugs and security issues. So running any .NET application on a non-patched .NET framework is not as safe or reliable. Then again, the same could be said on anything running on a non-updated OS...

@ M@tty - Just curious, is that Matty or Motty? I'm asking because it seems Israelis are always pro .NET for some reason :lol:

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: .NET Applications

#8 Post by m^(2) »

ohadsc wrote:
m^(2) wrote: How does it relate to portability?
I am merely suggesting that the popularity statistics, on whose relevance we agree, are likely to grow with time (I edited my post to clarify that)
m^(2) wrote: Why do you consider this source reliable? It doesn't quote own source and is not a known to me (so also "not a reliable for me") analytic. This is actually the only strong point in your post and w/out further explanation it's worthless.
You mean worthless to non believers such as yourself :wink:
From the source's comments:
This data is provided by NetApps to Microsoft and is not something we release on a regular basis (same folks who do the browser statistics) and it is not poll or survey based data. However, we thought it was intersting to share a point in time view since we thought transparency and knowledge was a good thing. Any methdology is going to be imperfect, but the market in general is comfortable with the way NetApps measures browser share so we have piggy backed on the same stuff. It is a view of *all* internet connected devices (so it does include things like Macs and iPhones in the denominator, but those #'s don't materially impact the outcomes (maybe we'd be 1-2% higher if we modulo'd that out).
Fundamentally we are interrogating internet traffic around the globe (LOTS OF IT) so it is not biased or skewed to "high IQ users" but is a reasonable view of the broad internet connected PC population.
Hope this helps provide some color.
Thanks,
Brian Goldfarb
Director, Developer Platforms and UX
Microsoft Corporation
Update: Brian is right, these stat are from a third-party, NetApps. WU plays a part though (they have stats, although these aren't theirs) as the rapid increase in the number of installs of the latest version of the .NET Framework reflects both the speed with which WU has been able to update those PCs with .NET 2.0 and above to .NET 3.5 SP1, as well showing the adoption of Vista and Windows 7, which ship with .NET 3.0 and .NET 3.5 SP1 respectively.
Now you could, as webfork has, claim that they are all biased Microsoft liars and to that I say - to each his own. I consider reputable key figures in Microsoft like Brian Goldfarb and Scott Hanselman (well, well known in the development community) reliable, not to mention they have a lot to lose by lying (or even misinforming).
OK. If I cared, I would dig into this, but it's not worth the time. ;)
I accept the numbers.
ohadsc wrote:
m^(2) wrote: And I'm still wary about putting .NET apps here - because I *believe* there are too many cases when their portability is insufficient, yet no indication is clear enough, some people will always miss it's drawback. I believe that the PFC database would be better w/out because even a noob that's tired and in a hurry will always get full quality product, one that always works as expected (except for bugs...but they are devs' stuff). Yet I'm not as much against putting .NET apps here as I was before because I see that it's popularity increased, so problems will be somewhat less common.
That's all good and well, besides the fact that sometimes pure portable applications doing what you want don't exist. Or maybe the managed alternatives are better. I say the users should have the right to choose based on their perceived trade-off between portability and functionality. You could put a big red warning saying "not completely portable" or some such, but ignoring .NET applications altogether is burying your hand in the sand.
Yes, there are many ways to do it, yet each can be missed. I thought about a modal Click-Ok-To-Continue window with a huge red exclamation mark as the strongest assurance that user noticed the warning, yet people often click OK w/out reading. The only solution that works for all is to avoid problematic content. It does reduce database content and my opinion that it's better is not very strong, even though I never found a .NET app w/out a better unmanaged equivalent.
ohadsc wrote:
m^(2) wrote: BTW, supposing that the 90/65% numbers are right; one uses 10 different machines; availability of .NET on the machines is independent, there's 35% that all have .NET 2 and 1% that all have 3.5.
Your assumption of availability independence is flawed. They all have the serious correlation of being used by you. This could mean all computers at your workplace, all computers at your home, etc. In such cases .NET applications may be "portable enough".
I don't agree that this correlation is serious - if you can install .NET, you can install a copy of the app and don't need portability at all, except for cases when different copies would need synchronization.

M@tty
Posts: 192
Joined: Wed May 02, 2007 9:32 am
Contact:

Re: .NET Applications

#9 Post by M@tty »

ohadsc wrote:@ M@tty - Just curious, is that Matty or Motty? I'm asking because it seems Israelis are always pro .NET for some reason :lol:
Haha, it's Matthew but most call me Matty. And I'm very much English...

I'm a fan of .NET because it cuts development time down to a fraction. Recently for my final year thesis project, I have written an IDE and compiler for the SERCAL language (proprietary language in the telemetry engineering industry, a cross between BASIC and Assembler), including custom syntax highlighing and serial communications libraries to download to the RTU and debugger screens to read back from the RTU. It was about 150 hours development time, but this is a minute fraction of what it would have been developing without using the managed classes provided by the .NET framework.

It's pretty much click-n-play programming, or the programming equivalent of painting by numbers. I don't consider C# real programming, I've done the low-level dirty stuff, at communications protocol level and also machine code programming, but when it comes to Windows GUI - the .NET framework is a powerful development tool.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: .NET Applications

#10 Post by m^(2) »

M@tty wrote:
ohadsc wrote:@ M@tty - Just curious, is that Matty or Motty? I'm asking because it seems Israelis are always pro .NET for some reason :lol:
Haha, it's Matthew but most call me Matty. And I'm very much English...

I'm a fan of .NET because it cuts development time down to a fraction. Recently for my final year thesis project, I have written an IDE and compiler for the SERCAL language (proprietary language in the telemetry engineering industry, a cross between BASIC and Assembler), including custom syntax highlighing and serial communications libraries to download to the RTU and debugger screens to read back from the RTU. It was about 150 hours development time, but this is a minute fraction of what it would have been developing without using the managed classes provided by the .NET framework.

It's pretty much click-n-play programming, or the programming equivalent of painting by numbers. I don't consider C# real programming, I've done the low-level dirty stuff, at communications protocol level and also machine code programming, but when it comes to Windows GUI - the .NET framework is a powerful development tool.
I'm pretty sure that if there were unmanaged C# libraries, the development time would be exactly the same. :roll:

M@tty
Posts: 192
Joined: Wed May 02, 2007 9:32 am
Contact:

Re: .NET Applications

#11 Post by M@tty »

m^(2) wrote:I'm pretty sure that if there were unmanaged C# libraries, the development time would be exactly the same. :roll:
The operative word here "if". I did research it prior to commencing development, and for what the .NET framework gave me versus other free offerings like Qt or wxWidgets, .NET was the winner. I'm not saying everyone has to agree, but even on a portability front I have found that most of what I write can be run using Mono, which adds about 2 Megabytes to your flash drive. Even UPX compressed the QtGUI component is 3.5 Megabytes. So... even in that respect (which is what this forum is all about) the .NET framework isn't all bad.

ohadsc
Posts: 10
Joined: Fri Apr 02, 2010 11:35 am

Re: .NET Applications

#12 Post by ohadsc »

M@tty wrote: Haha, it's Matthew but most call me Matty. And I'm very much English...

I'm a fan of .NET because it cuts development time down to a fraction. Recently for my final year thesis project, I have written an IDE and compiler for the SERCAL language (proprietary language in the telemetry engineering industry, a cross between BASIC and Assembler), including custom syntax highlighing and serial communications libraries to download to the RTU and debugger screens to read back from the RTU. It was about 150 hours development time, but this is a minute fraction of what it would have been developing without using the managed classes provided by the .NET framework.

It's pretty much click-n-play programming, or the programming equivalent of painting by numbers. I don't consider C# real programming, I've done the low-level dirty stuff, at communications protocol level and also machine code programming, but when it comes to Windows GUI - the .NET framework is a powerful development tool.
Hey, who are you calling a fake programmer ? ;)
I do all my coding in C# (both server and client, for work, for study and for fun) and I very much consider it "real" programming, just as, say, C++ is (which was the previous language I wrote in). I also consider it powerful for most if not all uses, not just GUI. But that is a topic for another discussion ...
Mad props for your project though, it sounds really cool!
m^(2) wrote: if you can install .NET, you can install a copy of the app and don't need portability at all, except for cases when different copies would need synchronization
Not always, for example in the case of a domain (in a workplace, library, etc) where IT installed .NET on all computers. Also, "installing" a portable application is easier since it remembers all your preferences. And like you said, there is the matter of synchronization. Lastly, you could walk around with 2 versions, an unmanaged util that will work for sure, and a better managed util (where applicalbe) that will work some/most of the time. Not a perfect solution, but the best I can think of, at least until they invent portable .NET for windows...
m^(2) wrote: I thought about a modal Click-Ok-To-Continue window with a huge red exclamation mark as the strongest assurance that user noticed the warning, yet people often click OK w/out reading. The only solution that works for all is to avoid problematic content.
You're right - there is a trade-off. I personally believe it's worth it but it's a matter of opinion (and hence this thread...)
m^(2) wrote: I never found a .NET app w/out a better unmanaged equivalent.
Obviously, you haven't been scheduling recordings of streaming media ;)

M@tty
Posts: 192
Joined: Wed May 02, 2007 9:32 am
Contact:

Re: .NET Applications

#13 Post by M@tty »

ohadsc wrote:Hey, who are you calling a fake programmer ? ;)
I do all my coding in C# (both server and client, for work, for study and for fun) and I very much consider it "real" programming, just as, say, C++ is (which was the previous language I wrote in). I also consider it powerful for most if not all uses, not just GUI. But that is a topic for another discussion ...
I didn't mean it as an offence to anyone, the internet doesn't convey tone of voice very well. What I meant was, the .NET framework is so powerful (and does so much for you) that I feel like I'm cheating when I code with it, as the finished product would not be possible without so much hard work from Microsoft.
ohadsc wrote:Mad props for your project though, it sounds really cool!
Thanks. :) My desk is currently covered in wires connecting to one of these: http://www.cse-seprol.com/images/s500_controler.jpg
m^(2) wrote:I never found a .NET app w/out a better unmanaged equivalent.
I don't require it these days, but years ago when I used to do unattended installation disks nLite was a fantastic tool, and there was no unmanaged equivalent that came close to comparing in usability. Back then, I too was not a fan of the .NET framework, but this was before I had started using it myself.

The crux of this debate, for me, comes down to Mono. Statistics (whether you think they are useful or not) generally seem to show in excess of 75% .NET Framework 2.0 or better penetration. And the further into the future we get, the more this should increase (as Windows 7 ships with it by default). For the 25% of computers that don't have it, either carry the installer on your flash stick (200 megabytes to cover all frameworks on the main supported PC architectures) or Mono is your friend. Adding a few megabytes to your flash drive, for the power and flexibility the .NET libraries (Mono libraries in this case) provide, is a more than welcome tradeoff.

User avatar
m^(2)
Posts: 890
Joined: Sat Mar 31, 2007 2:38 am
Location: Kce,PL
Contact:

Re: .NET Applications

#14 Post by m^(2) »

ohadsc wrote:
m^(2) wrote: if you can install .NET, you can install a copy of the app and don't need portability at all, except for cases when different copies would need synchronization
Not always, for example in the case of a domain (in a workplace, library, etc) where IT installed .NET on all computers. Also, "installing" a portable application is easier since it remembers all your preferences. And like you said, there is the matter of synchronization. Lastly, you could walk around with 2 versions, an unmanaged util that will work for sure, and a better managed util (where applicalbe) that will work some/most of the time. Not a perfect solution, but the best I can think of, at least until they invent portable .NET for windows...
I said 10 different machines, when all the software is the same, they are the same for me. :P
ohadsc wrote:
m^(2) wrote: I thought about a modal Click-Ok-To-Continue window with a huge red exclamation mark as the strongest assurance that user noticed the warning, yet people often click OK w/out reading. The only solution that works for all is to avoid problematic content.
You're right - there is a trade-off. I personally believe it's worth it but it's a matter of opinion (and hence this thread...)
OK.
ohadsc wrote:
m^(2) wrote: I never found a .NET app w/out a better unmanaged equivalent.
Obviously, you haven't been scheduling recordings of streaming media ;)
Yep, never. Though DShutdown+mplayer seems to be a perfect option. ;) It's just a thought, I didn't try it.

ohadsc
Posts: 10
Joined: Fri Apr 02, 2010 11:35 am

Re: .NET Applications

#15 Post by ohadsc »

M@tty wrote: I didn't mean it as an offence to anyone, the internet doesn't convey tone of voice very well. What I meant was, the .NET framework is so powerful (and does so much for you) that I feel like I'm cheating when I code with it, as the finished product would not be possible without so much hard work from Microsoft.
No offence taken :) It's just the Microsoft fanboy in me that had to clarify to all how great C# and the .NET are
M@tty wrote: Thanks. :) My desk is currently covered in wires connecting to one of these: http://www.cse-seprol.com/images/s500_controler.jpg
Haha, that looks like a scarier version of what we work with:
http://www.neutronet.com/prod_images/09 ... rt5110.jpg
M@tty wrote: Yep, never. Though DShutdown+mplayer seems to be a perfect option. It's just a thought, I didn't try it.
Don't get me started :lol: (I would gladly explain why StreamRecorder.NET is needed in its thread if you'd like)

Post Reply