Most cost effective way to deploy iOS app with Xamarin with only a Mac? - ios

I have a strong background in .Net and some Python. After years of PC work, my primary (only) machine at home is a Mac.
I have an idea for an iOS (and Android) app that would be a total labor-of-love, there is basically no monetization possible with it, but I still want to do it. What is the most cost effective way to deploy an app, with Xamarin and only using a Mac?
I will need a database to power the app. I know that I can use MS Azure for a pretty low cost but I know that Xamarin licensing for the SQL Data library is a total budget killer. I know that I could expose web services, but that would require writing the web services with .NET and I want to do this project exclusively on a Mac.
So what are the database options? Can I hook Xamarin directly to MySQL? Can someone please provide sample code for connecting from Xamarin to MySQL? What are some of the better MySQL only providers? I wouldn't need a web host, just DB.
Are there any other potential costs/licenses that I'm overlooking?

You never want to expose your database directly to a mobile client. You always want to have some sort of service brokering your db requests to the outside world.
If your client is simple enough that it will fit under the app size limit, you can use Xamarin's free tier. Otherwise you can use the Indie tier. You should not need the business tier. If this is something that might be a workable open source project, I believe you might be able to ask Xamarin to donate a license.
You will also need an Apple developer license, $99/year, for deployment.
You can use MSSQL, Azure, MySQL, etc to power the server side db. You can write webservices with ASP.NET, PHP, Ruby, etc - there is no reason the server side has to be .NET unless that is what works best for you. You can run a VM on the Mac and run VS2013 Express for ASP.NET, or do it directly from the Mac with Xamarin Studio (not sure exactly what level of support there is for this under Mono, but it is doable). Most of the other options can be written natively in OS X.
Other than the Mac hardware, the only other absolute expense is $99 for the Apple Developer account.

For web services on a Mac with C#, look into v3 branch of ServiceStack. There is also ServiceStack.OrmLite which is a database client (MySQL, SQLite, SQL Server etc), it has a SQLite implementation which will run on the local machine (mobile) with Xamarin.iOS & Xamarin.Android.

Related

Native iOS Oracle Database Connection

I am currently developing a native iOS (from 8.0 in swift) application for a customer of my company. One of his requirements is that the mobile application have to connect directly to a remote oracle database (11g 2.0.3). Yes, I know this is a really really bad idea and we should not do that, but our customer explicitly wants this and doesn't want any additional infrastructure.
So please don't advise me to do this over an approriate web service.
I already seeked through the Internet several times to find a suitable solution. There appears to be a ODBC driver ODBCRouter, but as far as I could see, this driver is really really really outdated and won't be fit in my project. Even the native web services introduced in oracle 11g do not appear to be a viable solution for our customer.
We also have experience in Xamarin but even there seems to be no solution for my problem. I tried to install the Official Oracle ODP.NET Managed Driver NuGet package, but that doesn't work because of the iOS target.
I would be most pleased if anyone has an idea and can help me :)

Cost of mobile application development using Jdeveloper MAF

I don't know if this is the right forum to ask this question. As JDeveloper / MAF is freely downloadable, can apps developed on this platforms be freely placed and priced at the Apple or Google market place? I am asking about stand-alone-device-db apps and not the apps that will require backend databases, which has a price.
Nevertheless, if the backend database is like free,opensource MySql coupled with freely available webservers like GlassFish or Apache, will it cost anything for database apps developed and deployed in these platforms?
Pardon me if I am missing anything.
Thanks
Development is indeed free but when releasing it isn't.
Here is an OTN topic about your question, it also includes a link to the pricing list: https://community.oracle.com/thread/3595029?start=0&tstart=0

Must I consider the implications of Azure before developing for it?

My intention is to develop and MVC app driven by WCF services.
I will then like to deploy these to Azure.
Can I go about developing my app and services without any consideration to the fact they will be hosted in Azure earlier on in the lifecycle? Or must I structure it differently?
EDIT: More specifically - am I right in saying I can develop this application just as I would prior to deciding it would be hosted in Auzre?
Based on my research and understanding, it is a better practice to consider your future implementation to azure prior to any development, however even if you later decide to move an existing application to azure, you may need to perform some modifications to your code.
please bear in mind that, Microsoft is currently offering websites in azure that can host you asp application, you may want to read more about that.
here is some links that may help you.
http://www.windowsazure.com/en-us/home/features/web-sites/
http://www.windowsazure.com/en-us/manage/services/web-sites/
The advert that appears on this page as I answer this question says "Move apps to the cloud without rewriting them".
The official position from Microsoft (who pays for the ads), is that you can migrate to Azure late in the development cycle.
The reality is:
You lose a lot of the benefits of could computing if you don't architect specifically for the cloud. This applies to any cloud platform, not just Azure.
There are likely some hidden 'gotchas' that will trip you up if you develop for normal Windows and then try and move it up to Azure. Just this morning I had a developer that was frustrated by errors on SQL Azure that didn't occur on his dev machine. The approach to SQL Azure is different to standard SQL (feature differences, throttling, etc).
There are two 'it depends' that are related:
Are you intending to use cloud services or Azure websites? Azure websites are easier to migrate because they are closer to a traditional web development approach.
Applications with lots of moving parts, or that are subject to high load, need special consideration (regardless of the target platform), so you will want to optimise for, and take advantage of, Azure specifics.
If you have a good reason not to develop specifically for Azure (such as your employers official position, platform portability, etc) then don't worry about Azure for now. If your long-term intention is to run your app on Windows Azure, then code for Azure up front — the effort to take it off Azure (lock-in) will form part of your decision later on.

Deployment of Microsoft stack apps without reinventing the wheel

We have the following three things we need to deploy to a Windows Server 2008 farm:
ASP.NET MVC 4 web applications (x3)
.NET Windows services (x2)
I have inherited the deploy process and would like to rewrite it.
Web Applications
When I am in Visual Studio 2012 I have a nice new publishing wizard for deploying web applications. Can this be used somehow? Or taken advantage of in anyway?
Windows Services
Windows Services are Windows Services, so deploying them to a Windows Server should be simple. Right?!
Then there is how to deal with the fact we are deploying to a farm of Windows Server 2008 machines, not just one.
Everyone I talk to seems to have to reinvent a new, custom and complex process that is difficult to maintain and not very malleable, often with custom XML files with all sorts of actions etc that are hand edited. Even psexec gets involved a lot - this smells wrong to me.
Given that at least for the service and the web applications we are doing nothing special whatsoever, what is the simplest way to have a nice, potentially VCS commitable publishing process.
Apologies if this is a ridiculous question, if so please help me understand why!
To be a question on here though, it needs to be answerable. So to summise: what is the easiest/an easy way to deploy web applications and windows services to a farm of Windows Server 2008 machines?
The modern way to do this would be to build your deployment on WinRS (remote power-shell) which uses WinRM for its communication and authentication. WinRM is a bit of a learning curve to configure if you want to step off the golden path though, as I've been finding recently :).
Almost all the configuration services you need (firewall=>netsh, Remote management=winrm, services=>sc, Windows features=>dism, Event Collection=>winecutil, gpupdate, etc) are available as command-line tools and often also directly supported in PowerShell, so you don't need to code anything to the APIs.

Is DataSnap an appropriate solution to bring the data and business logic of an existing Windows app to mobile/web clients?

I need to take a huge Delphi XE application (backed by proprietary SQL server NexusDB) and begin providing my clients the ability to access the system in new ways:
Thinner Windows client for slow/VPN connections
Mobile/Tablet
Web
DataSnap appropriate for this or is introducing a middle tier the wrong way about providing remote/mobile access? Other solutions/ideas welcome.
(I have XE2 Enterprise but am stuck on XE Enterprise for awhile.)
DataSnap is being aggressively positioned by Embarcadero as a Multi-platform connectivity solution, where servers are written in Delphi, and mobile connectors are available (in XE2 and later) for a variety of mobile device platforms. So the quick answer is yes, it is suitable in general.
Is it suitable for you? You haven't said much that would help me answer that question; You are willing to buy Enterprise or Architect SKUs of Delphi, so I would guess yes.
If it was me, I'd look for a solution that implements a pure simple REST architecture that is available to every system out there, mobile or otherwise, no matter what language or platform, but I haven't got a suggested alternative because it seems to me that SOAP is nearly dead and that there is no universal replacement technology out there that does everything that soap client/server systems do. I'd be tempted to consider "roll your own REST+json" or evaluate Remobject's product offerings too, and select a path that makes sense for you, from a business and technical point of view.
Datasnap is fine, but it's not the only option. It's probably the simplest and most easy to roll out option currently available, and the only one "out of box" ready to go in XE2 if you want apple, android, and a few others, right away.
That depends on your security needs, and the way you're providing data to clients. As I often pointed out, dbExpress-Datasnap has big security flaws (while the DCOM version is not well suited outside a LAN, and does not offer out of the box mobile devices support).
A web application would have less issues because the datasnap-web server connection would be probaby internal, it would be up to the web application to ensure data protection.

Resources