SharpDevelop
Encyclopedia
SharpDevelop is a free and open source integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 (IDE) for the Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

, Mono
Mono (software)
Mono, pronounced , is a free and open source project led by Xamarin to create an Ecma standard compliant .NET-compatible set of tools including, among others, a C# compiler and a Common Language Runtime....

, Gtk#
Gtk Sharp
Gtk# is a set of .NET bindings for the GTK+ GUI toolkit and assorted GNOME libraries. The library facilitates building graphical GNOME applications using Mono or any other compliant CLR...

 and Glade# platforms, and supports development in C#, Visual Basic .NET
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...

, Boo, F#, IronPython
IronPython
IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. Thereafter, it was maintained by a small team at Microsoft until...

 and IronRuby
IronRuby
IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET framework. It is implemented on top of the Dynamic Language Runtime , a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things,...

 programming languages
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

.

It was designed as a free and lightweight alternative to Microsoft Visual Studio
Microsoft Visual Studio
Microsoft Visual Studio is an integrated development environment from Microsoft. It is used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all...

, and contains an equivalent feature for almost every essential Visual Studio Express feature, including features for project management, code editing, application compiling and debugging. To allow for easy project migration, SharpDevelop works natively with Visual Studio project and code files. It is able to compile applications for .NET Framework version 2.0, 3.0, 3.5, 4.0 and the .NET Compact Framework 2.0 and 3.5.

Although not as widespread as the Visual Studio line of products, SharpDevelop is fairly popular and has been downloaded at least 6 million times worldwide, and has been documented in the book Dissecting a C# Application: Inside SharpDevelop (2003) published by its creators.

SharpDevelop is written entirely in C# and consists of about 20 components that integrate to form the application. The source code editor
Source code editor
A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment ....

 component is known as AvalonEdit and can be utilized by others applications. Early in its development the project was split for Mono
Mono (software)
Mono, pronounced , is a free and open source project led by Xamarin to create an Ecma standard compliant .NET-compatible set of tools including, among others, a C# compiler and a Common Language Runtime....

 and Gtk# development into the MonoDevelop
MonoDevelop
MonoDevelop is an open source integrated development environment for the Linux platform, Mac OS X, and Microsoft Windows, primarily targeted for the development of software that uses both the Mono and Microsoft .NET frameworks...

 project.

Features

SharpDevelop includes features very similar to those found in Visual Studio, or Delphi/Kylix, including a GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 Designer, Code/Design views, Syntax highlighting
Syntax highlighting
Syntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...

, Auto completion
Autocomplete
Autocomplete is a feature provided by many web browsers, e-mail programs, search engine interfaces, source code editors, database query tools, word processors, and command line interpreters. Autocomplete involves the program predicting a word or phrase that the user wants to type in without the...

 menus (similar to IntelliSense
IntelliSense
IntelliSense is Microsoft's implementation of autocompletion, best known for its use in the Microsoft Visual Studio integrated development environment...

) the ability to compile and debug form/console .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 applications, the New Project wizard, Toolbars, Menus, Panels, and a Panel docking system.

SharpDevelop integrates Graphic User Interface Designers for the C#, VB.NET, Boo, and the IronPython and IronRuby languages, using the following GUI technologies:
  • Windows Forms
    Windows Forms
    Windows Forms is the name given to the graphical application programming interface included as a part of Microsoft .NET Framework, providing access to native Microsoft Windows interface elements by wrapping the extant Windows API in managed code...

  • Windows Presentation Foundation
    Windows Presentation Foundation
    Developed by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...

     (WPF)
  • Entity Framework


SharpDevelop has in-built refactoring tools, such as to create or modify functions and properties. It has an integrated debugger that allows for stepping, viewing values of objects in memory, and breakpoints.

It also includes functionality for:
  • External COM
    COM
    COM is the original, yet still common, name of the serial port interface on IBM PC-compatible computers. It might not only refer to physical ports, but also to virtual ports, such as ports created by bluetooth or USB-to-Serial adapters....

     and ActiveX
    ActiveX
    ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....

     components
  • Code Analysis (FxCop)
  • Unit Testing (NUnit)
  • Code Coverage (PartCover)
  • Profiler
  • Subversion
    Subversion
    Apache Subversion is a software versioning and a revision control system distributed under a free license. Developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation...

     (TortoiseSVN)
  • Git
    Git
    Git may refer to:* Git , a British English term of abuse* Git , a distributed version control system* Git , by Skeletons & The Girl-Faced Boys...

  • Mercurial
    Mercurial
    Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux...

  • StyleCop addin
  • Documentation generation (Sandcastle, SHFB)
  • Plugins

Architecture

SharpDevelop uses its own parsers for C# and VB.NET code completion. The parsers were generated using a grammar description and a modified version of the Coco/R
Coco/R
Coco/R is a compiler generator that takes an L-attributed Extended Backus–Naur Form grammar of a source language and generates a scanner and a parser for that language....

 compiler generator of the University of Linz, which is included in the source code. For Boo, the parser from the Boo compiler is used, but resolving the type of expressions and type inference is done with custom code that supports lazy evaluation of the types.

The integrated SharpDevelop debugger uses its own debugging library that communicates with the Microsoft .NET runtime using COM interop. SharpDevelop 4.0 has been rewritten to have a full WPF
Windows Presentation Foundation
Developed by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...

 interface and is based on .NET 4.0. It also uses Microsoft's new MSBuild
MSBuild
MSBuild is a Microsoft build platform typically used in conjunction with Visual Studio. MSBuild version 2.0 is part of .NET Framework 2.0 and works together with Visual Studio 2005...

 API.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK