#develop (short for SharpDevelop) is a free and open-source IDE for C#, VB.NET and Boo programming language projects on Microsoft’s .NET platform. Of course that Microsoft Visual Studio Express Editions are freeware and are better that this IDE, but with #develop you get a chance to take a look a the source code and who knows, adapt it to develop in another language. #develop in written in C#.
Some time ago I’ve found an nice Silverlight 1.0 application which is now part of Silverlight.net Showcase. It is an open source configurable slide show application. The configuration is made by using XML or inline javacript (using JSON - JavaScript Object Notation).
See the live demo in Vertigo’s website. I had some issues while trying it on Firefox. The problem was Silverlight 1.1 September Alpha Refresh. So, in Internet Explorer it runs well with the 1.1 version, but to run it on Firefox you must have the stable 1.0 version.
The .NET Framework library source code for debugging is now available. Follow the instructions to enable this kind of debugging in Visual Studio in Shawn Burke’s Blog.
Posted on 5:41pm 1/04/2008 by Bruno Silva in .NET, Programming
I’ve found out about a nice C# feature that I didn’t know about. Operator overloading. It allows you to define the operators like +,-,/*,+=,-=,!=,etc. for the classes you develop. How? Just add an static method named operator-<operator> where <operator> can be an operator like +. The first parameter must be of your class type (in this example MyType), the second one can be of any type. Inside the method body you implement the logic associated with your overloaded operator, returning an instance of your class.
The code above allows you to do something like this:
MyType o1 = new MyType(10);
MyType o2 = new MyType(5);
MyType rs = o1 + o2;
Another nice feature is related with cast operations. You can allow something like (int)o1 (where o1 is an instance of MyType) by adding another static method to your MyType class. explicit/implicit keywords define if you must add (type) before your instance to trigger the cast. Implicit does an implicit cast when it is needed. With explicit you must and the (type) to cast.