Close
  • Latest News
  • Artificial Intelligence
  • Video
  • Big Data and Analytics
  • Cloud
  • Networking
  • Cybersecurity
  • Applications
  • IT Management
  • Storage
  • Sponsored
  • Mobile
  • Small Business
  • Development
  • Database
  • Servers
  • Android
  • Apple
  • Innovation
  • Blogs
  • PC Hardware
  • Reviews
  • Search Engines
  • Virtualization
Read Down
Sign in
Close
Welcome!Log into your account
Forgot your password?
Read Down
Password recovery
Recover your password
Close
Search
Logo
Subscribe
Logo
  • Latest News
  • Artificial Intelligence
  • Video
  • Big Data and Analytics
  • Cloud
  • Networking
  • Cybersecurity
  • Applications
  • IT Management
  • Storage
  • Sponsored
  • Mobile
  • Small Business
  • Development
  • Database
  • Servers
  • Android
  • Apple
  • Innovation
  • Blogs
  • PC Hardware
  • Reviews
  • Search Engines
  • Virtualization
More
    Subscribe
    Home Development
    • Development
    • Networking
    • Servers

    REVIEW: MonoDevelop 2.2 Looks Good on Windows

    Written by

    Jeff Cogswell
    Published February 23, 2010
    Share
    Facebook
    Twitter
    Linkedin

      eWEEK content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

      When I first reviewed MonoDevelop in June of 2009, I focused on the IDE running under Ubuntu Linux. At the time, some developers had been working on porting MonoDevelop to Windows, but the project wasn’t complete.

      But now it is. With the release of Version 2.2, MonoDevelop is now officially supported on Windows. And it looks and works great.

      For a look at MonoDevelop 2.2 in action, click here.

      The GUI is tight. It’s fast and easy to get around in. The code editor is excellent, including everything you’d expect in a modern code editor, such as full syntax highlighting and a code completion menu that pops up. The code completion pop-up includes functions, variables and members from your own code (which means the code completion is accurately parsing your code).

      There’s a Solution window that shows all the files in your project, as well as a complete debugger that features all the usual suspects: breakpoints, inspectors and so on. (The debugger even lets you put expressions in the watch window, which can result in side effects, as the expressions in your code actually get called if you use them in the watch window. In other words, if you write a property accessor, for example, and use the accessor in the watch window and if your accessor has side effects, such side effects will happen as a result of the watch window calling the accessor code. But used carefully with well-written code that avoids side effects, this can be a powerful feature in a debugger such as this one.)

      Does It Match Visual Studio?

      Certainly, different people reading this review will have different expectations of a product like MonoDevelop. Some might be looking for a complete replacement for Visual Studio. Those people might be disappointed; Visual Studio has some fantastic features that aren’t yet available in MonoDevelop, such as direct access to SQL Server, including the ability to edit table schemas, table data and stored procedures right within the IDE. So in this regard, if you’re looking for a free drop-in replacement for Visual Studio, you won’t find it. (In that case, you’ll want to instead explore the Visual Studio Express editions, which are free-but are also limited and don’t have the full Visual Studio features.)

      But if, instead, what you’re looking for is a pretty sweet IDE for developing .NET software that can target the GTK framework, Mono, and from there port to other operating systems, then you’ll be pleased. And while at it, you can target the .NET framework itself without requiring your end users to install Mono. That’s not so bad either. If that’s what you’re looking for, MonoDevelop will certainly deliver.

      Targeting Both .NET and Mono

      Targeting Both .NET and Mono

      In order to run MonoDevelop 2.2 on Windows, you need to first download and install GTK#, which is a set of .NET bindings for GTK+, the cross-platform open-source GUI tool popular on Linux and several other platforms. That installation is quick and painless, and once done, you then download and install MonoDevelop 2.2, which is also quick and painless. (You don’t have to install Mono itself if you don’t want to, in which case you’ll be developing for .NET instead of Mono. Yup, you read that right.)

      And with MonoDevelop, you can target both Mono and the built-in Microsoft .NET framework. When you run your compiled program, there’s a menu option that lets you choose which platform to run it under. To make this work, though, you need to download and install the complete Mono runtime, which is a separate download from MonoDevelop. (Otherwise you won’t see multiple choices in the menu; you’ll only see one for Microsoft .NET.)

      However, technically, you’re not exactly “targeting” different platforms; your executable file doesn’t change based on the target you choose. The only difference is that your executable either runs by itself (which puts it under the Microsoft .NET platform) or it runs as a parameter to the Mono.exe program, which runs it under the Mono platform. The executable itself isn’t built or compiled differently based on the two platforms. The reason that works is the executable is actually a .NET assembly that contains compiled bytecode stored as data. When you run a .NET executable, there’s some startup code that’s also present in the executable file that executes, launches the .NET runtime and then runs the bytecode stored in the data.

      If instead you run the Mono.exe program, passing your executable as a parameter, the startup code isn’t run-Mono.exe launches the Mono runtime, which then reads the exact same bytecode and runs it under Mono. Voila! (In fact, you can take most .NET executables and run them under Mono by simply passing the executable name as a parameter to the Mono.exe program.)

      Nice Window Designer

      The window designer is quite nice. Similar to Visual Studio and other RAD (rapid application development) tools such as Delphi, you have a window and a toolbox, and you can drag controls from the toolbox onto the window, and then set their properties. At the bottom of the source code window for window classes are two tabs, Source Code and Designer. Technically, these don’t give you two different views of the same thing; rather, Designer is for layout, and Source Code is for accompanying code such as button event handlers.

      For some reason, by default, the Toolbox and Properties windows weren’t present when I opened Designer. But they were easy to find under the View menu. And if you’re coming from a Visual Studio background, you might be a little startled to be working in GTK# instead of the usual WinForms world of Visual Studio. With MonoDevelop, by default your windowing applications target GTK#, and so the toolbox is arranged accordingly.

      The layout mechanism works as per GTK# rules. You can’t just drop a button on the form; first you have to drop a layout and then drop your controls. And similarly, when you want to create, for example, a button handler, you don’t double-click the button on the form (nothing happens). Instead, you go to the Properties window and click the Signals tab. (In the GTK world, you use signals, which are effectively the same as events.) But this is easy: You just double-click the event-er, I mean signal-name, and Designer will switch to your code view and automatically insert a handler function for you that you can fill in with your own code.

      But if you’re watching closely, you might wonder something regarding GTK# and the .NET framework. I mentioned that ultimately you’re building a .NET executable that contains .NET startup code and compiled bytecode. But what if you’re using GTK#? That’s not automatically part of .NET, right? Correct, but you’re fine. GTK# can run under .NET as well as Mono. And that means your compiled GTK# GUI application can run under either .NET or Mono. Of course, that does introduce a caveat: If you plan to deploy your GUI application, the target machine needs to have GTK# installed. (I’d like to petition Microsoft to ship GTK# with all Windows machines. One can dream.)

      Different Project Types

      Different Project Types

      The early days of Mono left a lot to be desired. But in the past couple of years, Mono has really plowed forward with support for many things .NET developers wanted, including ASP.NET and LINQ. And with MonoDevelop, you have access to such features. This makes MonoDevelop compelling indeed.

      For example, I was able to quickly create an ASP.NET application using the ASP.NET project template. Although MonoDevelop on Windows doesn’t at this time support a toolbox for ASP.NET (but one is likely to be present in a future version, as there is one for Linux), you can, nevertheless, make use of all the usual ASP.NET server-side controls in your code.

      And truth be told, as an ASP.NET developer, I very rarely touch the toolbox in Microsoft Visual Studio. Much of my coding takes place in the C# files, so I don’t even miss the toolbox. However, I’m well aware that many ASP.NET developers would disagree with my sentiments and would like to see a toolbox.

      Still, what you do get is a nice code completion feature. If you’re editing an .aspx file, you can type “<asp” and you’ll see a list box appear showing you all the server-side tags at your disposal that are all in the “asp” namespace.

      Here’s the full list of what comes built into the Windows version of MonoDevelop at the time of this writing: C# (console application and GTK# 2.0 GUI application), ASP.NET (Web application or ASP.NET MVC), Moonlight (still in beta, but it’s already pretty nice), NUnit, so-called samples (for Glade# and Gnome# projects), IL, packaging projects and a set of VB.NET projects similar to the C# ones (including ASP.NET but no MVC).

      Jeff Cogswell
      Jeff Cogswell
      Jeff Cogswell is the author of Designing Highly Useable Software (http://www.amazon.com/dp/0782143016) among other books and is the owner/operator of CogsMedia Training and Consulting.Currently Jeff is a senior editor with Ziff Davis Enterprise. Prior to joining Ziff, he spent about 15 years as a software engineer, working on Windows and Unix systems, mastering C++, PHP, and ASP.NET development. He has written over a dozen books.

      Get the Free Newsletter!

      Subscribe to Daily Tech Insider for top news, trends & analysis

      Get the Free Newsletter!

      Subscribe to Daily Tech Insider for top news, trends & analysis

      MOST POPULAR ARTICLES

      Artificial Intelligence

      9 Best AI 3D Generators You Need...

      Sam Rinko - June 25, 2024 0
      AI 3D Generators are powerful tools for many different industries. Discover the best AI 3D Generators, and learn which is best for your specific use case.
      Read more
      Cloud

      RingCentral Expands Its Collaboration Platform

      Zeus Kerravala - November 22, 2023 0
      RingCentral adds AI-enabled contact center and hybrid event products to its suite of collaboration services.
      Read more
      Artificial Intelligence

      8 Best AI Data Analytics Software &...

      Aminu Abdullahi - January 18, 2024 0
      Learn the top AI data analytics software to use. Compare AI data analytics solutions & features to make the best choice for your business.
      Read more
      Latest News

      Zeus Kerravala on Networking: Multicloud, 5G, and...

      James Maguire - December 16, 2022 0
      I spoke with Zeus Kerravala, industry analyst at ZK Research, about the rapid changes in enterprise networking, as tech advances and digital transformation prompt...
      Read more
      Video

      Datadog President Amit Agarwal on Trends in...

      James Maguire - November 11, 2022 0
      I spoke with Amit Agarwal, President of Datadog, about infrastructure observability, from current trends to key challenges to the future of this rapidly growing...
      Read more
      Logo

      eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site’s focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

      Facebook
      Linkedin
      RSS
      Twitter
      Youtube

      Advertisers

      Advertise with TechnologyAdvice on eWeek and our other IT-focused platforms.

      Advertise with Us

      Menu

      • About eWeek
      • Subscribe to our Newsletter
      • Latest News

      Our Brands

      • Privacy Policy
      • Terms
      • About
      • Contact
      • Advertise
      • Sitemap
      • California – Do Not Sell My Information

      Property of TechnologyAdvice.
      © 2024 TechnologyAdvice. All Rights Reserved

      Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.