>
 Tuesday, January 31, 2006

Ok folks...here's a sample (er full blown wicked application) that makes all my 6 project WCF samples that include security, transactions, reliable messaging, MTOM file uploads and more...look like Hello World...

Clemens Vasters, founder of Newtelligence, leader of the community project dasBlog (my blog engine), well known blogger/speaker/writer/thought leader, and a person I am proud to call my friend...has really done it this time.

Newtellivision, get it here (he's popular, hence the site might be slightly slow)...

http://www.newtellivision.tv/2006/01/30/GoingOutAndInWithABangNewtellivision.aspx

 

1/31/2006 4:59 PM Indigo  | Comments [8]  |  View reactions  |  Trackback
 Wednesday, January 25, 2006

The January CTP was released last week. I won't be updating my chapters for this CTP, because I have received a later CTP (Feb CTP/RC0) to work with...so if you are reviewing my book you may have to email me with questions. 

Here's the instructions to build a machine or VPC for this latest release.

  1. Operating System: XP Professional with SP2 or Windows 2003 Server (note: I'm not including Vista/Longhorn yet, VPC isn't working well with those)
  2. SQL Server: Install SQL Server 2000 or 2005, but you can skip this step if you want to use SQL Express which is installed with Visual Studio 2005 if you elect to.
  3. Visual Studio 2005: include SQL Express if you didn't do step 2. NOTE: I like to keep a VPC handy up to this point, and make copies of it as I need to rebuild for future WinFX CTP releases.
  4. WinFX Runtime Components (Jan CTP): http://www.microsoft.com/downloads/details.aspx?FamilyId=61DD9CA7-1668-42E4-BD37-03716DD83E53&displaylang=en
  5. Windows SDK (Jan CTP):  http://www.microsoft.com/downloads/details.aspx?FamilyId=64750EEF-D4A7-4CC8-92F2-9A201268A231&displaylang=en
  6. Visual Studio Extensions for WinFX (Jan CTP): http://www.microsoft.com/downloads/details.aspx?FamilyId=5A0AE4CD-DC79-4B12-8A05-B6195F89FFA2&displaylang=en
  7. Visual Studio Extensions for Workflow (Jan CTP): http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&displaylang=en

There's a Go Live license now available for WCF and WWF. Here's the link to details: http://msdn.microsoft.com/winfx/getthebeta/golive/default.aspx

UPDATE 01/26/06 - Don't forget to read the January CTP notes regarding support for WS-AT. You have to install COM+ QFE for this functionality. http://msdn.microsoft.com/windowsvista/support/relnotes/winfxjanctp/default.aspx

 

1/25/2006 9:30 PM Indigo  | Comments [6]  |  View reactions  |  Trackback
 Tuesday, January 24, 2006

Thanks to everyone who attended my sessions at Code Camp this past weekend. Here are the links to content I promised you, related to each talk I delivered:

Cool things: I'm already working with several clients to design their enterprise systems using WCF - replacing former ASMX, remoting and ES approaches...so adoption seems to be heating up fast!!! If you need the same services, you know who to call :) www.idesign.net

1/24/2006 4:49 PM Indigo | Speaking/Events  | Comments [13]  |  View reactions  |  Trackback

We just pulled off our first Code Camp in Southern California and if I do say so myself - it rocked! Not only because we had great speakers, great sessions, and a fantastic organizational staff and volunteers...but because we also had a GEEK dinner and put on a fun show with some rock bands.

Things that stood out for me at our Code Camp:

  • We had sessions on everything from .NET/ASP.NET and WinFX (W*F) technologies to Java, Ruby on Rails, test driven development, VSTS and more. I expect the future events to increase in size, and include even more platforms and community integration.
  • The community that attended ranged from LA to San Diego...and we had several from out of state on the speaker roster as well like Rick Strahl and Rory Blyth. So, at the next event in San Diego (late June is the current target)...we are hoping to inspire folks from OC and LA to make the trek...more sessions, more speakers, more music!!!
  • Attendees seemed to really enjoy the event...lots of great feedback...and the main request: more, more, more...we'll be looking to add BOF sessions for open discussions, and panels with a mix of speakers to make for interesting forums for comparison.
  • ROCK & ROLL - we put on a geek dinner, and I had the fun of organizing the bands...through my Stuntmusician project. A band I had interviewed last August, Killola, agreed to come down and play at our dinner...they put on a great performance (of course, I already knew they were awesome live!) and after that, we had a jam band made up of Paul Sheriff (drums), Dave McCarter (bass/rhythm), Brad Smith (drums/bass/vocals) and my brother Paul Leroux (lead guitar/vocals). Actually, my brother helped me organize the sound gear order, setup logistics for the band, and was nice enough to participate in the jam as a ringer, since he actually is a rock musician (EvilDoers) in Toronto. They played some Van Halen, Ramones, Led Zepellin and more...and they sounded great after practicing ahead their parts, then getting together at Paul Sheriff's house Friday night to practice together. I taped it, we'll have video for some of the practice and live show posted soon...

It was great fun working with Woody Pewitt, Daniel Egan, Mark Rosenberg and Brian Maso to organize this event. And I'm already working with three other conferences to supply great independent bands to play (info to come...) which is really excited because that was a ton of fun to put together...plus I'm a big fan of indie bands, they need our love. Killola sold some CDs at the show, and I for one want to thank those that supported the band who volunteered their time and effort to drive 1 hour to the event and give up a Saturday night playing in LA. I'm telling you, this band is constantly playing, and just produced a full length CD (www.killola.com) that rocks.

You might be seeing them and others at future geek events, in particular code camps :)

I'll be posting links to my session content next...stay tuned!

1/24/2006 4:09 PM Speaking/Events | Music  | Comments [47]  |  View reactions  |  Trackback

I just started a new column for ASP.NET Pro: ASP.NET Under the Hood

In the first edition, I answered a reader's question about dynamically applying themes based on user profile settings at runtime. You can check out the column here: http://www.aspnetpro.com/features/2006/02/asp200602mb_f/asp200602mb_f.asp

If you have other questions, don't forget to send them my way and if I write about it in the column, of course I will also answer you personally in the process.

Cheers!

1/24/2006 3:22 PM ASP.NET  | Comments [9]  |  View reactions  |  Trackback
 Thursday, January 05, 2006

I had some questions on versioning contracts, so I thought I'd write up a quick list of tips on this subject, some of which applies to any platform where contracts drive communications (read: web services in general).

Point #1 – breaking changes require contract versioning

Here are an example of some breaking changes that cause serialization requirements for a service to change:

  • Remove operations
  • Change operation name
  • Remove operation parameters
  • Add operation parameters
  • Change an operation parameter name or data type
  • Change an operation's return value type
  • Change the serialized XML format for a parameter type (data contract) or operation (message contract) by explicitly using .NET attributes or custom serialization code
  • Modify service operation encoding formats (RPC Encoding vs. Document Literal)

Point #2 – modifications to implementation semantics require contract versioning

Even if there are no contract versioning violations from #1, if the implementation semantics of an operation have changed this warrants contract versioning. If your clients call an Add operation and you decide that Add will no longer add, it will subtract...then your existing clients should continue to call the "old service operation" and you should create a new operation for the subtract operation. If the change is subtle, and if clients will not be affected by the change, no need to create a new operation.

Do you have to version the contract if you add a new operation? Not necessarily, however if you have a contract that has been published with methods A, B and C...and clients have been programming against that contract, then when you add methods D and E it would be good to provide a distinction between the original contract, and the new one. If the new methods are still related to the same contract, you can provide a new contract by the same name, with a new namespace.

Point #3 – you can avoid contract versioning

You can reduce the changes of #1 and #2 being directly violated. For example, a parameter can receive alternate serialization formats, the service can opt to forgive missing elements, or ignore extra elements. You can design the service contract to be forgiving by things like this:

  • Using optional elements in data contracts
  • Using IXmlSerializable types and “handling” serialization differences behind the scenes
  • Intercepting parameter serialization and deserialization at a lower level to overcome differences

You can also avoid parameter list modification issues by avoiding specifying a list of parameters in your methods. For example instead of:

void Add(int x, int y);

use:

void Add(AddRequest message);

where AddRequest is a type that receives x and y:

[DataContract] public class AddRequest
{

  [DataMember] public int x;

  [DataMember] public int y;

}

Now, if you add another public member to the AddRequest type, and make sure it is not a required element, old clients can send their reduced set along:

  [DataMember(IsRequired="false")] public int z;

You can preserve unknown serialization elements as well, on the client or on the service side, by implementing IUnknownSerializationData in your data contract types. You can find out more about this in my book chapter on Contracts, which will be posted when I launch my book blog this week.

1/5/2006 2:29 AM Indigo  | Comments [14]  |  View reactions  |  Trackback

This article was published last month on The Server Side...I just forgot to let you know :)

http://www.theserverside.net/articles/showarticle.tss?id=DesignServiceContracts

 

1/5/2006 2:06 AM Indigo  | Comments [17]  |  View reactions  |  Trackback
 Saturday, December 31, 2005

This CTP was released December 21st, so I have been updating my existing book chapters to make sure things still “work” if you know what I mean. Here's the instructions to build a machine or VPC for this latest release.

  1. Operating System: XP Professional with SP2 or Windows 2003 Server
  2. SQL Server: Install SQL Server 2000 or 2005, but you can skip this step if you want to use SQL Express which is installed with Visual Studio 2005 if you elect to.
  3. Visual Studio 2005: include SQL Express if you didn't do step 2. NOTE: I like to keep a VPC handy up to this point, and make copies of it as I need to rebuild for future WinFX CTP releases.
  4. WinFX Runtime Components (Dec CTP): http://www.microsoft.com/downloads/details.aspx?familyid=BD3BA2D5-6ADB-4FB2-A3AA-E16A9EA5603F&displaylang=en
  5. Windows SDK (Dec CTP): http://www.microsoft.com/downloads/details.aspx?FamilyId=2297BDC9-B5AE-4B8A-B601-EEF54A52867A&displaylang=en
  6. Visual Studio Extensions for WinFX (Dec CTP): http://www.microsoft.com/downloads/details.aspx?familyid=D1336F3E-E677-426B-925C-C84A54654414&displaylang=en

A few things you might want to know after completing this installation:

  • The installation directory for the SDK has changed since earlier CTP: C:\Program Files\Microsoft SDKs\Windows\v1.0\
  • To get at the samples for W*F you must unzip the rather large AllSamples zip file located in C:\Program Files\Microsoft SDKs\Windows\v1.0\samples (NOTE: this can take 1 hour on VPC...and I have a pretty fast machine with lots of RAM!)

I'll be posting links to my WCF book code updated for Dec CTP this week...with a really cool new site update, stay tuned!

12/31/2005 7:09 PM Indigo  | Comments [10]  |  View reactions  |  Trackback
 Wednesday, December 07, 2005

I just presented the ASP.NET session for the launch yesterday in Anaheim...lots of people indicated how excited they are about the improvements to ASP.NET...and I agree. I promised some tips on “getting started” with all the new features, to guide you on your way. If you look at these sections in the MSDN library, including articles written by myself and others...that should help!

This article link will take you to the ASP.NET\Infrastructure articles (look at the treeview on the left!): http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/asp2local.asp

If you scroll down in the MSDN on the left side, you'll see a number of other categories, all based on ASP.NET 2.0...this is a good start for reviewing a collection of articles on ASP.NET 2.0.

12/7/2005 7:25 PM ASP.NET | Speaking/Events  | Comments [10]  |  View reactions  |  Trackback

My pal Jennifer Ritzinger at Microsoft has kicked off a new Channel 9 series highlighting women with cool jobs in technology. The first interview is with Angela Mills who is the Group Program Manager for Indigo (WCF)...my favorite new technology. She talks about what it is like guiding the process of building the next generation platform...she's awesome.

Oh, another cool interview I saw there (haven't heard yet) from the speech writer for Steve Ballmer...what a job! He doesn't something like 200 speeches per year, and you know they have to rock!!

Anyhow, check it out:http://channel9.msdn.com/Shows/WM_IN

Oh, and don't confuse WM_IN with a Windows message :) Gosh, that gets me thinking...the last time I messed with anything WM_XXX was when I programmed ATL/C++ in the late 90's...gosh it's good to have .NET!!!!

12/7/2005 6:30 PM Speaking/Events  | Comments [5]  |  View reactions  |  Trackback
 Wednesday, November 30, 2005

I posted some WCF samples earlier in this blog, and they were built against a (then) unreleased version of the bits. Now you can get them too, here: http://www.microsoft.com/downloads/details.aspx?FamilyId=E5376297-DA10-4FC3-967D-38C96F767FC4&displaylang=en

This build works with VS 2005, the steps to build a machine:

Enjoy! Check out my earlier Indigo posts for code samples. Some are built for PDC bits, later are built for these bits... thought I can't absolutely guarantee it since I am using early builds before they are public. Let me know if you find incompatibilities so I can try to help.

11/30/2005 11:13 PM Indigo  | Comments [4]  |  View reactions  |  Trackback

In a recent exchange on this forum: http://forums.asp.net/1126817/ShowPost.aspx a few people are looking for tools to help them with the localization process. WARNING, the thread is really long, it will take you two hours to get through it!!! I have already made a lot of remarks in the forum, but it is pretty clear that although ASP.NET 2.0 has taken some of the pain away with the new tools they provided including:

  • Generation of local page resources
  • Declarative expressions that generate code to link control properties to local or shared global resources
  • ResourceManager lifetime management
  • Automatic culture selection from browser settings

...people (of course) still want and need more. I have a perspective on this that is based on my experiences, but you all may have other challenges that differ, so this blog entry is an attempt to collect feedback from you on the tools you'd like to see improved for localization of Web sites. Here's my synopsis of what is needed, and the roles that use the tool:

Improvements to developer tools (VS IDE):

  1. Help me associate control properties to local or shared resources and manage my shared resources as well if I have made those links. Currently this can be done with IDE extensibility, no tools on the market.
  2. Don't let me compile without notification that resource should be regenerated due to changes in the page. In other words, developers are concerned that the page changes might be out of sink with resources associated to the page...and not resolved because the developer forgets to generate resources again.
  3. Provide a tool to automatically (programmatically) generate resources for all pages. 
  4. Help me link a resource entry to a database field. THis would be like data binding, with a custom localization expression linking a $Resource entry to a database field, which implies I need a way to configure the connection string for design time as well. This would still look like an explicit localization expression for a shared resource, but connect to the database instead. THis can be done with extensibility but no robust solutions currently exist.
  5. Perform change management to reconcile changes to invariant resx (local or global) and make sure keys are reconciled with variant (NOTE: I don't agree that this is necessary in the IDE, I think it belongs in change management, but let's keep it here and see what people think).

Change management tools:

  1. Create a difference report for resources on check-in (VSS or VSTS or external tool that can be run against selected source files).
  2. Allow the difference reports to be reconciled from last translator shipment to the latest build (what resources were added, changed, deleted in the invariant version? reconcile this against variant resources)
  3. Pull all resx into a single file, allow translators to edit that single file, the push all translated values into appropriate individual resources again (easy, with XML, and clients have done custom work on this, no tool on the market that I know of)
  4. Pull database content and file content for translators into a localization package for editing by translators offline, then reconcile after changes are made (lots of variations here, what tools do people use today for database access besides running reports and pushing in translated values with script?)
  5. A way to manage this process and keep track of all relevant files/changes

I know this is not an exhaustive list, but it is relevant to the discussions on the thread I mention above.

Please comment or add requests in this blog entry. I speak with this team at Microsoft with some regularity, and have told them about this blog entry...and they are just a great group so they are really interested in hearing this feedback!!!

 

11/30/2005 9:02 PM ASP.NET | Globalization  | Comments [8]  |  View reactions  |  Trackback

Thanks again for participating in this webcast today. Here are a list of resource for globalization as I mentioned in the webcast:

http://www.dasblonde.net/PermaLink.aspx?guid=8d2a4b2c-c2f4-4dab-9bb6-b3218bf17c71

Remember to review the webcast slides for reminder of what we went through, covered a lot of ground!

Also, there is a rather long discussion re: localization tools happening on this thread: http://forums.asp.net/1126817/ShowPost.aspx

I will post a separate entry to collect feedback from you all on tools that you would like to see available for your localization efforts.

 

 

 

 

11/30/2005 8:44 PM ASP.NET | Globalization | Speaking/Events  | Comments [5]  |  View reactions  |  Trackback
 Monday, November 28, 2005

Thank you to everyone who attended the webcast this morning on interop. I wanted to share with you some resources I have on interoperability, and some future plans happening at IASA.

First, resources:

IASA plans:

  • Earlier this year I kicked off 3 interop events for IASA (International Association of Software Architects). They were user group driven events, where java and .NET communities (among others) united to enjoy some human interop as well as get some top notch interop experts to show their stuff. If your user groups want to do this locally, IASA can help. And don't worry, we are non-profit...and the events can be free if there is enough support of the community and sponsorship. All we need is to get the user group leads to buy in and say “we want an interop event too!!!“
  • We are building knowledge communities (just now!) related to architecture, including interop...I have not had a chance to post much there yet (blogs links, articles) but we 'd love to get your feedback, and referrals if you run across something poingnant that should be referenced here...let me know and participate in the growth of the community resource!

More stuff...

  • I found some very interesting things as I tested WSE 3.0 and Workshop 8.1 SP5 - keep an eye on this blog for more on that!
  • WebLogic 9.0 is the go forward stack to use, since it supports more WS* and will have an integrated IDE summer-ish 2006...to replace Workshop today. Use Workshop if you need WS* today and can't take the time to be a plumber...if you can, use the WL 9.0 stack now (already released with better WS-Security among other standards support)
  • We have another big interop event coming at SD West 2006, so you can expect some content out of that one in Q1 2006, including some of the original Apache Axis founding members helping us out!

 

 

 

 

 

11/28/2005 8:01 PM Speaking/Events | Web Services | WSE  | Comments [2]  |  View reactions  |  Trackback
    ON THIS PAGE
    SEARCH
    CATEGORIES
    ARCHIVES
    BLOGROLL

Designed by NUKEATION STUDIOS