161
I Use This!
Inactive

News

Analyzed about 23 hours ago. based on code collected 1 day ago.
Posted about 19 years ago by MattWard
SharpDevelop 2.1 now supports incremental searching. For those of you who have used Visual Studio, the incremental search works in a similar way. First you enter incremental search mode, then type in the search text. As you ... [More] type in each character the document is searched from the current cursor position and the first match it finds is highlighted.FeaturesCtrl E enables incremental searching. The search will start from the current cursor position and move down the document.Ctrl Shift E enables reverse incremental searching. The search will start from the current position and move up the documentAs each character is typed in the corresponding matching text is highlighted in the document.Any text selected before the incremental search is start will become the first part of the searched for text.If the string is not found an error message is displayed in the status bar.Pressing the Backspace key removes the last character from the search string.Pressing the Escape or Enter key stops the incremental search.If the search text contains only lower case characters the search will be case insensitive. If the search text contains an upper case character then the search is case sensitive.Searching IncrementallyPosition the cursor at the location where you want the search to start from.Enable the incremental search either by selecting the Incremental Search from the Search menu or by using the keyboard shortcut Ctrl E.The mouse cursor over the text editor will then be changed to the Incremental Search icon to indicate that you have enabled the search.The status bar text will change to "Incremental Search".Type in a character and the first match below the current cursor position will be highlighted. The search text is also displayed in the status bar.As you type in characters the search text is changed and matching text is highlighted. If the search text cannot be found the status bar text will show an error message.The search is case insensitive if all the characters of the search text are lower case. If any character is upper case then the search will be case sensitive.If the first character typed in does not match anything below the cursor but can be found above the cursor position, at the start of the document, then the match will be highlighted and the status bar will show a warning message informing you that the end of the document has been passed. In the screenshot below the cursor was put at the end of the document and then the incremental search was started.To stop the incremental search press the Escape or Enter key.Reverse Incremental SearchThe reverse incremental search will search from the current cursor position to the start of the document.Enable the reverse incremental search either by selecting the Reverse Incremental Search from the Search menu or by using the keyboard shortcut Ctrl Shift E.The mouse cursor will then be changed to the Reverse Incremental Search icon to indicate that you have enabled the search. The status bar text will also be changed to "Reverse Incremental Search".As you type a character the matching text will be highlighted and the search text will be shown in the status bar.To stop searching press the Escape or Enter key.Visual Studio ComparisonThe differences between the SharpDevelop's and Visual Studio's incremental search.FeatureSharpDevelopVisual StudioShortcutsCtrl E, Ctrl Shift ECtrl I, Ctrl Shift ICase sensitive searchAn upper case character in the search string makes the search case sensitive.Select the Match case option in the Find dialog. [Less]
Posted about 19 years ago by MattWard
Chris just announced in the forums that the build server is now up and running for SharpDevelop 2.1. This includes a new installer for SharpDevelop using WiX rather than NSIS. If there are any problems with this ... [More] installer please report them in the forum. Installing The installer is now an MSI file and not an executable as it was previously. To install, download the MSI file and then double click it to install, or right click the file and select Install. If you install under an account with Administrator privileges SharpDevelop will be installed for All Users. You can install SharpDevelop under a non-privileged account, however the following things will not be done: NGen is not run on SharpDevelop.exe. NUnit is not installed in the GAC. Without this the Unit Testing window cannot be used. Uninstalling Open the Control Panel. Select Add or Remove Programs. Select SharpDevelop 2.1. Click the Remove button. Upgrading The new installer now supports upgrades and will upgrade an old SharpDevelop 2.1 if it finds one. To upgrade simply run the new installer without uninstalling the previous version of SharpDevelop. You cannot install an older version over the top of an existing installation (i.e. downgrade). You can install SharpDevelop 2 alongside SharpDevelop 2.1. What does the Installer do? Installs the SharpDevelop files. Adds a desktop shortcut to the SharpDevelop executable. Adds program menu shortcuts for SharpDevelop and a link to the SharpDevelop website. NGens the SharpDevelop executable (Admin only). Installs NUnit into the GAC (Admin only). Registers file associations for: .booproj .cmbx .csproj .prjx .sdaddin .sln .vbproj .wixproj .xfrm Future Improvements The following improvements should hopefully be added to the installer at some point. Optional file assocation with SharpDevelop. Choose UI language. Choose name of program group. Option to install source code. Check if optional components (e.g. FxCop, NCover) are installed and advise the user to install them to activate certain features inside SharpDevelop. [Less]
Posted about 19 years ago by dikon
About the Project I'm currently working on a plug-in for #D the primary intention of which is to provide some tools to work with databases from within #D, and to issue and manipulate queries. As the work has progressed it looks like it would be a ... [More] good idea, and not too difficult, to extend the basic Pad to provide server browsing and management functionality, similar to VS2005.The initial aim of the plugin is to provide tools pretty similar to the DTP project in Eclipse, but not to write them nearly as much from the ground up (which is the approach the DTP project seem to have taken - fair enough since they have a good amount of resource to put behind it!).The principles I am trying to stick to are:exploit, and remain consistent with, the .net 2.0 generic db provider framework - this has given me a pretty good start since it very effectively genericizes the access to data sources using a nice factory-based design, as well as providing a (hopefully) fairly generic metadata interfacekeep view and model as cleanly separated as possible (in the style of MVC, although WinForms seems to require you to adlib a little there) - I have tried to adopt and remain consistent with the service-based approach used elsewhere in #D, which so far is working pretty wellwhere I need to extend or build on the .net 2.0 provider framework to remain consistent with the way in which this works. This means (as elaborated a in a little bit later) creating factories for a variety of artefacts using the Invariant Name as the parameter to them. Not surprisingly this is pretty complex since there is a lot of vendor specific information relating to each db server - ranging from vendor specific metadata types to variations in SQL grammar to differences in the way in which server-instance and database-instances are referred to. This will probably end up being something a bit like the 'knowledge pack' concept that you see in dbArtisan.Similarly to the DTP project I am hoping to make it possible to work either against an actual datasource, or disconnected from the source, by caching the metadata from the data source (using the remarkably powerful DataSet).The basic phases of the work are probably something like:connection management and metadata browsing tool - a prototypical version is done (see below), but this has a way to go. Quite a lot of the framework concepts are emerging while doing thisdatabase object inspection, probably using nice drag-and-drop featuresSQL query and DDL editingsome funky typed DataSet stuff...along with 4: incorporation of data sources into projects via the app.config file - actually it might be possible to do this earlier rather than laterWhere it has got toVery prototypical phase 1 functionality available in build 1699 of #D 2.1 (currently only available via Subversion I believe):Some initial thoughts on the classes involved looks like the following, although there are a number of classes required to manufacture vendor specific metadata etc that I need to add to this: [Less]
Posted about 19 years ago by MattWard
The XML Editor in SharpDevelop 2.1 now can has Go To XML Schema Definition support....(read more)
Posted about 19 years ago by MattWard
SharpDevelop 2.1 now has an XPath Query window where you can run an XPath query on the active XML document and the matched nodes will be highlighted....(read more)
Posted over 19 years ago by MattWard
Starting the Component InspectorThe Component Inspector can either be run as a separate application or inside SharpDevelop. The standalone Component Inspector application can be found in the bin\Tools\ComponentInspector folder. The Component ... [More] Inspector integrated into SharpDevelop can be viewed by selecting the menu option Tools | Component Inspector. The user interfaces are essentially the same for both the standalone Component Inspector and the integrated version so the rest of the information presented here will specifically refer to the integrated Component Inspector.Opening an AssemblyYou can open an Assembly into the Component Inspector by either selecting the menu option Inspector | Open Assembly and then browsing to the file, or by dragging the assembly from Windows Explorer onto the Component Inspector. The opened assembly is then displayed in the Assemblies/Types View and its methods, fields, properties and events can be browsed.Previously opened assemblies are remembered by the Component Inspector and it will also show all assemblies that have been opened by SharpDevelop.Creating an ObjectTo create an object, select a class in the Assembly View, right click and select Create Object, or, if it is a control, drag it to the design surface. When an object has been created it appears in the Objects panel. The screenshot below shows two created objects, System.Xml.XmlDocument and NAnt.Core.Tasks.AttribTask.Creating an Object with Overloaded ConstructorsIf you try to create an object that has several constructors you will be prompted to choose one. If you picked one that requires no parameters then the object will be created. If it requires parameters the selected constructor will be displayed in the Parameters panel where you can supply the parameters. Alternatively you can select the constructor required from the Assemblies panel and click the Create Object button in the Parameters panel.When the constructor requires parameters you can specify values in the Parameters panel. Clicking the Create Object button will then create an object and display it in the Objects panel. The screenshot below shows one of the System.Net.Uri class constructors selected, the url and UriKind have been entered into the Parameters panel before the object was created.The Parameters panel also allows you to use objects already created and being displayed in the Objects panel. The screenshot below shows the use of the previously created Uri object being passed in to construct another Uri object.Adding an Object to a CollectionOnce you have created a collection object, a type that implements IList, for example the System.Collections.Specialized.StringCollection class, you can then create an object and it to the collection. To add the object to the collection, select the newly created object in the Objects panel, then cut and paste the object into the collection object.Creating a ControlIf you have a class that is derived from System.Windows.Forms.Control it will be created and displayed on the design surface as well as being added to the Objects panel. To create a control object, select the class in the Assemblies panel, then either drag it to the design surface, or right click and select Create Object, or click the Create Object in the Parameters panel. The screenshot below shows a System.Windows.Forms.Form object created and displayed on the design surface.Running an ApplicationAs well as being able to create objects from an assembly you can also run a .NET application from inside the Component Inspector. An assembly that can be executed is displayed with bold text in the Assemblies panel. Select the assembly, right click and select Create Object in the same way that you would create an object. When the application has been started the object passed to the System.Windows.Forms.Application.Run method is added to the Objects panel and can be inspected.Inspecting ObjectsOnce an object has been created you can modify its fields, properties, call its methods and monitor its events.Setting a Field Browse to the field in the Objects panel and then you can modify the field value from the Parameters panel. Set the field to the value you want and then click the Set Field button. Setting a PropertyChanging the value of a property is done in the same way as with a field, select the property in the Objects panel, modify the value in the Parameters panel and then click the Set Prop button.Invoking a MethodCreated objects can have their methods invoked or executed. From the Objects panel, select the method, enter any parameters required in the Parameters panel, and then click the Invoke Method button. If the method has a return value the result will be shown as the method node's value.Removing an ObjectTo remove an object select it from the Objects panel, right click and select the Delete menu option. This can be used to remove an object from a collection or from the top level objects displayed in the Objects panel.Event LoggingYou can log an individual event or all events for an object. Events being monitored are added to the Events Being Logged Panel. Log entries are added to the Event Log panel.To log an individual event, select the event in the Objects panel, right click and select the Event Logging menu option. To log all events for an object, select the object (not an event) in the Objects panel, right click and select the Event Logging menu option. All the events will then be added to the Events Being Logged panel.The "Inc" column is the incarnation number and tells you what events occur due to a single action. The MouseDown event usually causes a Click event so these are given the same incarnation number.SearchingThe Component Inspector can search the Objects panel and the Assemblies panel. To open up the search dialog select the menu option Inspector | Find.Opening a Type Library or ActiveX ControlA type library or ActiveX Control can be opened inside the Component Inspector either from the ActiveX panel, by selecting one of the type library nodes and expanding it, or by dragging the file from Windows Explorer onto the Component Inspector. Once opened the type library is added to the Favourite/Recently Acessed Type Libraries tree node in the ActiveX panel.Creating a COM ObjectOnce the type library has been opened an object can be created from any class it defines by selecting the class, right clicking and selecting Create Object. If it is a type library then the object will be added to the Objects panel. If it is an ActiveX control the control will be added to the design surface as well. Once created the object can be inspected and modified from the Objects panel.Closing an AssemblyTo close an assembly, select it in the Assemblies/Types View, and then close the assembly by either right clicking and selecting Close or by selecting the menu option Inspector | Close Assembly. Note that you cannot close assemblies that have been loaded by SharpDevelop itself.Configuring the Component InspectorVarious configuration options for the Component Inspector can be viewed and set by selecting the menu option Tools | Options, then selecting the Component Inspector options.General OptionsFrom this panel you can choose whether to display some extra panels. The Assembly panel shows all opened assemblies. The Controls panel shows all classes that are subclasses of the System.Windows.Forms.Control class. The GAC panel shows the contents of the Global Assembly Cache.The ActiveX/COM options allow you to choose whether the COM objects in the Running Object Table are displayed on starting the Component Inspector and whether properties for COM objects are automatically read when they are displayed or only when they are clicked.Object Tree OptionsThe Object Tree options affect how data is displayed in the Objects panel, allowing you to show or hide properties, methods, events for the objects on display.The "Show member categories" option will group all events together under an Events parent node in the Objects panel. Properties, methods and fields are also grouped together under their own parent group node.The "Show base class categories" option will group all events, methods, fields and properties under a single parent node.You can also specify whether both the above groupings, base class categories and member categories, will only occur if the total number of members exceeds a specified threshold.The "Show Object members in base category" option determine whether the members of the standard base classes, System.Object, System.__ComObject and System.MarshalByRefObject, are always shown for an object in the Objects view.Type Handler OptionsThe Component Inspector has its own special handlers for IEnumerator, IList and EventHandlerList types that display the contained objects in a more user friendly way. The Type Handler options panel allows you to enable or disable the special handling of these types. [Less]
Posted over 19 years ago by MattWard
The Assembly Scout that was part of SharpDevelop 1.1 allowed you to browse through the types in an .NET assembly. It was similar to Lutz Roeder's excellent Reflector, but not as powerful nor as feature rich. With SharpDevelop2 the class browser was ... [More] improved to the point where there was a big overlap between the features provided by the Assembly Scout and the Class Browser. In the Class Browser you can now drill down into a project's references and pull up class and member information, however it is missing some of the features provided by the Assembly Scout. Searching for methods. Viewing resources. ILasm view. Since there is an overlap between these two, and Reflector being freely available, the Assembly Scout was not ported over. Christoph Wille suggested that the Assembly Scout be developed along the lines that the .NET Component Inspector by Oakland Software had been developed. By a strange coincidence a few weeks later there was a post on the SharpDevelop forums, by Francis Upton from Oakland Software, asking whether there was any interest in incorporating their Inspector products into SharpDevelop. Oakland Software had developed a .NET Component Inspector and ActiveX/COM Inspector about 3 years ago, but they no longer worked on these products and were considering making them open source if there is was any interest. Component Inspector SharpDevelop 2.1 now includes an integrated Component Inspector and a standalone Component Inspector application. This includes the functionality of both of the originally separate .NET and ActiveX Inspectors written by Oakland Software. Features Explore and search classes and types from any .NET assembly or COM component. Trace events on any object. Create any object from an assembly. Create controls on the design surface, move, resize or embed them in other Controls; Search for types or object content. Examine or alter any field or property in the created objects. Execute any method on the created objects Execute an application, class, or control without writing any code.     Thanks to Francis Upton and Oakland Software for donating this software to the SharpDevelop project. [Less]
Posted over 19 years ago by OliverRau
Hi there, long time no see, but now I have a realy interesting issue for blogging. Currently there is a project at my UAS for which I and some fellow students want to realize a ERP-Framework (Enterprise Resource Planning aka Warenwirtschaft in ... [More] German). The idea behind it is, that we build Add-Ins on the #D Core for functionalities like database access, user rigths management etc.. On top of these, we will build plugins for the real ERP stuff, like customer management, invoice system and so on. Currently we are in the planning stage and thought we ask the community, how it thinks about that idea. At the moment there is no thinking about positioning the software on the market, it's just about producibility. I'm looking forward to read your comments. Regards, Oliver [Less]
Posted over 19 years ago by MattWard
SharpDevelop 2.1, revision 1157, allows VB.NET projects to target the older Microsoft Frameworks and Mono. This extends Daniel's previous work to target different frameworks with C#. SharpDevelop 2.1 is only available from the repository. To ... [More] target a different framework, open the project's "Compiling" options (Project | Project Options | Compiling) and select the desired framework from the "Target Framework" drop down list. MonoBASIC When Mono is targeted, the MonoBASIC compiler (mbas) will be used.  This compiler is still under going a lot development, so there are a few things that are missing or have incomplete support.  One omission, for example, is that it will not embed resources into an assembly. SharpDevelop now contains Gtk# project and file templates for VB.NET.  There is no Glade# project template for VB.NET since MonoBASIC does not currently support embedded resources. Issues There are a few things to be aware of when using SharpDevelop to target the older frameworks. Code completion for certain core assemblies will only show .NET 2.0 information.  These core assemblies are: mscorlib System System.Data System.Design System.DirectoryServices System.Drawing System.Web.Services System.Windows.Forms System.Xml Microsoft.Build.Engine Microsoft.Build.Framework The Forms Designer will generate .NET 2.0 code only. The Forms Designer will generate .NET 2.0 specific resources. Alternative Solutions Robert McLaws produced an MSBuild toolkit for Visual Studio 2005 RC, but this does not look like it supports the latest version of Visual Studio. Jomo Fisher produced a targets file, for C# projects, that can be used to target the older Microsoft frameworks.  This targets file is a sample that supports Visual Studio beta 2. Microsoft recently released an MSBuild toolkit for .NET 1.1 called MSBee.  This adds support for targeting .NET 1.1 with VB.NET as well as C# projects.  It will also generate .NET 1.x resources from .NET 2.0 resx files. [Update 30 August 2006]  From version 1.1.17 Mono no longer ships with the MonoBASIC compiler. When the new VB compiler for Mono is released SharpDevelop 2.1 will be updated to support it. [Less]
Posted over 19 years ago by MattWard
Revision 1057 of SharpDevelop2 sees support for code coverage.  You can now run your unit tests and check how much of your code is covered.  To use this feature NCover needs to be installed, the latest release, at the time of this post, was 1.5.2 ... [More] (beta 3).IssuesCurrently NCover 1.5.2 can only be run under an account with administrator rights.  There is a workaround for this problem which you can find at the end of this post.  NCover 1.5.3 no longer has this problem and can be run from a non-administrator account without requiring a workaround.Running Tests with Code CoverageTo see how to use the code coverage feature in SharpDevelop we will use the Money test project that ships with NUnit.  First thing to do is to open it up and build it.  Then open up the Unit Tests pad (View | Tools | Unit Tests) and load the unit tests in to the tree view by clicking the Reload button.  Then select the tree node, right click and select "Run tests with code coverage".You can also run the code coverage by right clicking a test fixture name or test method name and selecting "Run with code coverage", which is under the "Unit Testing" menu.After this menu option has been selected, the output window should be displayed and you should see the NCover output as it profiles your assemblies.If any errors were found in your tests, after the profiling has finished, then the Errors window will be displayed. Code Coverage ResultsTo see the code coverage results open the Code Coverage window (View | Tools | Code Coverage).The tree view shows the classes that have been profiled along with the percentage of the code covered. The list view, on the right hand side, shows more detailed output on the lines visited.Double clicking a class or method in the tree view will open up the corresponding source file.  Double clicking a row in the list view will open up the corresponding source file and move the cursor to the appropriate line.The toolbar button at the top left corner of the Code Coverage results allows you to enable/disable the highlighting of the covered source code.  When this option is enabled, opening a source file will highlight the lines of code that have been covered in green, and uncovered lines in red.Code Coverage OptionsThe colours used to highlight the covered code can be changed in the options page (Tools | Options | Tools | Code Coverage).This options page also allows you to specify the location of the NCover console application.  By default SharpDevelop assumes it is installed in "C:\Program Files\NCover".Code Coverage Project OptionsBy default all assemblies that can be profiled will be, this means you will see code coverage for tests as well as your other classes.  To specify which assemblies you want to be profiled, open up the project options (Project | Project Options), select the Code Coverage tab and enter the names of the assemblies you want to be profiled, without the file extension, each delimited by a semi-colon.IssuesThere is currently no way to stop a code coverage run.Can only get code coverage for the entire assembly or assemblies, not individual test fixtures or test methods.Running code coverage from the Unit Tests pad does not update the results in the tree.The path to the test assembly cannot contain any spaces otherwise you will see the message "No MbUnit results file generated" in the Errors window.  NCover seems to strip quotation marks from any arguments passed to the profiled application.Running NCover as non-adminThe only way I could get NCover 1.5.2 to work as non-admin was to re-register the CoverLib COM component.Under an Administrator account, run "regsvr32 coverlib.dll" from the directory where NCover is installed (C:\Program Files\NCover).NCover 1.5.3 no longer has this issue and installs for all users, making it possible to run NCover from a non-admin account without needing this workaround.  LinksNCoverNCover ExplorerCode Coverage in Visual Studio with TestDriven.Net[Update 1st Feb]Added issue, found by Daniel, about the test assembly's path containing any spaces.[Update 15th Feb]Peter Waldschmidt has released NCover 1.5.3 which now installs for all users, so it can be run as non-admin without any workaround.  Added this information to the post. [Less]