Search code examples
c#.netweb-applicationsxamarinmobile-application

The right technologies for Web and mobile app development


I am planning to realize one of my ideas. Therefore I would like to develop a web application and seperate apps for iOS, Android and Windows Mobile. The application will write and read data in/from a DB. Because I´ll start completely from scratch I´m open minded to all technologies.

I´ve never developed a website with business logic before and haven´t done mobile app programming yet. I am familiar to c#, .NET, HTML, CSS, JS and I love to work with Visual Studio. As you may already assume, I want to share as much business code as possible. After doing some research I think using Xamarin to develop the mobile apps in c# would be a good idea. To share business code between web and mobile I thought about implementing a webservice which both clients could call.

Before I start with coding and may choose the wrong tools for the job I want to evaluate what would be the best way to do it. It´s no must to use the technologies I´m familiar to, I´m willing to learn any technology if this brings a real advantage. Anyway it would be great if I could use c# and the .net framework.

To eliminate any missunderstoodment, I´m not searching for one perfect fitting technology, but for a stack of technologies which fit together perfectly and do the job best.

Which technologies could you suggest me for the job?

This is my first post on stackoverflow. Please inform me if I´ve forgotten any important information.

Thank you in advance.


Solution

  • For me, if you normally use .NET for developping, using Xamarin can be a very good solution for the business logic, mostly if you use ASP.NET 5. You should do a very good job mixing, ASP & Javascript for the website and a lot of business logic & data should be done after this develpment for the mobile part.

    You juste have to create a good architecture to avoid specific code.

    For Xamarin the negative point can appears if you have a lot of specifics platforms features to implement. Let's explain this point : Xamarin offer us two way to develop Cross-Platform applications, you can share UI & Logic ( Xamarin Forms ) or you can only share the Logic ( Xamarin Core ).

    The advantage of forms is that you can easily code a cross plateforme UI with a simple design. The disadantage comes when you want to do a lot of specific coding for each platform or used native features ( for this case the best solution is to use Xamarin Core )

    And if you use the Xamarin Core, you should know IOS, Android & Windows Phone bases, because you use a "copy" of the native code for each platform.

    The last point that I can suggest for the mobile part is to use a JS Framework like Cordova, this can be a good solution to do the website and the mobile applications in a single time.

    This kind of platform have the same problem than Xamarin.Forms, if you want to do some specific coding for each platform or use native features from each platfom, you will need to install plugins & possibly create specific code.

    I hope my explanation can help you to choose the best way to develop your application