I am interesting in: what is the best way to write applications (for example games or business apps) for so different platforms like Android and Phone 7 with minimal changes in source code, logic and other developing artefacts? Or it is impossible and i must write my application two times from the "ground" for each of devices? Please tell me about your experience?
Thank you for any advice!
If it's possible for your app, create it as a web application, perhaps using some mobile web app framework.
Unfortunately, you have to write your app twice in this case. I wouldn't recommend using mono for performance reasons. I also found it quite unreliable, tho it may work just ok for your apps.
Windows Phone 7 requires you to develop in C#. However, you can use Mono on both iPhone and Android. This allows you to reuse your business logic. Have a look at MonoTouch and MonoDroid. The MMI (Man-Machine Interface) needs to be done differently on each platform.
Good luck!
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.
We have existing Windows Store application which is developed using C# and XAML. We want to port the same to Windows 8 Mobile application. Is there any Guidelines available for this ?
Well at first I would start figuring out the differences
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj681690%28v=vs.105%29.aspx
http://blog.markedup.com/2013/07/winrt-windows-phone-8-code-sharing-pitfalls/
When I ported two of my (smaller) apps, I put as much in a PCL (portable class library) as I could. All the stuff that remained in the project itself needed to be rewritten. If you have well-maintainable code, there should be only UI (what you have to adapt anyway) and very few platform specific code (like accessing filesystem, camera or whatever) left. This is the part you must redevelop.
Dnt know how you have made these applications well If you have followed MVVM pattern then it is very easy to port windows and windows phone apps from one to other. You just need to take care of new XAML UIs every thing except some platform specific liberalizes will work. While making any of windows store and windows phone application you should use the liberaries that both platforms can consume. For example you can use LEX.db for the database.
here are very good explanations for it.
sharing code between windows phone and windows 8 app -1
sharing code between windows phone and windows 8 app -2
hope this will help
The answers given so far are quite good. One thing to note is that Windows Phone 8.1 is about to be released, which will share many of the WinRT libraries. This will mean that in a few months (as early as May), the shared libraries between the two platforms will greatly increase. You can download the leaked SDK to see what some of the changes will be.
Not that you should wait until then, and creating a PCL is definitely going to help you (especially if you want to later move to iOS, Android as well). It's just something to keep in mind.
I'm developing a c# touch application for windows 8, desktop mode, and i'm unable to find the best approach to do it. My question is: Should I use the existent Windows 7 Touch API c# or there is a new multitouch c# API that can be used to develop windows 8 desktops apps?
I know that windows 8 have legacy support for the win7 touch api, just need some insight and feedback if still is the best and only way to do it.
Does anyone had a previous experience with this problem?
Edited: I found this article: http://software.intel.com/en-us/articles/touch-gestures , basically the UIElement exposes methods that enable touch manipulation. Maybe this is the way to go. Any thoughts?
Thank you.
Windows 8 API has a new API based on WM_POINTER message see http://msdn.microsoft.com/en-us/library/hh454916(v=vs.85).aspx
Windows 7 API has some drawbacks, see http://the-witness.net/news/2012/10/wm_touch-is-totally-bananas/
WM_TOUCHxxx messages are not prone to this problem:
http://social.msdn.microsoft.com/Forums/en-US/ce6d630a-b345-46ac-88ef-773704986d62/touch-responsiveness-issue-how-to-resolve-jagged-nonsmooth-lines?forum=winappswithcsharp
Both the WM_TOUCHxxx and WM_POINTERxxx message will be prone this this problem:
https://web.archive.org/web/20150709083602/https://connect.microsoft.com/VisualStudio/feedback/details/903760/wpf-touch-services-are-badly-broken
If your c# desktop application is using WPF, your only viable option is to implement your own TOUCHDEVICE that fixes these underlying issues, since it appears Microsoft has decided WPF touch is no longer important.
It depends on what actually are your needs in your app.
If you only want new fast ways to rotate and zoom objects, maybe the WPF Manipulation API is all you need.
If, however, you need to handle multiple fingers on your GUI independently, or in a custom way, you simply handle the usual OnTouchDown, OnTouchMove, and other events.
Please note that, however, multi-touch is only available from inside a single window. In other words: you can multi-touch two objects on the same window, but you won't be able to multi-touch two objects that reside on different windows. If you want multi-touch, multi-window funcionality, you need to:
Use .NET 4.7
Change some configuration in your WPF app
I am a Dot net C# developer web and desktop apps, recently I have decided to begin development for windows phone 7
from the initial searching on the internet I found that I could user silver-light or XNA Framework for developing on WP7
I do not know any thing about both of them, so do I have to learn both of them to be able to develop WP7 APPS or just one is enough
also Which is better for development if one is enough!
Thanks in advance.
There is no good answer for this question if you do not describe application you want to develop. Both technologies are useful for different purposes. I had the same problem with my applications and those my conclusions:
Silverlight: better for business applications when you have small amount of animations (GPU usage)
XNA: high quality games and rich animations
Of course you can use also Silverlight for games and XNA for business application but generally I spot that it will not work well in most cases.
I first start to implement my application in Silverligh (app with lots of animations) but performance was poor so I decided to switch to XNA. If you want to learn basics of both read Charles Petzold Programming Windows Phone 7
Welcome to WP7 community.
Basically if you want to make event-driven applications, Silverlight is the answer and if your code depends on continuously running loop(like in a game) XNA is the thing.
As u have said dat u develop apps, Silverlight is the light for your question.
You can get lots of samples on net. The official site is http://www.create.msdn.com.
I think Silverlight is easier to start with.
to simplify, Silverlight is intended to be for apps, while XNA is intended to be for games.
I am a computer Engineering student and i want to choose my path as soon as possible. Will I be able to develop anything using C#?
Windows Phone 7's entire development platform is built on .NET and C#, so yes you can but that would be essentially your target mobile OS. Java will get you Android, and iPhone more or less requires Objective-C. Of course, you can get around each of these to some extent but by and large if you choose to learn C# you'll be targeting Windows Phone 7.
A lot of answers here indicate that c# is windows mobile / CE only; that is incorrect. In addition to targetting windows mobile and phone 7, c# can be uses to target iPhone via MonoTouch, and Android via MonoDroid. So that is the main contenders really.
If you want to become directly valuable to a company as a mobile developer, learn Java or Objective-C. C# is fine, but Android and iOS have a much bigger market share than Windows Mobile 7.
Becoming an expert in any of those languages will be a good long-term career move.
C# with mono/.net covers Windows Phone 7, Android and iphone.) Then after you get the hang of the language, platform etc learn java to add another skill to your arsenal.
No. You can use C# only for Windows Mobile. Java only works in the form of the Android API (which is somewhat similar to J2SE) on Android, and in the form of J2ME on Blackberry, Windows Mobile, and Android.
If you want to write mobile applications, you'll need to decide what platforms to write for, and learn the languages and APIs of each one of them. There are a few high-level languages that run on most mobile platforms (like Adobe AIR), but depending on your app, that's not an appropriate option.
Different mobile platforms require different languages, and future platforms will most likely require languages that don't even exist yet.
Your best bet is to pick one language / platform to focus on now, and expect to have to learn other languages / platforms throughout your career. Indeed, the chances are that you'll do other kinds of development, in addition to mobile computing development.
(For the record, I've been in IT for 30+ years, and so far I've used over 20 programming languages ... and encountered many others. You just deal with it.)
I think better u choose java.Because nowadays many phones support J2ME.J2ME does not need high cost configurations.J2ME is from the family of java.It have many java advantages.Many devices other than mobile such as home applainces,set-top boxes,etc support J2ME.So J2ME had a great future.So choose java/J2ME