Welcome to Windows Communication Foundation (WCF)
Top Tasks :

WCF Team Bloggers

Wednesday, August 09, 2006 - Posts

  • HyperCard

    Hypercard was released on this day in 1987 according to Apple Matters . I bring up HyperCard all the time at work, since 1) I love all things Apple (including the Peforma line) 2) I think that it was a milestone on the path that I am treading. When folks ask me what I want to do in my career in this industry, my refrain is well-worn: "To make my mother a programmer". Making enough money to send my kids to college and retire is important, but that is not the high order bit. Simply put, I want everyone to be able to program a computer. In order to do this, I think that there are three high-level things that need to happen (note that I am prone to hyperbole and simplification -- but this is a blog post after all): All the data in the world is accessible programmatically (inset a whole paragraph around security) There is a simple language to express data access, transformation and general computation (this includes the runtime and framework) There is a simple visual tool that folks use to write apps using #1 and #2. I think that HyperCard was a great first step toward #2 and #3, but I haven't seen much progress from the major vendors since then. Visual Studio and Office/VBA are not "mom friendly". As for #1, I would like to think that we have made good progress with Indigo, but there is still a lot of work to do ("Simple things should be simple..."). This is one of the reasons that I am a growing fan of APP. When I talk about my "To make my mom a programmer" goal, I have been told that Bosworth says some similar things (my current bosses worked with Adam previously). I have never meet Adam, but if he is still working on it -- I think this is wonderful. Between Microsoft and Google, someone should be able to make this happen. Oh, one last thing, all of this needs to be able to run on a Mac... Read More...
  • Net.Tcp Port Sharing Sample, Part 3

    I'm presenting a small sample I wrote to demonstrate the port sharing feature. The third part is the test client and example usage. I'm looking for feedback to help make the sample better. Right now, the sample configures the endpoints in code rather than configuration because it uses randomly-generated addresses for the server. I may just tack on the configuration details at the end because other port sharing topics already cover that material. You can use the test client to check that messages are correctly routed to services sharing the port. class client { static void Main( string [] args) { Console.Write( "Enter the service number to test: " ); ushort salt = ushort .Parse(Console.ReadLine()); string address = String.Format( "net.tcp://localhost:5555/calculator/{0}" , salt); ChannelFactory<ICalculator> factory = new ChannelFactory<ICalculator>( new NetTcpBinding()); ICalculator proxy = factory.CreateChannel( new EndpointAddress(address)); // Call the Add service operation. double value1 = 100.00D; double value2 = 15.99D; double result = proxy.Add(value1, value2); Console.WriteLine( "Add({0},{1}) = {2}" , value1, value2, result); // Call the Subtract service operation. value1 = 145.00D; value2 = 76.54D; result = proxy.Subtract(value1, value2); Console.WriteLine( "Subtract({0},{1}) = {2}" , value1, value2, result); // Call the Multiply service operation. value1 = 9.00D; value2 = 81.25D; result = proxy.Multiply(value1, value2); Console.WriteLine( "Multiply({0},{1}) = {2}" , value1, value2, result); // Call the Divide service operation. value1 = 22.00D; value2 = 7.00D; result = proxy.Divide(value1, value2); Console.WriteLine( "Divide({0},{1}) = {2}" , value1, value2, result); Console.WriteLine(); Console.WriteLine( "Press <ENTER> to terminate client." ); Console.ReadLine(); factory.Close(); } } Each instance of the service will print out its unique number and address. For instance, you may see the following text when you run service.exe. Service #4381 listening on net.tcp://localhost:5555/calculator/4381. Press <ENTER> to terminate service. Enter the service number you see here when you run client.exe. Enter the service number to test: 4381 Add(100,15.99) = 115.99 Subtract(145,76.54) = 68.46 Multiply(9,81.25) = 731.25 Divide(22,7) = 3.14285714285714 Press <ENTER> to terminate client. Next time: More Binding Polymorphism Read More...
  • Superman Returns, Part II

    My wife and I went to see Superman Returns again, this time in IMAX 3D. The movie was even better the second time around, even with the IMAX magic. There are holes all over the plot, but that doesn't detract from the key themes of the film. "Superman as a Father" and "Superman as the Savior (we long for)" are very, very powerful in my opinion. In fact, I think that they are the same theme. We want someone so powerful, so loving that they can and will save us in that deepest darkness moment. We want someone who will "make it right", regardless of the cost to themselves. We want a father. Read More...

Copyright © 2006 Microsoft Corporation. All Rights Reserved. | Terms of Use | Privacy Statement | Contact Us