[MonoTouch] Newbie: iPad application and incompatible target frameworks :(

Craig Dunn craig.dunn at conceptdevelopment.net
Mon Mar 26 05:23:20 UTC 2012


I wouldn't characterize it as fragile - there are many large scale projects
out there sharing massive amounts of code across platforms. And it sure as
heck beats re-writing the code in Objective-C and Java!

>>So now this means I can't do any of that :(
well, no - you can still do *most* of that.

Once you set-up the workflow it should work similarly to how you described
(you can still work on your core and unit tests as you did - however you
need to bring in the dependencies _as code_, so they'll compile in MT &
MD). A "MonoTouch Library Project" isn't some magic thing to be worried
about - it's a regular csproj with a specific project-type-guid that tells
it to compile against the MT profile of .NET that Sebastien mentioned.

>>or i'm now into a world of pain trying to 'port' those repos
Many open-source libraries "just recompile" or else have been forked for MT
or MfA already. Json, Zipfiles, etc have all been done before. If they
don't "just recompile" because of a compatibility issue, then bringing in
the DLL wouldn't have helped you anyway - it still wouldn't have worked. I
agree - it _is_ a little more effort... but then leveraging those
open-source libraries in Objective-C or Java is going to be a *real* PITA.

>>Are people just throwing everything into the one MT project
no no no - you can build sophisticated multi-project solutions in MT and
MfA just like a normal .NET project... but with the added bonus that if you
do a bit of set-up work and planning you can deploy to iOS (phones +
tablets), Android and Windows Phone 7 (throw in Silverlight and Windows 8
if you really want to get tricky and do a bit more planning).

All you need is a couple of 'cloned' csproj files with different "config"
(if you look at MWC, do a diff on MWC.Core.MT.csproj and
MWC.Core.MD.csproj) - and to keep them in sync ongoing. As I said, it's not
perfect (yet) but it works and gives you a massive head-start in deploying
your .NET expertise on iOS & Android. You could also check-out
Touch.Unit<https://github.com/spouliot/Touch.Unit>and
Andr.Unit <https://github.com/spouliot/Andr.Unit> to extend your
unit-testing onto the device platforms.

I hope you can get the multiple-project mechanism working. Post if you have
any other questions.

Craig



On Mon, Mar 26, 2012 at 3:38 PM, Pure Krome <
pure.krome at world-domination.com.au> wrote:

> Hi Craig - that helps a lot .. but really kills me :(
>
> What I did on the weekend was start using MD and I found that i'm not that
> efficient in programming in that IDE (just yet). So I commited/pushed my
> code to my repo. Switch over to VS2010, pulled .. and opened the sln. All
> the projects (except the MT one, of course) opened. I continued programming
> all day. Once all my tests worked, I pushed .. switched over the Mac ..
> pulled, build-all and tested my unit tests. All green lights!
>
> This ment that I could do my normal non UI programming in VS (ie,
> core/services/unit tests). I even used NuGet to grab my Json.net.dll and
> Moq.dll (but i'm not using package restore because it's obvious that non
> windows would know how to run nuget.exe :P).
>
> I was so excited how interoperable it all was (with of course, the MT
> specific project .. which is totally expected to not work outside of MD
> with
> MT installed).
>
> So now this means I can't do any of that :( Even worse .. I now need to
> grab
> the src for moq and json.net and add these projects to my solution .. and
> also make sure these projects are not a normal .NET 4 (or 3.5 or whatever)
> class library .. but a "MonoTouch Library Project" ? Oh - and hope and pray
> that they build first go .. or i'm now into a world of pain trying to
> 'port'
> those repos? I'm guessing this is because MT is a superset of Silverlight.
>
> This is all sounding more and more fragile and a real PITA when it comes to
> leveraging open source libraries already out there.
>
> Do other people who are making MT app's use Json.Net or Moq or AutoMapper
> or
> other common oss libraries, all face this same issue? Are people just
> throwning everything into the one MT project .. and not splitting things up
> into multi-projs and doing some TDD?
>
>
> --
> View this message in context:
> http://monotouch.2284126.n4.nabble.com/Newbie-iPad-application-and-incompatible-target-frameworks-tp4503021p4504772.html
> Sent from the MonoTouch mailing list archive at Nabble.com.
> _______________________________________________
> MonoTouch mailing list
> MonoTouch at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monotouch
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/monotouch/attachments/20120326/9ead0f9c/attachment-0001.html>


More information about the MonoTouch mailing list