Hi Tim,
 
I've found much of the same thing in my playing around with Mono for Android. 
I've mostly adopted the Java approach for client applications on the Android 
platform. Web/Restful Services are implemented in .NET/WCF/C#. Although there 
are different stacks available, I've adopted Android/MOTODEV Studio -> Restlet 
-> Jackson for accessing and serializing/deserializing to/from POJO (plain old 
Java objects).
 
Regarding differences between Eclipse and Visual Studio, I've found the 
following:
 
1) Eclipse offers better refactoring capabilities. Visual Studio offers the 
very basics.
2) Intellisense/Code Completion is much better in Visual Studio
3) Code formatting is much better in Visual Studio. Eclipse provides more 
options, but there are some scenarios where the options don't allow what I'd 
like to do. This is especially so with XML formatting. Visual Studio just works.
4) Device management is much better in the Android/MOTODEV Studio stack. You 
have options like starting and stopping devices/emulators, take screen shots, 
change startup options, etc., which make for a more pleasant experience.
5) When porting applications to Mono for Android, I've found some Java code 
constructs that simply do not have equivalents in C# like anonymous interface 
implementations. You can get the job done otherwise, but in more code is 
required. Also, you'll find some Android platform items not implemented at all. 
In cases like this, it's not just a simple port, you have to find another way 
to do it. It's not that it cannot be done. It just require more work.
 
Best regards,
 
Dan
 
From: Tim Kelly <tim.ke...@designerware.com>
To: Discussions related to Mono for Android <monodroid@lists.ximian.com>
Sent: Thursday, August 4, 2011 9:12 AM
Subject: [mono-android] Java -v- C# mondroid


 
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
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

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

Reply via email to