DotNet Framework 3.5 Beta 1 is released!!!!

Hi All,
The Microsoft .NET Framework 3.5 Beta 1 is a preview release of the latest version of the .NET Framework.The .NET Framework 3.5 which iscent percent backward compatible, adds many newexciting features in several major technology areas; including:

Deep integration of Language Integrated Query (LINQ) and data awareness
ASP.NET AJAX for quickly creating more efficient, more […]

BAM Best Practice: Starter for 10..

I knocked out a brain-dump of some BAM best practices this morning for a colleague, it seems like a good thing to share more broadly.  It’s a starter for 10 and I’ll refine it over time I’m sure, the book covers all of these things in far more detail as you’d expect 🙂 


 Avoid continuation where you can as it incurs performance overhead, it’s not the end of the world if you were to use continuation but just remember the overhead.  The rule of thumb seems to be that up to 2 continuations is OK any more and you should create new activities and link them together using references.


 You must always use continuation if you are writing data to an activity over time and using an eventstream other than the DirectEventStream.


 If you are using continuation you must always call EndActivity passing the original ActivityID once you have enabled continuation, otherwise it can lead to orphaned activities that don’t move from Active to Completed.  In short EndActivity must be called for every ActivityID used throughout the lifetime of an Activity.


                es.BeginActivity(“MyActivity”, “ActivityID_1” );
                …
                es.UpdateActivity(“MyActivity”,”ActivityID_1”,”Name”,”Darren”);
                es.EnableContinuation(“MyActivity”,”ActivityID_1”,”ActivityID_2”);
                es.EndActivity(“MyActivity”,”ActivityID_1”);


                ….
                es.UpdateActivity(“MyActivity”,”ActivityID_2”,”Age”,”99”);
                es.EndActivity(“MyActivity”,”ActivityID_2”);


 Run SQL queries against the SQL Views not the tables otherwise you may not retrieve all of the data due to table partioning occuring under the covers through the use of the Data Maintenance (DM) job


 Schedule the DM_<ActivityName> SSIS job to ensure your Activity tables are swapped out for empty ones to maintain insertion speed

 Use OrchestrationEventStream/MessagingEventStream wherever possible as this will keep the Bam data transactionally consistent with the execution of the orchestration or message in that if the orchestration rolls back the BAM data will be as well.  You also benefit from being able to piggy back the orchestration persistence database roundtrip or interchange commit.


 Ensure the tracking host is running if your using a EventStream other then DirectEventStream, the host responsible for tracking can be configured through the BizTalk Administration Console. This defaults to BizTalkServerApplication so ensure this host is started otherwise data will not appear in the BAMPrimaryImport database.


 If your using an EventStream other than DirectEventStream then BAM data is copied out of the BizTalkMessageBox using TDDS, you can see the data pending via the Tracking Data Size perfmon counter, although if you have global tracking enabled this will also include tracking data.


 BAM can store up to 1MB of data through the AddReference method on the eventstream, a great well-pefoming solution for message-bodies which enables the storage of message bodies alongside the data that describes how it was processed.

BAM Best Practice: Starter for 10..

I knocked out a brain-dump of some BAM best practices this morning for a colleague, it seems like a good thing to share more broadly.  It’s a starter for 10 and I’ll refine it over time I’m sure, the book covers all of these things in far more detail as you’d expect 🙂 


 Avoid continuation where you can as it incurs performance overhead, it’s not the end of the world if you were to use continuation but just remember the overhead.  The rule of thumb seems to be that up to 2 continuations is OK any more and you should create new activities and link them together using references.


 You must always use continuation if you are writing data to an activity over time and using an eventstream other than the DirectEventStream.


 If you are using continuation you must always call EndActivity passing the original ActivityID once you have enabled continuation, otherwise it can lead to orphaned activities that don’t move from Active to Completed.  In short EndActivity must be called for every ActivityID used throughout the lifetime of an Activity.


                es.BeginActivity(“MyActivity”, “ActivityID_1” );
                …
                es.UpdateActivity(“MyActivity”,”ActivityID_1”,”Name”,”Darren”);
                es.EnableContinuation(“MyActivity”,”ActivityID_1”,”ActivityID_2”);
                es.EndActivity(“MyActivity”,”ActivityID_1”);


                ….
                es.UpdateActivity(“MyActivity”,”ActivityID_2”,”Age”,”99”);
                es.EndActivity(“MyActivity”,”ActivityID_2”);


 Run SQL queries against the SQL Views not the tables otherwise you may not retrieve all of the data due to table partioning occuring under the covers through the use of the Data Maintenance (DM) job


 Schedule the DM_<ActivityName> SSIS job to ensure your Activity tables are swapped out for empty ones to maintain insertion speed

 Use OrchestrationEventStream/MessagingEventStream wherever possible as this will keep the Bam data transactionally consistent with the execution of the orchestration or message in that if the orchestration rolls back the BAM data will be as well.  You also benefit from being able to piggy back the orchestration persistence database roundtrip or interchange commit.


 Ensure the tracking host is running if your using a EventStream other then DirectEventStream, the host responsible for tracking can be configured through the BizTalk Administration Console. This defaults to BizTalkServerApplication so ensure this host is started otherwise data will not appear in the BAMPrimaryImport database.


 If your using an EventStream other than DirectEventStream then BAM data is copied out of the BizTalkMessageBox using TDDS, you can see the data pending via the Tracking Data Size perfmon counter, although if you have global tracking enabled this will also include tracking data.


 BAM can store up to 1MB of data through the AddReference method on the eventstream, a great well-pefoming solution for message-bodies which enables the storage of message bodies alongside the data that describes how it was processed.

MIX07 DaY 0.9

MIX07 DaY 0.9

By the time I post this it will be midnight Monday morning the day that Mix officially kicks off.

I see Scott Barnes is already telling stories about what we got up to last night…

But what is a story without evidence (Scott is the one with two beers)… if you check the exif on the picture below you will see it was taken at 10:06pm… unfortunately it is my wife’s camera and that time is 4 hours off!

 

Tonight we had a fantastic ANZ dinner at Roy’s. We had a private room that was likened by some as a trip into the sopranos!

The conversation/ networking was elecrtic and everyone in the room really gelled.

I couldn’t quite believe that I was chatting to the guy that wrote DotNetNuke 😉

We started the dinner with “old skool” style introductions who you where why you were here and it really got the conversation flowing.

So who was at dinner?

Back Top Left to bottom front right.

Mark Cohen, Nick (Fronde), Philip Beadle (Readify), Chris Ducket (Builder AU), John Ferguson (TVNZ), Tomek Piatek, Mary Henderson, Ade Krzyzewski (TVNZ), Shane Morris, Me (I need a haircut), Mark Sehler (MYOB AU), Gus Pickering (Lupo), Scott Barnes.

Missing from the dinner from the NZ contingent here in Vegas was Chris Auld and Richard MacManus. I caught up with Richard just before dinner and he was having too much fun with a large group of prominent international bloggers to join us.

Well to sleep now and keynote tomorrow… follow along yourselves at http://visitmix.com.

Tags: MIX07

This posting is provided “AS IS” with no warranties, and confers no rights.

BizTalk Services, Cardspace and Console

BizTalk Services, Cardspace and Console

I’ve spent some time playing with the recent BizTalk
Services
CTP SDK (way cool stuff!), and ran into a weird error that perhaps others
might run into: Sometimes, but not always, I would get an error when trying to use
any of the BizTalk Services WCF extensions, like the relay channel, during initalization.

For example, if I wanted to start the service part of the Echo sample included with
the SDK, sometimes I’d get the following exception during the host.Open() call:

Microsoft.ServiceModel.Relay.ServerErrorException: The server had an error while
processing request.
at Microsoft.ServiceModel.Relay.RelayListener.InitiateConnection()
at Microsoft.ServiceModel.Relay.RelayListener.OnOpen(TimeSpan timeout)
at System.ChannelFx.RefcountedCommunicationObject.Open(TimeSpan timeout)
at Microsoft.ServiceModel.Relay.RelayChannelListener.OnOpen(TimeSpan timeout)

at System.ChannelFx.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open()
at Microsoft.ServiceModel.Relay.Samples.Program.Main(String[] args) in C:\Pro
gram Files\BizTalk Services SDK\Samples\EchoSample\Service\Program.cs:line 32

I couldn’t figure out why this was happening at first because I couldn’t always repro
it. What I’d do then is just start closing stuff (thinking perhaps it was some sort
of resource exhaustion) until it started working again. But then I noticed that whenever
this was happening, the Cardspace Card Selector UI, when launched manually through
the Control Panel, would fail to start up as well. I would get the following
error and then the infospace.exe process would hang in memory until I manually killed
it through Task Manager:

Checking the windows Application Log I’d see this:

The Windows CardSpace user interface process failed in its initialization phase.
This might be due to an error during the creation of the private desktop. Exception
of type ‘Microsoft.InfoCards.UIAgentInitializationException’ was thrown.

Not very useful, but it was a place to start. I started looking again to see what
I had running (all sorts of stuff) and trying stuff out until I found the culprit: Console.
I love using Console instead of the regular cmd.exe plain because it is more configurable
and has a tabbed interface. Plus, I have configured default shells for both cmd.exe
and PowerShell that I can launch quickly with a single keystroke.

For some weird reason, though, it appears that the Cardspace Card Selector User Interface
refuses to start on my Windows Server 2003 R2 virtual machine (VPC2007) as long as
Console is running. Close Console, and both Cardspace and the BizTalk Services
SDK samples start working again perfectly.

No idea why this happens, as the Cardspace UI works just fine even though Console
is running on my main Vista machine, but there you go.

 

Technorati
tags: BizTalk
Services
, Cardspace

The Microsoft BizTalk RFID platform is here!

A lot of water has flown under the bridge since we began our efforts a few years ago to build a feature rich, scalable RFID platform that would allow end users to create, deploy, and manage end-end RFID solutions and most importantly give the power of this real time data to an organization’s core assets, people, to action upon and better instrument business decisions. 


Having had the opportunity to work on this fanstastic team involved in cutting edge innovation since day one am proud to say that though the journey has taken us through many a meandering route, the team never wavered from our commitment to bring RFID to the masses in concert with our partners via BizTalk RFID – The coming week marks a new day and a new journey for us, as we unveil the covers off the Microsoft BizTalk RFID platform (at  RFID Journal LIVE!, the world’s largest RFID conference and exhibition)


So what the platform all about, you ask?


The Microsoft BizTalk RFID platform in the BizTalk Server 2006 R2 release a  is an device management and event processing platform at the edge of the enterprise, allowing LOB applications to consume and act on the real time visibility that RFID provides. It is designed to provide a scalable, extensible platform for development, deployment, and management of rich RFID and sensor solutions.


In a nutshell:


%u00b7         The RFID platform / framework broadly encompasses device abstraction / management, event processing, with tools & services for deploying and managing RFID apps through their lifecycle and will be available for release as an integral part of the BizTalk family of products (will be available as part of all BizTalk server SKU’s in the upcoming R2 release)


%u00b7         We work (today) with a an extensive set of partners in the RFID h/w market, who are building device providers for our platform (to surface their device services) – in this mix are fixed UHF readers (normally used in supply chain track and trace scenarios), mobility focused readers such as handhelds, fork-lift readers, SDIO and pen style HF readers for other types of RFID scenarios.


%u00b7         The value of this real time data feed (from RFID devices) is realized when it’s combined with data from multiple backend LOB systems to orchestrate the real time enterprise from plant to business (hence the decision to ship as part of BTS)


We are also launching the BizTalk RFID landing page @ www.microsoft.com/biztalk/technologies/rfid/default.mspx which should contain a whole lot more information around why we are so excited about the potential of the platform we have enabled. This includes:




    1. Links to the whitepapers

    2. Pointer to download and use our Beta

    3. Details of our partner ecosystem (hardware and software) If you are looking to use BizTalk RFID with supported hardware the partner websites which will contain a ’device starter kit’ to reduce time to solution, and simplify device usage on our platform

    4. Links to the BizTalk RFID community

    5. 4 real world customer case studiesCHEP, Kildeer, iGPS, and BlueC Sushi (expected to go live through this week and scenarios which I will discuss in more depth in the coming weeks, so stay tuned! J)

In summary, as the RFID industry reaches a maturity of scale where the need now is for scalable, software platforms to build rich applications on, we believe BizTalk RFID is the answer the industry has been looking for to deliver the Connected Enterprise by addressing the “last mile connectivity problem.”  With BizTalk RFID customers can now connect real-time business processes to intelligent devices at the mobile edge, unleashing a plethora of real-time physical world visibility driven scenarios to gain business efficiencies that were not possible until today.


In parting, we’ve had the opportunity to stand and learn from industry leaders and our early adopter customers in building BizTalk RFID as we know of it today – And I can’t contain my excitement around the innovation ’at the edge’ that we’ll be looking to enable with this community as we embark on treading new ground in the areas of real time loosely coupled services that expose, compose, connect, and allow people to consume a variety of real time data from RFID to sensors, and incorporate them seamlessly into their decision making.


Express the RFID in you!


 


Cheers!


/a


 

BizTalk RFID @ RFID Journal Live

At  RFID Journal LIVE!, the world’s largest RFID conference and exhibition, we are unveiling the covers off our ground breaking RFID platform, BizTalk RFID, and highlighting Microsoft’s commitment to the Connected Enterprise vision.


 


At the event, we will:


 



  1. Highlight the availability of our platform via the public Beta of BizTalk Server R2 to the RFID community (With GA of BizTalk R2 continuing to be CYQ3), supported by partner press releases. 

  2. Deliver a  general session with CHEP, who is well-known/regarded in this industry, and one of our early adopter customers.  Our keynote will showcase BizTalk RFID @ Work for CHEP’s pallet pooling business WW and the ROI they’ve obtained from the same with a video of the CHEP deployment in action (agenda available here) 

  3. Showcase solution demonstrations with 19 partners at our booth along the following themes:


    1. BizTalk RFID @ Work (early adopter customer solutions in action)


      1. Xterprise, Alien and Zebra showing the iGPS pallet tracking application

      2. Cactus, SATO, Paxar, CSL showing the CHEP ’track and trace’ application at work

      3. TCS, Motorola showcasing their turnkey returnable asset tracking solution with RFID & sensor based technologies

      4. Intermec,  Kikata demonstrating the application in the BlueC Sushi restaurant with RFID, that helps monitor the timing and contents of plates while capturing data to comply with food and safety regulations and improve production of the right items

      5. HP talking about their Supply Chain Visibility initiative built ground up on BizTalk Server and other MS technologies

      6. 3M track and trace showing their specimen tracking application, and storyboarding active RFID based high value assets for hospitals

      7. Tyco and Printronix demonstrating their Work in Progress (WIP) PoC built and deployed at Lockheed

    2. Innovation at the Edge –  Intel and partners showcasing demo’s on early versions of our BizTalk RFID mobile (alpha) on CE &  other innovative HF and Active RFID demos


      1. CSL demonstrating a CE based app for tag inventory atop BizTalk RFID Mobile on a handheld running the R1000 chip from Intel

      2. Unitech showing an inventory reconciliation app with a pick list on ahandheld running BizTalk RFID mobile (alpha), and talking to a backend running BizTalk RFID

      3. Intermec showcasing their CE based reader supporting BizTalk RFID Mobile (alpha) and running a inventory locator demo

      4. Reva systems demonstrating an end-end scenario with their smart appliance as a device on BizTalk RFID

      5. Ubisense demonstrating an active RFID tag based ’location in the booth’ demo for people / objects moving around in the booth

      6. Cathexis showing how HF RFID over Bluetooth in combination with GPRS can be used for asset management in combination with vehicle fleet management (think IBM ad J)

    3. BizTalk RFID for Small and Medium Businesses Maximum Data Solutions demonstrating warehouse management solutions with deep integration between Dynamic GP and BizTalk RFID

This is a significant step forward for our Biztalk RFID + Partners, and hope to continue buiding on the momentum to bring RFID to the mainstream and allow our end users to leverage this powerful technology to drive real time decision making!


 


Cheers!


 


/a 

Windows Home Server client join troubleshoooting hints

This document is published here because there is no way to publish images on forum. It’s written primarily to help our support people, and we are publishing it to help troubleshooting problems with the server join process for Windows Home Server for Beta participants. Please, understand that this document is not official, and provided AS is without any warranties… (see the disclaimer on the sidebar). Also, while I cannot help troubleshoot on this blog (use Connect site for that), I would appreciate comment on how t make this document more useful as well as if you notice any typos or problems in it.


Important notice: the document mentions ports 55000 and 56000, however, if you are using Beta2 build the ports are standard http ports 80 and 443, and for CTP build the ports are 88 and 444.


—————————————————————————-

So, server join failed. Now what?


This document is not about troubleshooting client setup or discovery. It’s purely to troubleshoot server join.


Reminder: there are three phases of WHS client software installation:



  1. Install. That’s usual software installation. Files are copied and registered.
  2. Discovery. Client software tried to find WHS over UPNP. That’s the screen with Vista circle cursor going round and round.
  3. Server join. Client software does webservice calls to join WHS. That’s what you see in the very end with either two green marks on the screen (good!) or anything else, usually with some red circles and crosses (bad!)

This document is about handling red circles with crosses.


Steps-by-step



  1. Do trivial stuff: check that your server is up and running, that wires are in place, that your server is connected to network, that your PC is connected to network, and that they are connected to the SAME network. Yes, it’s trivial, but often the case.
  2. Check that your name resolution works. Name resolution is about 9 out of every 10 cases when the problem occurs. An easy way to check name resolution is to go to the command line and type:

    nslookup SERVER

    where SERVER is the name of your WHS server. It should give you IP address of your server. If it does not work, go to name resolution section.
  3. If name resolution works, it’s most likely that you have firewall issues. First, try to open your browser and type

    http://server

    You should get a nice picture of a prehistoric office worker sitting behind his desk in savannah without cubicle walls or sunscreen. If you don’t get it, you will get an IE error message. Read it. If it does not help, go to Accessing public website section.
  4. Now type in browser

    http://server:55000/enrollid/id.xml

    You should get a nice XML with the number 1 in it. If you don’t, take a note of the error message and go to Accessing internal website section.
  5. Now type in browser

    https://server:56000/enroll/id.xml

    You should be prompted for the admin user ID and password, and once you give the correct ones, you get a nice XML with the number 2 in it. If you don’t, check the error message and go to Accessing internal site with authentication section.
  6. Now type in browser

    http://server:55000/enrollid/id.aspx

    You should get a nice XML with a bunch of stuff in it. If you don’t, then it’s either a bug or somebody played with IIS settings on the server and broke it. Anyway, take a note of what error message you will get, it may help. There is no simple troubleshooting from this point. On a positive side, we did not see anybody hitting this in months, so if you have a problem, it’s most likely that you already skipped this text and went to the specific section.

Name resolution


Name resolution is the ability of you machine to figure out IP address by the name. You sit in front of your PC and type in IE http://www.microsoft.com, and the machine converts www.microsoft.com into an IP address like 207.46.19.190. Machines use IP address to reach each other.


Name resolution is critical, because many services that WHS provides are actually standard services of Windows 2003 server, and they all need name resolution to work well to be used over home (or any other) network. In fact, technically we could have make server join work without name resolution, but we decided to break without it, because otherwise many other services of WHS will fail all around.


Unfortunately, most home networks are configured just to share Internet connection, not to use home PCs together. A good example is a home printer. You connect it to one home PC, can you print on it from another home PC? Most people cannot, because their home networks don’t support this. The situation is so bad, that even manufacturers of routers for home network don’t consider it seriously and many even expensive routers don’t do that simple job, stripping their customers from this important and useful functionality.


You see, to use a printer on other machine, your machine needs to be able to get to it. To do so, it need to resolve the name of that PC with the printer, and most home networks are not setup for that. Similarly, WHS disk shares, backup services, health monitoring only work if your PC can get to the server.


Did I get too technical? Well, there is a good news. Vista uses extended name resolution mechanism including UPNP/SSDP protocol. What it means is that Vista client normally can get to WHS even if your router is not up to the task (it still have to support UPNP though). So, upgrading to Vista helps in 95% of cases. But not everybody is ready to upgrade to Vista, and if this is your case, read on.


Why do most home networks fail with internal name resolution? Here is a typical home network:


 



 


Name resolution is done by name servers. When your home PC sees a name, it goes to DNS server and asks it, “What’s the IP address for this name?” To share Internet connections you only need to resolve Internet names, like “www.microsoft.com”. In this case all home PCs can be configured to go directly to you ISP provider DNS server on Internet. But once you try to make home PC work with each other, you hit the problem: your ISP DNS server has no clue about the names of you home PCs. And that’s only logical, they are not on Internet!


To resolve home PC names, somebody else should take a job of DNS server. Good routers do that. They present themselves to home PCs as a DNS server, and when in doubt go to your ISP provider’s DNS server for the help. Router is on your home network, so it does know all your home PCs and their IP address. In fact, normally your router is the one who gives IP addresses to your home PCs (DHCP). But it needs to share this knowledge also working as your home DNS server. Many routers out of the box don’t do that. If you can configure your router right, the picture will look very similar but with one critical difference:



Many routers out of box don’t do that, but many modern routers can be configured to do so.


And if instead of a router you have Windows XP Professional, Windows Server, or some Vista SKUs PC with two network cards, it will do that for sure.


Accessing public website


You came here because you typed in IE


http://server


and got an error message. But you already checked that name resolution works. Now, look at the IE error message.


If it says “cannot find server”, it’s either your server is down, network cable is not inserted somewhere, or firewall. Check cables, see that the server is on (ping server will ensure that), and once it’s ok, go to firewall problems section.


Accessing internal website


You’ve come here because name resolution works, public site is accessible fare and square, but when you typed:


http://server:55000/enrollid/id.xml


it failed.


90% chance is that this is a trouble with firewalls, go to firewall problems section.


Accessing internal site with authentication


You came here because name resolution works, public site is accessible, as well as internal site, but when you typed


https://server:56000/enroll/id.xml


it failed.


Read the error message.


If IE says that access is denied, try to recall your password. You typed it incorrectly.


If IE complains about bad certificate, it means that server join was not able to install WHS certificate. It happens in the rare cases of PC misconfiguration, which usually happens on older systems due to malware or user playing with security settings on the system. This is a very rare case.


If IE says it cannot find the site, it’s most likely again firewall issue. Go to firewall problems section.


Firewall problems


Guess, how many firewalls are between your PC and WHS? You have three times to try.



Three. At least. In my case four, because I have two firewalls on my home PC. Here is how it looks like in a typical home network setup:




You see, three of them are in the way of your PC communicating to WHS.


WHS firewall


This one is a most harmless of all for WHS communications. After all, it’s WHS firewall and it is configured to be friendly for WHS use. Within a reason, of course. Specifically, most WHS communications are configured to be only allowable on the same subnet. What does it mean?


Suppose you have a typical home network configuration to use private network addresses 192.168.0.*, for example:


Router 192.168.0.1
PC       192.168.0.5
WHS   192.168.0.13


This will work fine. However make it


Router 192.168.0.1
PC       192.168.1.5
WHS   192.168.2.13


and WHS firewall will start blocking attempts by the clients to connect. The rule of thumb is that the first three numbers in IP addresses of WHS, PC and router must be the same. Also, subnets like 192.168.3.* or 192.168.7.* will also work, as long as three first numbers are the same. That’s not technically 100% true, if you are ready to go into technical detail, but if you don’t, don’t even try.


Some people feel uncomfortable with the idea of only 255 computers on their home network (not that they really have 255 devices on it), and use other private address spaces like 10.*.*.* or 172.16.*.*-172.31.*.*, which is potentially ok if you configure subnet mask right, although it is usually configured by default only to let the last number change Too technical again? Yes, just don’t use these ranges. Stick to ol’good 192.168.0.*.


Actually, that’s the only trouble with WHS firewall that you may encounter (unless you do manual configuration of WHS, in which case you should know all this stuff already anyway).


Router firewall


That’s not necessarily easy, but straightforward. You router should let the intranet traffic through, at least for WHS services. To join you need TCP connections on ports 55000 and 56000. For transport you need the port 1138. There is also a couple of ports that you need for backup and remote access. Also it needs to let UPNP packets through, otherwise server discovery won’t work.


You don’t have to open them to Internet. In fact, you better not open them to Internet. But they should be open for internal home network computers.


PC firewall


Default Windows firewall settings allow WHS client software to go out to the server both from XP and Vista client, no problems. Of course, if you set it manually, see that the same rules as for router firewall apply for outgoing connections and UPNP response. Under no circumstances, except Remote Access, WHS will try to contact your PC. All connections (again, except remote access) goes from the PC to your WHS server.


OneCare firewall is supposed to let signed binaries out, and that’s all WHS client needs, although we’ve seen occasionally OneCare not letting connection out. You may need to open these ports manually.


Most troublesome are third party firewalls. All of them could block some WHS client connections. If you have those, you need to configure them manually to allow the WHS client outgoing connections.


Conclusion


I realize, that more information is needed on the subject, and maybe I’ll be able to come to that and extend this post or write additional posts on the subject. But right now the whole team is very busy, so it was tough to write even this. Still, the plan is to extend this document with more detail and more information/cases as we will find them.


Also, please, understand that I cannot troubleshoot your system through comments on this blog. The right way to submit beta bugs is through the Connect site, where there is a way to get reasonably full troubleshooting information about your problem.

Interfaces + Extension Methods = POWER

I spoke recently at Dallas Code Camp 2 about

C# 3.0 and the new language features it contains. Most of the buzz on the net

has been about LINQ, understandably, but as I’ve

mentioned here before I really, really, dig extension methods. I’ve spent

a good bit of time thinking about uses for them, and looking at how Microsoft has

used them in .NET 3.5.

One of the things that didn’t click the first time I played with extension methods

which you might have missed to is that you do not have to extend classes, you can

extend interfaces. Think about that a moment, you can write methods, with functionality,

that act upon interfaces.

For example I’ve

previously spoken here about the Model View Presenter pattern, which is normally

implemented with an Interface (The View), a Data Access Object (The Model), and a

class to map between them (The Presenter). “The Presenter” takes “The View”

in it’s constructor and simply acts upon “The View” in it’s methods. “The View”

is implemented as an interface because you can have multiple interfaces, but this

requires another class for “The Presenter” because interfaces can’t contain any code. Until

Now.

With extension methods it becomes perfectly possible to forgo the need for a Presenter

class in favor of a set of extension methods. Does this save typing? No,

in all likelihood you’ve not save many keystrokes when writing your Presenter but

you have gotten rid of the need to ever declare the Presenter on your pages/forms

at all. If you implement IDisplayBlogPost on your ASP.NET page, then if you

extend that interface with a method called “public static GetBlogPostByTitle(this

IDisplayBlogPost view, string title)” then your page now has that method itself, and

a simple “this.GetBlogPostByTitle(blogTitle);” can result in population of your page.

This essentially brings to .NET the power of Multiple

Inheritance without the problems with Multiple Inheritance that existincertainotherlanguages.

I’m still downloading Beta 1 of Orcas, but rest assured code samples for this are

coming.

Pre Conference User Experience Summit

Pre Conference User Experience Summit

I am sitting down for the second day of a two day UX Summit in Vegas prior to MIX next week. We have been having many back to back half hours sessions which is difficult as the body tries to ajust to the timezone. It has been great spending time with people I normally only communicate with via email such as Tim Sneath, Mike Swanson, Forest Key, Ernie Booth (he ensures me that he will update his blog next week to reflect his transition from Vista to Silverlight), Brian Goldfarb, Will Tschumy, Parimal Deshpande, Keith Smith, Shane Morris, Arturo Toledo and Celso Gomes.

During Tim’s presentation yesterday he talked about the need to produce a WPF application complete with source code that people can learn from. Well it has now been released created by Vertigo Software check it out.

Viva Las Vegas

Shot I took of the Venetian Hotel where we are staying and Mix07 is being held.

Tags: MIX07

This posting is provided “AS IS” with no warranties, and confers no rights.