You are browsing the archive for MonoTouch.

Profile photo of marc

by marc

Choosing the Best Toolchain for each Platform

February 4, 2012 in .NET, Android, ASP.NET, Cocoa, Data Abstract, Delphi, Elements, iOS, Java, JavaScript, Mac, Metro, Mono, MonoTouch, non-tech, Oxygene, Platforms, RemObjects, Visual Studio, Windows, Windows Phone, Xcode

Four or five years ago, the software world was simple: if you were a commercial software developer, you were developing for Windows. But this has changed drastically with the advent of mobile platforms such as iOS and Android, the steadily increasing market share of Macs, and the establishment of new development paradigms such as rich web applications hosted in browsers.

Here at RemObjects, I field the majority of so called “sales related” emails (that is, emails that aren’t technical support requests handled by our excellent support team and the product developers) myself — and as this century gets older, I see more and more requests asking what tools and toolchains to pick for different platforms. “Can I develop for both Windows Phone 7 and Android with Oxygene and share code?” — “Which version of Data Abstract is best for targeting iOS?” — “Should I use Oxygene for .NET with MonoDroid or Oxygene for Java for my Android app?”.

There are a lot of great development tool chains for the different platforms out there — be they Xcode/Cocoa, Visual Studio/.NET, Delphi, JavaScript — and sometimes the decision does not seem easy, because here at RemObjects we provide editions of most of our products for various development platforms, and often more than one choice can be applied to a specific platform need.

To help make heads and tails of this, we created a small graphical overview chart on our website that gives insight into which language/framework/product combinations we support on any given platform and — more importantly IMHO — which combination we recommend.*

[*And that recommendation might not always be what you think — for example, I often get looked at weirdly when I recommend Xcode over our own Oxygene (plus Mono) for Mac development. But development tools, even versatile ones such as Oxygene, or Delphi, or Visual Studio, are not and should not be Jacks of all Trades, and thus no single tool, no matter how great (and we happen to think Oxygene is pretty great ;) can be the best choice for all scenarios. We acknowledge and honor that.]

You can find this overview matrix — which will be ever-expanding as time goes by and the development world around us changes — at; i’m also including a static screenshot of it, below.

May it help you to choose the best set of tools for your needs!

Profile photo of marc

by marc

Prism XE2 (Oxygene for .NET) Bits Have Been Finalized for the Upcoming Release

August 13, 2011 in Android, Elements, Java, MonoTouch, Oxygene, Uncategorized

We just promoted Oxygene to the “master” branch for the upcoming Fall 2011 release (also known as Embarcadero Prism XE2). The result of

git log release-mar11..master

is an astounding 3054 lines of commits that have gone into the build since we RTM’ed Delphi Prism XE Update 1 in March! The first line in the change log is

4433a2c - New files for newcompiler. (Carlo Kok) (10 months ago)

indicating that this release sees the fruits of over ten months of work (actually even more, as work on “new compiler”, as it was called back then, was started in a separate repository, and was only brought into the main “oxygene” git repository with commit 4433a2c) from the team.

Over 1000 (1137 to be precise) of these commits have been made in the past 6 weeks alone, and 429 of those in the past couple of weeks alone.

The team, including our Chief Compiler Engineer Carlo, as well as Brian, Viktoria and Alexander, has done an amazing job and burned the midnight oil on more than one occasion in order to deliver a quality release, and it has been a tight struggle at times due to a deadline not being under our control, but we have made it and we believe we have something great for you in store with this release.

The final bits are building now, after which they will be handed off to our friends at Embarcadero, who will work on integrating them with the rest of their product launch for RAD Studio XE2 and standalone availability of Prism XE2. It is not my place to announce final availability of the finished Embarcadero products to customers, new and those on SA, but the product should be in people’s hands very Soon™.


As you might have noticed already, we have slightly changed the branding on the product for this release. After three major releases of the product with Embarcadero under the “Delphi Prism” banner, we have mutually agreed to drop the “Delphi” portion of the name and simply call the product “Embarcadero Prism”. For one, “Prism” is what most of us have been referring to the product already as short form; but more importantly, I think dropping the “Delphi” moniker helps both sides and avoids a lot of confusion. Prism and its Oxygene language are not Delphi, and we believe the new naming will help Delphi stay Delphi and will help Prism and Oxygene go the path they need to differentiate themselves from Delphi.

As part of this branding change, we are also moving the “Oxygene” name more into focus again, with Oxygene being the shared language that drives both Prism and “Cooper” (more on “Cooper below); we are also working on a brand new Oxygene Language Wiki and a new website for the Oxygene Language, both to be revealed later this month.

What’s Next?

We might have RTM’ed the first release of Prism XE2 and our new “Oxygene 5” compiler for .NET, but we still have a lot of work ahead of ourselves. After getting a bit of a breather this next week, the team will dive back in and we will continue with our weekly beta cycle to drive the product ahead. We are also shooting for monthly “stable” update releases for the next few months, as we prepare for the release of “Cooper”.

Ideally, we would like to put updated releases in customers’ hands at the end of September, October and November, respectively; each of these would be minor releases focusing on quality, stability and bug-fixes, without major new features on the .NET side.

So, What About Cooper?

As you probably heard by now, “Cooper” is the code name for our project to bring Oxygene to the Java and Android platform – not via compatibility libraries such as MonoAndroid but as a true Java compiler.

“Cooper” shares the same code base with “Oxygene for .NET” as it ships in Prism XE2. It’s the same compiler code, it’s the same IDE integration – obviously with some extra stuff for Java specific features (such as reading JAR files, debugging Java processes, or packing up Android executables) and some missing stuff for .NET-only features (such as the WPF designer or ASP.NET). In fact, it’s not just compiled from the same code base, it is the exact same binaries – if you install Oxygene for .NET (i.e. Prism XE2) and Oxygene for Java on your system, they will become one single install of Oxygene.

Prism has always been Embarcadero’s solution for .NET and the replacement for Delphi for .NET, and as such, Prism XE2 as we finalized it today will contain the “Oxygene for .NET” portion of the product only. “Oxygene for Java”, as the final product will be called, will be a separate product, available directly from us at RemObjects Software, when it is finalized later this fall. (When we do ship “Oxygene for Java”, along with it there will also be an official update to Prism XE2 that brings the .NET product onto the same level, and will include any bug fixes and enhancements we have made to the shared parts of the product, between now and then).

For those of you interested in Oxygene both for .NET and Java, worry not: Starting with the day of general availability of Prism XE2, we (RemObjects Software) will have both Prism XE2 itself as well as a pre-order for “Cooper” and very attractive bundle pricing for both available for world-wide sales on our secure online shop at

Stay Tuned

So, as you can probably tell, we are very excited by this upcoming release of Prism XE2, and by what we have in store for Oxygene for the rest of the year. Stay tuned to this space for more information, as we get closer to GA of Prism XE2.

2 days of Delphi Prism training in Mainz, Germany

March 5, 2011 in .NET, Elements, Events, iOS, Mac, MonoDevelop, MonoTouch, Oxygene, Platforms, RemObjects, Tools, Visual Studio, Windows

Delphi Code Camp logo RemObjects will be presenting at the next german Delphi Code Camp. As every year, the Entwickler-Akademie hosts the event. This time it will take place from May 2nd to 5th in Mainz, Germany. Each day presents a full-day power-workshop, and on two of them I will give hands-on experience on Delphi Prism. One full day will be a general introduction in .NET and development with Windows Forms, the next day we will concentrate on Mac- and iOS development.

The agenda in short:
Monday, May the 2nd: Daniel Wischnewski on patterns and practices with Delphi.
Tuesday, May the 3rd: Bernd Ua on Multithreading with Delphi.
Wednesday, May the 4th: Sebastian on Windows Forms development with Delphi Prism.
Thursday, May the 5th: Sebastian on Mac- and iOS development with Delphi Prism.

Hope to see you in Mainz.

Short summary in german:
Vom 02. bis 05. Mai 2011 findet in Intercity-Hotel Mainz das diesjährige Delphi Code Camp mit Daniel Wischnewski (Mo.: Patterns), Bernd Ua (Di.: Multithreading) und meiner Wenigkeit (Mi.: Delphi Prism: Windows Forms und Do.: Mac- sowie iOS-Entwicklung) statt.

Profile photo of marc

by marc

DSConf in Review

February 14, 2011 in .NET, Android, Cooper, Data Abstract, Delphi, Elements, Events, iOS, MonoTouch, non-tech, Oxygene, RemObjects, Visual Studio, Xcode


It’s Monday February 14, 3AM and i’m jet-lagged and back home from Las Vegas, where our three-day Developer Solution Conference ended – what seems like a few hours ago – on Thursday.

DSConf Las Vegas was the first conference we have ever organized, and has been the first state-side events of our partners in crime, the Developer Experts.

This being our first event, and having a lot of time, resources and money invested into this over the past three or four months since we started planning, we were of course nervous about how the conference would go. Did we have the right mix of content? would our one-track, half-sessions/half-workshop approach work? would people like the event? heck, would anybody show up?

To say that we’re very happy with how the event turned out would be a tremendous understatement. interest in the conference was great, and with 40 registrations, we certainly reached our goal as far as pure numbers of attendees go. But what’s more important, people really dug the concept of DSConf and our sessions+workshops approach, and again and again attendees approached me (and my fellow staff) telling me that the conference was “exactly what [they] were looking for” or “just perfect”.

DSC 9736

DSConf was held at the MGM Grand, where we had access to three rooms, one for the main session and workshop, one for breakfast, lunch, afternoon sneaks and Embarcadero’s sponsor booth, and a third where attendees could break out to, to sit down and code, away from all the action.

DSC 9753

Day 1 started (after a brief introduction of all the staff) with an overview of the development tools, with Jim and Olaf first looking at Delphi XE and Delphi Prism XE, and Daniel then giving an introduction into Xcode and Objective-C (with a little bit too much focus on how “weird” Objective-C is, if you ask me [i love it – i don’t think it’s weird at all ;], but people enjoyed it and learned a lot). After lunch (a great mix of Asian food provided by the awesome MGM Grand catering staff), Daniel Wolf started his session on UX design and paper prototyping, followed by a hands-on workshop on the same topic, which everyone seemed to agree was the highlight of the day:

Photo: Jim McKeeth

We closed with a workshop for the development tools shown earlier in the day, before releasing attendees to dinner and a free Poker Training session put on by MGM staff especially for our attendees. Those not interested in poker joined us back in the conference room for some late-night coding.

Day 2 came bright and early, with the keynote from Embarcadero’s David I – giving an overview of the current Delphi XI and the plans for the future, including a demo of Delphi/x64 and some hints at what’s coming down the road with VCL+. After that, we dove into multi-tier. First Jim gave us some background on why you’d want to bother with multi-tier in the first place, then Olaf and Daniel took the down-and-dirty road of showing attendees how to do data access the old fashioned way – custom REST and JSON parsing, and all those gruesome details.

After lunch (mediterranean food, which i did not get a chance to eat but was told was excellent once again) Holger and Jim dove into Data Abstract, showing how to create clients and servers with either Delphi or Delphi Prism.

Every conference needs it’s hick-up, so the last three hours of the day saw me on stage with Holger and Daniel leading developers thru our workshop and working with Data Abstract for .NET in Delphi Prism. I’m not an on-stage kind of guy, but things went well, and Daniel clearly enjoyed telling me how to use my product on the big screen ;).

If you’ve been to conferences before, you know that usually half the audience is checking their mail or catching up on twitter while talks are going on. But – just as in the workshop the day prior &dasnh; pretty much every attendee was following along with the workshop, as we plugged thru the details of DA/.NET, DA LINQ, RemObjects SDK Roles and creating custom web service methods that performed mathematical operations only Daniel will understand. While we were on stage guiding the workshop, the rest of the team roamed the room to answer questions and assist attendees who ran into problems.

DSC 9756

After the dinner break (i went to eat an excellent Teppanyaki with the RemObjects crew and a few friends), attendees met again for an “open bar and networking” evening.

Day 3 was all about mobile development, with three sessions dedicated to iOS (iPhone and iPad), Android and Windows Phone 7, respectively. The iOS session touched briefly on MonoDevelop, but then focused on Xcode (personally my favorite way to develop for that platform); the Android session was given by our guest speaker Brian Long (who’s presentation, if i may say so, was one of the highlights of the conference), providing a great and in-depth introduction to MonoDroid (a topic unknown to myself, as well, up to that point). Last but not least, Jim introduced the attendees to Windows Phone 7 development with Silverlight.

All three sessions consisted of about two-thirds of an in-depth view at the platform and development tools themselves (with Delphi Prism being used for all three .NET based tool chains, although the principles shown would have applied just as well to C#), and one third of a look at how Data Abstract rounds those platforms off with multi-tier client functionality.


Next up came the part i was most excited about: Jim spent half an hour giving a sneak peak at a new top-secret project that has been brewing in our labs for a while now: “Cooper”. DSConf attendees were the first people outside of RemObjects to ever hear about Cooper, but now that the word is out: Cooper is a new compiler that brings the Oxygene language (that you all know an love from Delphi Prism) to the Java and Android platforms. Just like Oxygene, when first releases, aimed at bringing the “full .NET experience”to Pascal developers, Cooper does the same for Java. it links directly against the Java class libraries and generates 100% true Java (or Dalvik, Android’s variation of Java) executables, and is a “true” Next Generation Object Pascal for Java. (We’ll have a video reproducing the DSConf session up on RemObjects TV within the day, and stay tuned for more information, soon!).


“Cooper” was met with a lot of excitement from the attendees, and i believe it will be one of the most interesting products we’ll be shipping this year.

But, time to move on, and day three of DSConf ended with a set of workshops putting the knowledge from the morning to use – with the help from Daniel, Brian and Jim on stage, attendees went on to build mobile clients for the Data Abstract server created the day prior, for iOS, Android and Windows Phone 7.


So people showed up, all the sessions went well, but the greatest part of the conference for me has been talking to all the attendees – many of which long time customers who’s names i’ve seen again again but who i had never met, and just as many who were completely new to our products.

There’s two things attendees said to me that i will never forget. The first was a long-time customer coming up top me, telling me how long he’s been using our stuff and saying “Thanks. You guys have made me a lot of money.” That must be among my favorite customer quotes ever. The second was a guy – new to DA – who looked me up, said he’d loved what he’d seen, and asked what Data Abstract would cost. I told him, and after looking at me – flabbergasted – for several seconds, he said “That’s all? That’s per deployment, right?” Nope, i told him. That’s the flat license, per developer.

DSConf Team
Photo: Nate Woolls, TeamRO

So we’re very happy with how DSConf turned out. Tired, yes, but very happy. So happy in fact, that we’re already planning the next event. I cannot go into details yet, but stay tuned to for more information soon (and sign up to the DSConf newsletter to stay up to date).

Profile photo of marc

by marc

Only Two Weeks till DSConf Las Vegas!

January 25, 2011 in .NET, Android, Cocoa, Data Abstract, Events, iOS, MonoDevelop, MonoTouch, non-tech, Oxygene, Platforms, Relativity, RemObjects, Visual Studio, Xcode

It’s Tuesday January 25, and we’re only two weeks away from DSConf Las Vegas, the first of our Developer Solutions Conferences that RemObjects Software is putting on in partnership with our friends at Developer Experts.

A lot of things have been falling into place over the past few weeks, and we’re very excited about the event. We have finalized our time table, which i know many of you have been looking forward to seeing, and there’s a lot of exciting sessions there. We’re also very happy to welcome on board as guest speakers Brian Long, who will be joining our own Jim McKeeth on stage to cover Android development with MonoDroid, and David “I” Intersimone from Embarcadero who has agreed to kick off day two of the conference with a keynote on the state of Delphi, present and future.

New Mobile Platforms for Data Abstract

Personally, i’m most excited that we’ll be showing off support for not one, not two, but three new mobile platforms in Data Abstract for .NET: MonoTouch, MonoDroid and Windows Phone 7. All of these are new for our next upcoming “Spring 2011” release, and DSConf attendees will be the first to not only see this in action, but also get their hands on a pre-release of Data Abstract for .NET that supports these frameworks.

While we have long supported native development for iOS with our Data Abstract for Xcode edition (and that prefers my personal favorite for working with iOS, by a long shot), having all three platforms supported by DA/.NET gives a unique opportunity to share non-UI code between the three client platforms, if that is your goal – something we’ll be covering at the conference.


Meet the Team

Jim McKeeth will be representing RemObjects Software on stage, next to our guest speakers and the Developer Experts, but the entire RemObjects Software executive team will be on site in Las Vegas, including yours truly (Chief Architect), Carlo Kok (Chief Engineer on the Oxygene compiler that is the heart and soul of Delphi Prism) and Mike Orriss (General Project Manager). We’ll be looking forward to meeting and talking to all of you, discussing our products or answering any questions you may have.

And a Sneak Peek at “Cooper”

Also (and i’m not supposed to mention this ;), DSConf will be your chance to get a sneak peek at project “Cooper”, a very exciting technology that we have been working on related to (but not part of) Oxygene. I can’t go into more details yet, but suffice to say you will want to see this.


Come to DSConf

If you have not registered yet, don’t hesitate and head over to now to reserve your ticket – at only $799 for the whole three-day event. We’re looking forward to meeting you in Las Vegas in two weeks!


What are you thankful for about Oxygene / Delphi Prism?

November 25, 2010 in .NET, Delphi, Elements, Hydra, Mono, MonoDevelop, MonoTouch, Oxygene, Personal, Visual Studio, Xcode

Oxygene compilerI originally planned to write all these Thanksgiving week posts ahead of time, and then schedule them, but that didn’t happen. So it is Thanksgiving morning and I am using the Wifi from my remote office in Boise (aka the kitchen table of my sister-in-law’s house) to post this one.  Going to head over to my mother-in-law’s for turkey and trimmings shortly.  Happy Thanksgiving to anyone else in the United States, and Happy Thursday to the rest of you.

RemObjects makes Oxygene, which is heart of Delphi Prism.  Whatever you call it, it is pretty amazing technology.  It supports all the latest .NET features and lets us develop .NET applications in Pascal.  There is a lot to thankful about it, but I will a few things about it.

  1. Parallel Extensions – Baked right into the language with Parallel Loops and Futures.
  2. Aspect Orientated ProgrammingThe Cirrus AOP Framework lets you reprogram the compiler.
  3. Class Contracts – The Class Contract support lets you include pre-conditions and post-conditions on methods.
  4. Windows Presentation Foundation – Microsoft’s new vector based GUI widget system.
  5. Silverlight – A cross platform rich web application framework, similar to Windows Presentation Foundation.
  6. Windows Phone 7 – Microsoft’s new Windows Phone 7 uses Silverlight for application development,  and did I mention Delphi Prism does Silverlight?
  7. Mono Support – Cross platform Linus and Mac OS X application development.
  8. MonoTouch – iPhone application development.
  9. MonoDroid – Android application development.
  10. Works Great with Hydra – Combined with Hydra it is the easiest way to combine .NET and Delphi native features in the same application.  Did I mention we have a combo deal on the two of them?

Just found out that they moved up our Thanksgiving dinner plans, so I need to go before I finished my list.  Hopefully you can help finish the list for me in the comments bellow.  So, what are you thankful for about Oxygene / Delphi Prism?

MonoDevelop templates for the Mac

November 4, 2010 in Elements, iOS, Mac, MonoDevelop, MonoTouch, Oxygene, short, Uncategorized

For our MonoDevelop/Mac users we’ve created some new templates for MonoMac and MonoTouch. These are up to date templates that match the C# versions and let you write MonoMac (free) and MonoTouch (commercial) applications.

To install them, open MonoDevelop, select the Tools/Add-in Manager menu, click Repositories and add

to the list of repositories. Then select the Install Add-Ins… button and select the new templates from the update list.

Complete instructions and other extras for Prism can be found at

Using DataAbstract and the RemObjects SDK with MonoTouch

October 12, 2010 in Data Abstract, iOS, MonoDevelop, MonoTouch

One of the more interesting technologies to make its way into my brain in the last year has been MonoTouch. If you’re not familiar with it, MonoTouch is a set of tools and wrappers developed by Novell, the makers of Mono. It allows you to write apps for Apple’s iOS devices – the iPhone, iPad, and iPod Touch – in various .NET languages, including of course C# but also our own Oxygene (aka Delphi Prism).

A row from a Data Abstract table in the iPhone simulatorUp until now, there haven’t been many options for connecting to online services, or for data access. This is changing dramatically, with Data Abstract for Xcode, and coming soon to an iOS device near you, the ability to connect to your existing RemObjects SDK and Data Abstract servers with .NET and MonoTouch! The first glimpse of this new feature will be available in the next Data Abstract for .NET beta drop.

Please keep in mind that this is currently a work in progress. For example, there isn’t yet a MonoTouch-specific installer – the files you need can be found in a Windows install. Also, there are no templates or other IDE features in MonoDevelop. But hey, that’s what staying on the bleeding edge is all about, right?

This article will be focusing on writing a MonoTouch client for Data Abstract (DA). I’m going to assume that you’re familiar with the basics of MonoTouch and it’s development environment, MonoDevelop. Also, the sample is currently in C# – an Oxygene version will be available soon.

The first step is getting DA (and the RemObjects SDK) onto your Mac. Copy the entire “RemObjects SDK for .NET” and “Data Abstract for .NET” folders from your windows installation over to a convenient folder on your Mac.

Start a new MonoTouch project. Now you have a choice of which way to reference the RemObjects dlls. You can either:

  • add them as .NET assemblies – browse to the /bin/Monotouch folder in both the SDK and DA folders that you copied earlier. You need RemObjects.SDK.Monotouch.dll from the former and RemObjects.DataAbstract.Monotouch.dll from the latter.
  • add the projects to your solution, and then add them as project references – look for RemObjects.SDK.Monotouch.csproj, and RemObjects.DataAbstract.Monotouch.oxygene. Note that you have to have the Delphi Prism addin for MonoDevelop to go this route.

If you’re using a Relativity server, copy the RelativityDataModule.cs from the sample into your project folder and add it to your project; otherwise, copy the DataModule.cs.

Now to set up the connections. This is how it’s set up in the sample for Relativity:

var fDataModule = new RelativityDataModule();
{ TargetURL = fSettings.RelativityTargetURL,
  DomainName = fSettings.RelativityDomain, SchemaName = fSettings.RelativitySchema,
  UserID = fSettings.UserID, Password = fSettings.UserID};

and for custom server:

var fDataModule = new DataModule()
{ TargetURL =  fSettings.CustomTargetURL,
  ServiceName = fSettings.CustomDataServiceName,
  UserID = fSettings.UserID, Password = fSettings.UserID};

To access data, you simple need to ask for the table that you want:

DataSet lDataset = new DataSet();
fDataModule.DataAdapter.Fill(lDataset, new String[] { fSettings.TableName });

All the normal DA functionality should be there – dynamic WHERE, etc. The thing that’s missing at the moment is DA LINQ – runtime code generation is not allowed by the iOS license, so DA LINQ is on hold until we figure out how to do it’s magic a different way.

Delphi Prism on the iPhone

September 9, 2010 in .NET, Elements, iOS, Mono, MonoDevelop, MonoTouch, Oxygene, short, Tools

If you wanted to develop iOS applications with Delphi Prism (or Monotouch in general), there was this potential licencing problem, as long as you wanted to sell your app through the Apple AppStore (i.e. not using Enterprise deployment).

Here’s the good News: This is now history!
Today Apple announced to “relax all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code”.

This is a big relief for all those that wanted to write mono-based Applications for iOS but didn’t want to take risk that Apple’s going to decline the App for that reason. Additionally, Apple is going to publish their review guidelines, so that you know what’s allowed and what isn’t in detail before writing your software.

So, now you’re officially allowed to have fun and earn money with Delphi Prism on iOS. Enjoy it :)

Profile photo of marc

by marc

Delphi Live — Day 1 Recap

August 25, 2010 in .NET, Delphi, Elements, Mono, MonoDevelop, MonoTouch, non-tech, Oxygene, Personal, RemObjects

Day one of Delphi Live has been great, here in San Jose. After the morning Keynote with David I, Michael Swindell, Tony de la Lama and Mike Rozlog and the official launch of RAD Studio XE, Andreano Lanusse gave a whirlwind tour of the cross platform capabilities in Delphi Prism XE — which included creating a ASP.NET web service in Visual Studio 2010 and deploying it to his Linux VM to run in Apache with mod_mono, and using MonoDevelop on the Mac to create an iOS application for the iPhone using MonoTouch (creating a web browser seems to be the Hello World of the iOS platform).

The highlight of the day most definitely was the return of Jim McKeeth‘s Delphi Bots Live, a hands on session where the audience was invited to program a bot for the Unreal Tournament ego-shooter game to fight and hunt down Jim’s real-live player. The battle raged on for over two hours, and participation was great, with people using Delphi Prism in Visual Studio, MonoDevelop and even in Notepad with the command line compiler to create their bots. In fact, Michael Swindell was so successful developing his bot with the command line compiler that we have decided to pull Visual Studio support from the product, and to concentrate our development efforts on Notepad, moving forward.


San Jose City Hall; collage of multiple exposures
shot with the iPhone 4 and “See This