This statement is only correct if you are writing an app to be distributed to end-users online. If you are shipping by CD, or if you are mainly supplying software to corporations, or are an IT division developing in-house software, this is not a concern. And I think those areas are the ones that MS has been targetting for the first wave up .NET users.
It'll be years, I think, before the .NET framework is widely distrubuted enough among the average computer user for it to make sense to develop end-user/consumer software with .NET. It's big impact in the next few years (if it has one) will be on the server side and in corporate backends.
--> In regards to framework versions and such (sorry, I hit the submit button instead of the reply button )
DotNet 1.1 can be installed on the same computer as DotNet 1.0. An app written for 1.0 will run with the 1.0 framework, and an app written for 1.1 will run under the 1.1 framework.
If only the 1.1 framework is installed, the 1.0 app will try to run under the 1.1 framework. And most likely it will fail miserably, because of the imcompatibilities you point out. However, I don't see how this is any different than other upgrade scenarios, unless upgrades are never anything more than bugfixes that don't change interfaces.
If only the 1.0 framework is installed, the 1.0 app will run fine, and the 1.1 app will refuse to run.
The big problem I see with going from 1.0 to 1.1 is not getting built applications to run, it's rewriting your 1.0 apps when it turns out they are using behavior that has been altered in 1.1. This scenario worries me, of course. Our shop isn't looking at using 1.1 in the next year, as far as I know.
"Have you gone mad Frink? Put down that science pole!"
Russell Morris wrote: If only the 1.0 framework is installed, the 1.0 app will run fine, and the 1.1 app will refuse to run.
You can get a 1.1 app to run on a 1.0 only machine by creating a .config file for the application and have the runtime redirect assembly bindings.
TSWizard_v1.1.zip (28.8 Kb) here is an assembly and a demo application, compiled under .NET 1.1 (you can verify this by running ildasm on the files and seeing that it binds to version 1.0.5500 of the BCL). In the .config file are the appropriate items needed to make it run under v1.0 of the framework.
You can create this .config file by hand *or* take the easy (and less error prone) way out and let the ".NET Framework Configuration" utility do all the work.
You can't really say this technical thing to an end-user, can you ?
That's exactly what happens in practice. You double-click on the app, and it fails with a stupid messagebox. No way to fix it.
Now if your words are for developers, you simply expect them to have BOTH run-times installed, tested, and upgrading problems fixed before starting the distribution. This is not exactly what you read in MS marketing brochures when they claim great productivity gains...
That's not exactly what I thought about next gen dev platform. I thought the existing CLR would try to figure out what was missing, start a wizard, and download missing stuff. Automatically, no need of any additional line of code here, since at compile-time you have already told the compiler which versions of assemblies to compile and link against.
In addition, the fact that new regular (one per quarter) .NET run-time comes with new features makes you, the developer, feel like using them. But, and here is the trouble, you cannot really expect the end user to have the same run-time than you, otherwise it requires not only the end user to more or less be an MSDN addict and start downloading all possible updates whenever possible, but the user may be asked to do it without any visible value for it. When you see the sizes of redistribuables (main, and additional), that's really an issue.
Final point, since the .NET run-time is often updated (MS site promotes always the latest, and removes access to older stuff, an amazing habit you don't mention) it's not a point to have the .NET run-time available by default on coming OSes.
now , i'm thinking about developing a simple anti-virus program as a graduation project.So anyone know where to find articles that would help me .. about Virtual computers for example.
all i know about virtual computer is that i isolate a part of the memory & create a virtual computer & test the file on it .. if it destroyed the computer ,then it's a virus.
aslo what i should read about or know to such idea ?
He could use something like VMWare. I use it all the time to test installations and to keep fresh demos of software I have developed (so it does not get corrupted by other software). Of course, in order to run a virtual computer, you have to set aside enough RAM to run the computer, and startup takes a while.
Just curious...why write a virus checker like this? Many viruses don't go off until a certain date, so they would not affect the virtual machine in any way until the correct date. Others only corrupt machines randomly. Still others don't corrupt the machine, but use the machine as a launching point in order to spread. With a virtual machine, you would have just let this virus onto your network.
This reminds of of Turing Machine theory and complexity theory. It is provable that no program running in finite time can determine if another, arbitrary program will stop executing. In other words, it is awfully difficult to construct an algorithm that can detect a virus automatically.
Does anybody know if it is possible to obtain the source code of the Microsoft TreeView control?
If this is not possible, is it possible to find or purchase the source code of a third party TreeView control?
The Windows Forms Namepsace isn't implemented in the SSCLI/Rotor.
Norm Almond: I seen some GUI's in my life but WTF is this mess Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children Leppie:My sister is 25
-Norm on the MailMagic GUI
Is there a way to write a program that would connect to Hotmail, so that it could get/send messages without using the web browser - I mean a stand alone mail client.
Why do I want to do this? I want to try sending messages, that are automatically encrypted, compressed or in some way proccessed before retrieving or sending and I do not have a normal POP3 mail account.
Hello, It's possile to implement shared memory in C# without resorting to P/Invoke or IJW (Win32 api) ?
Cheers,Joao Vaz And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
I don't think that there's a high level .NET API for this. If not using P/Invoke is a requirement, you can acomplish this by using a ServicedComponent that's called by the two applications needing to share the memory, but this is ugly. But even then, there would be IPC, not exactly memory sharing.