Let me start by saying that .NET is a very good development environment and believe it 
is the language of the future.  I have been porting a product from VC 6.0 c++ to .NET 
C# for about 1 year.  I have ported tens of thousands of lines of c++.  I have TRIED 
to code 100% managed code so that our product can run in the various security modes 
(Internet,Intranet,My computer,etc...) .  I have come up with a list of Inadequacies 
that have prevented me from my goal of 100% managed secure code.  The reason I feel 
100% managed code is important is that it provides the end user with the security that 
is required in today's networks, and without security our .NET application won't fly 
in the market place.  The Inadequacies are few and I hope Microsoft can address them 
in the next release (right).  Here they are:

1. Win Forms Keyboard events do not include the scan code.  I don't know why Microsoft 
did not include the key scan code in the KeyUp and KeyDown events since they are in 
the win32 WM_KEYDOWN and WM_KEYUP messages.  Our application has a sophisticated 
keyboard mapper and requires the scan code.  I can override the WndProc and get the 
scan code, but this prevents the application from running in other than the MyComputer 
security zone properly since security prohibits overriding the WndProc.

2. Win Forms has no way to get the state of the NUM LOCK, CAPS LOCK, and SCROLL LOCK 
keyboard states.  It is true, I can PInvoke the win32 api to get this, but this 
violates the security laws for everything except the My Computer security zone.

3. There is no c# Win Forms call to sound the alarm or beeper.  i.e. MessageBeep(0) It 
is true, I can PInvoke the win32 api to get this, but this violates the security laws 
for everything except the My Computer security zone.

That's all I have !  It is not much considering the amount of c++ code I have ported ! 
 If anyone can tell me how to solve these issues in managed code that will run in the 
Internet security zone I would be a very very happy camper !

jeff roberts

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to