"Geneva" identity framework

"Geneva" identity framework

I sat in on a session today that showed off the "Geneva" set of identity tools.  I have to say that the presentation was very well done as it showed how easy it was to take a normal ASP.NET application that was using .NET constructs like IsInRole and PrincipalPermission to do dynamic display and authorization of actions.  Caleb then took that app and enabled the "Geneva" tools on it by running a wizard which updated the web.config and configuring the STS to identify the application and it's requirements for claims.  Then, without changing any code, he ran the application again and the user experience didn't change!  On the one hand, not very exciting, it worked just the same, but when you think about it, he claim enabled the application and the user continued to get integrated login and authorization continued to work.  The claims were being populated by AD and included the group membership so IsInRole and PrincipalPermission continued to work. 

Now, just using a different way to do authz wouldn't be that exciting if it still just used AD and only worked for internal users.  So Caleb next configured a partner organization with a trust relationship, mapped their claims to those the application needed, and logged in as an external user (with no account needed in the local domain) and the application again needed no code changes!  The user had the right access based on the claims from the partner organization and the app continued to work. 

Finally, the demo included two cool features.  First, to enable CardSpace, Caleb just checked a box on the STS and it was good to go.  The issues of authz were all abstracted from the application.  The application did not have to think about where the claims were coming from, it just programmed to the claims.  Finally, the demonstration showed how the web application could use delegation to call a web service.  The web application was enabled for delegation and was able to take the users credentials (claims) and call the STS to get claims for the service. 

The whole "Geneva" framework includes the STS or service, the framework components you can use in your applications/services and then an update to CardSpace as well.  If you are interested in claims based identity (hint: you should be if you are not) then check out the "Geneva" information and download the betas today. 

Simplified hosting experience with ‘Dublin’

I’m now in the session on the PDC 2008: WF 4.0 A first look. Just laying on my chair the leaflet: .NET Framework 4.0 Windows Communication Foundation and Windows Workflow Foundation

In that leaflet there was a very nice announcement: Windows Server Dublin.

What’s Windows Server Dublin?

"Simplified hosting Experience with Dublin
Windows Server ‘Dublin’ technologies provide the .NET 4.0 developer with a standard host for WCF and WF application. ‘Dublin’ will allow you to host your workflow using pre-built developer services in a robust scalable environment – freeing you from writing your own host environment"

Woehooo, that’s makes my very happy, it seems that the Workflow Foundation environment gets more and more mature.

This is working together with Visual Studio 10 & .NET Framework 4.0, unfortunately this might take a while before it’s really in production. But he it’s really worth waiting for.

Found in the announcements (All are very good news and make me even more curious to get my hands on it.)

Q: Will “Dublin” support existing applications built on the .NET Framework? What should customers and partners do today to prepare?

A: Yes. “Dublin” will continue to provide backward compatibility for existing Windows Workflow Foundation and Windows Communication Foundation applications. Customers can confidently begin building applications on top of both Windows Server 2008 and .NET Framework 3.5 today, with assurances that those applications will enjoy the benefits of “Dublin” when it becomes available.

Q: What are the customer benefits of the using Windows Communication Foundation and Windows Workflow Foundation with “Dublin”?

A: The 4.0 release of .NET Framework represents the second generation of the Windows Communication Foundation and Windows Workflow Foundation technologies. For the .NET developer, the 4.0 enhancements include these:

– Simplified coordination of work
– Ability to express applications and services in a way that makes sense to individual teams and businesses
– A framework for durable, long-running applications and services

Q: Will “Dublin” work with the “Oslo” modeling platform technologies?

A: Yes. “Dublin” will be the first Microsoft server product to deliver support for the “Oslo” modeling platform. “Dublin” does not require “Oslo” to operate and provide benefits of hosting .NET applications; however, administrators will be able to deploy applications from the “Oslo” repository directly to the “Dublin” application server. “Dublin” provides model-driven “Oslo” applications with a powerful runtime environment out of the box.

Q: Will “Dublin” work with Microsoft BizTalk Server’s enterprise connectivity services?

A: Yes. The integration server and application server workloads are distinct but complementary; customers want to be able to deploy them separately as needed to support their distinct requirements. For example, customers that don’t need the rich line-of-business (LOB) or business-to-business (B2B) connectivity provided by an integration server will deploy the Windows Server application server to host and manage middle-tier applications. Likewise, customers that need to connect heterogeneous systems across an enterprise, but don’t need to develop and run custom application logic, will deploy BizTalk Server. When customers need both capabilities, “Dublin” and BizTalk Server will work together nicely.

See also: Windows Server Application Server Roadmap

PDC 2008 – The Future of C#

So I had a chance today to attend a session given Anders Hejlsberg on C# 4.0, and beyond.  Honestly I walked out of the session going … that’s it?  The feature list started with the dynamic keyword, which is cool but simply does not help the 80% of C# developers today.  Most C# developers today are so bound to type safety that dynamic will give them even more heartburn than var did.  Now in reality it will likely make scenarios like property movement from service contracts to domain objects easier, but all its really doing is the same thing I blogged about the other day when working against .NET types, just with more layers and interfaces so that it can be built into the language directly.

The next big thing mentioned was Named and Missing parameters.  In the talk be mentioned that these should have been there long ago and he’s absolutely right about that. As such, you’ll get no big congratulations from me.

What else?  Co-variance and Contra-variance of course … a couple of things on this.  First, I don’t think a lot of people will care.  Second, perhaps I’m slow but I have no idea why a new keyword is needed for this.  If a type is being used only as an input, then the compiler can detect that and add the “in” keyword, and if it is output only, then add “out”.  Why do I need to personally decorate this?  Are their edge cases? Probably, but then have an opt-out model where you can take direct control only if needed.

The C# 5.0 stuff about the compiler as a service is … sexy.  That is a concept that excites me, but that’s just teaser stuff right now and they have no idea how/when they’ll deliver.  But what about other stuff?  How about extension properties?  What about interface inference (which is a major step towards duck typing)?  I don’t see a bunch of “type safe” enterprise developers getting excited about C# 4.0 as presented.  They might think its cool, but will they use it like they use automatic properties or LINQ?  I think not.

 

Technorati Tags: pdc2008,C#

PDC2008: New features in C#

Just been to Anders Hejlsberg’s talk on the future of C#, where he outlined what’s coming in C# 4.0 and (some) of what might come in C# 5.0.

Importantly: C# 4.0 focuses on Dynamic Languages (i.e. the Dynamic Language Runtime
(DLR))  and concurrent programming (i.e. programming for multi-core CPUs).

New in C# 4.0 is support for the attic type dynamic.
This allows you to specify a type which isn’t known until runtime.

Under the hood, it all seems to use the whole Type Invoke mechanism (i.e. reflection,
which can be very slooooooow).
Which leads me to wonder: dynamics in C# 4.0 look like they’re cool in certain situations,
but you end up with perf-problems, and the possibility for difficult-to-find runtime
bugs.

For example, if I typed:

dynamic calc = GetCalculator();
int val = calc.App(2, 10);

Instead of



int val = calc.Add(2, 10);

well.. I won’t know that there is a  bug until I get to that line
as it’s dynamically executed
At least, that’s my understanding.
It’ll be interesting to see how they address this.

In C# 5.0, Anders showed how they’re re-writing the C# compiler (csc) in managed code
– and allowing you to interact with it from code.
Specifically, he showed how to dynamically generate, compile and execute code.. similar
to what CodeDOM does today, but much much cooler.

One of the Best Network Sniffers I’ve seen!!!

When implementing/deploying and building all things BizTalk/Silverlight and related,
there’s going to be a time when you’re needing to see what’s on the wire.

I’ve currently found a few handy options:

  1. FireFox’s FireBug – brilliant! a plug-in straight
    from the browser environment. Deals only in Browser initiated traffic though.

    Gives great anaylsis on HTML page composition/scripts and dynamic content source – A
    MUST for any Silverlight work

  2. Fiddler – sets itself up as a proxy
    that your browser requests through, once again, my browser has to initiate the calls.
  3. Smart Sniff – smsniff – 48kb and
    this is a full blown packet anaylser giving access to all packets to/from NICs. –
    THIS by far is my choice!

Check them out folks – Smartsniff small enough to go on any memory key.

 

All free!