Tag Archive for c#

Xamarin Review

http://xamarin.comRecently, we at Fingertip Tech, INC have been doing a lot of work in Xamarin and Xamarin.Forms. All in all, things have been going fairly well and the tooling seems to get better everyday! Still, nothing is perfect and at the end of the day working with the Xamarin toolchain is a decsion that has to made on a per project basis and will greatly depend on the overall budget for the project and its maintenance. We are still evaluating Xamarin.Forms but the following are my findings and observations of working with Xamarin classic.

The Good: C# is an absolutely amazing language and every .Net developer ought to apologize to every Java for not spreading the word on just how phenominal the langauge really is. I know that will be a controlversial statment and the Java VS C# debate is a post for another day, but if you haven’t ever done any work in a modern version of C#, then I urge you to give it a shot and try to have an open mind.

Xamarin Studio is a pretty good IDE on Mac OS X and XCode developers will be familar with the IDE’s layout and overall setup – additionally, if you have ever used a modern version of MonoDevelop, you’ll be in pretty good shape. Additionally, the setup process on Mac OS X was pretty straightforward and I was impressed the Xamarin was able to tie into my iOS development tool-chain, pulling up my simulators and my code-signing credentials. On the iOS side, Xamarin does a great job of supporting storyboard and nib files for user-interface design and is no too shabby on the Android side also; however, Android UIs are still best done in the XML layout files directly.

Despite being in C# rather than Objective-C or Java, Xamarin is a faithful port of just about all of the native iOS and Android APIs. In fact, if you know how to do something with say UITableView in Objective-C, then you pretty much are good to go in Xamarin.

The Bad: Working in Xamarin Studio is great! Well, that’s as long as you are working on Mac OS X. The Windows version of Xamarin Studio is nowhere near as polished or as reliable as its Mac sister. For example, on my Windows 8.1 machine, there is an issue in Xamarin Studio that incorrectly highlights correct code as erroneous. Additionally, the intellisense and related features just aren’t as reliable on Windows. AlthoughIt is likely that a good number of developers using Xamarin on Windows would prefer to work in Visual Studio, there is little excuse for the way Xamarin Studio runs on that platform and frankly it makes it seem like Windows users who have not paid for access to the Visual Studio integration are not as much of a priority as those using Visual Studio or Mac.

The Ugly: Once upon a time, developers the world over were used to paying for by the seat licences for software development tools and even progreamming languages. Xamarin is trying pretty hard to bring that back but I’m not sure it works. Something about the per seat pricing model rubs me the wrong way. Additionally, up until just the other week, no form of mothly subscription billing was available and even to date there is no monthly pricing for anything beyond the ‘Indie’ plan. As the owner of a small but still bigger than five person software development company, I find their drawing the line between ‘Indie’ and ‘Business’ at the seemingly arbitrary number of five just a bit too well… arbitrary for my tastes. Additionally, there are plenty of companies like mine that would probably prefer to not be billed seperately for iOS and Android. All of this creates a sort of complexity that just doesn’t jive with what is otherwise a clean and very customer friendly offering.

Overall, I am pretty happy with how well Xamarin is working out for us and plant to continue working in it. Follow me on Twitter or Google+. Interested in getting your app project off the ground? Then, contact Fingertip Tech, INC and forget to follow us on Twitter!

ASP.Net — Good, Just Not for Me

If you’ve been listening to recent Coder Radio episodes or following this blog, then you probably know that I have been working on a side project (that I am no longer pursuing due to intense competition in the space and a general lack of interest on my part) in Microsoft’s ASP.NET MVC 4 and Windows Azure.  Overall, I really liked the developement experience of the stack and Visual Studio is still the best IDE (if you like that sort of thing) on the market today and of course C# was a delight to work in. Unfortunately, the downsides are just not acceptable for the type of projects I work on or first party products I plan to develop; those downsides being the cost of Azure, the cost of SQL Server, and Windows Server.

Azure is awesome. In a lot of ways it is very similar to Heroku: it has easy to configure Git deployment and is easy to configure and deploy. Unfortunately, it also shares Heroku’s penchant for premium pricing. To be clear, both services are great for prototyping or event the 1.0 versions of a project, but  if your project hits any sort of scale, you are going to be looking at some pretty hefty hosting costs.

SQL Server is interesting. I don’t know too much about it as it compares to databases I use on a regular basis (ie PostgreSQL). When I started looking into it, I was quickly derailed by cost. That’s right SQL server is one of those things that if you have to ask how much it cost you can’t afford it and that certainly turned out to be true for me. Though Azure does support MySQL, the default (and presumably prefered) implementation of MVC 4 is best used with SQL Server. Due to the aforementioned Azure hosting costs, I would likely want to migrate any successful projects onto dedicated servers or VPSs and that would mean having to pay for SQL Server licensing fees.

Speaking of licensing fees, let’s not forget Windows Server. To be fair, the cost of Windows Server is a lot less than SQL Server and seems to rolled into a lot of monthly VPS plans. Still, I really don’t like a lot of the decisions Windows Server makes, though Microsoft has made some effort to address this issues in Windows Server 2012. In a lot of ways I just prefer working with a Linux (Ubuntu if at all possible)  server over Windows.

The natural question you may have is: “since you are scrubbing the project and don’t plan to use anything you may have learned about the stack, didn’t you just waste a lot of time?” I don’t think so. For one, I always feel that it is a good idea to broaden your horizons technically. More importantly, it was good to see how things are done in the more Windows centric world and it was a joy to interact with the .Net community. Comments? Questions? Share them with me on Google+ or Twitter. This post was made possible by Code Journal and Fingertip Tech, INC. If you are Github user please check out Code Journal and if you are interested in having an Android, iOS, or web app developed please contact me.

A Look at Azure and MVC 4

ASP.Net MVC 4 is amazing. There I said it! I know I’m supposed to be the ‘Mac guy’ or ‘Linux guy’ or possibly even the ‘Ruby / Rails guy’ depending on where you know me from but the truth is that I love all technology and often find myself trying out new platforms or playing with some shiny tech toy. For the last month or so ASP.Net MVC 4 has been that new toy along with Windows Azure.

The Good

Azure provides easy to use web-based GUI’s for basically everything you’d want to do to configure, administer, and monitor your app. If you’re not a fan of GUI’s, there are also commandline tools for Windows and Mac.

For you Heroku lovers out there, the MVC / Azure development and deployment experience is very similar to the Rails / Heroku experience. In fact, Microsoft has gone so far as to build in Git deployment to Azure and has even provided an easy to use web-based GUI tool for setting it up. Overall, I was really impressed with what I saw.

Visual Studio still rocks. I’ve been working with Visual Studio 2012 and have been loving the code generation and debugging tools it includes. It simply is one of the most advanced IDE’s on the market today.

Microsoft has come along way since the days of IE 6. .Net’s Razor View Engine provides full support for HTML5. Not only was I happy to see this, but I was also a little surprised to see how far they’ve come in the area of web standards.

The Bad

MVC 4 has one achilles heel: price. Azure itself, like Heroku is expensive, but with Heroku you can, though with a bit of effort, migrate to a generic Linux server. The issue with Azure is that you’d have to pay for a Windows server license and other licensing fees if and when you want to migrate off of Azure. However, the costs can really start to pile on when you factor in Microsoft SQL Server.

The Ugly

There’s not much ugly in the Microsoft web development stack these days.

The Bottom Line

Overall I am very impressed with what I saw and will be keeping a close eye on ASP.Net and Azure. If you’ve been a Rails or Django developer and have never taken a look at the Microsoft stack, Azure and MVC 4 are definitely the place to start.