If anyone is interested, we're doing a proof of concept with C# and 
Java/Eclipse to determine if we can meet business requirements with VS/C#.  We 
prefer to use C# and take advantage of cross platform development.  Overall, 
both products offer the same capabilities and functionality so what I'll 
discuss here is what we've noticed and are from my notes for our design 
meeting.  I thought I'd share them here for others.

 

 

1.  Debugging an application in Java is faster and easier because breaks and 
restarts are noticeable quicker.  In VS/C#, it is almost impossible to use a 
breakpoint and step through the application because it too painfully slow.  
Java, stops and steps through like you'd expect.

 

2. Monitoring the event log in Eclipse is much better than VS/C#.  Eclipse does 
a continual logging so you can watch the logs as events appear.  In VS you have 
to refresh which is painfully slow.

 

3. Making a program auto start cannot be done in the emulator for C# however, 
in Java it works fine.  Supposedly, if you deploy the C# application to a real 
device this behavior is not seen.  I cannot confirm this and do not understand 
why the Java App works as expected and the C# doesn't.

 

4. Running the application takes 5 times longer using VS/C# than in 
Eclipse/Java.  If you press the run button in Eclipse the application starts 
relatively fast however on VS there's time for coffee.

 

5. Sizes of the programs are different.  The C# application is 732kb while the 
Java application is 104k.  Maybe this is why starting and building the 
application in the development environment is at least 5 times longer.

 

6.  There are less examples and discussions on MonoDroid versus Java.  So if  
you are looking to do something, you'll be hard pressed to find an example.  
However, in Java you'll find lots of examples and people claiming to be 
experts.  Worst case, you'll be left trying to figure out how to convert it to 
the C# world.

 

7.  We did find a few things in C# not working in MonoDroid that C# supports.  
For example C# supports network hardware calls.  In our business requirements 
we need to get the MAC Address and even though C# supports it, the MonoDroid 
has issues with certain calls, basically enumeration of generic interfaces is 
not supported.

 

8.  After an application service runs for a while it just stops running whereas 
Java it does not.  Not sure what or why this happens.  Not sure if this is an 
emulator problem, but it doesn't happen with Java in the emulator.

 

9.  MonoDroid requires two Mono libraries.  "Mono Android-8 Support"-12KB and 
"Mono Shared Runtime"-18MB get loaded and seem to be needed at least for 
development.  Not sure how this works for a production application.  But, the 
same application would be "huge" if these are also deployed with each 
application.  Not a real concern, but if the user deletes these libraries then 
the application breaks.  So, instead of having just 1 file to worry about, you 
now have framework files.

 

 

Overall, this is what I've got so far. We did not try to deploy anything so I 
cannot speak to deploying applications and what size applications would be or 
how they  perform.  In the emulator, the Java program starts faster, but they 
both respond the same once started.

 

The only concern we have so far are #3 and #8 which would be show stoppers for 
us.  The bigger files and libraries are a little concerning, but not that much. 
 

 

The huge positive is if this works we'd have an easy portable platform for 
Windows7 phones and iPad (which is a most have!).

 

Anyway, just my 2ยข

 

Tim

 

 

 

_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to