Great MIX09 talk on ASP.NET AJAX 4.0. Stephen Walther is a really great presenter.
I’m not an AJAX expert, but the improvements in ver 4 are pretty clear. The big news is vastly improved client-side support. Wrapping your server-side controls with update panels is no longer necessary, as there is a much richer set of client-side controls, templates, etc.
In addition, you can do some pretty rich stuff declaritively—that is, without writing JavaScript. This stuff is too complicated for me to explain, but Piyush Shah has a great blog post on much of the new AJAX 4.0 functionality.
Attended a really good presentation about Expression Web 3 at MIX09. Wow, this is a fabulous product for anyone who has ever gone through the pain of building HTML & CSS for a complex web page.
SuperPreview is the flashiest feature. It lets you view your web page side by side in multiple browsers, including multiple versions of IE. For example, you can see your page in IE8 and IE6 simultaneously.
Making your page lay out correctly in multiple browsers is hard, and it’s made harder by the slow, tedious process of having to iteratively test your page in several different browsers. My friend Mike Servais has to run IE6 in a virtual machine so that he can run IE8 on his main machine.
When you’re previewing a page in two two different browsers, you can hover your mouse over any element. EW3 highlights the element (or its parent if you prefer) in both browsers and shows both the location the element is supposed to be and that location it actually is. For example, if an element is misaligned, you can quickly browse through the hierarchy of elements to discover which one is causing the problem.
EW3 also has great tools for interacting with existing HTML & CSS. The presenters loaded a copy of the MSN home page and used built-in reporting features to show that there were over 1,500 (!) different CSS elements. Appallingly, over 1,000 are not being used at all. EW3 has great interactive UI to let you discover all the CSS elements related to any element on the page.
My takeaway was that any web developer who works on HTML and CSS will find EW3 to be an invaluable tool.
I’ve been hearing about “Mesh applications” recently, and I’ve been wondering exactly what that means. Is a Mesh app something that runs in the context of the Mesh Operating Environment or your desktop in the cloud? And how do Mesh applications relate to Microsoft’s other cloud services like Live Services and Azure?
The MIX09 session on Live Mesh applications helped me understand. Here are the key points:
- The Live Services SDK, which support things like Live ID and access to users’ social graphs (i.e. their address books), has been renamed as the Live Framework.
- The Live Framework provides programmatic access to data and devices stored in Live Mesh. For example, I can write an app that can query all the files in a user’s Mesh storage.
- Everything is accessible via REST.
- Offline access is supported by allowing you to query Mesh data synched locally.
- Mesh also allows apps to be installed into Mesh. The intent, as I understand it, is that a Mesh app is automatically synched to all your devices.
Basically, the Live Framework exposes Mesh data just like other Live data and services. Thus, a Mesh application is simply a Live Framework app that happens to read and/or write data into Mesh storage.
I’m intrigued about how Microsoft is going rationalize Mesh and Skydrive. As I understand things, there is no similar public API for Skydrive. One thought is that Skydrive could itself be implemented on top of the Mesh API. This would be a great way to bring Mesh and Skydrive together onto a common platform.
App synching is an interesting concept. It suggests a vision that your desktop is totally portable to all your devices. If you install an app on one device, it automatically shows up on your other devices. This is a hybrid online/offline approach that fits well with Microsoft’s obvious goal of keeping local OS (e.g. Windows) relevant in a “cloud” world. There are some key benefits to this concept: apps and data are available online if you’re connected and offline if you’re not, and you can create rich client apps that leverage your local device hardware.
This is a pretty brief summary, of course, but these are the key ideas that have helped me understand the concept of what constitutes a “Mesh application.”
Oslo Repository and Models
Coming into this session with very little concept of why I should care about Oslo. I don't know what it is or how it can help me. Let's see...
Compoents:
- M Modeling Language
- Deployment tool to install model to DB
- Repository Database:
- Store application metadata (config files, registry, stuff on disks)
- Deploy to runtime easily
- Optimized for storing and sharing data
- Runs on top of SQL Server
Oslo Models:
- Identity
- Application
- ServiceModel
- Transactions
- WorkflowModel
- WorkflowServiceModel
- Messaging
- Security
- Management
- Hosting
- Language
- Repository
Current SDK provides:
- Tools for defining models: Intellipad & Visual Studio language services
- Compile tools (m.exe)
- Deploy tools (mx.exe)
Oslo DevCenter at http://msdn.microsoft.com/oslo
Tools are very preliminary...clearly designed by developer for developer. Funny note: Intellipad runs in window with three resizable vertical panes. Would look great on a wide screen display, but a mess on the projector.
Morning Keynotes
Windows 7
Impressed by Steven Sinofsky's on-stage presence and very happy to hear about the Windows team's plans for Windows 7, which is being distributed to PDC attendees in "pre-beta" form.
Some good stuff:
- Dramatically better support for connecting/disconnecting to external projectors or monitors. Just use Windows+P to browse through different modes (UI is just like Alt+Tab)
- Much better multi-monitor support that even works of Remote Desktop
- Promise of faster boot times, more responsive start menus
- Claim of much smaller footprint. Sinofsky showed Win 7 running on a 1GB Netbook, and said there was still 512MB free after the OS loaded.
- Customize the shut down button in the start menu to do what you want (sleep, restart, etc.)
- Zoom display in and out using Windows++ and Windows+-
Dev 10
Kind of a flat presentation with uninteresting demos, but some interesting ASP.NET tech:
- Dynamic data
- Richer REST support
- Model-View-Controller (MVC) support
- AJAX/jQuery with Intellisense
- Velocity Distributed Caching API (My team is rolling out a new version of MSDN forums next month that uses Velocity.)
- Multiple web configs: debug, staging, release
Visual Studio is being re-written as a WPF app. The current beta has a WPF editor, but the rest of the app is not yet WPF. ScottGu gave a cool demo of a WPF comments control that provided rich formatting and functionality (e.g. pop-up bug info) inside a comments block.
Live
David Treadwell shared some interesting stats about Live.com:
- 11% of all "Internet minutes" are spent on Microsoft Live apps.
- Live ID currently has 460 million accounts with over one billion authentications per day.
Don Box & Chris Anderson
This keynote is a "program against the cloud" demo. Pretty fun to watch these guys work. While they're clearly working to a plan, they're also improvising.
They're showing off how to write cloud apps using Mesh, Azure and SQL Server Data Services (SSDS) It's all pretty simple. The points they're highlighting are the ability to have local machines interact with code and data hosted in the cloud using full REST apis, as well as rich Visual Studio integration.
I really didn't follow all the details--they were moving fast, and I was only half paying attention--but the important takeaway is the writing against the cloud is easy and flexible.
My question is simple: When will Azure and SSDS be ready for prime time? In other words, when will it be ready to host a really large scale app?
Office Web Apps
Tucked into the tail-end of today's keynotes was demo of web-versions of Word and Excel. These were very full featured versions of the apps running inside web browsers (both IE and Firefox) were shown. Even though the apps were in a browser, they still felt like the real thing. Imagine an experience even more complete than Outlook Web Access.
These demos felt out of sync with the rest of the keynotes--not really sure why they were shown at PDC. I'm guessing it was more of a PR move than anything.
I'm curious how Microsoft will distribute the web versions. My guess is that they'll be free if you own a desktop license, or they'll be available via an online subscription. Another idea: Will they be baked into SharePoint?
Another detail they showed was distributed document editing intended to be released in Office 14. The idea is more than one person can edit simultaneously and changes can then be merged.
Velocity
Really like Velocity, which our Forums team is using to improve scalability and perf. This is a simple distributed caching architecture that stores name-value pairs in RAM caches distributed across multiple machines.
Touted benefits are scaling, performance and availability.
The availability point was new to me...one of the nice features they have is that every item is backed up to a different server. When the "primary" server goes down for any reason, the backup data on "secondary" server are promoted to primary. In addition, the cache is redistributed amongst the remaining servers, and any lost backup items are recreated on the remaining servers.
SQL Server Data Services
Azure Storage vs. SQL Data Services: basically Azure is flat ("essential"), while SQL is SQL: relational, query, reports, etc. I missed the exact number, but I think I heard that there are 500 servers currently live.
Three key pillars of SQL Data Servers (SDS):
- Storage for all data types from birth to archival
- Rich data processing services
- Operational excellence (availability, on-demand, fee-based)
Benefits:
- Scale up AND down on demand. If you scale up yourself, you still need to carry the infrastructure when you scale down.
- Immediate availability allows great nimbleness.
- High performance and availability; inherently redundant.
- Use standard data sources and data binding
- Continue using existing tools like Reporting Services
SDS data model:
- Authority (server): unit of geo-location and billiing; tied to DNS name, collection of containers
- Container (database): unit of consistency, scope for query and update, collection of entities
- Entity (roles): unit of storage, property bag of name/value pairs, no schema required
Scaling:
- Master cluster manager used to manage partitioning across data nodes.
- Additional data nodes added as needed to support busy partitions. NOTE: As SDS user, you are required to specify node...cross-node queries not currently supported. Assures full-consistency by letting you retrieve data immediately upon write.
Other details:
- SDS has custom query language that is largely typeless.
- All properties (name/value pairs) are indexed (always btree).
- SDS co-located with Azure, so there is no over-Internet latency when going between Azure code and SDS.
- Bulk loading via SSIS will be supported at some point, though not sure when.
- Full-text searching is not currently supported, but the backend is SQL Server, which supports it. Thus, it's possible the service will support it in the future.
- No plans to build an RDF layer at this time (I have no idea what this means.)
Public beta begins mid-November:
- 50GB total data per account
- 1,000 containers per authority
- Automatically available with Azure account
Ray Ozzie announced Windows Azure this morning, and the new Azure forums have gone live on the MSDN Social Platform: http://social.msdn.microsoft.com/Forums/en-US/category/azure.
Follow Azure on MSDN Bookmarks: http://social.msdn.microsoft.com/en-US/#sort=week&page=0&filter=allcontent&tags=azure.
ASP.NET team publishing its ASP.NET 4.0 bits on http://www.codeplex.com/aspnet.
Interesting Q&A with ASP.NET team:
Q. What are your ASP.NET investment priorities?
A. Our three pillars are Ajax, MVC and Web Forms--they all receive equal attention.
My team updated the MSDN and TechNet Bookmarks application eariler this week, and it's way faster and more reliable.
Bookmarks v1.0 shipped last month, and we've more than tripled the total volume of bookmarks that we collected in our 3 1/2 month beta. This is great news, but it also put a strain our previous architecture. Our goal for this most recent release was to increase the capacity of the system while making it faster and eliminating some bugs.
The simplest thing we did to increase capacity was to really optimize our business and database logic. By making every operation more efficient, we use fewer system resources for each request, and therefore increase the capacity of the system.
A nice side effect is that the app is way faster for users. For example, we updated our database layer (running on SQL Server 2008, of course) so that calls into it are 10-100x faster. This translates to much faster page load times, which makes Bookmarks a more useful solution and enjoyable experience.
A core focus of our recent release was increasing overall capacity of our bookmarking application. The growth in usage we've see was straining our old vertical database architecture, so we needed to rearchitect to allow inexpensive horizontal scaling.
We have a similar scale problem with our Forums app, and we are moving it to a partitioned (aka "sharded") architecture. This is expensive, however, since it requires that we isolate reads and writes for different forums to different clusters, while maintaining a centralized database for shared infomation.
Bookmarking is asymmetrical in that almost all queries to the database are reads. In fact, less than 1% of all requests writes to create or update bookmarks are tags.
We take advantage of this in our new DB architecture, and avoid the expense of partitioning/sharding, by moving all reads to a set of read-only database servers, while sending all writes to a centralized read-write DB cluster.
This solution was inexpensive to implement. In our business layer, we simply specified two SQL connection strings--one for reads and one for writes. We then rebuilt our database infrastructure to have a set of inexpensive read-only servers, and a robust read-write cluster. We added a SQL Remote Distributor to keep the read-only servers in sync with the read-write cluster.
The result is we can increase read capacity simply by adding more read-only servers. And since we have lots of room for growth on the read-write server, it will be a long time before we need to add capacity to it.
The Social Platform, as well as the other MSDN & TechNet apps, is hosted by the Microsoft.com Operations team, with servers in the same data centers that host Live, MSNBC, etc.
I've been fascinated to learn how much application performance varies based on a user's proximity to our data centers. The Social Platform is primarily hosted in the Columbia data center, near Quincy, WA, and a Blue Ridge, VA facility.
As you might expect, performance is really good for users near those data centers. And it's also good in locations that have fat pipes connected back to the areas. For example, perf is great in San Jose and Vancouver, WA.
But until we added CDN support to the Social Platform, performance at more remote locations was poor. For example, our pages were noticably slower to load in the Southern US, and took twice as long to load in parts of of Europe and three times as long in China.
Now that we've added CDN support through Akamai and ChinaCache, performance is stunningly better. Performance is pretty consistent throughout the US and Europe, and while it's still slower in China, it's less than half the time it was before.
By the way, "CDN" stands for Content Delivery Network. The way it works is that we ask the CDNs to cache static resources, such as images and JavaScript files, on servers that are distributed throughout the world. The CDN companies use DNS and routing tricks to serve the cached files from servers that are close to end users.
It turns out that most of the extra time required for a page to load in Europe or Asia is caused by network latency. It can take many tenths of a second, or even several seconds, for a request to make its way over the the network and back from the server. This problem is worse when you're connecting to servers overseas because you have to traverse more nodes on the network.
Another critical factor in page load time is that IE and other browsers only open two connections at a time to any single server. If there are lots of images and scripts on a page, there will be additional network latency for each pair of resources that are requested.
We work around that limitation by hosting the files for any given page on up to five different host names. While the files are physically on the same server, we split URLs across five different hosts to allow parallel loading.
When people learn that I work on MSDN and TechNet, one of the first things I hear is that our Search solution is really terrible. The best way to find something on our sites, they say, is to use Google.
A year ago I would have agreed, but now I’m proud to be able to tell people that we’ve been updating Search over the past year, and they should really take another look.
I had a fun experience last night that illustrates just how far we have come. Tim and Drew, developer friends from Brisbane, Australia are in town and came over to my place to hang out. We yakked about all the normal stuff—families, politics, American accents—but as web guys, we ended up talking shop a lot.
I proudly demoed our new forums and bookmarks applications, and they were duly impressed, but one of them said, “You know what I really can’t stand about MSDN? It’s the search—it’s just terrible. I just use Google.”
Well, this was a great opportunity, so I said, “When’s the last time you used MSDN search?” They both said they had given up on it a year or two ago, so I said, “Check this out…” and proceeded to show off our new Search app, focusing especially on refinements and auto-complete.
“Wow, that’s pretty interesting,” said Drew, “but let me see how it works on something I really care about—try search for the Win32 CreateWindow function—I use it all the time.” I did as he asked, typing only “create” into the search box before “createwindow” showed up as the fourth item, then a “w” so it was first. Selecting it and pressing enter, Drew was pleased to see CreateWindow() show up as the first item in the results list. He also like that there was a “Win32” refinement so he could narrow the results to Win32 content only.
“This is great.” Growing ambitious, Tim added, “What really pisses me off about Google is how it strips out all punctuation, which is vital when searching for programming terms.” He asked me to search for the XmlDocument.CreateElement method. “It would be really great if you search supports periods.”
I typed “xmldocument” and Timsaw a bunch of autocomplete terms with “dots” in them. “This looks promising--I'm ecstatic,” he said. I typed a couple more characters to get “xmldocument.c” and “xmldocument.createelement” was listed as the second item. I selected it and the results came back with all the different versions XmlDocument.CreateElement() listed first.
“This is absolutely brilliant,” said Tim. “This is exactly the stuff I was searching for today. I’ll definitely start using MSDN search again.”
For someone who five minutes earlier was saying that MSDN search is not any good, this was a great transformation to see.
I've been meaning to blog more often, and some of the questions I'm getting about our new Social Bookmarks app have given me a good excuse to talk about the thinking behind the Social Platform.
This blog post started with some tough questions from a senior and well-respected guy within Microsoft who saw our new Social Bookmarks app for the first time today. He asked, "Who needs another bookmarking app? And why did we build a new bookmarking solution for MSDN and TechNet rather than Windows Live Favorites or Sharepoint?"
The answer is actually more about tagging than it is bookmarking. The two concepts are used almost interchangably--every social bookmarking site includes tagging, and most tagging applications are fundamentally about bookmarking.
But for the Social Platform, tagging is about much more than bookmarking.
Tagging is deeply integrated into our platform strategy, and we're using our centralized tagging and feeds service (called Discovery Services) internally to power all sorts of interesting scenarios for MSDN, TechNet and Expression. Indeed, tagging is so central to our strategy that we would be building our central tagging service even if we chose not to build a Social Bookmarks app.
For example, take the feeds that are everywhere on our sites. (Note that I didn't say "RSS Feed"--yes, all our feeds are available via RSS, but feeds are not always RSS and they're useful with or without RSS.) For example, consider the C# headlines feed on the C# DevCenter. To make a news item show up in this feed, our site managers simply define the item in Discovery Services with a title, description and URL (and some other metadata) and tag it with C#. That's it. The feed is a dynamic query for all items for that our site managers have tagged with C#.
But the real power is that every item can have multiple tags. Take, for instance, the top headline (as of tonight) on the C# DevCenter: "Microsoft .NET Framework 3.5 Service Pack (SP) 1 Beta Now Available". To include this same item in the .NET Framework headlines feed, our site managers need simply tag it with .NET too. This is way easier than the process they've had to follow to date, which is manually placing the item in both feeds. The new approach saves lots of work for site managers.
MSDN, TechNet and Expression are built around Centers and applications like the Library, Forums, Code Gallery, Blogs and Bookmarking. Centers are portal pages that help users to find their way around our sites. All of the content shown in a portal page are either feeds or fragments of manually authored content. And every feed and every fragment can be--you guessed it--tagged.
In addition, our platform has the idea of "related links," which is an ordered list of links that we (that is, Microsoft) define for a tag. Using this idea, we can suggest links related to a currently selected tag. For example, we would likely define C# DevCenter, C# Library, C# Forums, C# Blogs and C# Downloads as related links for the C# tag.
If you're still with me, you may be getting an idea of where I'm going: We can automatically generate portal pages using tags.
It's really expensive to manually create portal pages, so we only produce a few hundred Centers dedicated to Microsoft products, technologies and other important topics like security. So automating creation of these Centers would be a good thing because it would free up valuable people to add value in other ways.
But it gets better: While it's nice to automate something that's currently manual, the real value is that we can automatically create a portal for ANY tag. So you want to see the portal for the Ajax tag? How about the Exchange Virus Scanning API (VSAPI)? No problem...just click either of the Ajax and VSAPI tags.
Cool, eh?
Now that I've talked about how we're using tags to create dynamic feeds and portals, I should return to Social Bookmarking.
I mentioned above how our site managers create feeds simply by tagging items in Discovery Services. It turns out the exact same thing is true for Bookmarks, only users are doing the tagging rather than Microsoft employees. The added bonus is that there are millions of users and Bookmarks are Social, which means that we can infer popularity by how many users bookmark and tag a given item, and by how often a particular tag is applied to one or more items.
Our goal is to get tens of thousands of users to bookmark and tag content on our sites and elsewhere on the Internet. (To put this in perspective, there are tens of millions of visits to MSDN and TechNet every month.) Every bookmark and tag provides information that can help other users, and we can use the collective wisdom of many users to surface the content most likely to be interesting to users interested in a particular topic.
While our site managers create Microsoft-recommended feeds for official announcments and other topics we think our users will find interesting, Social Bookmarks leads to social tag clouds and feeds that are democratically organized by the community itself. My hope is that put into this context you see that Social Bookmarks represents the social aspect of our overall tagging strategy.
And this explains why we've built our own Social Bookmarks application: It's not just about bookmarking.
The blogosphere is starting to buzz about our new Social Bookmarks preview app that went live today. While most bloggers are focusing on the MSDN version, we have also shipped versions for TechNet, Expression (screenshot below) and a generic Microsoft brand.

While it's true that our Social Bookmarks app provides features similar to those found in del.icio.us and our earlier TagSpace prototype, our approach is a little different. While our bookmarking app can be used to bookmark anything by anyone, my team is really focused on technical professionals--developers, system administrators, designers and other technical folks. In fact, we've moved away from the "TagSpace" name because we're not trying to introduce a new brand name. Instead, we are focused on making our MSDN, TechNet and Expression as social as possible.
Given our focus on making our sites more social, there are a couple big concepts that are unique to how we're doing bookmarks:
First, Bookmarks are brand-specific. In other words, MSDN bookmarks are kept separate from TechNet bookmarks. The idea is that developers care about different topics than IT professionals, so it's useful to keep the bookmarks separated. For example, a system administrator probably isn't interested in seeing a bunch of bookmarks related to .NET APIs.
When you view My Bookmarks, you see everything you've bookmarked across all brands. But when you view All Bookmarks, you'll just see only the bookmarks that apply to the current brand. For example, if you bookmark something in an Expression forum, you won't see it listed under MSDN's All Bookmarks view.
The next new concept is that tagging forums threads is an alternate way of bookmarking. In fact, the tag control in the forums app is now labeled "Bookmarking" and it provides a link to your bookmarks as well as letting you tag the current thread.
We call this "inline tagging" and plan to roll it out more widely across the sites. Later this year, bookmarks in the MSDN Code Gallery, and the MSDN and TechNet libraries will use similar inline tagging controls, and they will share our new Social Bookmarks backend.
I'm looking forward to see how MSDN, TechNet and Expression users respond to our new bookmarking capabilities. My hope is that they will appreciate the convenience of bookmarking on our sites, while also providing lots of tags that will help other users find topics that are helpful and interesting.
There are several interesting things coming soon from the Community Platform team.
Social Bookmarking
We're releasing a nice Social Bookmarking Preview in late May. Our marketing team is planning some minor hoopla to show the app off at TechEd.
MSDN, TechNet and Expression will all have their own instance of the bookmarking app, so you will experience the app as MSDN Social Bookmarking, TechNet Social Bookmarking, etc. Nevertheless, you are not constrained to bookmarking items on these sites, or even within Microsoft. You will be able to bookmark almost any item on the Internet that has a URL (the exceptions being adult sites and the like).
Social Bookmarking is a useful way for you to save your favorites on the server and access them from any machine or browser. This in itself is helpful for technical professionals who frequently move between machines and browsers. You can apply one or multiple tags to each item you bookmark to help you browse and search your bookmarks later.
The Preview will show off some interesting ideas about how bookmarks and tags can be socially shared. For example, you'll be able to view an aggregated list of bookmarks from all users, along with an aggregated tag cloud. This is an interesting way to explore what other users are interested in, and to discover topics that are popular now. (And yes, we do support private bookmarks that only you can see!)
Most of the core functionality that we're delivering now has been done by other sites like Del.icio.us. What's new is that our experience is fully integrated into the Community Platform and will therefore be available to a wide range of users who have not used other bookmarking sites. In addition, we're moving toward a fully integrated tagging and bookmarking strategy where Forums, CodePlex and Library Annontation (aka Wiki) tags are combined so they can be browsed in a common tag cloud and managed in one place. (Only Forums tags will be integrated in the Social Bookmarking Preview.)
Updated Profile
We're enhancing User Profile to provide a richer experience to view information about yourself and others. Our May release will feature an updated UI that lists the forums contributions and bookmarks for every user. When you view your own profile, you'll have the option of editing your settings.
These changes make each user's profile more attractive and interesting, but they are just a small step in our larger plan to make Profile a rich, central place for users to present themselves to the community and manage their stuff within MSDN, TechNet and Expression.
Forums Migration
While we continue to improve lots of things with Forums 3.x, an all-new Forums solution, the big news is that we're preparing to migrate the old forums to the new application. This migration will start with about 60 forums that we plan to migrate by the end of the month. Examples include the Forefront and Visual Studio forums.
We are trying to be really careful to minimize any disruption for users, moderators and product teams who depend on the forums every day. The migration is meant to be robust, so we are migrating forums posts and threads, user info and user points. One of the thornier problems is that there are 10's of thousands of existing links to the forums, so rather than letting those links break when we move the forums, we're going to update the existing forums to correctly redirect incoming requests for migrated threads to the migrated version of the thread.
We currently expect to migrate the forums in chunks over the summer. The migration process is fairly automated, so it would not be technically challenging to migrate them all at once, but our users and moderators have asked to move more slowly so they have time to prepare for the change.
I've got a really interesting job opening for an experienced technical PM who wants to work on some fun Web 2.0 stuff. Here's the detail...
Job Description
DevDiv’s Server & Tools Online team is seeking a highly technical senior program manager to help us build innovative new Community Platform web applications, including forums, community-driven portals, blogs, social bookmarking, a feeds and tags service, plus content management. Our team is focused on transforming MSDN, TechNet and the (new) Expression web sites into the most innovative, community-focused web sites within Microsoft and the industry.
We are seeking a well-rounded senior PM with excellent technical, design and leadership skills. You are a good fit if you have strong passion and experience building great web apps, if you are good at defining and analyzing problems and if you know how to get things done.
This job is a good fit if you…
- Have great experience as a PM working on large-scale web applications
- Are experienced with web architecture and performance
- Understand the social web (e.g. social networking, online communities, web 2.0, etc.)
- Are passionate about building great software
- Possess great abstract thinking and analytical skills
- Have deep understanding of complex web technologies and sites
- Care about the details
Specific qualifications include:
- Strong technical background with expertise in web technologies like HTTP, ASP.NET, SQL Server, AJAX, JavaScript, XML. LAMP experience also welcome!
- Work experience directly related to engineering of complex web sites, tools and user experiences
5+ years successful experience as a technical PM. (Microsoft PM experience desirable but not required.)
- Strong cross-group collaboration skills
- Demonstrated ability to write stories, functional specs and other technical documents
- Experience shipping products/web sites
- BS or higher in technical field
The first version of the STO Community Platform went live on Valentine's Day, Thursday, February 14.
My team has built this platform to host all community applications for MSDN, TechNet and the new Expression site. This release includes an all-new Forums app, a new Profile app, and a rewritten Search app.
The most prominent use of the new Forums app is the Expression Forums site. MSDN and TechNet forums are mostly still running on our older "Forums 2.4" codebase. The Community Platform Forums for TechNet and MSDN are live but primarily with feedback and sandbox forums only for now.
Migrating existing 2.4 content and users to the Community Platform is a top priority for our team over the next 100 days. Our goal is to have a substantial chunk of MSDN forums migrated by the end of May in support of a “re-launch” of MSDN & TechNet at TechEd in early June.
New Applications
This Community Platform release features many new applications:
· Forums 3.0: 100% new code that will replace the existing Forums 2.x solution in coming months. Highlights include a phenomenal new UI, automatic updates and our first social tagging deployment. Users and stakeholders who have seen pre-release versions of forums are raving about its rich capabilities and user interface.
· Search 3.0: A rewrite of the existing MSDN/TN search application with improved auto-complete functionality, improved international search (including 20 languages!), and dramatically improved refinements.
· Profile 1.0: A new centralized place for users to manage their personal settings, such as display name, avatar and signature.
· Discovery Services 1.0: A high performance feed and tag “engine” that provides a RESTful interface to query editorially managed and tag-driven dynamic feeds. Forums tagging, search refinements, RSS feeds, forum categories and related sites are some of the features enabled by Discovery Services.
· Feed Management Tool 1.0: A browser-based internal tool that lets site managers and other authorized stakeholders create, edit, tag and schedule both feed items and feeds that are available in both RSS 2.0 and ATOM formats.
· STO Apps 1.0: A centralized portal and framework for all Community Platform management tools. The feed management tool, forums admin, global profanity filter management, tag management and all other Platform tools are available on this site and make use of a shared framework that provides consistent UI and role-based security.
Platform Features
In addition to the stand-alone applications listed above, there are many foundational capabilities and features in the Community Platform. For example:
· Shared UX: The framework is highlighted by the all-new Coronado/Boston masthead design that will be rolled out in all MSDN, TechNet and Expression apps, including the Community Platform apps, the Library, Centers, Code Gallery and future Platform apps.
· Social Tagging and Feeds: Every application can leverage the rich social tagging and feed support enabled by Discovery Services.
· Feed Service End Point: A universal endpoint to query feeds from any Community Platform application.
· Friendly URLs: Simple URLs that are easier to type and remember.
· Globalization Framework: Rich standardized globalization support that can be extended and customized as needed by individual apps.
· Multi-Brand Support: Every application is available in each brand. MSDN, TechNet, Expression and Microsoft brands are supported currently.
· Shared App Framework: All apps are built on a common framework that provides master pages and controls, config, instrumentation, error logging and much more.
What’s Next
This release represents the completion of my teams's Coronado project, and we're now moving onto the next wave of Community Platform development, code named Catalina. In addition to updates to all existing applications and the Platform itself, Catalina will feature a new Portals application, Content Management, and a Social Tagging and Bookmarking solution. More details to follow soon!
Welcome to my new blog, where I plan to write about my team's work to enhance the MSDN and TechNet web sites.
I am the Group Program Manager for the Server & Tools Online team. I am one of the managers for a standard Microsoft engineering team that consists of program managers, developers and testers. Roughly speaking, program managers work with customers and other stakeholders, like product groups or customer support, inside Microsoft to figure out and prioritize business requirements. We also work with developers and testers to define the functionality and features that are built.
There are several engineering teams in my larger business group. A large team builds the MSDN & TechNet Publishing System (MTPS), which is especially good at hosting the MSDN and TechNet libraries and the MSDN Wiki (for a wiki example, see Community Content on library pages). Another team builds Codeplex. We have yet other teams who are responsible for subscriptions and downloads.
My team is responsible for other community content on MSDN and TechNet, including forums and blogs. We also build the new MSDN and TechNet search application, which provides dramatically improved search for the sites compared to earlier solutions. Our team also built the Learning Platform, which helps MSDN and TechNet users find and acquire learning resources, such as eLearning courses and books.
My team is developing a new Community Platform solution, which provides a common architecture and a suite of services that will enable the next generation of MSDN and TechNet applications. We are currently building an all-new forums application (first version available in early 2008) on top of the community platform, and we have ported the search application to it. Later in 2008, we plan to release portals, blogs and social bookmarking applications on the Community platform.
The very name of our new platform reflects the degree to which we plan to embrace and enable Community applications for MSDN and TechNet. As a shorthand, we talk about enabling Web 2.0, by which we mean allowing our users to both consume and contribute content to our sites.
I plan to use my blog to talk more about my team's vision for MSDN and TechNet, the Community Platform, and the applications we're writing for the platform. I hope someone finds it interesting and helpful.