SecretSoftware wrote:What do you think is missing from 3.0 and should be in 4.0? What are your expectations for C# 4.0?
No more starting threads like this unless you give input of your own on your own question
Well there are some things and improvements I want to see.
1) Change the way loops like while are implemented so that the evaluated expression is always checked while in iteration
2) I want to do this :
s = new Socket (), rather than Socket s = new Socket (),
I know var kinda does this,but I want a variable to hold multiple types in the course of execution. so I can set s = null, and assign it to a new instance of another object
3) Make it easier to deploy applications than already is. This means that the installer will check itself if its the same since it was compiled (Self Signature verification). Puls improve ClickOnce perfomance and ease.
4) perhapse the most important feature: integrate obfuscation into the compiler, so when you release your application, you dont have to use a 3rd party tool to obfuscate your code. Even better, make reverse engineering a .NET application very hard (Perhapse
use technologies like that of AACS or others to make the .NET framework support encrypted assemblies, between VS and the runtime, so that all assemblies are encrypted and only MS has the encryption key that is guarded (or find some other way to prevent code
5) Add support for devices natively in the .NET framework classes. So you can tap your hardware and extract data from data buffers. Basically integrate .NET with Directx libraries, so you can use them natively in the .NET framework and leverage these right
there into your applications. There is a gab here between .NET and being able to read data from say Mics or Cameras or other devices. (make the assembly requirement easier )
6) Add support for multi-core processing, in a way that will get rid of the problems with multi-threading in the .Net framework. I mean the race conditions, the locks , and the mutexes problems. Make these problems disappear so we can debug our apps easily
and detect more cross thread problems easily.
7) Add support for AES-128 bit and improve the Random class to use cryptographically generated random numbers. Improve cryptography easiely. (Add generic certificate generator that assume the server is the CA easily (Crypto.GenerateCert() or something along
8) Add Memory space randomization. So that when your application starts its memory space fingerprint looks different than last time. Making it hard for exploit code to work in .NET framework applications (This should be supported by the runtime).
9) Make it easier to use IPv6 natively int he .NET framework for connected applications. (Set it and forget it approach).
10) Allow a way for Applications targetting vista to be able to use the Voice commands with in the application (more intimate interaction with a given .NET application).
11) Prevent Dll Injection into .NET applications by malicious software.
12) Applications should be able to do self diagnostics and also be able to check their integrity on their own. The CLR should refuse to run applications whose compile time hash is different than their pre-runtime hash, or even during runtime hash. Find a way
to make the application self-aware of its integrity as part of the services provided by the CLR. the Strongname while good, its still a mess because malicous hackers can sign the assembly themselves and the modify it.
13) I wish that the .NET framework and the Runtime in general would encrypt in memeory strings by default. No one should see whats in memory except the application itself (perhapse symmetric crypto between memory space and application?).
14) the compiler should be a smart compiler. Basically when you have repetitive code that is similar in manipulation of things, but is different in minor areas, that it groups the similar stuff together into new methods, and arrange for the flow to be correct
at the same time. This would result in small size product and efficent code.
15) Visual Studio should be better than what it is now. Code analysis tools should be integrated and improved upon in the IDE.
There are others but I will not bore you with them.