For the past eight months or so, I have been banging my head on my keyboard out of frustration because I can't make Windows Identity Foundation do the things that I want it to do.
Even more frustratingly, WIF doesn't seem to enjoy the widespread adoption of many other MS .net technologies. I often cannot find what I'm looking for when I do a Google search.
I read over the MS "Whitepaper for Developers" overview and it gives only a general idea of how the technology general works with not a lot of specifics. I looked over the MS Identity Training Kit; the ****ing installer was broken. I could only get it to work at all by hand-editing the install file based on instructions that I found on an MS forum. When it finally worked, I was left scratching my head. I saw how some specific examples worked; it was left up to me to figure out how to use more than half the functions and classes in the framework.
I believe that I can honestly say that in the time I've spent tinkering with WIF, I could have taken and passed a university course on the subject of WIF programming taught by a competent teacher and understand it better than I do now.
Last week, I was asked by my boss to code our WIF enabled ASP.net web project to expire user logins a few minutes before the user session expires. Guess what? I had no idea how to do such a simple task after spending countless hours trying to figure out how WIF works. There are still classes in WIF that I have no idea what they do. There are events for things that I want to control that I have no idea when they are fired or how to handle them. For all my effort to learn this new technology, I sometimes feel incompetent grappling with this technology. BTW, my SO post about the logon expiration issue is here: How can I make a security token automatically expire in a passive STS setup?.
When I first started programming, I was told I needed to learn to implement MS WCF. I picked up a good book about WCF that showed me everything I needed to do to drive our WCF applications. I can easily see myself facing the same situation I face with WIF with WCF without a good reference.
I know of no good book about WIF.
But WIF is just one MS technology that I need to be familiar with.
This situation is all the more frustrating because I have always excelled at studying and research in school.
Anyhow, my question for StackOverflow is this: What are good ways to learn to use new MS .net technologies? What are the best references to consult? Are there references with diagrams showing how the different classes, methods, and events relate to one another I can consult? How can a developer best make use of the MSDN documentation? I think that I would greatly benefit from a visual reference to these things. How can I effectively use my time to learn new MS frameworks?
Clarification: Although I give WIF as an example of a new technology I want to become an expert with, it is only an example. I'm interested in learning about the best tools and references to master a new MS .net technology in general.
Update What about resources on the web. There is StackOverflow of course, and also social.msdn.microsoft.com. What other resources are good for learning a new MS technology?
I understand your pain. Surprisingly, there are some technologies from MS that are bleeding-edge and there just isn't enough adoption of them, so it is VERY difficult to find the resources that you need.
I have found that contacting a Microsoft sales rep or regional office is a huge step, but appropriate for people like you and I. They can direct you to a MVP on the topic. It is TOTALLY worth the money for your company to rent a MVP for a few days, while you pull a brain dump from the MVP. The cost may seem steep, but if the MVP can get you going in a few days and save you months, it is a solid investment.
Being resourceful is the #1 ingredient in success, but it means different things for different technologies. Even finding one other person to collaborate-with can make a huge difference.
I think the problem you describe is likely to happen for cutting edge-technologies, or technologies with limited adoption only; otherwise, there will be documentation available.
My advice to you is to contact the team responsible for the product/technology at Microsoft, or your local Microsoft Dev Evangelist. In my experience, they are usually looking for feedback and really like to get input from people using it in the field, and help people use the technology. This is especially true for a recent technology.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With