Deploying Network Services behind Corporate Firewalls: Net.TCP Port Sharing in WCF

Just found a good feature of WCF, which seems quiet useful for distributed application developing/deployment practices. Through Net.TCP Port Sharing Service, Windows Communication Foundation (WCF) allows different processes to share the same TCP Ports. Now you can deploy your .Net based network services side-by-side with IIS on port 80 or 8080, the standard HTTP and HTTP Proxy ports you find open in many firewalls by default. No need to mess around with client

Scott Guthrie on Silverlight 2

SilverlightScott Guthrie of Microsoft enlightens us on upcoming and highly anticipated Beta 1 of Silverlight 2. Link to his blog post here.

For those who don’t know about Silverlight, here it is… in a nutshell:

Silverlight is a (cross)browser plug-in, just like Adobe Flash Player… with a rich set of UI controls and application programming framework, just like Adobe Flex. It uses a declarative language (XAML) for UI definitions and JavaScript + .Net Framework languages for programming logic… just like Adobe’s MXML and ActionScript. Microsoft also has a rich tool-set for developing Silverlight applications (MS Expression and VS 2008)… just like Adobe Flash designer tool and Adobe Flex IDE.

Well… Silverlight is certainly much more than that… just like Adobe Flash is… but I suppose that a comparative approach would make it easier to understand for almost everyone.

Scott’s post is quiet comprehensive for everything else you need to know about Silverlight.

happy lightening

// ch3ckmat3

Launch Command Prompt & ASP.Net 2.0 Web Server on any Folder

Here are a couple of quick registry hacks to quickly launch Command Prompt and ASP.Net 2.0 Web Server on right-click action of any folder. Particularly useful for ASP.Net developers and testers using command-line tools and  managing multiple asp.net web sites. Thanks to Faisal for the tips.

Simply paste the below text in notepad and save as .reg file, and double-click to execute and save the changes to the registry (You must have admin rights to do so).

Save this as “Start Web Server Here.reg”

 Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\VS2005 WebServer]
@=”ASP.NET 2.0 Web Server Here”

[HKEY_CLASSES_ROOT\Folder\shell\VS2005 WebServer\command]
@=”C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\Webdev.WebServer.exe /port:80 /path:\”%1\” /vpath:\”/\””

And save this one as “Command Prompt Here.reg”

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\CommandPrompt]
@=”Command Prompt Here”

[HKEY_CLASSES_ROOT\Directory\shell\CommandPrompt\command]
@=”cmd.exe /k cd \”%1\””

Using these examples, you can add your own custom actions to context menu for folder or files.

Added: Some of my colleagues were having difficulties with the copy-paste method, due to web encoding of some characters in the above registry dump. So i decided to upload a file:

File Attachment: RegistryHacks.zip (717 bytes)

cheers,

// ch3ckmat3

Let us Sync! & BizTalk Mini

Yes! this is sync for all…Microsoft Sync Framework…the anywhere, anytime, any device thing, which is currently available in CTP, and will hopefully be released as part of Visual Studio 2008. Countdown for release of VS2008 has already begun, and it is arriving this month.

Here’s a chunk from MS on the Sync Framework:

 “Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline access for applications, services, and devices. It features technologies and tools that enable roaming, sharing, and taking data offline. Using Microsoft Sync Framework, developers can build sync ecosystems that integrate any application, with any data from any store using any protocol over any network. Microsoft Sync Framework consists of the following technologies:

  • Microsoft Sync Services for ADO.NET, which is used to synchronize databases for offline and collaborative scenarios.
  • Sync Services for File Systems, which is used to synchronize files and folders in a file system.
  • Sync Services for SSE, which is used to synchronize RSS and Atom feeds with data in a local store.
  • Sync Framework core components, which are used to create synchronization providers for any type of data store.
  • Metadata Storage Service, which is used to store synchronization metadata in SQL Server Compact Edition.”

Architects and developers and have been developing such custom frameworks for pretty much every large-scale enterprise application. Even I have designed a very light-weight object oriented SAF (Store and Forward) Framework for a system where MSMQ is not appropriate. And yes, for many occasions, these frameworks are one of the the core components of any multi-node, service oriented system. Replicating files or SQL data, passing object oriented messages, either pushing new configurations to nodes, or pulling generated files in the center…we have always used MSMQ, custom schedulers for FTP and web services calls, socket server, 3rd part tools and etc.

The Microsoft Sync Framework is the definite answer to all such needs and for solutions of any scale. I would say that this framework is going to be the heart of all the future SOA based enterprise solutions to be built on Microsoft platform.

This out-of-the-box system can be used in heterogeneous environments, where many tools and utilities are used to integrate loosely coupled multi-platform systems. To have an out-of-the-box experience, many enterprises are using Microsoft BizTalk Server as the core integration hub for integrating in house systems as well as for dealing business with outside world.

BizTalk is a mammoth of SOA jungle…many cant afford it, and many find it an overkill for small or mid size solutions, but hey, now you can have your own BizTalk Mini which can fit anywhere, and here is the formula:

Take .Net Framework 3.5, build required custom synchronization providers for Microsoft Sync Framework, use WCF (Windows Communication Foundation) where appropriate. Lets call them adaptors. Use some Plug-in Framework to raise the level of abstraction for the adaptors. Have a flexible Task Scheduler in the core, along with yet again, a Plug-in based WF (Workflow Foundation) engine, and certainly…the SQL 2005 or SQL 2005 Express as the universal data store, and you are done. All what is left are UI Tools for monitoring and configuration management initially, and many bells and whistles can be added further.

Yeah I know this is no match for BizTalk at all, but trust me, this is a BizSecret I’m revealing here for nothing…one can build a light-weight business process orchestration engine on top of this which can manipulate data from/to any data source. This was the first idea that came into my mind when I read about Microsoft Sync Framework. I will start a POC (Proof of Concept) solution on the idea as soon as I get some time, and I would love to start an open source project based on this idea and any volunteers are welcome.

Happy syncing

// ch3ckmat3

xoom – the desktop magnifier

xoom is a free holiday gift utility to zoom anything on desktop by pointing your mouse to it. It is useful for graphics designer working with web and mobile UIs.

 

I have seen many useful utilities with similar functionality (i.e. zoom area of screen under cursor in a separate window), and always wanted that the zoom window should keep in rang of eyes when you point something with your mouse. So I came up with my own sort of system tray utility which sticks with mouse pointer while zooming, when you unhide it.

 

Free download and more details from Orison’s Product section.

http://www.orison.biz/products/xoom/

 

Comments and features requests are welcome.

 

Happy xooming and Merry Christmas!

 

// ch3ckmat3

Win32 API Tools for developers

Here are a couple of useful tools i want to share that i use quiet often for deep Win32 stuff from C#, see their sites for descriptions

API Guide by AllAPI: http://www.mentalis.org/agnet/apiguide.shtml
(look for other API stuff on website too)

API Monitor by Rohitab Batra: http://www.rohitab.com/apimonitor/

thanks

// ch3ckmat3