8 ms·
Bringing Smiles to the Faces of MacOS developers - Miguel de Icaza
- swombat 16y agoCan the apps built in MonoMac easily be ported to native Windows widgets? That would be a killer feature.
- jordan0day 16y agoDepends on your architecture and your definition of "easy". To put it another way, I imagine porting a MonoMac app to Windows would involve a similar level of effort to porting a Windows Forms app to WPF, or vice versa. The more code that lives outside of the presentation layer itself, the easier. To my knowledge, code written for MonoMac will be very Mac-specific (you'll have lots of NS* objects in there), and so it's not a matter of flipping a compiler switch to get a GTK# app or something similar. You'll have to re-write those particular sections. Again, though, if you architect your project well, you can minimize the amount of re-writing that has to be done.
- migueldeicaza 16y agoWith all of the platforms available now to C# developers (iPhone, Android, Window Phone 7, Windows, Linux, Mac) it makes sense to build applications in a way that will allow you to create native experiences, but also share your code across multiple platforms. Our recommendation to developers is that they split their applications across the User Experience/Business Logic fault line. Developers then can replace the user experience with native user interfaces for each platform. This is a bit abstract, so we tend to tell people to build a lot of UI-less reusable libraries and for libraries that have UIs, to split their Model-View-Controller libraries in a way that the Model and its support infrastructure are reusable and the View and the Controller are UI-specific. This extends a little bit further. You also might end up with an "OS" layer that performs certain tasks in a different way depending on the operating system that you will be running. For instance, while running on an iPhone, you have access to the gyroscope, something that you wont find on say a Linux desktop. Or on Linux, you will have access to /proc, which you wont have access to on Windows Mobile 7. A nice example was Paint.NET. When that application was built, the operating-system specific features were all placed on a library called SystemLayer.dll. The UI was all Windows.Forms, but porting the program turned out to be limited to replacing the SystemLayer.dll with one that spoke Posix as opposed to speaking Win32.
- anonymous245 16y agoThank you for giving some sane advice, instead of peddling the magical "single source/multiplatform" promise.
- Tamerlin 16y agoI agree, that's good advice -- it's what Sun should have done with Java instead of pushing the least common denominator UI libraries, which lead to a host of lousy UI's that worked equally poorly on every supported platform. :)
- jcromartie 16y agoThe last time I tried MonoDevelop (let alone on a Mac) it was a total disaster. I hope it's better now. I am pretty comfortable with Xcode, but "native" Mac apps in C# is a pretty good reason to consider switching to something else.
- jordan0day 16y agoMy experience with MonoDevelop 2.4 (the latest release, I believe) on OS X has been pretty good. I use VS daily and dabble in XCode, and MonoDevelop is definitely more VS-like than XCode-like, so it may be a bit unfamiliar for you. Certainly there's room for improvement, but it's relatively solid in my opinion.
- alextgordon 16y agoFirst impressions: I open the new file dialog. Type in a name, try to copy the name... and it closes the new file dialog! Apparently Cmd-C is bound to cancel. Okay, so it's a little quirky. Let's try again. I create a new file. Type some text. Select Edit->Copy this time and... it's crashed. Maybe I'm unlucky. I install MonoMac, restart, create a project, write some code to display an NSAlert, press build and Build failed. ~/.config/MonoDevelop/addins/MonoDevelop.MonoMac.2.4.0.5/mono-version-check does not exist. Jesus EDIT: As a bonus, a process called mono has been running at 100% CPU for the last half an hour. EDIT 2: After using it for a bit longer, the editor itself is actually not bad. It has all the features you'd expect and autocomplete seems well implemented. But this software is just far too buggy for any kind of serious day-to-day use.
- jacksonh 16y agoThe missing mono-version-check in the bundle was fixed in an update about 30mins ago
- alextgordon 16y agoThanks for the heads-up. I'll give it a try.
- 16y ago
- protomyth 16y agoLooking at all these alternate language attempts on iOS and OS X, It seems like it wouldn't be a bad thing to port a Basic that matches the object model of Objective-C, supports blocks, and calling C code / stucts. It might not be a bad bet to be the VB to Objective-C's C++/C#.
- aaronblohowiak 16y agoMacRuby
- jonhendry 16y agoThere's a product called RealBasic that's been around for years. It started on Mac but now runs on OS X, Windows, and Linux. http://www.realsoftware.com/ http://www.realsoftware.com/
- protomyth 16y agoI actually had a subscription to that. It really, really isn't Cocoa. It is more a direct VB replacement.
- mgw 16y agoFinally! I've been waiting for a long time to install KeePass 2 (MONO) cleanly on my Mac.
- drats 16y agoWho exactly stands behind Mono after Novell is sold (if and when)? Isn't there a significant risk, beyond the present one of MS making some move against them, that it will be left to stagnate by a new owner? And even the MS risk hasn't been cleared up for me. Please don't give me the stuff about MS promises against suing, it's totally unrealistic. Sure, you can argue it's not probable, but you can't argue that it's impossible or an insignificant risk - it's real. Who exactly has mono installed anyway? All that market share on.... which device or platform? The web? Mobile? Some small percentage of one operating system and basically nothing on the others? The Linux community doesn't just not have it installed they are actively hostile to mono. What I am peddling here is FUD, but it's warranted FUD, there are too many unknowns for what amounts to a buggy C#. Isn't the C# selling point that it's a better Java? How does that value proposition hold up for a B-grade C# with patchy coverage of the forms et cetera, with a patchy install base and an extremely uncertain future. Mono has totally failed to gain a critical mass, so there will be no openoffice.org=>libreoffice. When the takeover of Novell comes it will die a horrible and withering death getting further and further behind the parity with the MS implementation which it has never yet matched. I am sorry to say it, I wish the legal situation and Novell situation were otherwise and people could just choose on the basis of technical merits: but that's not the case, and anyone basing a startup or business on anything to do with mono is certifiably insane. http://en.wikipedia.org/wiki/Novell#Takeover_Bids http://en.wikipedia.org/wiki/Novell#Takeover_Bids
- city41 16y agoJust to offer some counter points... I bought MonoTouch and absolutely love it. Mono is rough around the edges but they do manage to get it right where it counts. At runtime MonoTouch is fast, stable and runs great. MT is so much nicer to develop for compared to Cocoa Touch it's not even funny (I've released two iOS apps written in ObjC and consider myself pretty decent with the platform). Novell knows this and knows this is really the only edge they have, which is why they've put so much into MT and now MonoMac. Yes Mono's future is shaky, but as a .NET developer I can adopt to Mono pretty much overnight. So if it goes belly up I haven't lost all that much. Would I base a business on anything Mono? No, I wouldn't, you are right there. But despite all the FUD, there is value in Mono as long as you can maintain a realistic outlook on it.
- Kilimanjaro 16y agoRead "The Mono Trap" by RMS http://www.gnu.org/philosophy/java-trap.html http://www.gnu.org/philosophy/java-trap.html
- bad_user 16y agoKilimanjaro, what do you do for a living? Just curios, because if it is anything remotely similar to selling commercial products or closed web-services (as most developers here do), you can't talk about trapping users or about the virtues of free-software with a straight face: that's called a double standard. And most people that do that (according to surveys I've seen) are either still in highschool/college or just hypocrites ... with the occasional "real deal" that manages to live off consulting for open-source development (core project devs mostly) and writing books / training. So which is it?
- jp 16y agoC# is just like Objective C in that the vendor lock-in is in the API and resource formats rather than the code syntax. Info.plist is fine, but X/NIB is terrifying when mixed with four versions of OS X, four different CPU architectures and several Frameworks in a pear tree.
- ryanpetrich 16y ago> We have achieved a beautiful blend between C# and MacOS that will turn Mac developer's tears of pain into tears of joy. Really? Tears of pain?
- DjDarkman 16y agoNo thank you, if I would want to develop for OS X I would stick to C++ and Qt. I'm to young to get sued.