Sonskyn Techno Blog

Thursday, August 31, 2006

Google Code Project

First of all I have setup a new Google Code project to host the development of all the AddIns that I am currently working on and also planning to work on. This is just to make my life easier, by not having to archive source code when posting to the mailing list every time I make a change or fix a bug. The Google Code project, md-addins, is only an incubation center for AddIns and once they are stable enough and has been approved, I would rather see the source code moved to the monodevelop source library. Here is a link to the my Google Code Project

http://code.google.com/p/md-addins/

As per Lluis pervious post I made some changes to the Web References AddIn by replacing the inlined UI code by using static and also using the LanguageBindings for the DotNetProject in the CodeGenerator. This update contains no visible changes for the end user.

I am still looking into and trying to recreate the bug that Lluis has found when accessing a web service over port 8080.

The reason why the Web Reference AddIn requires version 2, is because the generated proxy file fails to compile under the current stable release (1.1.13.6) for version 1.1. I receive the following error when I try to compile the generated Reference.cs

The type or namespace 'AsynchCompletedEventArgs' does not exist in the namespace 'System.ComponentModel'. Are you missing an assembly reference?

This error does not exists when the framework version for the project is set to version 2.

Friday, August 25, 2006

Web Reference AddIn ready for release

I finally finished the last outstanding bug that prevent the AddIn from being released. I added a new event handler to the WebReferenceFolderNodeBuilder class to refresh the parent node whenever a map file is removed from a project. This refresh all the child nodes for the web reference folder node and fix the bug that did not removed the web reference after deleting it. The AddIn is now open for testing.

As usual here are the links to download the source and the patch files.

Wednesday, August 16, 2006

Web Reference AddIn - Alpha 3

I have released Alpha 3 of the Web Reference AddIn for MonoDevelop. Please review and any
feedback is always welcome, especially constructive feedback.

This version include the following changes:
  • Removed the Delete All menu option on the Web Reference folder
  • Changed the version number.
  • Added support for generating the code in VB.NET.
  • Added a method to the Library that checks if the project contains any web references.
  • Optimized the WebReferenceItemCollection construct method by only looping through the project files collection once instead of previously seeking for the specific map file after it found the reference file. This will also sort the problem with VB reference files not being loaded.
  • Check that the project options for the Runtime Version is set to "2.0", if it is set to "1.1" ask the user whether or not to switch to "2.0" automatically. The project build will fail if the Runtime is set to 1.1. Do not add the web reference if the user chooses to keep the runtime version 1.1.
  • Added functionality to add a ProjectReference for System.Web.Services to the project if it does not currently contain a reference. This is required to successfully compile the project.
  • Check if the project contains any web references before it adds the WebReferenceFolder
  • Add a check not to hide the web reference folder if the project options is set to show all
  • Changed the WebReferenceFolderNodeBuilder HasChildNodes method to use the new method to check if a project contains any web references rather than parsing and loading the collection of all web references in a project.
  • Changed the WebReferenceFolderNodeBuilder BuildChildNodes to parse the project when the method is called.
Here is some features/bugs that still needs to be added/fixed before the
AddIn is ready for a Beta release.

  • Add SSL support for the Browser control in the Add Web ReferenceDialog.
  • Refresh the "Web References" node when a web reference has been deleted.
  • Basic Authentication support (DiscoveryNetworkCredential)

Future Releases
  • Allow Web Reference items to be renamed once it has been generated
  • Add copy, cut and paste functionality (clipboard) to copy/move web references to any other project.
  • Add the functionality to render custom html when a wsdl or disco file is viewed in the browser. The intial work for this is already done but need to fix the bug, that does not render the data to the browser control.
  • Add a TreeView Widget on the add dialog to display the available services for the current uri.

Friday, August 11, 2006

MD Web Reference AddIn

As of late I have been working on creating some AddIns for MonoDevelop. I start of porting the Resource Editor from SharpDevelop to MonoDevelop, as entry point to get to know my way around in the MD API. I decided to focus my attention on the Web Reference, seeing as this is a functionality that will be used by more users and is a higher priority. I am glad to annouce that today I have released the Alpha version of the Web Reference AddIn. The alpha version supports the functionality to add, delete and update web references to any dot net project.


Here is a list of things that still needs to be done, before the AddIn is ready for a beta release
  • Add SSL support for the Browser control in the Add Web Reference Dialog.
  • Refresh the "Web References" node when a web reference has been deleted.
  • Add a ProjectReference for System.Web.Services to the project if it does not currently contain a reference. This is required to successfully compile the project.
  • Check that the project options for the Runtime Version is set to "2.0", if it is set to "1.1" ask the user whether or not to switch to "2.0" automatically. The project build will fail if the Runtime is set to 1.1. Do not add the web reference if the user chooses to keep the runtime version 1.1.
  • Allow Web Reference items to be renamed once it has been generated
  • Add copy, cut and paste functionality (clipboard) to copy/move web references to any other project.

Tuesday, March 15, 2005

Too much of a good thing could be a bad thing

Where open source give you a freedom of choice and that is great I do believe that too many options could be a bad thing. If have seen this numerous times where sometimes when a developers find a tool that does not do what they want it to do, they would go off and right their own version, instead of enhancing the original tool in the first place. Sometimes this has to do with the fact that the learning curve of making chances to the original source is higher than it would be to develop it from scratch.

But this action leads to instead of having one product that works with less bugs and issues and more features, you end up with the 2 projects with less features and more bugs. Prime example if this would be the package management tools.
This is one complaint I have heard numerous times, "... but in Microsoft Windows you only have to do this and this and it works, why do have to do this that and this if you want this or if you want that then you need to do that this that that and this in Linux". In the end it just confuses the hell out of the end users and he ends up not using the system at all, no matter how beautiful it is technically. The reason why Microsoft just works (these days)
  • They have unified development team
  • One goal
  • They have one product (be it a Word Editor, Media Player or IDE) but all of these products are feature rich and way less buggy than any open source product I have every used.
Could you imagine uniting all the open source developers around the globe to work on one operating system (kernel), one desktop environment, one office suite, one mail client, one browser, one database server, one VPN client, one package management, one config tool, one IDE, one etc. You would truly have a force that is able to overthrow the market as we know it today.

Where some people might see the number of different Linux distributions as the success of Linux, I see it has its major downfall.
I am not saying lets remove competition or choice but I think the open source market needs to have a global focus instead of branching at every change it gets.
Just a thought!

Enteprise Linux News