<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Dan Miser - iPhone</title>
    <link>http://www.distribucon.com/blog/</link>
    <description>Thoughts from Dan Miser</description>
    <language>en-us</language>
    <copyright>Dan Miser</copyright>
    <lastBuildDate>Sat, 27 Apr 2013 02:56:09 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>dmiser@distribucon.com</managingEditor>
    <webMaster>dmiser@distribucon.com</webMaster>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=ca31a20f-55d3-47d9-b0ca-3d3a68ec4321</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,ca31a20f-55d3-47d9-b0ca-3d3a68ec4321.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,ca31a20f-55d3-47d9-b0ca-3d3a68ec4321.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ca31a20f-55d3-47d9-b0ca-3d3a68ec4321</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I was using TestFlight for my existing
Xamarin MonoTouch project, but it didn't really do what I wanted. I wanted something
that would centralize crash reporting for me when something went wrong with my app
after it was downloaded from the App Store. TestFlight never really worked for that
(at least for me). It allowed me to send beta versions of my app, which was cool,
but I wanted a bit more. 
<p />
I downloaded the <a href="https://github.com/stampsy/hockeyapp-monotouch">binary version
of HockeyApp</a> and also set up an account and an app on <a href="http://www.hockeyapp.net">hockeyapp.net</a>.
I got it working by: 
<ol><li>
Add the reference to the pre-compiled HockeyApp.dll 
</li><li>
Place the bundle in the root of my project directory (a bundle is really a directory
of files). The instructions on that site no longer work to just Include in Project,
so I did an "Add Files from Folder" option 
</li><li>
I was sure to add the <a href="http://stackoverflow.com/a/14499336/458193">code to
make things crash proof</a></li><li>
I was getting a build error when compiling to device (error MT5202: Native linking
failed. Please review the build log. Which was really due to Undefined symbols for
architecture armv7: "_CTFontCreateCopyWithAttributes"). I fixed that by adding the
following into my Additional mtouch arguments: -gcc_flags "-framework CoreGraphics
-framework CoreText -framework QuartzCore" 
</li></ol><p />
After all of that, I was able to get things compiled. I then followed the deployment
suggestions from the readme.md page on the github project. 
<p />
I was able to upload the dSYM.zip and ipa files, and get the email invite and tried
to download the app. I initially received an "Unable to install the app at this time"
error message. That led me to believe the device wasn't imported, so I tried to import
using the hockey app bookmarklet. It brought me a list of existing UDIDs back to the
hockey app site, but the import did not save those devices. I need to drill down on
this some more to get a solid list of steps needed to release both beta and app store
versions. 
<p />
I'd also like to be able to have logging data stream to the hockeyapp server and correlated
to a specific device. And I'm not 100% certain I've done things properly, but this
was a good cookbook on what I did to get things at least uploaded to the hockeyapp
server. If I can get this to work, it's well worth the $10. per month.<img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=ca31a20f-55d3-47d9-b0ca-3d3a68ec4321" /></body>
      <title>HockeyApp with Xamarin Studio</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,ca31a20f-55d3-47d9-b0ca-3d3a68ec4321.aspx</guid>
      <link>http://www.distribucon.com/blog/HockeyAppWithXamarinStudio.aspx</link>
      <pubDate>Sat, 27 Apr 2013 02:56:09 GMT</pubDate>
      <description>I was using TestFlight for my existing Xamarin MonoTouch project, but it didn't really do what I wanted. I wanted something that would centralize crash reporting for me when something went wrong with my app after it was downloaded from the App Store. TestFlight never really worked for that (at least for me). It allowed me to send beta versions of my app, which was cool, but I wanted a bit more.
&lt;p /&gt;
I downloaded the &lt;a href="https://github.com/stampsy/hockeyapp-monotouch"&gt;binary version
of HockeyApp&lt;/a&gt; and also set up an account and an app on &lt;a href="http://www.hockeyapp.net"&gt;hockeyapp.net&lt;/a&gt;.
I got it working by: 
&lt;ol&gt;
&lt;li&gt;
Add the reference to the pre-compiled HockeyApp.dll 
&lt;li&gt;
Place the bundle in the root of my project directory (a bundle is really a directory
of files). The instructions on that site no longer work to just Include in Project,
so I did an "Add Files from Folder" option 
&lt;li&gt;
I was sure to add the &lt;a href="http://stackoverflow.com/a/14499336/458193"&gt;code to
make things crash proof&lt;/a&gt; 
&lt;li&gt;
I was getting a build error when compiling to device (error MT5202: Native linking
failed. Please review the build log. Which was really due to Undefined symbols for
architecture armv7: "_CTFontCreateCopyWithAttributes"). I fixed that by adding the
following into my Additional mtouch arguments: -gcc_flags "-framework CoreGraphics
-framework CoreText -framework QuartzCore" 
&lt;/ol&gt;
&lt;p /&gt;
After all of that, I was able to get things compiled. I then followed the deployment
suggestions from the readme.md page on the github project. 
&lt;p /&gt;
I was able to upload the dSYM.zip and ipa files, and get the email invite and tried
to download the app. I initially received an "Unable to install the app at this time"
error message. That led me to believe the device wasn't imported, so I tried to import
using the hockey app bookmarklet. It brought me a list of existing UDIDs back to the
hockey app site, but the import did not save those devices. I need to drill down on
this some more to get a solid list of steps needed to release both beta and app store
versions. 
&lt;p /&gt;
I'd also like to be able to have logging data stream to the hockeyapp server and correlated
to a specific device. And I'm not 100% certain I've done things properly, but this
was a good cookbook on what I did to get things at least uploaded to the hockeyapp
server. If I can get this to work, it's well worth the $10. per month.&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=ca31a20f-55d3-47d9-b0ca-3d3a68ec4321" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,ca31a20f-55d3-47d9-b0ca-3d3a68ec4321.aspx</comments>
      <category>iPhone</category>
    </item>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=95b804aa-2db8-49ce-bf3c-958607e6daea</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,95b804aa-2db8-49ce-bf3c-958607e6daea.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,95b804aa-2db8-49ce-bf3c-958607e6daea.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=95b804aa-2db8-49ce-bf3c-958607e6daea</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">There is no way I can list everything I
learned with <a href="http://xamarin.com/monotouch">MonoTouch</a> over the last couple
of months. I'll summarize my experience by saying I'm a very happy customer. There
were bumps and bruises along the way, but between the mailing list and the support
crew at Xamarin, I heartily recommend investigating MonoTouch if you're a .NET developer
that wants to get to the iOS AppStore quickly. I had to take several detours along
the way (converted my existing app from Lightspeed to EF4 CodeFirst, converted to
use POCOs, had support obligations, and wrote a sync engine to communicate over <a href="http://www.servicestack.net">ServiceStack</a>,
but in the end, things lined up pretty well. 
<p />
Some of the highlights: 
<ul><li>
I had to write code to essentially mimic the context loading that EF would do for
you. This included fixing up object references as well as reading and writing from
the SQLite database. Not horribly difficult, but it was something I'd rather I didn't
have to do. 
</li><li>
I encountered a couple of problems executing various LINQ statements when running
on the device. A quick test case, and the devs at Xamarin had me with either workarounds
or fresh bits to solve my problems. 
</li><li>
Be sure to embrace threading when making web calls - especially on startup. You have
15 seconds to have your app launched on the device, or the device will think it is
hung and kill the app. 
</li><li>
Deploying to the app store has been written about extensively as a complex and intricate
process. It turns out, there's good reason for that. After I got through an error
due to linking my release build to ServiceStack.Text.dll, the resulting upload to
the app store was failing verification. For some reason, the application name of RouteBoostiPhone.app
was not being accepted. I changed the name to RouteBoost.app and it sailed right through.
I have no idea exactly why this was required, but there you have it. 
</li><li>
MonoTouch.Dialog is a very nice framework for building a line of business app. Be
sure to check it out. 
</li></ul><p />
When I look back on the road I travelled to get my app to the app store, I'm impressed
with how much of the business logic I was able to carry over. The time savings in
being able to bring my business logic across as POCOs that have been extensively tested
in production over many years was the real reason I went with MonoTouch to begin with.
I most definitely do not regret that decision. 
<p />
Note: I was not compensated or asked to write this post. I am just a happy paying
customer of a product that saved me time, and I wanted to share my experience.<img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=95b804aa-2db8-49ce-bf3c-958607e6daea" /></body>
      <title>MonoTouch</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,95b804aa-2db8-49ce-bf3c-958607e6daea.aspx</guid>
      <link>http://www.distribucon.com/blog/MonoTouch.aspx</link>
      <pubDate>Sat, 10 Mar 2012 01:48:03 GMT</pubDate>
      <description>There is no way I can list everything I learned with &lt;a href="http://xamarin.com/monotouch"&gt;MonoTouch&lt;/a&gt; over
the last couple of months. I'll summarize my experience by saying I'm a very happy
customer. There were bumps and bruises along the way, but between the mailing list
and the support crew at Xamarin, I heartily recommend investigating MonoTouch if you're
a .NET developer that wants to get to the iOS AppStore quickly. I had to take several
detours along the way (converted my existing app from Lightspeed to EF4 CodeFirst,
converted to use POCOs, had support obligations, and wrote a sync engine to communicate
over &lt;a href="http://www.servicestack.net"&gt;ServiceStack&lt;/a&gt;, but in the end, things
lined up pretty well. 
&lt;p /&gt;
Some of the highlights: 
&lt;ul&gt;
&lt;li&gt;
I had to write code to essentially mimic the context loading that EF would do for
you. This included fixing up object references as well as reading and writing from
the SQLite database. Not horribly difficult, but it was something I'd rather I didn't
have to do. 
&lt;li&gt;
I encountered a couple of problems executing various LINQ statements when running
on the device. A quick test case, and the devs at Xamarin had me with either workarounds
or fresh bits to solve my problems. 
&lt;li&gt;
Be sure to embrace threading when making web calls - especially on startup. You have
15 seconds to have your app launched on the device, or the device will think it is
hung and kill the app. 
&lt;li&gt;
Deploying to the app store has been written about extensively as a complex and intricate
process. It turns out, there's good reason for that. After I got through an error
due to linking my release build to ServiceStack.Text.dll, the resulting upload to
the app store was failing verification. For some reason, the application name of RouteBoostiPhone.app
was not being accepted. I changed the name to RouteBoost.app and it sailed right through.
I have no idea exactly why this was required, but there you have it. 
&lt;li&gt;
MonoTouch.Dialog is a very nice framework for building a line of business app. Be
sure to check it out. 
&lt;/ul&gt;
&lt;p /&gt;
When I look back on the road I travelled to get my app to the app store, I'm impressed
with how much of the business logic I was able to carry over. The time savings in
being able to bring my business logic across as POCOs that have been extensively tested
in production over many years was the real reason I went with MonoTouch to begin with.
I most definitely do not regret that decision. 
&lt;p /&gt;
Note: I was not compensated or asked to write this post. I am just a happy paying
customer of a product that saved me time, and I wanted to share my experience.&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=95b804aa-2db8-49ce-bf3c-958607e6daea" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,95b804aa-2db8-49ce-bf3c-958607e6daea.aspx</comments>
      <category>.NET</category>
      <category>iPhone</category>
    </item>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=7dbeee09-fbd0-4151-bad6-47e1b19d3993</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,7dbeee09-fbd0-4151-bad6-47e1b19d3993.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,7dbeee09-fbd0-4151-bad6-47e1b19d3993.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7dbeee09-fbd0-4151-bad6-47e1b19d3993</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">The iPhone app that I'm writing uses <a href="http://www.servicestack.net">ServiceStack</a> to
communicate with an existing ASP.NET MVC app that I've had in production for a long
time. The way I have things set up is that I'm doing my iPhone development on MonoTouch
on the Mac side, and I use VMWare Fusion to run Windows as a guest OS. This blog will
highlight a few of the tips that I found to be handy. 
<p /><ol><li>
Getting IIS Express to work from an external server (even the Mac OS host) is theoretically
possible. I found articles lying around the net saying it could work, but it never
worked for me. I ended up going back to Cassini (WebDev.WebServer40.exe) and using <a href="http://www.tcptrace.org">tcpTrace</a> to
listen externally on port 8080 and forwarding to my local port (e.g. 1234). 
</li><li>
In order to get VMWare Fusion using NAT to talk to my Windows OS on a consistent IP
address, I added this section at the bottom of /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf
(replacing the MAC address of the Macintosh and the IP address from the Windows machine) 
<p /><pre><code> host winguest { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 172.16.123.123;
} </code></pre></li><li>
In order to get external devices (e.g. my iPhone connected to the same wireless network)
to see in to the Windows OS, I set up port forwarding to route requests coming in
to the Mac on port 80 to point to port 8080 on the Windows machine. I did this by
modifying this section in /Library/Preferences/VMware Fusion/vmnet8/nat.conf: 
<p /><pre><code> [incomingtcp] 80 = 172.16.123.123:8080 </code></pre></li></ol><p />
After all of that, I can communicate from my iPhone through my Mac into the VMWare-hosted
Windows machine to get at the data.<img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=7dbeee09-fbd0-4151-bad6-47e1b19d3993" /></body>
      <title>VMWare Fusion Tips and Tricks</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,7dbeee09-fbd0-4151-bad6-47e1b19d3993.aspx</guid>
      <link>http://www.distribucon.com/blog/VMWareFusionTipsAndTricks.aspx</link>
      <pubDate>Wed, 29 Feb 2012 00:37:46 GMT</pubDate>
      <description>The iPhone app that I'm writing uses &lt;a href="http://www.servicestack.net"&gt;ServiceStack&lt;/a&gt; to
communicate with an existing ASP.NET MVC app that I've had in production for a long
time. The way I have things set up is that I'm doing my iPhone development on MonoTouch
on the Mac side, and I use VMWare Fusion to run Windows as a guest OS. This blog will
highlight a few of the tips that I found to be handy. 
&lt;p /&gt;
&lt;ol&gt;
&lt;li&gt;
Getting IIS Express to work from an external server (even the Mac OS host) is theoretically
possible. I found articles lying around the net saying it could work, but it never
worked for me. I ended up going back to Cassini (WebDev.WebServer40.exe) and using &lt;a href="http://www.tcptrace.org"&gt;tcpTrace&lt;/a&gt; to
listen externally on port 8080 and forwarding to my local port (e.g. 1234). 
&lt;li&gt;
In order to get VMWare Fusion using NAT to talk to my Windows OS on a consistent IP
address, I added this section at the bottom of /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf
(replacing the MAC address of the Macintosh and the IP address from the Windows machine) 
&lt;p /&gt;
&lt;pre&gt;&lt;code&gt; host winguest { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 172.16.123.123;
} &lt;/code&gt;&lt;/pre&gt;
&lt;li&gt;
In order to get external devices (e.g. my iPhone connected to the same wireless network)
to see in to the Windows OS, I set up port forwarding to route requests coming in
to the Mac on port 80 to point to port 8080 on the Windows machine. I did this by
modifying this section in /Library/Preferences/VMware Fusion/vmnet8/nat.conf: 
&lt;p /&gt;
&lt;pre&gt;&lt;code&gt; [incomingtcp] 80 = 172.16.123.123:8080 &lt;/code&gt;&lt;/pre&gt;
&lt;/ol&gt;
&lt;p /&gt;
After all of that, I can communicate from my iPhone through my Mac into the VMWare-hosted
Windows machine to get at the data.&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=7dbeee09-fbd0-4151-bad6-47e1b19d3993" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,7dbeee09-fbd0-4151-bad6-47e1b19d3993.aspx</comments>
      <category>iPhone</category>
      <category>Macintosh</category>
    </item>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=efa8fa30-6915-48d9-a02c-90a73404c211</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,efa8fa30-6915-48d9-a02c-90a73404c211.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,efa8fa30-6915-48d9-a02c-90a73404c211.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=efa8fa30-6915-48d9-a02c-90a73404c211</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I found the class ActionSheetDatePicker
from the book <a href="http://www.apress.com/9781430231745">Developing C# Apps for
iPhone and iPad using MonoTouch iOS Apps Development for .NET Developers</a>. It was
a very nice and clean implementation that would allow for having an ActionSheet pop
up with a UIDatePicker in an iOS application. 
<p />
It did lack 2 things, though:<br /><ol><li>
The ability to specify a starting default date in the UIDatePicker 
</li><li>
The ability to get cleanly launched from a UITextField component (i.e. effectively
replace the default keyboard of a text field with this date picker). The original
code would leave the default keyboard up when getting called from a UITextField component. 
</li></ol><p />
I fixed those things, and you can find the results in <a href="https://gist.github.com/gists/1657921">this
gist</a>.<img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=efa8fa30-6915-48d9-a02c-90a73404c211" /></body>
      <title>ActionSheetDatePicker enhancements</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,efa8fa30-6915-48d9-a02c-90a73404c211.aspx</guid>
      <link>http://www.distribucon.com/blog/ActionSheetDatePickerEnhancements.aspx</link>
      <pubDate>Sun, 22 Jan 2012 18:13:42 GMT</pubDate>
      <description>I found the class ActionSheetDatePicker from the book &lt;a href="http://www.apress.com/9781430231745"&gt;Developing
C# Apps for iPhone and iPad using MonoTouch iOS Apps Development for .NET Developers&lt;/a&gt;.
It was a very nice and clean implementation that would allow for having an ActionSheet
pop up with a UIDatePicker in an iOS application. 
&lt;p /&gt;
It did lack 2 things, though:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
The ability to specify a starting default date in the UIDatePicker 
&lt;li&gt;
The ability to get cleanly launched from a UITextField component (i.e. effectively
replace the default keyboard of a text field with this date picker). The original
code would leave the default keyboard up when getting called from a UITextField component. 
&lt;/ol&gt;
&lt;p /&gt;
I fixed those things, and you can find the results in &lt;a href="https://gist.github.com/gists/1657921"&gt;this
gist&lt;/a&gt;.&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=efa8fa30-6915-48d9-a02c-90a73404c211" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,efa8fa30-6915-48d9-a02c-90a73404c211.aspx</comments>
      <category>.NET</category>
      <category>iPhone</category>
    </item>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=0d7f843b-6348-42cb-978b-23a5857600ca</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,0d7f843b-6348-42cb-978b-23a5857600ca.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,0d7f843b-6348-42cb-978b-23a5857600ca.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0d7f843b-6348-42cb-978b-23a5857600ca</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">My company's core applications are written
in ASP.NET MVC, and <a href="http://www.routexcel.com/press/RoutExcelReplayMay2011.pdf" target="_blank">have
been well received</a>. But the nature of what those applications can do in limited/non-existent
connectivity areas is causing enough problems that I need a native iPhone solution.
(HTML 5 offline storage is not enough. I need full access to the brains of calculation
engines that are in my business logic on the server, and I wouldn't relish moving
that logic to JavaScript. Besides, I found a real nice thermal receipt printer that
will work via SDK with a native app!) 
<p />
I came across <a href="http://xamarin.com/monotouch" target="_blank">MonoTouch</a>,
and I really like how it will enable reuse of my hard work over the years. The main
obstacle for me was how to get the data out to my iPhone client. I wasn't exactly
thrilled with the idea of shoe-horning WCF access from the iPhone, and working with
WCF at my day job is a configuration nightmare. REST would be good, but I wasn't happy
with the options out there - until I found <a href="http://www.servicestack.net/" target="_blank">ServiceStack</a>.
I don't know why this thing doesn't get more publicity. It is everything I want: small,
fast, actively developed, easy to configure, JSON, REST, DTOs, and works easily with
MonoTouch. Well done, guys. 
<p />
The first snag I hit getting some demo code out there was that if you want to have
the client code exist on MonoTouch, be sure to add references to the assemblies found <a href="https://github.com/ServiceStack/ServiceStack/tree/master/release/latest/MonoTouch">in
the MonoTouch-v2.20.zip file on github</a>. I'm curious why this is still labelled
as 2.20, and why those assemblies are still dated from June 9, 2011, but for now,
things are moving along to convert my ASP.NET MVC application to use services, and
expose those services for use on my iPhone client. 
<p />
Look for more posts about ServiceStack and MonoTouch in the near future.<img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=0d7f843b-6348-42cb-978b-23a5857600ca" /></body>
      <title>ServiceStack and MonoTouch</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,0d7f843b-6348-42cb-978b-23a5857600ca.aspx</guid>
      <link>http://www.distribucon.com/blog/ServiceStackAndMonoTouch.aspx</link>
      <pubDate>Thu, 08 Dec 2011 21:27:12 GMT</pubDate>
      <description>My company's core applications are written in ASP.NET MVC, and &lt;a href="http://www.routexcel.com/press/RoutExcelReplayMay2011.pdf" target="_blank"&gt;have
been well received&lt;/a&gt;. But the nature of what those applications can do in limited/non-existent
connectivity areas is causing enough problems that I need a native iPhone solution.
(HTML 5 offline storage is not enough. I need full access to the brains of calculation
engines that are in my business logic on the server, and I wouldn't relish moving
that logic to JavaScript. Besides, I found a real nice thermal receipt printer that
will work via SDK with a native app!) 
&lt;p /&gt;
I came across &lt;a href="http://xamarin.com/monotouch" target="_blank"&gt;MonoTouch&lt;/a&gt;,
and I really like how it will enable reuse of my hard work over the years. The main
obstacle for me was how to get the data out to my iPhone client. I wasn't exactly
thrilled with the idea of shoe-horning WCF access from the iPhone, and working with
WCF at my day job is a configuration nightmare. REST would be good, but I wasn't happy
with the options out there - until I found &lt;a href="http://www.servicestack.net/" target="_blank"&gt;ServiceStack&lt;/a&gt;.
I don't know why this thing doesn't get more publicity. It is everything I want: small,
fast, actively developed, easy to configure, JSON, REST, DTOs, and works easily with
MonoTouch. Well done, guys. 
&lt;p /&gt;
The first snag I hit getting some demo code out there was that if you want to have
the client code exist on MonoTouch, be sure to add references to the assemblies found &lt;a href="https://github.com/ServiceStack/ServiceStack/tree/master/release/latest/MonoTouch"&gt;in
the MonoTouch-v2.20.zip file on github&lt;/a&gt;. I'm curious why this is still labelled
as 2.20, and why those assemblies are still dated from June 9, 2011, but for now,
things are moving along to convert my ASP.NET MVC application to use services, and
expose those services for use on my iPhone client. 
&lt;p /&gt;
Look for more posts about ServiceStack and MonoTouch in the near future.&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=0d7f843b-6348-42cb-978b-23a5857600ca" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,0d7f843b-6348-42cb-978b-23a5857600ca.aspx</comments>
      <category>.NET</category>
      <category>iPhone</category>
    </item>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=7d56fa21-a0c2-49d9-aaa6-f801f572c403</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,7d56fa21-a0c2-49d9-aaa6-f801f572c403.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,7d56fa21-a0c2-49d9-aaa6-f801f572c403.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7d56fa21-a0c2-49d9-aaa6-f801f572c403</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I've had a web application written <a href="http://www.distribucon.com/blog/ASPNETMVCOnTheIPhone.aspx">using
iUI</a> for a couple of years now. It's been stable and rock solid, and I really appreciate
the leg up that it gave me. However, this weekend I converted away from iUI to <a href="http://www.jquerymobile.com">jQueryMobile</a>.
I have another application in production already using jQueryMobile, and it is absolutely
an amazing library.<br /><br />
The reasons I went with this move were:<br /><ul><li>
iOS 5 had substantial changes to Safari and my existing application is broken in many
places. Instead of spending time debugging and fixing something 2 years old, I figured
I'd take the time to port to jQueryMobile.<br /></li><li>
I've had to leave iUI at version 0.31 for this entire 2 year period. When they started
development on the 0.4 version, they changed form submissions to break if you had
multiple form fields with the same name. I absolutely had to have this capability
in order to support <a href="http://www.distribucon.com/blog/ASPNETMVCOnTheIPhone.aspx">ASP.NET
MVC list binding</a>. I reported the issue in the forums, and it didn't get much attention.
Sure, it's open source, but if I have to chase down bug fixing in a framework I'm
not intimately familiar with, it's a negative.<br /></li><li>
There is no easy way with the released version of iUI to do things like jQuery calls,
hook events into the page create/show and hide/destroy. Sure, there are code modifications
you can find on the web, but it's a forking nightmare and tough to maintain (is this
for 0.31, 0.4, or 0.5? does it require other extensions or modifications? etc.).<br /></li><li>
From a non-technical perspective, the roadmap of iUI has been all over the place.
I can't remember for sure, but I think it was originally slated for moving 0.4 in
to release status in like June of 2009. It's been pushed out over and over again,
trimmed in scope, and there just doesn't seem to be traction or consensus to move
the product forward. In contrast, jQueryMobile is looking to have a 1.0 release in
the next few weeks with constant releases over the past few months.<br /></li></ul><p></p><img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=7d56fa21-a0c2-49d9-aaa6-f801f572c403" /></body>
      <title>Replacing iUI with JQueryMobile</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,7d56fa21-a0c2-49d9-aaa6-f801f572c403.aspx</guid>
      <link>http://www.distribucon.com/blog/ReplacingIUIWithJQueryMobile.aspx</link>
      <pubDate>Sat, 15 Oct 2011 21:26:06 GMT</pubDate>
      <description>I've had a web application written &lt;a href="http://www.distribucon.com/blog/ASPNETMVCOnTheIPhone.aspx"&gt;using
iUI&lt;/a&gt; for a couple of years now. It's been stable and rock solid, and I really appreciate
the leg up that it gave me. However, this weekend I converted away from iUI to &lt;a href="http://www.jquerymobile.com"&gt;jQueryMobile&lt;/a&gt;.
I have another application in production already using jQueryMobile, and it is absolutely
an amazing library.&lt;br&gt;
&lt;br&gt;
The reasons I went with this move were:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
iOS 5 had substantial changes to Safari and my existing application is broken in many
places. Instead of spending time debugging and fixing something 2 years old, I figured
I'd take the time to port to jQueryMobile.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
I've had to leave iUI at version 0.31 for this entire 2 year period. When they started
development on the 0.4 version, they changed form submissions to break if you had
multiple form fields with the same name. I absolutely had to have this capability
in order to support &lt;a href="http://www.distribucon.com/blog/ASPNETMVCOnTheIPhone.aspx"&gt;ASP.NET
MVC list binding&lt;/a&gt;. I reported the issue in the forums, and it didn't get much attention.
Sure, it's open source, but if I have to chase down bug fixing in a framework I'm
not intimately familiar with, it's a negative.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
There is no easy way with the released version of iUI to do things like jQuery calls,
hook events into the page create/show and hide/destroy. Sure, there are code modifications
you can find on the web, but it's a forking nightmare and tough to maintain (is this
for 0.31, 0.4, or 0.5? does it require other extensions or modifications? etc.).&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
From a non-technical perspective, the roadmap of iUI has been all over the place.
I can't remember for sure, but I think it was originally slated for moving 0.4 in
to release status in like June of 2009. It's been pushed out over and over again,
trimmed in scope, and there just doesn't seem to be traction or consensus to move
the product forward. In contrast, jQueryMobile is looking to have a 1.0 release in
the next few weeks with constant releases over the past few months.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=7d56fa21-a0c2-49d9-aaa6-f801f572c403" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,7d56fa21-a0c2-49d9-aaa6-f801f572c403.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET MVC</category>
      <category>iPhone</category>
    </item>
    <item>
      <trackback:ping>http://www.distribucon.com/blog/Trackback.aspx?guid=a51a4f2e-8536-41c9-9b3b-bfeca82ed304</trackback:ping>
      <pingback:server>http://www.distribucon.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.distribucon.com/blog/PermaLink,guid,a51a4f2e-8536-41c9-9b3b-bfeca82ed304.aspx</pingback:target>
      <dc:creator>Dan Miser</dc:creator>
      <wfw:comment>http://www.distribucon.com/blog/CommentView,guid,a51a4f2e-8536-41c9-9b3b-bfeca82ed304.aspx</wfw:comment>
      <wfw:commentRss>http://www.distribucon.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a51a4f2e-8536-41c9-9b3b-bfeca82ed304</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">After downloading iOS 4.2.1, here are the
things that stand out: 
<p /><ul><li>
Apple didn't release a full version of AirPrint. Instead, it's a pretty watered down
version that works only against a very select few new HP printers. This is a bit of
a disappointment, but there are a couple of 3rd party solutions out there that restore
the "print to any networked printer" (<a href="http://jaxov.com/2010/11/how-to-enable-airprint-service-on-windows/" target="_blank">Windows</a> and <a href="http://lifehacker.com/5694423/printopia-enables-ios+to+mac-airprint-support-hack+free-adds-virtual-printers" target="_blank">Mac</a> versions
are available. I installed and tested the Windows version and it works great. The
one hiccup I had was that my firewall didn't automatically prompt me to open up for
AirPrint. Once I added it to the exception list, it worked perfectly. If you don't
have the Guest account on, you will be prompted for user credentials when printing.
I tested both ways, and they both worked fine. 
</li><li>
I have a web application written using iUI. I noticed that after the upgrade that
the look and feel is much different (text boxes in forms are shrunk considerably).
I know Mobile Safari underwent some big changes for this upgrade, so I'll need to
update the css. I'm looking to convert to jQueryMobile, so this isn't that big of
a deal. 
</li><li>
Initially, I had lost my Google Voice voicemail. I had deactivated and reactivated
the voicemail, but I couldn't get it to work. Today, it works fine. So perhaps it
was an issue with Google Voice and not iOS 4.2.1 
</li></ul><p />
If we could just get voice recognition everywhere like Android, I'd move my satisfaction
with the iPhone from 99% to 100%.<img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=a51a4f2e-8536-41c9-9b3b-bfeca82ed304" /></body>
      <title>iOS 4.2.1 Findings</title>
      <guid isPermaLink="false">http://www.distribucon.com/blog/PermaLink,guid,a51a4f2e-8536-41c9-9b3b-bfeca82ed304.aspx</guid>
      <link>http://www.distribucon.com/blog/iOS421Findings.aspx</link>
      <pubDate>Wed, 24 Nov 2010 03:23:00 GMT</pubDate>
      <description>After downloading iOS 4.2.1, here are the things that stand out:
&lt;p /&gt;
&lt;ul&gt;
&lt;li&gt;
Apple didn't release a full version of AirPrint. Instead, it's a pretty watered down
version that works only against a very select few new HP printers. This is a bit of
a disappointment, but there are a couple of 3rd party solutions out there that restore
the "print to any networked printer" (&lt;a href="http://jaxov.com/2010/11/how-to-enable-airprint-service-on-windows/" target="_blank"&gt;Windows&lt;/a&gt; and &lt;a href="http://lifehacker.com/5694423/printopia-enables-ios+to+mac-airprint-support-hack+free-adds-virtual-printers" target="_blank"&gt;Mac&lt;/a&gt; versions
are available. I installed and tested the Windows version and it works great. The
one hiccup I had was that my firewall didn't automatically prompt me to open up for
AirPrint. Once I added it to the exception list, it worked perfectly. If you don't
have the Guest account on, you will be prompted for user credentials when printing.
I tested both ways, and they both worked fine. 
&lt;li&gt;
I have a web application written using iUI. I noticed that after the upgrade that
the look and feel is much different (text boxes in forms are shrunk considerably).
I know Mobile Safari underwent some big changes for this upgrade, so I'll need to
update the css. I'm looking to convert to jQueryMobile, so this isn't that big of
a deal. 
&lt;li&gt;
Initially, I had lost my Google Voice voicemail. I had deactivated and reactivated
the voicemail, but I couldn't get it to work. Today, it works fine. So perhaps it
was an issue with Google Voice and not iOS 4.2.1 
&lt;/ul&gt;
&lt;p /&gt;
If we could just get voice recognition everywhere like Android, I'd move my satisfaction
with the iPhone from 99% to 100%.&lt;img width="0" height="0" src="http://www.distribucon.com/blog/aggbug.ashx?id=a51a4f2e-8536-41c9-9b3b-bfeca82ed304" /&gt;</description>
      <comments>http://www.distribucon.com/blog/CommentView,guid,a51a4f2e-8536-41c9-9b3b-bfeca82ed304.aspx</comments>
      <category>iPhone</category>
    </item>
  </channel>
</rss>