I use a Mac at home and love it, but in my work environment/career path I work with C# mostly. I've tried using Monodevelop a few times but in my experience I've found it to be very buggy and just not a pleasant experience. So I'm using Windows in Boot Camp so I can use the Visual Studio environment. Has anyone else had bad experiences with Mono or better yet - does anyone have suggestions on how I might make better use of it on my Mac in regard to setup/configuration? I know it's a bit broad, but I prefer my Mac environment and would love to make coding in C# as easy as possible and avoid constantly switching between OS's or running in VMWare. Thanks in advance!
/matt
I have had similar experiences (buginess/instability in MD on Mac OS X). About a month ago on Twitter I connected with some of the folks who maintain it (specifically Michael Hutchinson and Miguel de Icaza). I found them to be very willing to address concerns. Apparently there are a number of severe issues with the GUI toolkit that the Mac version uses (GTK#). I found that there are other bugs too, which need to be dealt with.
You can click back up through one of my conversations to see how that went: http://twitter.com/mjhutchinson/statuses/2506771429
He recommended filing bugs for a couple of the issues that I brought up. He fixed one issue within minutes. AFAIK, the other bug hasn't been touched since then. As I see it that is the only way it is going to get better: continue to bug issues and continue to express interest in the product. I personally would love a stable native Mac OS X dev environment. Until that happens the Mac isn't a viable platform for .NET development for me.
Bug filing is done through Novel: http://monodevelop.com/Developers#Reporting_Bugs
Related
I have just finished studying C with some website, and I covered most of the basic-intermediate things.
Now I want to develop iPod\iPad apps, using Objective-C as I understood it's the best option.
But from reading many guides, I still haven't came across one sure answer - Can you develop iOS applications using Objective-C on a PC, Windows? I know you have to pay these 99$ to be allowed to develop and to be given access Apple classes, but it's okay with me.
If you can not do it on windows, what will be the next best option? I know you can create iOS games using Unity and C#, I have it installed but I still didn't find out how to create an iOS project. And I couldn't find a simple guide for iPod apps with unity, that would be nice, too.
If the best option is not unity, what will it be? I have intermediate-high knowledge in .NET (Thats the way it seems in the forums I'm usually at... here I am a simple beginner) and I know C# syntax the best, but I know VB too. And C, and a bit C++.
Thanks :)
the short answer is no. but there are ways around it if you don't want to put the app in the marketplace
You can code Objective-C in Windows, however you will not be able to compile. http://kdevelop.org/, http://code.google.com/p/objectiveclipse/ and http://www.bloodshed.net/devcpp.html Dev-C++ are compatible with Objective-C, for example. I haven't had any experience with them, however.
XCode is still the best for this task, and I'm not sure if you would call this being able to "develop iOS applications on Windows", but I tend to code quite a bit in Notepad / GEdit anyway, so the answer is "kind of". You'll need a Mac to go anywhere further than coding though, like being able to debug.
The Unity iOS development does not come with the free version of Unity. Instead, you would have to purchase a separate license (in addition to the $99 that Apple will charge you to become a developer, I believe.) I myself have never used Unity to develop iOS games, so I don't know how well the process works.
Ideally, however, iOS development really is meant to be done on a Mac. XCode is the primary IDE used for iOS development and it is Mac-only.
Another option is to generate iOS game with Flex 4.5, which allows you to write and test code on windows and you can package it for iOS. But you have to learn ActionScript and MXML for it.
From Adobe's Website
Flash Builder 4.5 includes full support for building ActionScript® applications for Apple iOS. Flex support is planned to be available later in 2011
You can check out
Corono -- http://www.anscamobile.com/corona/
Unity -- http://unity3d.com/
Cocoa2d -- http://www.cocos2d-iphone.org/
Depending on what you are looking, all of them has nice docs that you can go through about their capabilities.
Followup question to comments here
My impression had been that Mono is a science project. Is that inaccurate? Extra credit for recounting personal usage.
My impression had been that Mono is a
science project. Is that inaccurate?
That is correct. A simple Wikipedia search gives details on the Mono project:
"Mono is a project created as an entry for Paul Revere High School's 2005 Science Fair, located on the west side of Boston. Although judges responded favorably to the project, it did not win or place in the fair. Its creator, Miguel de Icaza, received a B+ for his entry."
completely inaccurate.
mono is an implementation of a spec (just like .net is another implementation). its extremely complete and very usable.
I'm working on an asp.net mvc project that's being written in monodevelop and running in xsp2 (for now. I will probably set up an apache with mod_mono).
I've been a .net/mono guy for about 5-6 years and here are some things I've worked on:
instrumentation devices that work over gpib/serial/usb to do fiberoptics testing, moving robot arms, etc
networking tools
projects when I was in school in command line, AND in windows forms.
personal projects
image processing tools
monotouch to write iphone apps
I also use monodevelop as my main c# development platform. I do have visual studio 2008, but I prefer monodevelop as its lighter and runs on my mac.
Sure it's a science project. Just like Lisp, the Universal Turing Machine, REST, HTTP 1.1, google, and the basic idea that if we can treat functions as data and vice-versa then it should be possible to create programmable computing machines. Such machines could almost be called "computers" because they would be able to do much the same jobs as computers - the people hired in corporations and govt. departments to do mathematical calculations. Perhaps they'd even open up possibilities of doing things that a team of clerks with slide-rules couldn't do.
Starting as a science project doesn't mean the most it can ever achieve is a blue ribbon and an A+.
This page on the Mono site lists the applications published using Mono:
http://www.mono-project.com/Software
Some quite well-known ones include Unity3D, SourceGear Vault and Sims3.
I built a javascript interpreter/compiler with F# on an Ubuntu workstation and compiled it with Mono! Mono saved me from using Windows to develop my application.
Mono is not a science project and is used in many real-world applications.
It is an implementation of the Common Language Infrastructure ECMA standard.
See this list on the mono site.
It is used by wikis, SCMs, games, game development environments and many online applications.
The best example for me is Unity, it uses Mono/C# as it's scripting language.
Mono is used in a wide of of industries. From gaming (second life) to the embedded industrie.
Maybe it started as a science project, mono is doing it good and will be doing it good (a part is that there has not to be paid license money for some part of the use of it (not embedded part although where there has to be paid fees). Probelley some goodscentance to end: the makers of google started that as a university project too.
So to be answer quick, NO
Hey guys! Don't forget Plastic SCM!! Check the screenshots in the gallery. There are other projects but we do the best graphics :P
Some of our biggest production servers on big, big companies run Mono/Linux. And some even Mono/Solaris... And we rely on Mono for Mac too, of course.
Is there any way possible to run C# code on a BlackBerry OS smartphone? I've got some Windows Mobile 5.x/6.0 frameworks written in C# that my team needs to "port" to various smartphone platform. We're looking at the following smartphone OS's:
Windows Phone 7 - VS 2010, Windows Phone Developer Tool CTP, Silverlight, XNA
iOS - MonoTouch, MonoDevelop IDE
Android - MonoDroid (when released), MonoDevelop IDE, Mono Tools for Visual Studio
BlackBerry OS - ???
Research didn't turn up any other programming options for BlackBerry OS but Java/J2ME. I know it's a long shot but was hoping someone here might know of some other options. At this point, I'd even consider a C#-to-Java translator.
Thanks in advance.
No, your only options for BlackBerry apps are:
J2ME/CLDC native app
BlackBerry widget using Javascript/HTML
Maybe soon, this is from august 09, so maybe late summer?.
We’ve been gathering details over the
past month or so on this, and it’s
pretty much confirmed: Research In
Motion is planning on integrating full
Flash and Microsoft Silverlight
support into their BlackBerry web
browser. Read that again boys and
girls — full Flash support, not Flash
lite. You know when the word
“planning” is used in the same
sentence as RIM, however, that it
probably means it’s a while away. And
it is. We’ve been told this won’t
happen until next summer or right
before it as RIM needs their devices
to be more beefed up as well as have
access to higher data speeds for this
to work effectively (HSPA and LTE).
RIM has already achieved over 10Mbps
downloads on next generation
BlackBerrys in the test labs with test
LTE equipment so it’s looking good,
folks.
I am mainly a java programmer, using linux/os x for as long as i remember. I am extremely comfortable in emacs and usually prefer doing things through command line.
I need to create a internet explorer addon for our next project. I need to intercept url ie is about to download and if they meet certain criteria pass it to our application.
So my questions are,
How can i build a c# project through command line so i can integrate it with our current build process.
Current i have windows 2k installed in a virtual machine that i use for testing. Is there going to be any compatibility problems.
I am assuming i am going to be creating a dll and inject it to ie to intercept url's. Am i on the right track?
Here are responses to your questions:
Use the C# Command Line Compiler. MSDN has an entire section devoted to its use.
Not for an IE add-on. If you plan to do more, using some newer libraries, you may run into problems unless you're running Windows XP or later. For IE addons, 2000 should be fine.
That's the basic idea. I'd refer to the MSDN articles on creating add-ons for IE, such as this one showing how to make custom menus.
Be aware, though, that you'll have a more difficult time if you avoid using Visual Studio (or some other IDE). There is no reason not to use VS, especially since you can use the Express Edition for free. If you're doing that, you can use msbuild instead of csc directly, and it will simplify your build process (even if you build from the command line).
However, the productivity gains from a good IDE will come in handy, especially for C#.
Responses to your questions:
If you use Ant maybe this will help. If you use Maven, maybe this will help. Otherwise, I'd just use MSBuild or NAnt.
Can't say for sure. I would guess that the IE API would be the same on each of the platforms. YMMV.
I'm busy writing an IE addon at work and I'm using SpicIE. It's very straightforward and simplifies the IE API drastically.
I've read in the comments elsewhere that you're not a fan of VS. I would probably use it (or MonoDevelop/SharpDevelop if they can create .csproj) to create the .csproj that can be used as an input to MSBuild. It might save you time rather than having to learn the syntax of the file.
If you give up the IDE, you give up one of the best debuggers on the planet and the best code-completion I've ever seen. Other than the fact that it will be a new system to you, there is no reason to claim that you can develop faster in EMACS. Everything you need is in the IDE, and there are keyboard shortcuts to mostly everything.
If you computer can handle the work load, I really see no good reason not to use Visual Studio.
edit: the newest version of visual studio won't run on anything less than XP sp2, to my recollection. This is most likely because the new versions of .NET won't run on anything lower than that... which would be a huge compatibility problem.
We are at a crossroad as what development tool to use for our application. We do not know if
we will go for Adobe Air or use the traditional road which is Objective-C and Cocoa. The software is similar to www.riffmasterpro in functionality. Is Air the best solution here?
Well, firstly, Flash isn't supported on iPhone so there is no Air platform for iPhone (at least, none that I know of - correct me if I'm wrong).
Secondly, native Objective-C applications on Mac will always surpass Air applications with regards to how well they tie into the OS. An example of this is TweetDeck. It's an amazing application but it just doesn't feel like a Mac app (no meaningful menus, no growl integration, etc...). Mac users are typically very specific with regards to how their apps behave.
I would advise that if you want to write Mac applications (and iPhone applications) to rather stick with Objective-C.
If your primary concern is cross-platform (with the exception of iPhone) then Air is an option worth considering.
If you're looking to build an app solely for the Mac/iPhone platform, I would suggest using Objective-C instead. Adobe AIR's strength is that it can be installed and used cross-platform with little problem.
One of the downsides of that, though, is that performance will never be as good as something that ties directly into the operation system.
problem of using middle frameworks is that you will never have the potential of the hardware, in other worlds you will not be able to use any feature that Mac/Windows can give to you by the hardware, you wll always be attached to what the framework will give to you and hope that you can do everything that you need...
specially in your music application.
regarding the Adobe Air framework, it is a good idea to cover both Linux, Mac and Windows computers but you will not be able to run it under the iPhone because there is no Adobe Flash supported... Adobe is making a flash player for the iPhone, but I do believe that will ot support Air, at least by the near future.
For the iPhone you can build a Web Application or a SDK Application, the last on, and if you will use SDK 3.0, you will find plenty of good things to use it to, but you need to develop a full application from sctrath.