{"id":1035,"date":"2008-11-09T14:01:29","date_gmt":"2008-11-09T13:01:29","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/1035-code-for-mac-cocoa-in-visual-studio-surprised-to-see-this.html"},"modified":"2008-11-09T14:01:29","modified_gmt":"2008-11-09T13:01:29","slug":"code-for-mac-cocoa-in-visual-studio-surprised-to-see-this","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/1035-code-for-mac-cocoa-in-visual-studio-surprised-to-see-this.html","title":{"rendered":"Code for Mac Cocoa in Visual Studio \u2013 surprised to see this?"},"content":{"rendered":"<p>I grabbed this screenshot from a preview just installed:<\/p>\n<p><img decoding=\"async\" title=\"Cocoa app in Visual Studio\" alt=\"Cocoa app in Visual Studio\" src=\"http:\/\/www.itwriting.com\/images\/prism.gif\" \/> <\/p>\n<p>It comes from <a href=\"http:\/\/www.codegear.com\/products\/delphi\/prism\">Delphi Prism<\/a>, a new product from Embarcadero\/Codegear which lets you code for .NET using the Delphi language, an object-oriented version of Pascal. The product is not as new as it first appears. It is based on an existing product from RemObjects, called <a href=\"http:\/\/www.remobjects.com\/oxygene.aspx\">Oxygene<\/a>, which it now replaces.<\/p>\n<p>Here\u2019s the story in a nutshell. 2003: Borland, the company which created Delphi, decides (rightly) that .NET is here to stay, and releases Delphi 8, a pure .NET version. Nobody wants it, because it has no advantages to speak of over Win32 Delphi (which is faster), or C#, which is the Microsoft .NET language. <\/p>\n<p>At that time some voices muttered that what Borland should do is to integrate Delphi into Visual Studio, rather than doing its own .NET IDE.&#160; One was Marc Hoffman at <a href=\"http:\/\/www.remobjects.com\/\">RemObjects<\/a>, only he did <a href=\"http:\/\/blogs.remobjects.com\/blogs\/mh\/2004\/09\/01\/p74\">more than mutter<\/a>: his company developed its own implementation of Delphi Pascal for Visual Studio, called Chrome.<\/p>\n<p>Borland soldiers on with Delphi 2005, which does both .NET and Win32 in a single IDE. Developers are happy to have a new Win32 Delphi, but most still don\u2019t see the point of the .NET stuff. Further, Delphi 2005 is buggy; many stick with Delphi 7. Next comes Delphi 2006: more of the same, but less buggy. <\/p>\n<p>There\u2019s a couple of problems with Delphi\u2019s .NET support. First, it is always out-of-date compared to Microsoft\u2019s .NET tools. Second, it has component library schizophrenia. There\u2019s VCL for .NET, based on Delphi\u2019s component and GUI library, but that\u2019s not compatible with .NET components built for Windows Forms. There\u2019s Windows Forms, but that\u2019s not compatible with existing Delphi code. Borland decides to deprecate use of Delphi .NET with Windows Forms. This is really for VCL developers, it says. <\/p>\n<p>Next comes Delphi 2007. Nice product, but where\u2019s .NET? Gone. Nobody seems to mind [and it turns up later in RAD Studio 2007*]. Delphi 2009, gone again. But now there\u2019s Prism, and it is a complete U-turn. Forget VCL.NET. It uses standard .NET libraries, runs in Visual Studio, supports Windows Forms, ASP.NET, WPF, and soon Silverlight. Oh, and it\u2019s based on what that other guy did back in 2004, with some <strike>Borland<\/strike> <strike>Codegear<\/strike> Embarcadero technology thrown in: dbExpress database framework, client support for DataSnap multi-tier applications, and the Blackfish pure .NET database engine.<\/p>\n<p>Very good; but there\u2019s still that awkward question: why not use C#? The answer, I guess, being either that you love coding in the Delphi language, or you want to use one of the Delphi-compatible libraries.<\/p>\n<p>Or that you want to use <a href=\"http:\/\/www.mono-project.com\/Main_Page\">Mono<\/a>, which of course is what enables those tasty Mac options in the New Project dialog above. You can also use C# with Mono \u2013 possibly you should, since it is Mono\u2019s core language \u2013 but in Prism it comes nicely integrated into Visual Studio. Well, somewhat nicely. In practice there are a <a href=\"http:\/\/prismwiki.codegear.com\/en\/Creating_CocoaSharp_applications_for_the_Mac\">few extra steps<\/a> you need to take to get it working. The recommendation is to run Visual Studio in a VM on a Mac, since Windows cannot run Cocoa applications. And you\u2019re going to be using Apple\u2019s Interface Builder; there\u2019s no GUI designer in Visual Studio itself.<\/p>\n<p>Hardly enterprise-ready then; but still an intriguing development.<\/p>\n<p>*Added correction thanks to John Moshakis\u2019 comment below.<\/p>\n<div class=\"wlWriterEditableSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:52d20294-6f26-4481-9ba5-13886ce4ecf4\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">Technorati tags: <a href=\"http:\/\/technorati.com\/tags\/delphi\" rel=\"tag\">delphi<\/a>, <a href=\"http:\/\/technorati.com\/tags\/prism\" rel=\"tag\">prism<\/a>, <a href=\"http:\/\/technorati.com\/tags\/codegear\" rel=\"tag\">codegear<\/a>, <a href=\"http:\/\/technorati.com\/tags\/embarcadero\" rel=\"tag\">embarcadero<\/a>, <a href=\"http:\/\/technorati.com\/tags\/remobjects\" rel=\"tag\">remobjects<\/a>, <a href=\"http:\/\/technorati.com\/tags\/pascal\" rel=\"tag\">pascal<\/a>, <a href=\"http:\/\/technorati.com\/tags\/visual+studio\" rel=\"tag\">visual studio<\/a>, <a href=\"http:\/\/technorati.com\/tags\/mono\" rel=\"tag\">mono<\/a>, <a href=\"http:\/\/technorati.com\/tags\/microsoft\" rel=\"tag\">microsoft<\/a>, <a href=\"http:\/\/technorati.com\/tags\/mac\" rel=\"tag\">mac<\/a>, <a href=\"http:\/\/technorati.com\/tags\/apple\" rel=\"tag\">apple<\/a>, <a href=\"http:\/\/technorati.com\/tags\/oxygene\" rel=\"tag\">oxygene<\/a>, <a href=\"http:\/\/technorati.com\/tags\/.net\" rel=\"tag\">.net<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I grabbed this screenshot from a preview just installed: It comes from Delphi Prism, a new product from Embarcadero\/Codegear which lets you code for .NET using the Delphi language, an object-oriented version of Pascal. The product is not as new as it first appears. It is based on an existing product from RemObjects, called Oxygene, &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/1035-code-for-mac-cocoa-in-visual-studio-surprised-to-see-this.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Code for Mac Cocoa in Visual Studio \u2013 surprised to see this?<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,8,20,31,57,80,97],"tags":[],"class_list":["post-1035","post","type-post","status-publish","format-standard","hentry","category-net","category-apple","category-codegear","category-embarcadero","category-mono","category-software-development","category-windows"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/1035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=1035"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/1035\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=1035"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=1035"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=1035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}