Service Oriented Programming and DSLs?

by martin 19. November 2008 22:20

I recently attended Dev Connections and was shown the benefits of decoupling business logic from aspects such as authentication, authorization, security, transaction support, threading model, instantiation model, encoding, and transport mechanism.  In Juval Lowy's Windows Communication Framework (WCF) seminar, I was exposed to the idea of our software tools and runtime environments evolving to allow us to utilize these functionalities in business application without even doing anything additional.  Juval reiterated that WCF is not just about web service and explained many of the benefits that you would get for using WCF even on an application that does not span CPUs.  These benefits include fault tolerance, fault screening (or formal fault contracts), contract first development, and the benefit of a thought out framework that provides separation of concerns for many aspects of enterprise software development.

At PDC at the end of October, Microsoft announced Azure, Oslo, and Dublin.  So Azure, or the "cloud", will let you deploy and run your production applications easily and supposedly allow them to dynamically scale up on-the-fly as demand warrants.  I heard this maybe being accomplished by dynamically spawning new virtualized servers from software and data that are stored in a massive partitioned and redundant sql server cluster (or I may have dreamt all this).  Oslo is the hybrid (both visual (Quadrant) and textual) programming environment for creating and using custom Domain Specific Languages (DSL) and Dublin is a SQL server based repository and runtime environment for the resulting Oslo DSL programs and data structures.  The DSLs are written in Mgrammer ("Mg") and the modeling language itself is just called "M".  There is a silverlight video from MS on http://modelsremixed.com/ that shows the history of "modeling", starting with prehistoric times.  In it, you will notice that one of the process models that they show is comprised of a component with the tiny logo that reads "Wcf" in its top left corner.

So that is a lot of new information to absorb.... but what does this all mean?  Will we all really be orchestrating business process workflows written in "vertical" DSLs?  Where does BPEL fit in?  Is this Microsoft's killer-app ESB?

http://msdn.microsoft.com/en-us/oslo/default.aspx

 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

ASP.Net | C# | Windows

SOAP interoperability problem with .Net consuming Axis ???

by martin 7. November 2008 23:21

It seems that the auto generated proxy classes for SOAP (Webreferences) seem to require the root element of the response SOAP body to be fully qualified by namespace by default.  One trick to overcome this that worked for me was to use wsdl.exe to create editable classes rather than using webreference.  Then I was able to remove the ResponseNameSpace attribute from the System.Web.Services.Protocols.SoapDocumentMethodAttribute attribute annotation.  This seem to allow the temporary infrastructure xml deserializer class to work correctly by making the call to XmlReader.IsStartElement return true for Axis generated SOAP responses that do not specify a namespace at all.

wsdl.exe /language:CS /out:CustomWebServiceProxy.cs  AxisServiceWsdl.wsdl 
( /namespace:MyAppNameSpace ) 

You can also remove the System.Diagnostics.DebuggerStepThroughAttribute attribute annotations so that you can step into (F-11 key) the runtime generated proxy code to see and debug the serializer and deserializer in action.  This comes in very useful when you are receiving a valid soap response over the network but your return object is null upon returning back from the webservice call.  I had to do this when all I was getting was null and had no error messages to grasp at.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

C# | Java

Say.exe - a simple command line text to speech program for Windows

by martin 24. October 2008 19:28

I remember back to the old days of my Commodore 64 .  Way back in the early eighties, I had a command line program to be able to have the computer say what you type on the command line.  I was very surprised that nothing like this is freely available on the net for windows.  Microsoft provides both the "MS Agent" COM api as well as the SAPI api, but no easy way to utilize either.

This is a real simple program that simple uses the MS SAPI api.  Simple run "Say.exe Hello world!" and have your computer say hello to the world.

Here is a link to a statically linked EXE:  SayStatic.exe

Here is a link to a dyncamically linked EXE (MSVCRT.dll version 8 / Visual Studio 2008 (9) ):  SayDynamic.exe

 

Here is a link to the source code.

Put it up on a publically accessible network share and use System Internal's psexec.exe (now owned by Microsoft) and have fun freaking folks out.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Windows

Local IP Address bug in some JVMs

by martin 21. October 2008 23:47

This guy from Spi Dynamics (now HP) told me how you can get the local IP address in some browser / JVM combinations a few months back.

window.java.net.InetAddress.getLocalHost();

Click here to see if you are at risk.

Inside an applet, you seem to always be able to get the internal ip address using code like :

String strLocalIPAddress = (new Socket(strWebHost, intPort)).getLocalAddress().getHostAddress();

I haven't been able to get this work via javascript. Go to see Lars Kindermann's MyAddress applet to check if you are at risk: http://www.reglos.de/myaddress/MyAddress.html

I also ran across a cool DNS Pinning applet/service that did port scanning. http://www.jumperz.net/index.php?i=2&a=1&b=9

Now add in CIFS / SMB into your dns pinned applet and ? ?  

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Java | JavaScript

Single Button Mouse for Kids

by martin 3. October 2008 23:07

A while back, I looked around the internet for a simple one button mouse that my 3 year old could use to play the games on PBSKids.org.  I was surprised that there was no cheap mice like this available.  My kid was young and having a hard time clicking only the left mouse button, so I decided to write a small program that would allow me to easily switch so that all the mouse buttons functioned as the left mouse button.

Now I simply fire up one exe and then I can launch IE in kiosk mode (via "c:\Program Files\Internet Explorer\iexplore.exe" -k http://www.pbskids.org ) and I can walk away and let my kids have relatively safe fun playing games on the computer.

Here is a link to the program:  SingleButtonMouse.exe

When run, it will automatically go into single button mode and add a notification icon to your task bar (click on this to toggle back to multi button mode).  It has been tested to work in Windows 2000, XP, and 2008.  (It should work in Vista too.)

 

For those interested, the source code is available here.  It is written in C# (requires .Net 2.0 runtime) and uses windows api hooking.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

C# | Windows

WinMobile Stop Watch

by martin 29. September 2008 11:32

Here is a simple little stop watch program that I wrote as my first Smart Device application some time ago.  It works on XP/Vista too.  Maybe somebody will find it useful.

Screen shot:



Download the program:  StopWatch.exe (10.00 kb)

 

Download the source code:  StopWatch.zip (33.89 kb)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

C# | Windows


Sorry for the broken links, but I had to rebuild the server from scratch recently and I haven't got everything up and running yet.  Hopefully soon though......