Monday, October 13, 2008

Mono 2.0 is a portable and open source implementation of the .NET framework for Unix, Windows, MacOS and other operating systems.

What is Mono?
Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft's .Net Framework based on the ECMA standards for C# and the Common Language Runtime.
According to Novell: "We feel that by embracing a successful, standardized software platform, we can lower the barriers to producing great applications for Linux".

The components that make up Mono are:
C# Compiler - The C# compiler is feature complete for compiling C# 1.0 and 2.0 (ECMA), and also contains many of the C# 3.0 features.
Mono Runtime - The runtime implements the ECMA Common Language Infrastructure (CLI). The runtime provides a Just-in-Time (JIT) compiler, an Ahead-of-Time compiler (AOT), a library loader, the garbage collector, a threading system and interoperability functionality.
Base Class Library - The Mono platform provides a comprehensive set of classes that provide a solid foundation to build applications on. These classes are compatible with Microsoft's .Net Framework classes.
Mono Class Library - Mono also provides many classes that go above and beyond the Base Class Library provided by Microsoft. These provide additional functionality that are useful, especially in building Linux applications. Some examples are classes for Gtk+, Zip files, LDAP, OpenGL, Cairo, POSIX, etc.

The benefits are:
Popularity - Built on the success of .Net, there are millions of developers that have experience building applications in C#. There are also tens of thousands of books, websites, tutorials, and example source code to help with any imaginable problem.
Higher-Level Programming - All Mono languages benefit from many features of the runtime, like automatic memory management, reflection, generics, and threading. These features allow you to concentrate on writing your application instead of writing system infrastructure code.
Base Class Library - Having a comprehensive class library provides thousands of built in classes to increase productivity. Need socket code or a hashtable? There's no need to write your own as it's built into the platform.
Cross Platform - Mono is built to be cross platform. Mono runs on Linux, Microsoft Windows, Mac OS X, BSD, and Sun Solaris, Nintendo Wii, Apple iPhone. It also runs on x86, x86-64, IA64, PowerPC, SPARC (32), ARM, Alpha, s390, s390x (32 and 64 bits) and more. Developing your application with Mono allows you to run on nearly any computer in existance (details).
Common Language Runtime (CLR) - The CLR allows you to choose the programming language you like best to work with, and it can interoperate with code written in any other CLR language. For example, you can write a class in C#, inherit from it in VB.Net, and use it in Eiffel. You can choose to write code in Mono in a variety of programming languages.

In order to view the Mono 2.0 Release Notes click here.

C# | Code | Other
Posted by: Eran Nachum (c)
Post Date: 10/13/2008 8:57:49 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Sunday, October 12, 2008

Whether you are a software developer, student or just a guy, attached below a link that gathers great 6 websites that allows you to download great ebooks entirly free.

Enjoy... :)

http://www.makeuseof.com/tag/the-best-6-sites-to-get-free-ebooks/

Posted by: Eran Nachum (c)
Post Date: 10/12/2008 9:01:50 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Friday, October 10, 2008

Microsoft come out with a new paper of comparing performance of WS in Microsoft platform and on IBM WebSphere.
MS comes out better (the purple bars graph) but then that is not surprising since this is an MS paper :-)

 

An interesting point is to see the comparison of different WCF configurations. Using NET-TCP gives almost double performance then using HTTP and self hosting http also gives a bit more then IIS hosted services.

 

Another significant point is that they calculated performance you get for what you pay for it and then MS solutions comes out the better deal by a few scales (the graph with the green bars).

More details in the spec here

Posted by: Eran Nachum (c)
Post Date: 10/10/2008 9:07:35 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Tuesday, September 23, 2008

This occures after copy&paste action - strange isn't it huh?

Posted by: Eran Nachum (c)
Post Date: 9/23/2008 2:50:28 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Sunday, September 14, 2008

Check this out - http://java.dzone.com/videos/video-hug-a-developer-today

So sad and true...

Funny | Life
Posted by: Eran Nachum (c)
Post Date: 9/14/2008 3:10:15 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Wednesday, September 10, 2008

I am building these days another WCF service in order to perfom some actions, but the different between this WCF than others is that I have a base class that implements and describes common peroperties fro the derived classes, because I want to perfom actions generically.

Now, when I called the service method and sending the generic base class (that 'holds' the explicit class type of course) I bimped into a CommunicationException that claimed that the service failed to serialize thet the specific parameter that has been sent.

The solution for this failure is to add KnownType attribute above the base entity in order to specify types that should be recognized by the DataContractSerializer when serializing or deserializing a given type.

Some code snippet:

[DataContract]
[KnownType(typeof(User))]
public abstract class Entity
{
   [DataMember(IsRequired = true)]
   public int Id { get; set; }

   [DataMember(IsRequired = true)]
   public string Name { get; set; }

   public Entity() { }
}

[DataContract]
public class User : Entity
{
   [DataMember(IsRequired = true)]
   public List<string> PossibleActions { get; set; }
}

This should solve the problem in the definition of KnownType in the base class. Now you can call your service method using non excplicit type (Entity) smoothly.

WCF
Posted by: Eran Nachum (c)
Post Date: 9/10/2008 9:50:55 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Wednesday, June 18, 2008

Long time no written.... I know - have lot of work on my head, on daily work, on allrise.com, on other things that on my mind - but I love it, I love to be busy, the disadvantage of it is the fact that the when you're busy the time runs too fast (mmm.. maybe I'll post a claim about it on allrise.com site).

I bumped into a great post (sent to me by my allrise.com co-founder - Erez Eden) which outlines some great tools to help you develop fatser web pages (I sure of it that you already know some of them, if not - you may take a look and discover it).

You can find it here.

Promise to post some more, I have great materials to share with you.. on the meanwhile bye bye!

Posted by: Eran Nachum (c)
Post Date: 6/18/2008 12:47:23 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 Sunday, May 11, 2008

Congratulations to us!!!

I am (very) excited - I admit it; AllRise.com has been selected as one of the 10 finalist projects to be presented in Startup 2.0 in Barcelona.

As AllRise.com co-founder and CTO, this event and accomplishment is one of a kind, we actually did it after hard work which just started again...

Some information about the competition:

StartUp2.0 is a competition of European web 2.0 sites whose objectives are to promote and reward the European startups (either created or willing to do so in the future) that work in the field of 2.0 technologies.

The number of projects (brands) that were participated in the first election was 174, and only 10 of them (were selected by the jury and bloggers) (which include us) are going to present in the competition itself.

The competition will be set at on May, 21th, wish us good luck!

The official startup 2.0 site is here.

Posted by: Eran Nachum (c)
Post Date: 5/11/2008 3:15:46 PM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #