It is possible to write applications for OS X using Microsoft’s Visual Basic, thanks to .NET Framework’s Common Language Infrastructure and the open source Mono Framework and wx.NET. It turns out it is quite easy to do so, and this short tutorial tells you how.
just let me understand correctly… it is a tutorial (a very brief one… more an installation guide for the enviroment setup)… about developing applications for OSX on a Windows machine with a Microsoft Tool and an opensource framework for “simulating” another MS environment (.NET)…
again… WOW…
If the whole thing hinges on Mono being .NET compatible, doesn’t this mean Mono-developed apps built in Linux could also be deployed this way?
Am I missing something here?
Program with GNUstep and it’s a lot less painful when you target Cocoa for OS X.
that states you can not use Microsoft Visual Studio to create applications for use on other operating systems. read the fine print.
Funny, my VS (2005) EULA doesn’t say that. It says I can’t redistribute MS’s code to other platforms, but nothing about mine. Perhaps there is some super-fine print I don’t have?
“Funny, my VS (2005) EULA doesn’t say that. It says I can’t redistribute MS’s code to other platforms, but nothing about mine. Perhaps there is some super-fine print I don’t have?”
Unless it has changed, every executable contains Microsft re-distributables, and relies on MS DLL’s. My standard disclaimer is I could be reading that wrong, or have it confused with an earlier EULA. As soon as you compile your code, it contains MS Code, or so I have been led to believe.
http://www.linuxjournal.com/article/6869
http://fox.wikis.com/wc.dll?Wiki~VFPandLinux~VFP
http://en.wikipedia.org/wiki/FoxPro
This part of the EULA cropped up all over Microsoft’s products in 2002, as soon as WINE started to become a viable product and FoxPro users realized they could distribute FoxPro-created apps to Linux users. In essence, MS is asserting their right to control where you run x86 opcodes generated by their tools.
It’s also called “tying” and the SCOTUS is remarkably clear on its illegality.
The FoxPro issue is about using MS’ code on other platforms. That’s no different than using the .NET Framework on another platform.
The article that this thread is about concerns running MS code on Windows to develop code that runs on another platform. There’s a big difference. You aren’t running MS’ code on MacOS X, Mono takes the place of the MS code. As long as you don’t redistribute any MS code, you’re fine. For the FoxPro situation to be similar, you’d need a third-party FoxPro runtime and framework implementation on which to run your code.
And that’s not tying. They have a right to control the distribution of their product, just as MS can’t redistribute QT on Windows without a license to do so.
Edited 2006-09-26 23:23
“They have a right to control the distribution of their product”
Their definition of “their product” is inclusive of generated bytecode, not just the runtimes/frameworks. Interestingly, this “distributable code outside Windows” boilerplate is missing from the Live.com widget SDK EULA, where it’s clear that the code could potentially be run on non-Windows platforms, but it’s still in other EULAs.
Also, the intent of FoxPro is to create distributable applications, so the concept “controlling distribution of their product” is nonsensical. A company protects its profits best by not selling tools to distribute its IP in standalone applications. They *bought* FoxPro, knowing what it did.
Show me another SDK which places these kinds of restrictions on the products you make with them. Eclipse doesn’t lay claim to the code you generate with it. Metrowerks was exhaustive in their documentation that your resultant code was your own.
It’s not a frameworks issue.
They are actually quite clear on which things you may not distribute to non-Windows platforms:
i. Right to Use and Distribute. The code and text files listed below are “Distributable Code.”
• REDIST.TXT Files. You may copy and distribute the object code form of code listed in REDIST.TXT files.
• Sample Code. You may modify, copy, and distribute the source and object code form of code marked as “sample.”
• Microsoft Merge Modules. You may copy and distribute the unmodified output of Microsoft Merge Modules.
• MFCs, ATLs and CRTs. You may modify the source code form of Microsoft Foundation Classes (MFCs), Active Template Libraries (ATLs), and C runtimes (CRTs) to design, develop and test your programs, and copy and distribute the object code form of your modified files under a new name.
• MDAC. You may copy and distribute the object code form of the MDAC_TYP.EXE file.
• Image Library. You may copy and distribute images and animations in the Image Library as described in the software documentation. You may also modify that content. If you modify the content, it must be for use that is consistent with the permitted use of the unmodified content.
• Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
iii. Distribution Restrictions. You may not
-snip-
• distribute Distributable Code to run on a platform other than the Windows platform;
As you can see, nowhere is any part of user generated code included in this. You obviously can’t run the .Net Framework using WINE, because that is MS’s code, which is why Mono replaces all parts of the .Net Framework.
>> In essence, MS is asserting their right to control
>> where you run x86 opcodes generated by their tools.
Almost makes the Microsoft comments about viral GPL
infection look peculiarly hypocritical …
From what I’m reading, you could just download the .net SDK (without VS), and use Sharpdevelop to write the code. Although I don’t know if the EULA involves the SDK as well (my gut thinks it may). We’ll have to wait for open
I’ve successfully opened VB/VS2005 projects and compiled them with Sharpdevelop. HOWEVER, the two IDE’s definately have different methods of writing code, so if you add any new form components in #Dev you may need to modify the source for it to behave exactly like the vstudio ones.
Really nice breakthrough. Ideally, this method should work with Mono/MonoDevelop as well – completely MSless. Mmmmm..
Edited 2006-09-26 22:58
Is it then OK to browse an Atlas.NET (or whatever name they use now) page with safari/firefox on mac/linux? Atlas.NET contains Microsoft code.
Or does the EULA just apply to apps.
Most web products are engineered for reach. The output is expected to be viewed on other platforms. Other than HTML and ECMAScript, the Microsoft code executes on the server, not the client. You’re not running the .NET Framework in Safari (yet — see WPF/E).
Also, EULAs are product-specific. Just because MS restricts some products from running on other platforms doesn’t mean they restrict all products. The same applies to any other entity.
Ok, I was thinking more of the javascript-code that is generated.. But I guess it does not apply…
You could do that, of course that brings up the question the article doesn’t answer as to whether you *should* do that.