Welcome to MSDN Blogs Sign in | Join | Help

Grassroots Innovation @ Microsoft

I will be blogging more on the subject of Innovation @ Microsoft as well as how our Technical Strategy Group supports innovation within (and external partnerships) Microsoft.

This post follows my previous article on the subject of the long standing Microsoft tradition called “ThinkWeek”.  The program has evolved over the years, due in part, to scale out beyond Bill Gates as the primary audience.

Here is a brief (1:48 min.) video from Bill Gates on Thinkweek/Grassroots innovation.

From You Tube - “Microsoft Chairman Bill Gates discusses grassroots innovation at Microsoft and how "Think Week" has evolved over the years to become paperless, allowing employees to submit ideas online for review by the top 50 technical leaders in the company. Microsoft CEO Summit, Redmond, Wash. May 14, 2008.”

Here is a brief (1:28 min.) video from Ray Ozzie on Thinkweek “2.0”, posted on 6/5/09.

© 2009, TechPulse360.com

Posted by JackG | 0 Comments

Microsoft - The Economy, ThinkWeek, Innovation,...

In my last post I mentioned my new role in the Microsoft Technical Strategy group and the promise of more on the subject. So here is some late breaking news, hot of the press, on one of our programs – ThinkWeek.

Context - Economic Realities

We are all effected (some more than others) by the current World economic conditions and Microsoft is no exception. The news is full of comparisons to the economic crisis in the early 80’s. This current economic down turn brings back some painful personal memories. I graduated from Dowling High School in West Des Moines, Iowa (Home of the best Steak, Corn and Wrestlers in the World) in 1981. Damn, I’m getting old, but like fine wine … After graduation, I soon lost my Father who was a tremendous influence in my life and shaped my core values - Honesty, Integrity, Work hard and be a man of your word to a name a few. I married at the age of 20 in 1983 and I became a father myself (hard to imagine). The stress of trying to provide for a new family during one of America’s most difficult economic down turns since the depression was a tremendous burden.  Iowa was so depressed that I couldn’t find a minimum wage job, even at the typically hiring establishments like McDonald’s. And believe me, when I tell you, that eating government cheese, peanut butter and a meal about every other day (those years of Wrestling paid off when dealing with hunger) makes a job at McDonald’s seem like a glorious thing when you could have had a double cheeseburger with fries *and* be employed. What a treat that would have been.

I typically keep my personal life separate from my professional life, but I wanted to share some personal experiences as they are reflective of these difficult times. As you may have read, Microsoft recently went through a second wave of cut backs in response to the economy. Our team survived, but we lost some very good people as well as some of our program offerings. My thoughts and prayers continue to go out to many of those I know who are experiencing the difficulties I lived through in the early 80’s. Hang in there. This too shall pass.

Context - What is ThinkWeek?

As borrowed from my peer, Tricia Mayer, our much more articulate and capable Director of Marketing and Communications.

 ThinkWeek is a long-standing tradition at Microsoft, initiated by Bill Gates. Over the years, ideas generated through ThinkWeek papers have inspired direction and great thinking. Now that Bill has moved on to a more prominent role at the Bill & Melinda Gates Foundation, the ThinkWeek process is changing.

ThinkWeek is an open and voluntary forum that enables any Microsoft employee to share their thoughts and ideas in the form of a thoughtfully written paper, circulated among influential managers and senior leaders.

ThinkWeek is grounded in the premise that sharing diverse ideas and great thinking are key elements of maintaining our competitive advantage and thought leadership around the world.

 

ThinkWeek and the Economy

Again from Tricia,

As all groups at Microsoft undergo the evaluation of cost to value benefit for programs and projects, we are also applying the same scrutiny to the ThinkWeek program and process.  Until that evaluation process is complete, the ThinkWeek09 cycle has been placed on hold.

I was made aware there was some leaking (outside of Microsoft) of this programs “hold” status, so I felt now was the time (read below) to share some information on the subject from someone (Me) who has first hand information on the subject. Note that we received a lot of feedback from employees on the ThinkWeek “hold” status.

I believe the ThinkWeek concept has been around for ~27years. It has been a long standing tradition embraced by Bill Gates and was affectionately referred to as “the BillG ThinkWeek”, in part, because Bill would take a week off to read the papers and incorporate the input into the fabric of Microsoft’s product development. I doubt Bill truly unplugged. Remind me to tell you a personal experience that has become an urban legend on Bill’s work ethic.

On a personal note, In April 2001, I submitted a paper on MSN’s .Net Migration – “Porting a Multi-tier Distributed Platform”, with a little help from my friends (shout out to Mahesh and Stephen). The paper was based on the re-architecture of our content fetching/aggregation tool I invented and originally wrote in Perl and ported to “Cool”, which was the code name for C#.  Participating in a program that allows you to reach thought leaders and influencers throughout Microsoft was (is) a privilege and an honor. Seriously! I make mention of this, along with my Microsoft ship-it awards, on my resume.

Signs of recovery

There is more positive news about the economy recovering and while certainly not the sole decision to launch the *new* ThinkWeek program, both are positive signs in my mind.

Yesterday, Ray Ozzie, announced in his Engineering Excellence forum keynote (a Microsoft campus event) that the new ThinkWeek program will launch next month!

And again,

Over the past several months, the ThinkWeek program has been redesigned based on the feedback we have heard from Microsoft employees worldwide. The next generation of the ThinkWeek program will be launching on July 6, 2009.”

In conclusion

For those Microsoft employees reading this blog, submit those thoughtful papers and please give me feedback on the new site.

For those that read about the leaked information this should clear things up.

For those that are hearing about ThinkWeek for the first time, this should give you some insight into some Microsoft culture, employee participation in shaping Microsoft, and continued support for invention, innovation, and feedback by *all* employees.

I will continue to share more on the Technical Strategy Group programs (in additional to ThinkWeek) as well as more on innovation and Microsoft culture if my readers find the subjects interesting. Do inquiring minds want to know?

Now I have to get back to work as I recently picked up a number of new work items, requirements, expectations, and a firm ThinkWeek RTW date J

"Lost" and found

Where have you been? Assuming I haven’t lost all my readers by now, due to my silence, this seems to be a reasonable question.

Does anyone out there watch “Lost”? I ended up getting hooked in the beginning and now I can’t avert my eyes.

As I wrote this blog, I felt the “Lost” series seemed to be analogous on a few dimensions ;-) The story line seems to do this Present, Past, Present (and now Future) transition. The show seems to be popular enough, so why not use the theme.

 

The Present

·         Beginning in December 2008 (a few months ago), I was fortunate enough to land one of the best jobs I have ever had (and hope to have/retain – scary times we live in).

·         I am now back in a managerial role as the Group Manager for the Technical Strategy Engineering team reporting to the office of the CTO. The SVP CTO, David Vaskevitch, has quite a distinguished career spanning the creation of MCS (i.e., Microsoft Consulting Services) to building many teams in SQL (e.g., MTS, COM+,..) and I believe he was also Bill Gate’s first TA. At this juncture, I have had only one meeting with David, but I was impressed on many levels. David reports through Ray Ozzie, who is the Chief Software Architect, and is someone that most people think of, as the “new” Bill Gates.

·         My new role is typically called a Product Unit Manager. I have a team of Program Managers, Developers, and Testers. More on my new role later. Remember the “Lost” analogy.

 

The Past

·         First I would like to apologize for my absence in the blogosphere but I was busy wrapping things up on the CLR team wrt Extensibility and the System.AddIn BCL.

·         I suppose I could have started from my last blog post in time, but I think I’ll back up a bit in order to give a little context and some insight into my life’s journey and how my blog reflects that journey. Zen has returned to my life J.  Side note – highly recommended reading: Zen in the martial Arts, a great concise book with pearls of wisdom I use often in my life and career.

·         As I decided to try this blogging thing years ago, I was looking for a theme, a subject, something with continuity. I first started with “Smart Client”, then everything .Net. I wrote about Tools, Extensibility, Add-in’s, Versioning, etc..

o   OK, so I have finally realized what my blog is really about. Drum roll please -  And it is…. This is where a “Lost” episode would end. Keeping you in suspense. Oh, and there would be some hard pounding beat of music as well  – dunt, dunt, da.

·         Maybe it’s with maturity, experience, time, age (arg, age)  that  I finally realized as of this writing that my blog is about my career and life’s journey. I guess in some respects it is a journal or diary of sorts. I often wondered why anyone would care what I’m doing or have done, but I think there is value in sharing ones experiences so that others may (?) benefit. I’m still not sure about that Twitter or Facebook thing though. But I didn’t get blogging in the beginning either. Sure, I understand the Social Networking value, but honestly, who would care what I’m doing right now. <tweet> I’m on a plane coming back from London after visiting MS Research in Cambridge (cool stuff) and I’m writing a blog post </tweet>.

·         As evidenced by my time as an Architect on the CLR team (i.e., .Net framework, Common Language Runtime, BCL – Base Class Libraries) I was pretty focused on the difficult Computer Science problems of; Extensibility, Versioning, Isolation, reliability, Security, etc.. And thus my blog posts reflected this period and passion for helping customers (i.e., primarily ISV/VAR/SI) who wrestle with these issues. It was a very challenging set of subject areas that I pursued, beginning when I was the Group Development Manager for the Visual Studio for Office/Applications group.

·         So what brought me to the CLR team? Inquiring minds want to know. And that’s how that whole “Lost” thing works – Pieces parts you need to tie together. When I decided I was ready to leave the VSTO/A product unit I began looking around the company for challenging opportunities. In one my interviews with the SQL team, I spoke with a wise (now retired) man who asked what I believe in. Aside from my religious beliefs, I said “I always ask myself, what can I do to make our customers lives easier and what can I do to have the greatest impact for Microsoft.” Of which he replied, “so what are you doing about that?” Damn, those wise people (Zen). They get right to it, don’t they. Bring me a problem *and* a solution. As I discussed my recent work on trying to resolve these hard CS problems I mentioned I felt compelled to drive them to some level of conclusion for our customers but it was clear that the solution and current VSTA implementation needed to be available to a customer base beyond the VSTO/A products. He agreed 100% and said this was one of the biggest .Net issues and concerns for SQL (relative to .Net). He then told me I had an obligation to Microsoft and our customers to drive this effort. He told me I needed to speak with David Treadwell, the then VP of the CLR, in order to transfer this charter to their team. Right, I’ll just phone up a VP! Well, to make a long story short, that’s what I did. David was very approachable and along with moving over the charter, I also moved from a managerial role on VSTO/A to an Architect role in the Program Management discipline on the CLR team. To be clear, it took more than a phone call J

 

Recent Past

One of the benefits of working for Microsoft is the breadth of opportunities available within the company. To be clear, internal hiring/recruiting is pretty much treated the same as external hiring. That is, you might think your experience within the company would stand on its own, but you still have to apply for the job, go through several interviews for each job, just as though you were new to the company. After all, you’re new to the new team. I think it’s important to know this, as I often get questions about what it’s like working for Microsoft (everyone says I should write a book). To give you as sense of what it’s like, I can tell you that I had somewhere in the neighborhood of ~40 interviews for various jobs during my last/recent search. And around 9 interviews for my current job. These interviews ranged the gambit of the old, “What is your greatest strength” to “write me a doubly linked list at the whiteboard”

Ok, I’m sorry, but I have to go off on a tangent here - For crying out loud, aside from writing a linked list in school, who has ever had to write one since graduating? If you can’t explain the importance of data structures then there is a reasonable concern. But, I have forgotten more than most will learn in their careers. No, I’m not any smarter, I am just seasoned, mature, experienced.  Ok, ok, I’ve been around a long time ;-) </rant>.

But I digress.

Where was I?

Right. I was searching for a job when I decided to leave the CLR team.

A season ending episode.

 

Time Sequence (Season recap)

Ok, so “Lost” periodically brings together the time line, so let’s do that before we lose our sanity.

1.       Jack moves from the Development Manager of the MSN platform team to VSTO/A.

2.       Jack was Group Dev. Manager of VSTO/A when he decided to start blogging.

3.       Aside from the VSTO/A products, he discovered the need for .Net versioning, Isolation, etc..

4.       He drives moving the VSTA extensibility technology/charter to the CLR team and moves over to the CLR team as an Architect working with ISV’s on the Add-In model.

5.       Blogs a lot about the subject.

6.       Then moves to the Technical Strategy Group.

 

Hey, wait a minute! What happened to the System.AddIn stuff you left behind?

·         This whole “Lost” theme gets confusing doesn’t it? Definitely the last time I use it. Or is it? I think the “Lost” writers make it up as they go along.

·         So what happened to all the ISV and Add-In work we heard so much about? What are you actually doing now?

o   Stay tuned J

Silverlight 2 is here

Delivering on the earlier promise, here are some links to Silverlight v2.

Enjoy.

Posted by JackG | 0 Comments
Filed under: ,

Process Creation and Coordination

In some previous posts (Out of Process IPC/TCP Remoting code, .Net Remoting (AppDomains, Out of Process, Two Way, etc..)) I showed some sample code using .Net remoting over a process boundary. As a result, I received a few questions about the process creation and how to handle the process coordination (i.e., The Host/Master process waiting on the created process startup). I apologize to those who have been waiting for another sample on the subject, but I have been pretty busy as of late.

The attached sample code shows the following;

1.     How to ensure the Host Process waits on the new process creation.

a.     Previously I showed a simple *hack* where the created process sleeps for a while in order to let the process creation complete.

b.     A much cleaner and more reliable solution uses EventWaitHandle.

2.     The created Process runs until the Host Process is terminated or the Host terminates the new process.

a.     Previously I showed a simple *hack* where the created process does a Console.ReadLine() in order to halt code execution and thus cause process termination.

b.     I didn’t show an example of how the created process can shutdown in the event the Host process shuts down. This scenario covers orphaned processes.

c.     The solution: System.Diagnostics.Process.GetProcessById(HostPID).WaitForExit();

View Source for Host Process: Show Code ...

View Source for Created Process: Show Code ...

Posted by JackG | 1 Comments
Filed under: ,

Attachment(s): WaitForProcessStartup.zip

RTM of Visual Studio 2008 and .NET Framework 3.5 SP1 (Client App Deployment)

I wanted to thank all the ISV's, VAR's, and SI's I have spoken with and those who have replied to my requests for soliciting feedback on Client Application Development (e.g., Software as a Service (SaaS) and Rich Internet Applications (RIA)).

This release has a number of significant features and bug fixes.

The RTM announcement may be found here.

Here is a direct link to the Microsoft .Net Framework 3.5 SP1.

Here is a link to Scott Guthrie's blog discussing this release when it was in Beta.

I'm very happy to inform you that your feedback played a significant role in this release, which includes -

"New Breakthroughs for Developing and Deploying Client Applications

The .NET Framework 3.5 SP1 includes the new .NET Framework Client Profile -- the fastest and easiest way to deploy applications for Windows. With .NET Framework 3.5 SP1 and the .NET Framework Client Profile, developers can more easily deploy client applications thanks to an 86.5 percent reduction (197 MB to 26.5 MB) in .NET Framework size. This means that end users will be able to download and install Windows-based applications significantly faster than before. The .NET Framework Client Profile also makes it possible to extend the improved download and installation experience to existing .NET applications.

Developers now can quickly and simply deploy new and existing rich-client applications to a broader audience."

 

Silverlight 2, Beta 2 and the 2008 Olympics

Some time ago I wrote a post about the announced Silverlight 2 product.

While I received a number of favorable comments, I also received some skepticism. We have been working hard on delivering on our goals in the form of providing an amazing media experience for the 2008 Olympics. Here is a link to the NBC Olympic site where you can see the implementation of Silverlight 2, Beta2.

I found the web site (http://www.nbcolympics.com/video) experience to be incredible! I only wish I had the equivalent on my TV.

I hope those who were skeptical, now feel more confident in our delivery. Yep, it's still a Beta (2) but running the Olympics on our breadth of technology should give you a higher level of confidence. Enjoy.

Posted by JackG | 2 Comments
Filed under:

Configuring Visual Studio to Debug .NET Framework Source Code

Earlier I posted a link to the announcement on ScottGu's blog about the framework source availiability for debugging. I wanted to follow-up with my experience using the reference source.

I found the installation instructions on "Configuring Visual Studio to Debug .NET Framework Source Code" on Shawn Burke's blog. I assume there is some official MS site for these instructions but I didn't look very hard. If anyone knows the link please let us know. The installation worked great on my Vista laptop with VS 2008. I did notice that much of the Orcas (i.e., 3.5) BCL has yet to be published. Unfortunately this includes the Managed AddIn Framework (MAF, System.AddIn*) source. I am following up on the Orcas release and I will let you know when it gets published. Enjoy! JackG

Extensibility; Clients and Services calling each other

In this post I will be showing sample code (also found on our CodePlex site) as well as an execution sequence diagram. I will show sample code addressing some frequently asked questions; A Host calling AddIn services, AddIns calling (aka. Automation) a Host, AddIns calling AddIns, Managing AddIns (utilizing LINQ), which assemblies are loaded (Per AD and utilizing direct connect), etc…

1.     A sample Host application that supports calls from the AddIn (aka., Automation) to the Host.

a.     In the past we have shown the Host calling into the AddIn (Sample code), which happens naturally via System.AddIn activation of the AddIn. In other words, the activation of an AddIn allows the Host to call through to the AddIn.

b.     We have shown the *pipeline* allowing the AddIn to automate the Host (Sample code).

                                          i.    As a result of several requests, this is a sample solution showing an end-to-end solution that includes the Host, Pipeline, and AddIn.

c.     In the past I have shown sample code using pure remoting (i.e., No System.AddIn*) for two-way remoting / bi-directional calls (i.e., Host Automation) but now I will show the equivalent using MAF (i.e., Managed AddIn Framework).

Extensibility; Clients and Services calling each other

2.     I am including a Sequence diagram that ties to the Sample App source code showing;

a.     AddIn Discovery, Qualification, Activation, AddIn calls into the Host (aka., Host Automation), AddIns requesting and calling other AddIn services (i.e., Client/Services).

 Sequence diagram of Clients and Services calling each other

3.     Isolation - AppDomains and AddIns/Assemblies activated within each, understanding Activation optimization (i.e., Direct Connect forgoing Isolation), and unloadability (i.e., which assemblies/Types are loaded/unloadable).

4.     Using LINQ to help you manage AddIns.

5.     The benefits of having Adapters, whereby you have code running in the locality of an AppDomain. This is also an example aiding in understanding MarshalByRef (MBRO). 

a.     See List<string> GetASMInAppDomain(string AppDomainName) in HostHelper.cs for comments on the problem and the solution.

6.     New features we included in the latest features we added to the VS2008 3.5 release.

a.     Direct connect Optimization. We have received a few questions on this feature and as such I wanted to clarify the implementation. 

                                          i.    You must enable DirectConnect

1.     AddInToken.EnableDirectConnect = true;

                                         ii.    Our Activate method makes it easy to create an Add-in in a new AppDomain and as a result people are forgetting to pass in an existing AppDomain to the Activate method.

1.     HAV = tokens[i].Activate<IAuthProvider>(AppDomain.CurrentDomain);

                                        iii.    Although we do not instantiate the Adapters we still require them to be defined in the pipeline folders.  As some have pointed out, this may be counter-intuitive.  We took this approach in order to guide you toward the right design (i.e., support for isolation and version resilience) going forward.

                                        iv.    Your Host view of AddIn and AddIn view of Host types respectively, must be the same type (i.e., in the same assembly).

1.     In my sample code I list the assemblies in a selected AppDomain so you can see what is loaded.  In the direct connect scenario you should not see the Adapter assemblies loaded in the AppDomain. 

b.     [ActivatableAs] Attribute enables AddIn side, View Type hierarchies. 

                                          i.    I created an Abstract base class (ABC) as the Base for my views and I marked the ABC with our new attribute [ActivatableAs] which tells us which Base type is used for activating the Addin.  The sample code shows how you can use Interfaces and Abstract Base Classes as views.  This also shows some of the differences between versioning an Interface (which would require casting over time or Adapting) and an Abstract Base Class which allows a little more flexibility in versioning due to its ability to have default implementations. Note that the CLR does not support multiple inheritance so using Abstract Base Classes should be carefully considered.

c.     Custom Qualification

                                          i.    Example of an Addin advertising its demand for activation in the Hosts default AppDomain. The Key/Value pair is nothing more than metadata you may use to suite any need your imagination allows.

d.     FindAddIn

                                          i.    There are a number of scenarios where you may not have a clean directory structure for Add-in’s, or you may not have write access to the Add-in store, or you may not know the location of the Add-in until runtime (e.g., Click-Once deployed Add-in’s), etc..

e.      AddIns calling AddIns

                                          i.    I will show one Add-in utilizing other AddIns that were instantiated by the Host. The AddIn consumer (Client) requests the List of other AddIns (Services) from the Host. This enables the AddIn to consume other services without having to do its own discovery and activation.

                                         ii.    This sample also shows the benefits of Adapter creation helper methods (AuthProviderHostAdapter) and the MAF support for passing Lists of reference types (CollectionAdapters.ToIListContract<> and CollectionAdapters.ToIListContract<>).

1.     For more on Value and Reference type behavior, check out these posts by TQ

a.     Are Arrays OK in Contracts?

b.     Reference vs. Value: Types, Passing and Marshalling

7.     Multiple Add-ins in a single Assembly

a.     Although this isn’t a new feature, I am frequently asked about how assemblies and pipeline segments should be factored (more on this later) and confusion over Add-ins and Assemblies.

                                          i.    Check out the DefaultAuthProvider.cs as an example.

Microsoft announcement of Silverlight 2 (Devices/RIA/Client)

Yesterday, Microsoft announced a significant technology advancement in Rich Internet Application (RIA) platform development.

This announcement was significant on many levels from my perspective. 

  1. It solidifies (beyond SL 1) the ability to use .Net to develop richer (beyond video and media) web client applications. As you may know, I have had strong opinions on the previous Web development experience (Thin Client - Web Clients).
  2. It clearly shows our effort in meeting customer demands to provide a continuum and compatibility of development environments from Devices to Web and Rich/Smart Client applications. Check out Scott Guthrie's blog post with sample code
  3. Providing VS designer support and very rich Expression Studio support for the above. This will further empower designers to build rich client applications with WPF and rich media/RIA experiences with Silverlight.

Check out the Mix08 site for more details, including the keynote.

Some of the coolest things I saw were:

  • The Hard Rock Café demo of zooming in and out of media images and retaining resolution. WPF rocks!
  • The upcoming Olympics media experience was unbelievable. The demo of multiple channels on the screen, the ability to rewind real time events and PIP (Picture In Picture). Unbelievable. Sniff, sniff, I miss my ability to do PIP on my TV. Sad that with High Def, etc... I had to give up on one of the coolest features I once had.
  • Silverlights ability to adjust the streaming experience based on my ever changing connectivity bandwidth was to cool for school.

One other note. I watched the keynote live from my desktop and I couldn't help but wonder how the audience could sit their so quietly when so many cool things were being shown on real bits. We aren't talking vapor or demo-ware here. I haven't been directly involved in the SL development effort and granted I work at Microsoft so I likely bring some bias, and I guess I am more excitable than your average person about where we landed on the ability to develop applications in a very compatible way from devices to Web to Rich Client applications (and maybe I had some influence) but can someone tell me why the audience was not as engaged. I mean, PIP - come on people, that's cool stuff! In any event, as a developer/consumer I am thrilled, as a contributor I am proud, and as a user I don't expect I will leave my DVI flat panel dual monitors during the Olympics.

I would love to get your thoughts on where we hit or missed the mark. Enjoy!

You asked for it (AddIn pipeline generator)

After all, our job is to make your life easier.  I have received a *lot* of requests for a tool that can generate the Add-In pipeline segments.  Ever since we mistakenly left comments in our MSDN articles code about the pipeline source being machine generated, some of you noticed that we may have been working on a tool.  Soooooo, as a continuation of Microsoft's open and transparent developer experience (see this link for .Net framework source code, and this link to view/file bugs, receive early drops, etc..) we just released our pipeline generation tool source code to the community!!! 

The tool generates source code as opposed to a binary (like tlbimp) so that you may alter the generated code.  You may have specific naming conventions, or you would like to contribute to the tools functionality, so you can now do so via Codeplex.  Here is a link to our Managed Extensibility and Add-In Framework source.  We are also adding our sample code from our Add-in team Blog so that we a consolidated source (pun intended).

You can't say I didn't get you anything for Christmas.  Have a great new year!  JackG

Winforms, WPF and AppDomain isolation

We just posted a solution to consider for the F.A.Q. of how to enable isolatable WinForms applications.  Check out this link.  This solution may be considered relative to my previous post and subsequent comments.  Note that WPF startup performance costs may be mitigated by applying the [LoaderOptimization(MultiDomainHost)] attribute to the main method.  This tells the loader that the app expects to load multiple AppDomains with similar code and thus should share the assembly images (WPF NGen images) between AppDomains.

 

Visual Studio 2008 and .NET Framework 3.5 RTM

It's official.  We have released to manufacturing.

I am personaly very excited about the Add-in addtions to the BCL, but you can also find over 250 new features in this release (e.g., LINQ).  Check out the new release here.

TechEd 2007 F.A.Q.

Hola!

I just returned from TechEd 2007 held in Barcelona, Spain. Barcelona is a beautiful city with incredible new and old architecture. The people are very friendly and even I was able to navigate the clean public transportation systems.  Yes, I am one of those people that get lost easily and never stop to ask for directions. I was surprisingly given a beautiful suite overlooking the Mediterranean at the Hilton Diagonal Mar hotel right next to the convention center. I would highly recommend the hotel! Ask for a suite above the 15th floor in order to take advantage of the 15th floor amenities!

I could go on and on about Barcelona, but I wanted to provide some links answering some of the F.A.Q.'s I received.

1.    Does the Add-In model support UI extensibility via WPF? Yes, check out my Channel 9 video, as well as the sample code.

2.    What is the state of Acropolis? Answer.

3.    What about the PAG CAB (WPF and Acropolis)? Answer

4.    Does the Add-In model support *in* domain activation, Click-once, custom meta-data, simple sandboxing, WPF isolation, and AddIn to AddIn communication?  Yes, these features were added in the final Beta.  Check out the “By popular demand link”.

5.    Can you tell me more about the WPF Add-In support (e.g., XBAP)? Here is the WPF blog site link.

6.    Where do I post WPF control specific Add-In questions?  Here is a link.

7.    Do you support Out of process activation and isolation of Add-Ins?  Do you support Partial Trust Add-Ins in an external process?  Can I have some control over the process? Yes, Yes, and Yes.  Here is a link to some sample code showing how easy it is.

8.    Can you tell me more about VSTA and the differences and/or reconciliation with the CLR Add-In model?  Check out these links.

9.    What are the rules/constraints of the types that may flow over the boundary? Here is a link to the contract constraints.

10.  Where are the Add-In MSDN articles?  Here are the links.

11.  What about WinForms support?  Who do I contact about this support? What about Crossbow?  Check out these links and comments; WinForms and MAF link, Crossbow link.

12.  Can you do Async programming in MAF? Yes, check out this link.

13.  What about ill behaved Add-Ins and unhandled exceptions?  Here is a link.

14.  Do you have sample code showing Host automation and Events?  Yes, check out this link.

15.  Where do I get Add-In support?  Here is a link.

16.  Can you show me more pictures and less text?  Can you tell more about the “Pipeline”? Can you show me some sample code for version tolerance, i.e., backward compatibility that supports something stronger than the use of a standard Interface or Abstract base class implementation.  Here is a link for all the above questions.

17.  Can the Add-In model be used as a dynamic component composition model?  Yes!  In some respects it was tragic that we used such a contextual naming convention of Host and Add-In, as opposed to component, composition, or automation.  I will be posting a sample application that shows the new Beta2 features we added and you will see the basis for a component model within the sample, as well as some code answering another F.A.Q. about the management of components/Add-Ins.  Stay tuned to this same bat channel.

If I missed one of your questions please let me know.  For those that I met at the conference, thank you for your support and thoughtful questions as well as the positive feedback and strong session scores (the checks in the mail ;-)

And for those that know me, I did make it to the WPT Barcelona casino for poker. The stakes were a little high for my taste and the players were quite good, but I managed to do well. Playing with people from Israel, Spain, and Holland, to name a few, was a cultural experience I will never forget.

Gràcies, Gracias, Merci

TechEd Developers conference

TechEd is shaping up to be a huge event in part due to the fact that we will not have a PDC this year.  Jesse and I will be doing a presentation on the Add-in model, and participating in a chalk talk among other things. If you have an opportunity to attend the conference please feel free to stop by and say hello.  If you would like to sync up at the conference please contact me via my blog.

For those interested in more details on the conference check out this link.

Hope to see you there, JackG

More Posts Next page »
 
Page view tracker