I've been developing with MFC for a fair old while now, and I'm looking into c# - but I have a couple of absolute beginners questions before a think about my "beginners project":
1. Does c# / .net have anything like the doc/view architecture? (And if so, what's it called?)
2. Can anyone recommend any good books on moving from MFC to c#? I have a couple of c# text's, but I was hoping for something that might be able to help MFC coders with the migration to c#. Or would people say that this insn't required?
Michael P Butler wrote: It is my experience that C# is very primitive compared to MFC.
Would that be a recommendation for VC++.NET?
I'm still debating which one to learn - well, actually I want to learn both, but I want to start with whichever one is more in demand to try and make my skills as desirable to employers as possible, as soon as possible.
.NET for me is only for self-training at home. C++ is brute force.
Think redistribution : to launch your .NET app, users have to download between 20MB and 180MB of MS run-times. In addition, you don't control the redistribution, unlike the MFC dlls, which means users may update the .NET run-time without telling you, and may not be able to run your app any longer then (more than 100 behaviour updates between .NET 1.0 and .NET 1.1, almost none are backward compatible).
She's so dirty, she threw a boomerang and it wouldn't even come back.
Until .NET has more playground, apps developed by you will generally speaking not work on an end user machine, because of a wrong .NET run-time (huge redistribuables by the way, think about those connecting the net with dialup).
KaЯl wrote: So we have to trust MS about compatibility ?
It's obvious that the business model of MS is to promote a .NET certification. In other words, MS is more and more expecting us to go through their sort of exam before our app is said to be "compliant", or ".NET proofed" or whatever.
This is not really new stuff. We know for years there was the windows logo program, even if in practice almost no MS-partner company in the world can achieve it.
We are just at the premisses of that, but you've got the idea. You can figure it out by downloading FxCop (gotdotnet.com).
It's about figuring out why MS started all that hype around security last year. They wanted to tell everyone (make everyone blindly think), that new tools are more prone to enforce reliable security. They have said if users want more security, they'll have to go definitely the .NET way, which means upgrading their OSes. In turn, developers are going to be asked to develop only .NET apps (because MS claims this is better for security) which is not only a loss of freedom, but although a way to constraint developers to BUY all possible .NET related stuff, download, install, test, etc.
Which means this is the end of low-budget software development.
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