Thursday, October 16, 2008

Great post by Omar Al Zabir on regards best practices for creating websites in IIS 6.

This post will demonstrate you step by step how to make your website more scalability and cachable.

http://msmvps.com/blogs/omar/archive/2008/10/04/best-practices-for-creating-websites-in-iis-6-0.aspx

Posted by: Eran Nachum (c)
Post Date: 10/16/2008 10:41:05 AM (Jerusalem Standard Time, UTC+02:00)
Disclaimer | | Trackback   #
 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   #