I recently made a program in Windows Forms using Visual Studio but my friends asked me to make an app for it. I then noticed that Visual Studio has made it possible to make apps directly in C#. But when I opened a new project it was different from what I'm used to (obviously).
What I'm looking for is an easy way to convert my old windows forms code into the Android format but since I'm generally new to programming I don't know how myself. Do any of you have any tips or good tutorials that can help me? I have been googling around but didn't find anything that helped me.
You can't automatically. With Xamarin you can write your app in c# but you must rewrite a lot code, specially ui interface. Maybe you can reuse some functions and logic
I honestly don't think it is possible.
Windows forms is Windows Forms and Android is Android, these are two separate things that could be joined using Mono (Xamarin) for example.
The code will not transform on it's own, and magically follow Android logic. To create Android apps, you must learn Android.
Related
I have a hobby project that I wrote in C#. Library is for geomatics calculations, it has over 4000 lines of code and I have spent years developing it. Recently I completed GUI using Windows Forms and shared it for free. I got good feedback and now I want to make it cross platform.
Problem is that after days of searching the Internet I found nothing. All links are outdated. I would prefer something like JavaFX, where I could possibly create one GUI for desktop and mobile without much hassle with compiling.
GTK# is stuck (no mobile and no integration for newer versions with Xamarin studio)
QtSharp is in Alpha stage
Eto.Forms for mobile is still under development
Are there any free working alternatives with good tutorials/documentation in late 2016? Or do I have to rewrite my libraries in Java and create GUI in JavaFX?
At the moment there isn't a .Net framework that support all platform. The solution that covers most platform is Xamarin (right now support Android, iOS and MS Universal App). As this post suggest probably in the near future there will a Xamarin version also for Linux systems.
But there is an alternative: duocode. Basically it's a tool that convert c# code into javascript and once is transformed you can use the javascript code to implement a mobile interface using a cross platform framework like cordova. You will have two different application but with the same code base.
Sorry for may be stupid question, I’m novice and never had experience with compiled languages.
I have library for iOS(VideoCore) and want to start to write mobile application in C# and use Xamarin for it, but will this imported library work on Windows Phone or in Android version of my mobile application, or I need to find alternative library in C#?
VideoCore is an iOS-only framework, so you'll need to find alternatives for Android and Windows Phone.
You don't say what you're wanting to use VideoCore for, so it's hard to suggest alternatives. For video processing on Android, have a look at OpenCV.
Can somebody point me to some good Monogame walkthroughs or tutorials?
The reason I am asking this question is because when I try to create a new project in VS2012, I get the following options
But all the tutorials or walkthroughs (like this one) have the following options and develop using xaml -
Now, I guess this is because I am using Windows 7. So can somebody give me tutorials that are actually targeted to my case.
NOTE: I am trying to develop simple and normal games for Windows 7, nothing fancy like XBox, Windows 8 or Android. Where can I find appropriate getting started walkthroughs for my situation?
There's a few MonoGame tutorials listed on the forums here:
https://monogame.codeplex.com/discussions/439595
And a related post about ideas for new MonoGame tutorials here:
https://monogame.codeplex.com/discussions/439728
As previously mentioned, the MonoGame API is syntactically compatible with XNA so most XNA tutorials will also be helpful.
There is some trickiness around dealing with content, the simplest method in my opinion is to just add it to the Content folder, set it to Content / Copy if newer in the properties window and refer to it with the file extension in code (unless it's an XNB file).
MonoGame is a great project and I highly recommend it if you want to make games for many platforms, something you may want to do sooner or later. However, it still has a few missing features compared to XNA so life may be easier in the short term, while you're learning if you stick with XNA.
Last point, your nearly there anyway, based on your first screenshot I would choose the MonoGame Windows OpenGL Project if you want to target windows 7. Learn how to render your first sprite and you may decide that proceeding with MonoGame is not so bad after all.
Most MonoGame tutorials will deal with Windows 8 or non-windows. This is because MonoGame was created as an alternative to XNA for easy porting from XNA-supported platforms (such as windows 7) to non-XNA supported platforms (such as a Windows Store App).
Note that you can still use XNA in Windows 8, but you'd be creating a desktop app, not a Windows Store App.
A great resource of example is the multi-platform sample project which contains several examples made to work on all platforms
https://github.com/Mono-Game/MonoGame.Samples
The platformer sample is on all platforms and the rest are in progress, but all show a great way to setup your project ready to tackle all the platforms out there!
I've recently chosen to learn C# and develop mobile apps using C# on Xamarin. Particularly for Windows Phone and Android development. I know that Windows Phone app development is mostly C#, and that Xamarin can compile native code for Android, but how does it compare to native development in Java? Will I be able to use EVERY or at least most (like 90%+) of the Android SDK and extensions using Xamarin?
The main thing which I think there is to consider is your preferred programming language - which in your case is C# - and using that. The only thing that is of concern to me when building an app in C# as oppose to Java is their is not as many 3rd party references to use as there is with Java. You will find yourself downloading example files and reverse engineering them in order to learn how to do new features, you will have to search intellisence far more to find what something is using if you can only find a Java based example of something. One thing which you will find though is that it usually can just be the same method as what is in Java but the first letter being capitalized. LINQ is a major benefit I find in data manipulation which is not available in Java.
Good luck with whatever you choose, James
I did not do any stats or study of Xamarin C# coverage of Android Java API, but in my work, everything that I needed when porting code from Java to C# was there. Also, Xamarin says that for new Android SDK releases they usually have C# counterparts released within 24 hours. And, as #dotToString remarked, you can add Java jar libraries to Xamarin C# project and make calls to them if necessary.
Performance is another matter - I don't believe it runs natively on Android. Rather, Mono runtime is somehow interpreting the byte code. I did some comparison of Java vs. Xamarin C# code performance on real life code, see more at:
Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?
Greg
you can use all of the android functionality and java library interop. also, you get the advantage of non windows specific .net including linq.
Basically, I want to design a strategy game, where most of the game will be spent in menu areas and making "decisions" (like a Tycoon style game), however, there will still be some graphics, and I would prefer 3D, but if not possible, can resort to 2D. The graphics aren't user controlled, but the moving objects will be the result of the "decisions" the players make.
I really just want to write it once, and have it run on the following Platforms:
Windows Desktop
iOS (iPhone, iPod, iPad)
Android Phones (not strictly required)
(any other platforms would just be a bonus, but at the absolute minimum, all i really want is Windows Desktop and iOS [iPhone, iPod, iPad]).
Now, I don't want to learn objective-c or any other languages which i may have no use for in the future, I really just want to be able to program in Visual Studio (VB.Net or C#, since I can convert from vb.net to c# I will just be writing it in vb.net).
Is it possible to write in vb.net/c# and deploy to all these platforms? I heard of MonoTouch, so i can convert from vb to c# but is this seemless or difficult to do? Do I have to learn and write in another language in order to make tweaks to make it work on the iPhone or Android? So, with MonoTouch, can I still use XNA or is there a different engine that I need to learn/use with Visual Studio?
Alternatively, if I cannot do this all in VB.NET or Visual Studio, what programming language and/or graphics engine should I learn in order to be able to write once and deploy everywhere that is relevant? (So, not fussed about Linux, Mac's or other less used OS's).
Right now, I haven't learnt XNA but am wondering if I should or need to, or if i should learn another engine & language. Basically, I don't really know what I need to learn/know in order to be able to write once and deploy on Windows Desktop, iOS (iDevice's) and maybe Android. So, my question really is, what do I need to learn in terms of both the programming language and game/graphics engine. Right now I know VB.NET and would prefer to use what I know, but if not possible, then am prepared to learn another language & engine combination to be able to achieve what I want, if this is what I need to do, I would like to know what language & engine I need to learn.
A good option for this is Unity3D. It allows you to develop a game, and from a single source, publish to PC, Mac, iOS, Android, and other platforms.
It does support C# development (which was one option you listed), though it typically is handled via their own editor instead of within Visual Studio. That being said, they do support Visual Studio as the code editor for projects.
I never tried it out (but I tried MonoTouch - and it worked like a charm), but MonoGame could be the solution for you.
It's C# with XNA for deploying everywhere. For MonoTouch there was a rather hacky way to work with VisualStudio - but for my part it was a good way to work with MonoDevelop (a really good OpenSource-IDE btw.).
C# was invented by Microsoft for use on their products and XNA and Visual Studios are again microsoft development tools, if you're looking to place this across several platforms it might be less headache to consider Java or C++. also as said above, go look for this info it is more then readily available after some 5 minutes of search