Creating and Hosting an even more Minimal WCF Service in .NET 4 using F#
Visual Studio 2010 and .NET 4 will include support for a new language called F#. I must admit that you have to learn how to love F#, it’s not that often love at first sight, because you just can’t figure out what is going on. Even though I’m beginning to like F# more and more and who knows… I might even love it some time soon. Today I got the time to think a lot, during a drive to and from a customer of mine, about how it should be to implement my minimal WCF 4 Service using F#, and it turned out to be pretty straight forward. I think I’ll be trying to use more of F# later on.
Notice how I decided to use the F# function printfn to output text to the console instead of Console.WriteLine which I could have used if I’d liked to.
1: open System
2: open System.ServiceModel
3: open System.ServiceModel.Description
4:
5: [<ServiceContract>]
6: type TimeService() =
7: [<OperationContract>]
8: member this.GetTime() =
9: DateTime.Now
10:
11: let main =
12: use host = new ServiceHost(typeof<TimeService>, new Uri("https://localhost:4711"))
13: host.Description.Behaviors.Add(new ServiceMetadataBehavior(HttpGetEnabled = true));
14: host.Open()
15:
16: printfn "Service is up'n running at %s" (host.Description.Endpoints.[0].Address.ToString())
17: printfn "Press any key to shut down service"
18: Console.ReadKey()