Sweet!

I finally got a seat next to a power outlet so I don't have to do the geek sprawl during the presentation J

I'm updating my two things, adding a third, a chair!

Workflow in SharePoint 2010: Overview

Workflow provides structure to processes around the collaboration process in SharePoint.

Example: Expense Reporting

  • Report is filled out and uploaded to server
  • Send to manager(s) for their approval
  • If successful, reimburse the expenses

Basically you've got an artifact, a user, and a decision that is made regarding the document with different results. They are chained and combined to make more complex workflows.

He said this is going to be a demo heavy presentation. He's showing how the out of the box workflow works, and it looks pretty similar to the current process. It does use an InfoPath form in the browser for initiating the workflow.

Wow, the new status page is a running visualization that's powered by Visio services. It's VERY slick, showing you diagrammatically the current workflow and the status along with all the details about each step.

LOL, someone asked him to slow down, I was actually wanting him to speed up. I mean this is the basic workflow the biggest difference is the visual representation of the workflow and it's status.

Workflow Spectrum

  • Out of the box – Ready to use, common approval scenarios
  • Out of the box customization – Association and initiations settings, modify logic in SharePoint designer, Design forms in InfoPath
  • Custom Declarative – Start from scratch or existing, new actions, task process framework, more types of workflows
  • Custom Activities – Encapsulate custom code in a new action, deploy in full or partial trust as user code
  • Custom Non-Declarative – Import into Visual Studio, advanced modeling, Hook up workflow to events

The workflows are now more flexible, allowing more usage of out of the box workflows instead of having to immediately go to a custom workflow

Hehe, he's already back up to his speed of speaking.

You can now use InfoPath with the no code workflows to customize them.

He's now showing how you can modify the existing workflows without the SharePoint designer yet.

Oooops, my bad, he is going to use SharePoint designer. I really like the navigation on the side now, it's geared to the SharePoint structure instead of a folder based, it makes a lot of sense. It displays a summary page of information about a workflow, including the ability to edit the workflow in the designer. He's backing out and copying the default one to a new workflow so he can edit it.

Oooh, you can modify the start page including adding new parameters or change the existing ones.

Nice, new InfoPath looks very pretty and less confusing.

What's new in Workflow Design

  • New workflow types, site, content type, reusable
  • Logic constructs and impersonation!!!
  • Data binding and on-demand columns
  • Manager, user profile lookups
  • Doc set and record management
  • Read/write to external lists (isn't this BCS feature?)
  • Visio is being used as a graphical designer
  • Solution packaging for portability

You can force a list to create a column if it doesn't currently exist.

In 2007 you basically used a single task, or combine tasks.

In 2010 you can cascade either single tasks, or combine them with automatic data binding.

It's easier to build in robust behaviors with out of the box workflows using the Task Process Designer.

You can use behaviors to modify the out of the box workflows. You can selectively modify just the parts that are needed to be changed.

Again you can add additional fields when you create a workflow in SharePoint designer.

LOTS of demos, you should check the slides and video for the stuff he's going through.

You can add custom code to a workflow for just one piece of it, while keeping all the other out of the box tasks.

Visual Studio extension of workflows is not covered in this presentation.

I like the designer in SharePoint Designer 2010 for Workflows.

Building Solutions with Business Connectivity Services using Visual Studio 2010

Ok, I have made a discovery. Happiness at a tech convention consists of two things.

  1. Finding refreshments
  2. Finding an outlet for your equipment, they need to have power strips down the aisles

I've been looking forward to this session, the BCS has really gotten me pumped up.

Presented by: Rolando Jimenez, Sr Lead Program Manager, Microsoft

Goals:

  • How to use Visual Studio 2010 to implement BCS
  • What kind of solutions can be created with BCS

BCS fits into the Composite area of SharePoint 2010.

  • It enables developers to create re-usable components to access data.
  • Enables users and other developers to use these components to create solutions without having to establish the connections to the back end data.

BCS streamlines the creating of data access to external data and make it available to SharePoint.

External Lists provides external data in a standard SharePoint list.

Comparing to 2007

BCS is the extension of BDC from SharePoint 2007.

Improving the presentation

Enabling write back capability, and more out of the box connectors (.Net assembly connector)

Improving the developer tools for creating BCS

External Content Types – The building block for BCS applications

You'll have an external data source somewhere. The external content type is a description of the data, how to connect to the data and the behavior of the data.

The ECT then allows you to use BCS to make the data available for use within SharePoint.

Tools

Two solution types, code and no code. The difference is who creates them, the tools they use, and how it's managed and executed.

No Code solution is managed by the Runtime, built with SharePoint designer and the SharePoint SDK.

Code solutions are managed by the CLR, and you use Visual Studio to create them.

  • External Lists, connect to Outlook and SharePoint WorkSpaces
  • Customization using InfoPath forms, the outlook taskpane and ribbon, word/QuickParts, Workflow and Web Part Pages
  • Custom development, implementing security, transformations, data aggregations, and business logic, and they are reusable pieces

The first two are the No Code solutions, while the last one is a Code Solution. The reusable components can be used in the No Code solutions.

There's a good chart outlining the what you can do with the tools both in a No Code and a Code solution in the slide deck.

There is a BCS model project in Visual Studio for creating BCS applications.

Wow, I just love the new visual designer that you use now to create the BCS. Basically you are defining the External Content Types that you'll deploy to SharePoint.

Oooh, he's showing that the models will automatically create the code behind for you to create the entities. So instead of having to dig through the XML, we have real separation between the schema and the actual class that has the methods for retrieving the data. NICE!

Ahh, so an external list is just basically a list that uses a BCS to get its data.

Oh man, that's awesome, he still had VS up with his model and had a breakpoint, when he created the list he hit his breakpoint in his code *drool*

I wonder how many people realize how much easier this is than the old BDC?

He's demonstration aggregating data, one source is an ADO.Net REST source, and the other is a SQL table.

First he created a class called 'Customer' with just get/set properties. Then he extended it with a new class called AggregatedCustomer with two new fields. Now he's updating his model to show how he can retrieve the data from his REST service. Then he defines the methods on how to get and set data, he changes the identifier to match his model, and updates the data type. Then he changes his output parameter to be his custom Customer type descriptor. It lists all the datatypes and columns that he's expecting to receive. He then adds a method to retrieve a customer list using the customer type descriptor.

Now he's going in to the code behind to implement the retrieval of the data from the back end data service, and populates the data for the BCS.

Wow, that is much easier to follow than the old BDC. You still get the standard forms created by SharePoint for displaying single records of data from your External Content Type. Oh man, and it generates a form that is Silverlight, and it allows you to update the data if you've implemented the update methods.

OMG, you get out of the box integration into Outlook with the external data through the ribbon interface. You do have to enable the behavior of the BCS to support connectivity to Outlook. He opens SharePoint designer and goes to 'External Content Types' and he can see the one he created. It pulls up some information about the Type, oooh, and it shows you what lists are using this content type on the site.

So what he has to do is just define the mappings from the External Content Type, and then define the type in Outlook, actually just select what Outlook type he wants to map to.

He then looks at the fields in the ECT and then picks what field in Office that it should map to. This is pretty much the demo we saw in the Keynote, with the exception that this data was aggregated before it was mapped to Outlook.

Now he goes back to the External List and he's picking exporting it offline to Outlook. It then creates the packages and code that runs on the server and client that will do the export to Outlook. That could be a good thing or bad thing, if a user doesn't have rights they won't be able to willy nilly offline the data like this. In fact I kind of like that, let use push it out to them instead of letting them create it on their own. Ahh, this is actually the DLL and classes needed to understand the data coming from the BCS, that is how Outlook knows how to map the data.

I can see using this to aggregate calendar data for some of the groups, using SharePoint and BCS as an intermediary.

Ahhh, and the fields he didn't map still show up in the Outlook contact as extra fields at the bottom. It even supports updating from Outlook, back through SharePoint and BCS to the back end data stores. WOW, very nice.

They've also enhanced the external list to act more like a list now instead of just a web part that's displaying the back end data. You get all the list functionality, sort, filter, etc.

Next demo is connecting this aggregated data into Excel. Just a side note, VS2010 Beta 2 is running VERY fast on these demos, even though they are laptops. The one guy who had the older version was definitely seeing the performance hit in the older beta.

He's created a custom user control that will interact with the data coming from the BCS. He also created some code to add a button to the ribbon to display the data, and a method to add the control to the worksheet.

There are some things that are still required to be done manually that we won't have to do in the RTM.

NICE, after he populated his grid, he then imported it straight into the worksheet. He says that he didn't implement the write back, but it wouldn't be hard to do the write back. BCS includes synchronization as well so you don't have to worry about that in your application.

Now he's reviewing packaging and deployment.

  • WSP Package
  • Click once package
  • You can embed the Click once package into the WSP so it's all consolidated in one place, VERY nice.

This looks VERY nice, can't wait to start using it. I like what I've seen as far as what you can do code, versus no code. I especially like the model designer, and the code behind that allows you to more easily work with the External Data. The External Content Type is a nice abstraction that was missing, well mis-named in MOSS 2007.

Building applications with Silverlight and SharePoint

Presented By: Mike Ammerlaan, Program Manager, Microsoft

I'm really looking forward to this presentation, I think Silverlight is an awesome match with SharePoint and can provide a MUCH better experience.

Oooh, he's showing little facts about SharePoint 2010, there's a new Picture Slideshow webpart out of the box.

He's saying that Silverlight is more about the future-future, not exactly what I wanted to hear to start out. He's going over the history of dynamic web pages starting with DHTML and how Google Maps started the big push to make interactive applications.

His background is that he's a program manager at Microsoft by day, and a programmer of web sites and other code at night for fun. He says that the Silverlight technology really lowers the level of effort required to build an interactive web application.

Starting

  • Silverlight in a Nutshell
  • Hosting Silverlight in SharePoint

Using

  • Communicating with SharePoint
    • Client OM, REST, Web Services
  • Tips and Tricks

Envisioning

  • Web Parts
  • Applications
  • Out of Browser

About Silverlight, it's a browser plug-in client, supports Windows, Mac, Linux. Major browsers IE, Firefox, Safari with support for rich media. Subset of .net, subset of WPF, now it includes 100+ controls out of the box compared to when it first came out. Support for Themeable controls now.

XAML is about serialization of .net objects, represents visual UI, separate from the implementation. Expression Blend is the tool that you use to design the Graphical portion.

The graphic design and the coding behind the UI is separated, so a graphic designer and a coder can work on the same application at the same time.

Three types of controls

  • Control
  • UserControl
  • ItemsControl

Four common layouts

  • Grid
  • StackPanel
  • WrapPanel
  • Canvas

One other common class called 'Border'.

Subset of .net types, major missing types are XmlDocument, ADO.NET Data, and ArrayList. There are other ways to implement this type of functionality, these were left out to reduce the footprint of Silverlight.

Includes Web-style networking, calls just inside the same web domain. This is the reason you want to first of all get your Silverlight application on SharePoint so it can leverage the SharePoint OM. You can access other Domains, but there are security considerations to keep in mind.

He's showing a simple Flash Card application implemented in Silverlight, it's stand alone and not tied in to SharePoint.

App.xaml is like Main() in a C# application.

Then he has his application XAML file that contains the GUI and code for his application. He's talking about using a control out of the Silverlight ToolKit which provides for some nifty animation. Sounds like that's a must have for Silverlight J

He's going to take this application and push it up to SharePoint. Wonder what happened to starting with it in SharePoint before you start coding?

Why to user Silverlight?

  • Easier to build - .net, less browser compatibility headaches

More powerful

  • Animations, Media, and .Net

Client Integration

  • Out of Browser
  • File System
  • Multi-Touch

When would you not want to use Silverlight?

  • A Public facing site, does the audience have Silverlight, and is it possible for them to install it?
  • Content heavy web sites. Help site as an example. Copy and Paste is not something that is provided out of the box so a user wouldn't be able to copy things off the site. Of course that could be an advantage in some cases as well.

He says that Silverlight is a good backend for Silverlight since it provides quite a few of the things that Silverlight doesn't have, data access, security etc.

Options for hosting Silverlight

  • Script/Markup
  • Silverlight ASP.net control
  • Web parts
  • Full page

Setting up the environment

Looks like the best thing to do is just use Visual Studio 2010, it has two different projects that provide for easy deployment, a Silverlight Project, and a SharePoint package.

He's modifying his application now. What he does is change the output of the application and copies it to the MasterPage gallery. He says this is good for getting started, as you get larger you'll want to upload it to its own list.

He's created a custom web part page and inserts the Silverlight web part, then provides the URL to the XAP package that was uploaded to MasterPage. He's using a token that I've seen some other people use in VS2010, it's called ~site. It's nice to be able to not hard code the site in your project.

Once he's done that, his application is running right on the page.

Next step is setting it up for debugging. Silverlight will automatically create a test page for the application on the hard drive. You can go in and create your own test page by adding a HTM file to the project. It must be in your project, you can't reference it unless it's in the project. Then he adds an IFrame to host the project on the page, basically copying the code from the default test page.

Now he can debug his application on the new test web page.

Now he's demonstrating how to deploy it to SharePoint.

He's creating an empty SharePoint project, gives it a name and creates it. Now you add a module which is how you deploy files to your SharePoint site. He removes the sample file, and then adds the Silverlight application by using the 'Project Output References' property on the project. Then he updates the Element.xml to tell what file needs to be copied where in SharePoint.

Now how can you use Silverlight to talk to SharePoint.

  • Web Services – More coverage
  • Client Object Model – Site, Nav, Security Services, very flexible
  • REST – Easiest to use, for fixed list schema that doesn't change
  • Rendering data to the page – Does require code on the site/server

REST

Works only with list data

You must add a reference to ADO.NET 1.5 CTP 2 DLL because it's not there by default in Visual Studio.

Client Object Model

  • To read data from objects, you must ask for it, you have to perform a fetch, then you can read
  • Everything is all asynchronous batch processes, you must call ExecuteAsynch
  • DLL's are in SharepointRoot\14\Template\Layouts\ClientBin

SOAP Web Services

  • Can be used today with 2007
  • Fixed functions exposed, or you can add your own.

He's doing some demos, kind of funny he's adding an announcement to a list, but has to hit F5 to see his changes J

Using REST seems very nice, strong typing, although you do have to process things async so it requires callbacks.

Using the Client Object Model the base thing you use is the ClientContext object, this is what you use to access SharePoint with. Once again it requires async calls to retrieve data. Updating the user interface after the data is returned again requires an async call back to the user interface thread, because it's the only one that can update the user interface.

Fiddler is the recommended tool to debug with Silverlight.

This is the first demo that had problems with it not running. He did say that there are still some bugs in Visual Studio beta 2. I have a feeling it's going to be LATE 2010 before we get Visual Studio based on the performance issues with Beta 1 and the bugs and other work arounds with having to add references to the data CTP's etc.

Xlink he says is the way things are going for reading and writing XML. I haven't heard of this yet, so there's something else to do some follow up on J

I just noticed that when he's doing his code demos, he's not using Snippets like everyone else has been. He has a file up in Notepad that he's copying from. Kind of highlights that this is something he does in his spare time, and not full time.

Looks like all his variables are named in natural English, no camel casing or anything.

I wonder why they didn't have someone who does Silverlight fulltime do this presentation?

Tips, Tricks, and Gotchas

UI

  • Asynchrony and the user interface thread, UI can only be updated by it's own thread
  • Windowless mode vs not, changes accessibility features, windowed mode provides more functionality but clipping of the Silverlight controls. Windowless mode gives you a better UI experience
  • Rich Text/HTML support is tricky within Silverlight. There is not control to edit Rich Text, there are third party controls.

App

  • Consider your download and application sizes. 1 MB is a good limit to keep, if it hits that you should look at splitting it up. There's also new functionality that will allow you to control the download of Ajax controls, I wonder if it will work with Silverlight.
  • You can make it run in WPF, but there are some minor quirks when you do.
  • Fiddler is very important as a debugging tool.

Now he's showing some other more complex demos

He's shown how to have gauges on a site.

He's extended a Blog to include a Map that can be inserted into a blog post, using the Microsoft Virtual Earth control.

Hmmm, he just mentioned that some of his code is calling internal methods, but that it will be cleaned up when Beta 2 is available. But I thought Ballmer had announced that VS 2010 Beta 2 was available yesterday??? EEEP, just went to MSDN, and they've gone live with the new layout. Not sure if I like it yet. Yup, just checked and Beta 2 is available now, so he'll have to hustle to change his code before it gets posted for this session. Hmmm, ok, maybe he's talking about SharePoint 2010 beta 2???

He's showing a Silverlight grid, and a bunch of controls that are available in Silverlight, the ubiquitous calendar control of course.

Ironic, his demos usually require F5 for the data to be refreshed, kind of defeats one of the big advantages of Silverlight I thought.

Last demo, showing pop ups on his original flash card application. In full screen for Silverlight you can only use the mouse and the cursor keys to prevent phishing attacks.

This demo was ok, was hoping for more about integration with SharePoint, it was more about Silverlight shiny things than how to leverage Silverlight in SharePoint.

Off to the next presentation, Building solutions with BCS J

Creating Sandboxed Applications in Sharepoint 2010

Limited 'Sandbox' that an application can be created in, it's limited to what it can do.

Sandboxed applications upload at the site collection level in the Solution Gallery for the site. This means that the site collection administrator can control what applications can run in their site collection. If there is any problem with the application in terms of it's resources, it's disabled to prevent it from bringing down the rest of the site or the farm.

In Central Administration you can block an application, set quota templates and resource monitoring. This overrides what the site collection administrator wants to do.

To be able to use Sandboxed solutions you must set the Microsoft SharePoint Foundation User Code Service in Central Administration to be running. It can be running on all front ends, or specific web servers in the farm.

The applications will reside in the Solutions gallery in the Site Settings. You can upload a WSP directly to the solution gallery, then you can activate or deactivate it at the site level. All the files reside in the 14 hive under the 'UserCode' folder. There is a web.config file as well, but it's a very simple one. It has a trust_level of 'WSS_Sandbox' which is in \config\wss_usercode.config. It defines the CAS policies that apply to the Sandboxed applications.

You create the application like you normally do, you just set the trust level and choose 'Deploy as a Sandboxed solution'. This is the default setting for all Visual Studio projects when you create a SharePoint project template. They are recommending to use Sandboxed applications unless you have a need to access other resources that are restricted by the CAS. There is really no difference to Visual Studio as far as the project is concerned. It will change a metadata tag '[assembly: AllowPartiallyTrustedCallers()]' that will be added for a Sandboxed application.

Nice, his demo shows how to add a custom action to the site menu. That can be a useful snippet of code.

The Sandboxed application will not look any different when deployed, except that the application will reside in a different place, either in the site solution gallery, or in the Central Administration solution gallery.

The execution manager in the application pool on the front end web server passes a request to the Host Services on the server, and kicks off a worker service to allow it to run. If a worker process runs for 30 seconds then the thread is killed. The application is then disabled until it is re-activated (and of course fixed with a new version that doesn't hang).

Important note, the CAS policy is applied to your code in the worker process, but not to the SharePoint object model. So SharePoint can perform it's normal actions, while the application code is restricted.

You can also update what's called an API block list to prevent code from making specific calls in case they are being exploited by a virus or worm.

You can use a full trust proxy that can be called from a Sandboxed solution by putting it in the GAC. The difference is you can only expose the methods that you have control of so the Sandboxed application cannot exploit the SharePoint object model. This gives you a great point of control over what an application is doing, this provides visibility for what a piece of code has access too.

Create a class that inherits from SPProxyOperationsArgs – the Arguments that are passed from the Sandboxed solution to the proxy. Then you create another class that inherits SPProxyOperation that will actually make the calls to the object model. The Sandboxed code will then create an instance of the 'SPProxyOperationsArgs' class, then passes it to the 'SPProxyOperation' using the SPUtility.ExecuteRegisteredProxyOperation method.

I like this concept, it isolates all the potentially harmful calls into the proxy class, so a developer cannot simply 'slip in' a piece of code that does something that you don't want to happen. This would especially be useful if you have a contractor writing code, without having to go through all the code and look for potentially harmful calls.

The proxies must be registered with the farm, this allows any Sandboxed application to call the proxy. There is no additional security around calling the proxy.

You should create a common set of trusted proxies that all developers will be allowed to access. I like this as well, as your preventing 'Copy and Paste' code development, all the calls are done within the proxy.

There are four areas of Sandboxed application administration.

Load Balancing:

You can put the UserCode service on all the web front ends, and then just let it spin up on the web front end that's making the request.
You can also set up a dedicated server to handle all the Sandboxed application requests.

Solution Validation:

This validates a solution when it's loaded or activated, so it won't cause a problem until the code is used. This will make sure that a 'bad' application doesn't even get loaded on the site.

Solution Monitoring:

Monitor Sandboxed solutions, there are 14 measurements that can be monitored. They are given a value of 'Resource Points', and then set the maximum number of resource points that an application can use. Once an application exceeds this it is deactivated. This is set by the Farm Administrator, and then he monitors the results based on the rules he's set. You can also set a warning level that will send an e-mail when an application reaches a certain number of resource points.

There are ways to configure this using PowerShell and the SharePoint snap-in for PowerShell.

Solution Validators are created by inherting from SPSolutionValidator. It allows you to walk through a solution and examine its components to determine its characteristics and if you consider it harmful. Validators have a signature ID, similar to a template ID. Validator is called once for the package, and once for each assembly in the package. Then you receive the SPSolutionValidationProperites has properties that can be examined for the items you want to check. There are two overridden methods one for the package, and one for the assembly validation.

To register the validator you make a feature receiver to deploy and register it in the farm.

SharePoint 2009 Development Tools

You can now develop on Windows 7 or Vista SP1, no server requirement anymore. But it must be 64 bit. (I sense a pattern in all the demonstrations that are being run on Windows 7)

SharePoint must still be installed locally

Visual Studio 2010

  • Templates for more SharePoint items
  • Sandboxed solutions supported by a wizard and property selection
  • Lots of new designers built in
  • Workflow enhancements – Site level workflow and Initiation pages
  • There is a template for importing projects from SharePoint designer as well

Sandboxing a solution is easy to change back and forth, it just changes where it's being deployed and what CAS is being applied.

There is an empty element template for creating a project for a SharePoint item that doesn't have a template, it will still create the package and deploy it to SharePoint.

Workflows has a new item called 'LogToHistoryList' action, that sounds awesome that it's coming out of the box with this now.

New deployment conflict resolution allows you to control the cleanup of deployments, and it's customizable.

New wizards for creating events, VERY VERY NICE, no more digging for the proper template for an event or finding what kind of event your coding for.

BCS has an awesome designer, similar to what's in SharePoint Designer. No more having to hand code anything in the ADF. It also supports adding code behind for data aggregation and massaging.

SharePoint designer allows exporting to a WSP, then you can import it into VS2010 and choose which elements you want to include in the new project, including workflows.

Server Explorer now supports SharePoint 2010 servers, with full navigation and display of properties.

There is a feature package designer which is very nice and intuitive. The same for the Packaging explorer, makes it much easier to modify/maintain features and packages.

Each project in a solution gets one package.

There can be multiple features in a project.

Mapped folders are relative to the SharePoint root, the defaults are images and layouts but you can navigate to any of the folders in the SharePoint root and map them to your project.

You can merge customized XML into the Manifest without having to jump through hoops.

Feature properties have their own wizards for creation and modification.

There is a new wizard for adding Safe Control entries.

Support for adding other items using an Element.xml file within the property pages.

Keynote Address

Wow, that was a little bit overwhelming, almost 3 hours of overviews, demos, and vision sharing can be a little bit daunting coming in one big gulp without any breaks. Here's a summary of the things that caught my eye during the keynote.

First up Tom Rizzo got up and told us a bit about how successful this conference is, they've doubled the attendance from the last one from around 3500 to over 7400 this week. There's a world wide audience attending, almost all countries are represented. They set up facilities on the web site to search for attendees at the conference and also to associate your membership in Sharepoint User Groups.

They have over 300 hours of content, 45 hours worth of hands on labs available all during the week. They are also making the slide decks and videos of each of the presentations available 24-48 hours after the presentations. We're going to give feedback about the sessions we attend, and then on the ones that we don't get to attend we'll watch them and let everyone know what we think of them, and if they are worthwhile to watch.

Steve Ballmer got up, and fortunately he didn't do any dancing, screaming or speaking in tongues. He talked a bit about how Sharepoint is his number one favorite product. He explained a bit that his vision (ie Microsofts vision) is to make information a seamless experience from the PC, to the phone and other mobile devices, and on the TV using a natural interface, and leveraging cloud computing.

The 'goal' of Sharepoint is to provide for the sharing, gaining insight, and the collaboration of information in the enterprise.

He also announced that the Public Beta of Sharepoint 2010, Office 2010, and Workspaces 2010 (formerly Groove) will be released in early November. Bummer, no beta bits this week, huge disappointment. Jeff Teper stated that the reason behind the delay was that they've pushed it out to a larger group at Microsoft and wanted to capture some performance metrics and do any necessary tweaks necessary before releasing the beta. This might mean there will only be one beta before the final release. He also said that at this point it's 'Feature Complete' and that they are currently working on bug fixes and performance tuning.

Workspaces 2010 replaces Groove as the offline client for SharePoint. It allows you to 'take your work' with you, work with it offline, then sync it back up when you re-connect.

The expected time frame for release of SharePoint 2010 is the first half of the year. There is much better support for browsers and mobile devices.

There was three main changes in SharePoint 2010.

  • Composite and RAD application development – Improved development tools, infopath, and visual studio enhancements.
  • Enhanced Extensibility – New API's, Silverlight integration, better standards support (big applause)
  • Cloud Based – Improving the Internet facing capabilities of SharePoint.

VS 2010 beta 2 is available now on MSDN, WOOOOOOOT. I hope they have got the performance up, and based on the demos we've seen so far they have.

Features:

  • SharePoint will now show up in the Server Explorer, and you can navigate through all the elements of the server right from the IDE.
  • Feature and Packaging designers are built in to the IDE now, no more installing an SDK, or MSI with templates.
  • Support for Visual Web Parts, you can create web parts much more easily now, and enhancements in the build, deploy and debug. You can debug out of the box without doing anything special.
  • It doesn't require a server environment anymore, it can be run on Vista SP1, or Windows 7, but it must still be 64-bit.
  • Developer dashboard which gives you quick debugging and performance monitoring features.

Other new things in SharePoint:

  • Sandboxed applications – Provide for better management of solutions to prevent bad code from destabilizing the farm.
  • Spellcheck and link validation built in to SharePoint now.
  • Silverlight enhanced interface and web parts. (not a big surprise)
  • There are now going to be 8 different SharePoint products including variations for on premise, cloud, Intranet, and Internet. Not too happy about this, it's already a pain to explain the difference of Windows SharePoint Services, oh wait it's called SharePoint Foundation now, and SharePoint Portal, or is it MOSS…….

One question that came up was if Visual Studio 2010 can be used with MOSS, and the answer was no. VS 2010 uses a lot of the enhancements in SharePoint 2010 to provide its own enhancements.

Jim Teper the VP of SharePoint came up and shared some of the highlights of the new version:

Sites –

  • UI Rebuilt to reduce refreshes and improve usability.
  • Improved Cross browser support.
  • Office Client and Web Support.
  • SharePoint workspaces 2010, and mobile support.

Communities –

  • Wiki's, and Blogs have been enhance (and from what I've seen I like what they've done)
  • Tags, ratings, and bookmarks have been added to document libraries and lists.
  • MySites smart profiles and feeds
  • Browse your colleagues, experts and organizational information including a brand new Silverlight org chart which looks very nice.

Content Management –

  • Improved to handle larger lists and libraries, 1 million items in lists and 10 million in document libraries.
  • New taxonomy management to help manage the data in these new large lists, and enhanced meta data.
  • Digital asset management for Photos and Videos, including support out of the box for streaming of video.

Search –

  • Standard search from MOSS and FAST search from a company they acquired
  • They wanted to enhance the experience, relevance and navigation of search
  • Improved people search
  • Search is much more scalable and flexible and multiple indexes are allowed, and aggregate searches across the various indexes

Insights and BI –

  • Excel services has been enhanced, along with better SQL Server support
  • PerformancePoint services – provide dashboards and KPI's
  • Visio services, and charting webpart
  • BCS enhanced

Powerpivot is new functionality that allows you to work with extremely large amounts of data, like 100 million rows.

Other enhancements

  • Fewer refreshes when editing items
  • Multiple checkouts for documents
  • Document sets – allows you to create a predefined set of documents
  • View lists and libraries by metadata
  • Tag clouds implemented in blogs
  • Ratings by users in the document libraries
  • Excel services data is easier to access, the interface is browser based
  • Better dashboards

IT Professionals and Administrators

  • Support for SharePoint on Premises and in the Cloud (SharePoint Online)
  • New web administration interface, and powershell scripts, over 500 cmdlets ship with SharePoint 2010
  • Throttling, monitoring, and analytics – along with custom reports for usage analysis including access to the schemas for logs in SQL
  • Improved upgrade process and availability during the upgrade – New model for upgrading, you can upgrade servers using the existing UI, customized or not. Then you can preview what the UI would look like if it's upgraded.
  • Easier to deploy cumulative updates, and reporting on what updates have been applied

Sorry if it's kind of sporadic and varied, but there was quite a bit of information I tried to capture. The sessions start soon, so I'll be posting about those as I go to them.

SharePoint 2009 Development Overview

I was really excited about this one, but it turns out that it's just a duplicate of a presentation that's on the SharePoint site that I had already watched.

Just some quick highlights of the important points.

Basically a few type of applications that are being created for SharePoint

  • Business Collaboration
  • Portal for LOB application data
  • Single web part solution
  • Customized SharePoint deployment

Focus on Developer productivity –

  • Doesn't require a server install, but still needs 64-bit os. You must follow the install guide in the SDK if you don't install on a server
  • SharePoint designer 2010 – BDC Tools, list schemas, custom actions, task/approval designer
  • Developer Dashboard – Quick debugging or monitoring of a page for performance. It must be enabled with an STSADM command or powershell script.
  • SPMetal – New tool for creating LINQ Proxies for SQL, very similar to SQLMetal
  • Cascading deletes can be enforced in lists, so no more custom code required. Better restriction options on deletes as well.
  • List throttling on lists over 5000 items in a view.
  • XSLT is now going to be replacing CAML for views!!!!!
  • There are new column validations that can be added without coding.
  • LINQ for SharePoint
  • There is now a Client Object Model for SharePoint as well
  • ADO.Net data services provides data access to SharePoint servers
  • Dialog framework that can be leveraged for messaging to users, doesn't require a post back
  • UI supports Silverlight out of the box, including a Silverlight web part template

Improvements to events to make them easier to manage

  • After Synchronous events
  • Custom error pages for events

Workflow Improvements

  • New designer, integrated with Visio
  • You get much more granular control now
  • Site level workflows, that do not need to be bound to a list

Rich platform services with BCS, read/write is built in along with a designer in Visual Studio

Flexible Deployment

  • Sandboxed solutions – provides resource monitoring and logging for applications, and can be manually de-activated
  • TFS integration

Sharepoint 2009 Conference

Well, we had an uneventful trip here to Las Vegas, and got checked in to the hotel after wandering like mice in a maze. We then headed over to the conference to get registered and pick up some SWAG J

The registration line was pretty long, but it moved quickly and we got some pretty nice books detailing information about Sharepoint 2010. The vendor area was open so we went in and started wandering around and seeing who was here. I got to see Ted Pattison and his new company with Andrew Connell. I tried to get a picture with him, but he was in a pretty deep discussion with someone, so I figured I'll try later. Then went by the Mindsharp booth and talked with Todd Bleaker. It was great to see him again, and I'm amazed that after 5 years he still remembered me. He told us about his new class for 2010, and how it's going to be more focused on hands on labs rather than lectures. He upped the number of labs from around 12 up to 23, and he'll be covering all the basics with code you can take back as starting blocks for Sharepoint 2010.

I'm really looking forward to the conference and finding out more about Sharepoint 2010.