Introducing – MS Project Nexus


 image

Introduction.

In today’s .NET ecosystem you the customer are basically digesting a lot of our new wave of products, and the on ramping can be at times a bumpy ride. As typically the products are isolated in various pockets on Microsoft.com or other areas of the Internet and at times we don’t interlace the story from end to end as well as we should or could.

The tagline for our Rich Platform story is essentially “learn once, apply anywhere” (yes Adobe now have one similar). Yet what does this mean? How does this really apply to the average developer out there in the .NET ethos?

It simply means that with your current .NET skills you can take your knowledge, code and tools and reuse them throughout our many offerings ranging from PowerShell in Windows 2008 through to Silverlight on the web.

That’s all well in good to say out loud, especially from a marketing message, but how realistic is this? How likely is this to be true?

Well, I’m going to answer this and I’m not going to do it via lip service either. I’m going to write a complete end to end solution from scratch, in that I’m going to write code that I will be able to use throughout our entire Rich Platform. It will be a complete ACME style solution that is a living breathing application as well.

I’m also going to call upon internal experts within the company (here at corporate head quarters) to help me throughout this adventure (think “MTV Real world meets Code”).

The Contract.

Just like in the old day’s pre-Microsoft, all projects would start with a contract/charter of some sort. This contract essentially outlines what both you and your customer expect a solution to look like. How much is going to be paid and when you’re expected to deliver.

Well, I’m going to draft up a contract now to the blogosphere, and in this contract I’m going to outline what this beast will look like and what it will touch upon. You the readers can decide how this looks as well as I want to keep it 100% interactive via my blog!.

The Technology.

The idea for this crazy and maybe career limiting idea was that I wanted to highlight the entire ecosystem surrounding WPF and Silverlight but in a way that interlaces a complete story. In order to do this, it had to be a complete solution from end to end, each highlighting a scenario that’s relevant to today’s .NET developer & designer. The idea has to go beyond “hello world” and into deeper insights on how to orchestrate our pieces within Microsoft together.

The pieces I’m going to cover are the following (no particular order either):

  • ASP.NET MVC + AJAX. I’m going to make full use of the new toys here, and I’m not going to apologize for it. The idea is to put the code I write here into place, and then look at ways to extend it outwards to desktop reach.
  • Silverlight. I want to also make full use of Silverlight mixed with ASP.NET AJAX and highlight points where both technologies can be used either together or where Silverlight can take over from AJAX but in a way that makes sense.
  • WPF. We’ve made a lot of effort to keep Silverlight and WPF as close to parity as possible, and so I’m keen to highlight how the same code base can be re-used through both and again, above and beyond “hello world”.
  • WinForms. This is one of the foundation successes we have here at Microsoft, and you the WinForms developer aren’t forgotten. I’m planning on making full use of WinForms as well, highlighting how one can go from a WinForms application to WPF, Silverlight or ASP.NET AJAX through relevant scenarios.
  • Windows Communication Foundation (WCF). This is a great solution and has quite a lot of power, and I’ll look to expose how great this solution is from end to end with the previously mentioned Client & Browser based solutions.
  • SQL Server 2008. Why not get into a bit of SQL Diagrams etc, as let’s face it an average developer out there may want to know a few things about how to architect their SQL Database that makes sense. It won’t be perfect, but let’s see where this ends up.

The Developer.

It will be me, sure I’ll ask others to help me throughout (internal or external) but the overall objective here is to take an average developer like myself, and put me through the paces to see where I get stuck and how to navigate around the hurdles before me. The code won’t be perfect, the architecture won’t be the holy bible of code, but overall it will have a degree of cleanliness though.

It’s about proving a point that the code can be re-used and done in a way that at the very least holds up to basic design patterns in today’s object orientated world.

I will however make mistakes, but that’s ok, as I’ll be calling upon experts within Microsoft to point them out and say things “Scott, this is why your code sucks, as you’re not doing xyz right”. Humility is a virtue that I’m going to keep strong throughout this upcoming adventure.

The Designer.

I’ve always been proud of the fact that I can do both design and code at the same time with equal skill. It freaks most people out when they see how it comes together and ego aside, it should as I’ve worked very hard to keep both disciplines up to speed with one another. That being said, I’m the designer and developer on this project. As I want to unearth how one can attack the design of an application in all of the above client & browser technologies via Microsoft.

I will also call upon some of our User Experience experts internally to give me points and tips on how one should attack design with applications, and again expose this to the entire Microsoft ethos for critic and begin new conversations around Art & Science.

The End Goal.

Knowledge. It’s simply this, I want to just take a timeout from the usual Microsoft ecosystem and invite anyone whom is willing to watch over my shoulder as I head down the path of building a complete end to end solution from scratch. I want you all to share my hurdles, pain points, frustrations and successes. I also want to invite you into Microsoft Corporate Headquarters where I can introduce you to folks whom simply amaze me daily with their intelligence and talent.

I’ll introduce you to friends on the Windows Team whom design the next operating systems UI, through to Architects and developers on the Tools teams whose job is to make our lives easier and give me tips on how to keep productive and ship at the same time.

This isn’t a 2 or 3 blog post, this is going to be a yearlong blog series and this is all I’ll work on for the next year (obviously my day to day duties put aside).

Enough talk, time to launch MS Project Nexus (msprojectnexus.com).

Comments (15)

  1. This is a great (and massive) initiative Scott!

    It’s some what similar to what Rob Conery have been doing with his no 21-post long "MVC Storefront" series.

    I think these kinds of applications are interesting and valuable. Microsoft have done some "official" examples, like the Dinner.Now application, but something including all the new goddies will be highly valuable. One of the problems with the example applications Microsoft have done is that they throw up a big finished app with some documentation, but you never get the "the journey" about how they reached their goal of a complete application. So it’s often a little bit tricky to just pick up the finished sample, and you won’t know about the challenges the team faced while implementing the application.

  2. jay says:

    Where is the site?  There is no link and msprojectnexus.com goes nowhere

  3. That sounds like exactly what I want to do. Can I have your job?

  4. Jeremy Davis says:

    Scott – This is definitely a LARGE effort you are about to take on, however the potential upside to the .NET community and Microsoft could be large. I’m going to be watching this effort. BTW – Have you seen the Microsoft Health Common User Interface (CUI) site(s)? They are a blend of what you talk about with a “Real-World” scenario using a wide variety of .NET Technologies. Check it out if you get the chance…

    http://www.mscui.net/PatientJourneyDemonstrator/

    http://www.mscui.net/Default.aspx

  5. samiq says:

    As always count me in on this… make sure ur stuff is in codeplex so we can be peaking up on ur stuff from time to time 🙂 would love to take the fx we wrote to it (which I supposed u have already thought off) and shine it up a little bit for mainstream 😀

    … Keep on rocking on the rain world!

  6. scbarnes says:

    Thanks all! 🙂

    – msprojectnexus.com isn’t alive as well that’s part of the project, to create the site (ie ASP.NET MVC + AJAX). You will all get to help decide features and design for the site, so stay tuned for phase01.

    – Jonas says it correctly, this is not about the end point but the journey. I am going to video interviews with some of the brightest folks in Microsoft on this, so it will be exciting and geek-cool to watch unfold.

    – Jeremy. Yup, there’s a group called Industry Innovations Group in Microsoft and they produce some awesome solutions. I wish some of them saw the light of day as they are visually and technically amazing stuff.

    – Peter: No.. i love my job 🙂 get your own slice of Microsoft pie hehe.

  7. Ryan says:

    Hey, what will the application actually do? It is great to use the technology, but what will it solve, what great puzzle and real world problem will be better from this experiment? Maybe medical field, maybe insurance, or maybe, just maybe, Facebooq or something.

  8. Tom says:

    I think this is a fantastic idea and I for one will be along for the ride. I intend to encouraget some of the developers that work for/with me to follow along as well. Thanks for volunteering your time and effort on such a large undertaking for the betterment of yourself and the community.

    I have a suggestion/request for this project which stems from my small team’s struggles or needs. Would it be possible to show all of the project management along the way through the use of the Microsoft Team System set of applications.. most specifically, the use of Team Foundation Server throughout? Also, some Windows Work Flow Foundation work would be awesome too.

  9. scbarnes says:

    Ryan,

    The project is up for discussion, and I’ll be posting more on this on Monday (just need to clear some legal hurdles thrown in front of me before i follow-up!) 🙂

    Tom,

    Yup, I’ve already shot a video yesterday it was called "The Idea" and basically it will be video logs in diary format along the way.. insecurities, fears, hopes, random thoughts etc will all be captured.. this isn’t just a code dump, but a story – albiet – documentary 🙂

    I’ve also managed to rope Channel 9’s Adam Kinney into this as well ..

    It’s going to be a fun journey! and thank you all for supporting me in this as i got a few internal emails saying "are you on crack? do you know how big this is..can you do it?"

    Answer: yup 😀

  10. Scott,

    this is great…. I know it’ll be interesting and we will heard a lot more from you.

  11. Will Hughes says:

    Hey Scott… perhaps you could build on the good work that’s been done by the DinnerNow.NET folks.

    That’s a great technology demonstrator for the .NET platform — it’s a Microsoft project too.

  12. Parag Mehta says:

    Scott I believe doing business application for a vertical will do more sense then creating a DinnerNOW or Family.Show kind of application.

    I think there are few examples of live business applications in Silverlight/WPF, if you do it, it will be great

  13. Douglas Hammon says:

    Good idea. I’m looking forward to this.

    Is there any chance you could also incorporate Windows Workflow?

    Thanks.

  14. samcov says:

    You said:

    "Silverlight. I want to also make full use of Silverlight mixed with ASP.NET AJAX and highlight points where both technologies can be used either together or where Silverlight can take over from AJAX but in a way that makes sense."

    If there is any reason on this planet that you need ASP.NET AJAX instead of Silverlight, it only points out a weakness in Silverlight that needs correcting.

    I, for one, am sick of the javascript/Html/Css junk pile.  I’ve gotten real good at it, but I’ve never loved it like I love Silverlight.  Kill the interior of AJAX, just keep the A and the X.