zevenseas


 

#spc09 Notes: Introduction to Service Applications

This is one in a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.

  • New, flexible, extensible services architecture that can be used by developers
  • Overview
    • What is a Services Application? An Application Server Tier feature that performs the useful function of providing data or processing resources to SharePoint features.
    • Search is a good example of a Services Application
  • Service Application
    • Configured logical instance of a service
    • Provides data or computing resources
    • Comes with a Administration interface
  • How is a Service Application used
    • Features, for example Web Parts use these application
    • You associate a web application with a service application
    • This is done via a proxy
    • Associations done by Admins, can be changed anytime
    • This a much like SSP’s, but this has been further simplified
    • Can be grouped for administrative reasons “Service Application Proxy Group”
  • Service Workflow
    • Brower –> Web Front End –> eg. Search Page –> (Software load balancer) –> Application Server –> returns
  • 2007 versus 2010
    • SSP is where we were
    • The old services are still there BUT they are no longer grouped together in an SSP, they all operate independently
    • There are also a lot more services now, 20 or more.
    • The platform for building these services is now open
    • Services applications are supported in Foundation (WSS), though different SKU’s will come with different service applications
  • Whats new? Framework
    • There is no more SSP administration site, Central admin and Powershell
    • Greater flexibility, Services can been assigned to Web Apps
    • Software Load Balancer and fail over (load balancer can be replaced by a third party load balancer)
    • Cross Farm support
      • Share to anyone and consume from anywhere
      • WCF based communications
  • Whats new? Security
    • Everything is based on Claims based authentication
    • Intra server communications is based on WCF communications
    • Supports SSL
    • Each application uses its own database, and optionally own application pool
  • Multi-Tennancy
    • Application level security protects the information in one Service Application from another. So it adds an application security boundary within a database and within an application pool.
  • Application Directory and Load Balance Service Application
    • Responsible for sharing the list of available services to other applications
    • Discovery mechanism.
    • This is really seriously cool stuff. You can now effectively deploy farms that are dedicated to specific tasks. A search farm for example.
  • PowerShell is everywhere: “Can use PowerShell for pretty much everything”
  • By Default all service applications are associated with all web applications, associations are not direct but through a proxy. This can then be configured.
  • Farm Admins have access to all Service Application, but you can delegate permissions to a specific user for a specific service.
  • Building Service Applications (this is what I have been waiting for)
    • The OOB service applications have been built on the same API developers can use
    • You get:
      • Multi-Server Support
      • Fault Tolerant Round Robin Load Balancing
    • Timer Job Support
    • Even the Load Balancer is extensible, very cool
    • Settings can be stored in the configuration Database, and you can add your own databases and manage them through SharePoint (integrates then for example with Backup/Restore)
    • Can create your own Central Admin pages
    • Lots of controls that can be reused
    • Can create your own PowerShell Commandlets
  • Sample Topologies
    • Seems to me that there are many, many topologies
    • Flexibility of the model though should make it something you design specifically to suit
    • Services Farm. Seems to me that this makes a lot of sense.

#spc09 Notes: Sandboxed Solutions

This is the first of a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.

  • Its all about balancing Security/Stability and Business Agility
  • Sandboxed solutions balance these two things out.
  • Sandboxed solutions should be the default approach to developing solutions on SharePoint. You build them this way UNTIL you hit a limitation you just cant get around.
  • Difficult to come up with a list that describe what you can do with Sandboxed Solutions:
    • Content Types, Site Columns
    • Custom Action
    • Declarative Workflows
    • Event Receivers
    • Feature receivers
    • List Definitions, non-visual web parts
    • Site Pages
  • What is the Sandbox?
    • Its a separate process where your solution runs
    • It works with a limited set of API, and have additional Code Access Security policies applied to it.
    • Solutions for the sandboxed are focused on the the Site Collection
    • All sandboxed solutions have detailed monitoring via the Central Administration
  • Puts the power back into the hands of the IT Admin.
  • Separate process:
    • UserCodeService – Runs on each server in the farm which is allowed to host the sandboxed solutions.
    • Sandbox Worker Process – This is where the solution runs
    • Sandbox Worker Process Proxy -
  • Sandboxed solutions use a subset of Microsoft.Sharepoint
    • Important: Missing Enterprise objects
    • I think there are some great solutions to be built, but this list did look quite limiting.
    • CAS Policy limits allow a solution assembly to load, use the SP OM. Cannot touch any external resources.
      • There is a Full Trust Proxy, this is possible but it is tightly controlled
  • Solution Gallery
    • Document Library for SharePoint Sandboxed Solutions
    • Empowers the Site Collection administrators to chose what solutions they need.
    • Resource quotas can lock down the amount of server resource a solution can use
  • The binaries are in 14\Usercode
    • Web.Config in this folder includes the reference to the CAS Policy
  • To Visual Studio there is no difference between a Sandbox solution and a Farm solution.
    • The actual changes to the files is minimised, just an AssemblyInfo.cs change
    • “AllowPartiallyTrustedCallers” is set for Sandboxed Solutions
  • Sandbox Architecture
    • Execution manager, runs on the front end and brokers requests through to the “Back End” systems which are hosting the Host Services. Host Services spins up the required worker processes, which then use the WorkerProcess proxy, which then makes the real calls to the OM
    • Wonder what the overall performance impact is of this?
    • The worker processes can be shut down if they start to do bad things, isolating the disaster
  • Code Access Security
    • Cannot access any resources out of the Sandbox
    • Uses an API Blocklist, this means the Farm Administrator can further lock down the API’s that can be used. This does not mean you can change the basic subset, this limit will always be there.
  • Full-Trust proxy is the way you break out to do more in your applications
    • It is a fully trusted piece of code you can call in your applications
    • Full Trust proxy does just a specific task, for example, read from ERP systems
    • Create a class that inherits from a SPProxyOperationsArgs (this just passes arguments) –> Goes in the GAC
    • Then another using SPProxyOperation, this does the job –> goes in the GAC.
    • From your sandboxed solution you then call it.
    • Once you have written these, then you need to register them with SharePoint
    • The idea here is to create a set of trusted API’s that can be leveraged by all SharePoint developers.
  • Sandbox solution execution can be load balanced across the farm.
    • You can also setup a dedicated set of servers whose job is to run the sandboxed solutions
  • Solution Validation
    • Administrators can block solutions
    • Can create a “Solution Validation” object which then interrogates the solutions.
    • Very interesting, this is pretty sophisticated stuff.
    • Solution Validators inherit from SPSolutionValidator
    • Could check things like:
      • location of files
      • can validate based on many properties of the package, and everything in it.
    • Deployed as a Farm Level solution
  • Solution Monitoring
    • Resource points can be used to manage the resources on the server.
    • If a solution uses too many resources, then it is stopped for the day
    • Helps to identify expensive solutions
    • There are 14 measures in all, they have different units of measurement of course, these are boiled down to the resource points
    • You set points across the various measurements
    • This is done per site collection

#SPC09 Notes: Visual Studio Development Overview

This is the first of a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.

  • Tools are designed to make development for SharePoint a LOT easier and a LOT more productive
    • Supports Sandboxed and Farm solutions
    • Provides a number of Project and Item Templates
    • Provides a number of Visual Designers
    • Provides a number of Workflow improvements
  • Templates
    • You are going to generally start with an empty project and then add the items you need as you need them
  • Solution Types
    • Farm Solutions = What we have today
    • Sandboxed Solutions = Site Solutions
    • This can be changed whenever you like
    • When creating the project you specify a debug site
    • Intellisense filtering stops you seeing things you can use when in Sandboxed mode. HOT
  • Item Templates
    • These are not complete (wonder what is missing?)
    • Can use an empty template for those
    • Seems to include the most popular items
  • DEMO 1
    • Showed a workflow
    • This does look nice in the demo, hard to note it
  • Deployment
    • There is some logic in the deployment process which will detect any existing assets which might conflict with a new version. For example old web part files. This can be set to Automatic, or you can have it prompt you.
  • Event receivers
    • There is a template for these
    • Wizard based creation, builds our the xml files for you
    • Certainly makes things a little qucker,
    • F5 to deploy when done. Nice
  • BDC Designer
    • Looks sophisticated, and very graphical
    • You do not ever need to see the ADF XML file. Interesting.
    • Read/Write, full CRUD support
    • VS would be used over SPD because you cant write code in SPD
    • VS could support scenarios like pulling data into one list from multiple sources
  • Development Continuum
    • Slide that demonstrates that:
      • Visio and SPD and important and export between them
      • SPD –> VS occurs via the WSP
      • You can save your Site as a WSP file
      • Great for Functional designers to be working with the Developers
      • Great for Mock-ups. HOT
      • This includes workflows
    • Visio can be used to design the Workflows, but you need to get them into SPD to make them real workflows. From there they can go back and forth.
    • Once you send it to VS for coding, then you cannot go back again.
  • DEMO
    • Showing how a WSP can be imported
    • Created a SPD workflow in a site –> Saved it as a WSP.
    • Finds all the declarative artefacts for importing
    • This pulls in lots of stuff!
    • You can then pick and choose, so you are going to want to pull in only the custom bits, not all the standard content types and fields.
    • Identifies all your dependencies.
    • In the end the two custom lists that were created in the site that was saved to a WSP are transformed into new features. This could get seriously out of hand with Farm features, but I guess no big deal for Sandboxed solutions
    • Like the way this is going, think there is lots of potential here for increasing developer agility
    • You can actually set multiple startup projects! (I think with VS2008 even?)
  • Project System
    • This has been completely revamped in VS 2010
  • Server Explorer
    • Has SharePoint connections
    • Supports connections to multiple site collections
  • Feature Designer
    • Graphical way to build a feature
      • Add items that are available
      • Activation dependencies
      • Looks like this is how you can re-organise your projects
    • They have worked hard to ensure you dont have to get your hands dirty with XML.
  • Package Designer
    • Works in a similar way
    • Focused at the feature level
    • All drag and drop
    • Options for adding other assemblies
  • Packaging Explorer
    • Single view, tree view, of a single package
    • lets you drill into it
    • Each project in a solution gets one package
  • Mapped Folders
    • Provide a project folder where you can store images and layouts pages
    • Effectively this is just a nicer way to manage your images and layouts pages
    • Helps guide people down best practice for solution artefacts. HOT
    • DONT use 12 Hive use SharePointRoot instead.
    • Sandbox solutions dont have a filesystem of course.
    • You can create your own mapped folders, you get Images and Layouts by default.
  • Creating your own SharePoint Items for VS Projects could be fun
  • You will have the ability to define exactly what happens when you perform a deployment, this is slick too.
  • Visual Studio is very extensible, if anything is missing, you can code it in yourself
  • Worked hard to make GUID managing much easier, they use replaceable tokens in lots of places.

#SPC 09 Notes: Developer Overview

This is the first of a series of notes I will be making while attending the SharePoint Conference in Vegas. These are not intended to be complete, polished, edited blog posts. Its simply the highlights, as I saw it, from the sessions I attended.

  • Started with a review of the types of applications that are built on SharePoint.
  • SharePoint 2010 can be install on Windows 7 or Vista SP1
    • Both SharePoint Foundation Server (was WSS) or SharePoint 2010
    • Still requires you to be running 64bit
    • This is for development only, so single server, non-production, etc.
    • There is an Install Guide in the SDK (Beta coming in November) this replaces the Prereqs installer that works on the Server OS’s
  • Visual Studio 2010 integration is the tightest integration ever.
    • Lots of “SharePoint Aware” designers (Web Parts for example)
    • Package and Deploy
    • Can view SharePoint site via the Server Explorer
    • TFS integration
    • Sandbox support, WSP Import (nice)
    • BDC becomes BCD (Business Connectivity Services)
  • SharePoint Designer 2010
    • Will remain free
    • Looks to be seriously beefed up and also simplified. Seems to have removed or hidden many of the FrontPage functionality hangovers.
    • Workflow Designer
  • Developer Dashboard
    • Very hot
    • Is turned on by demand, and provides real time feedback on the performance of your code.
    • Beta 2 will require manual steps in order to activate it (STSADM/Powershell command)
  • DEMO 1
    • Visual Studio –> Build a Web Part
    • Farm Solution = To current approach to solution building
    • Site Solution is the new Sandboxed stuff.
    • Demo uses the VS Toolbox to graphically build a web part.
      • Uses a UserControl
      • I think this is nice, interesting to see how much I will actually use this
    • LINQ for SharePoint (Was almost expecting an applause on this one!)
      • SPMetal works like SQLMetal
      • LINQ looks hot
    • F5 kicks off the browser with “Add Web Part Page”
    • Web Part Page is going to be a depreciated, pretty much Wiki pages do it all now. (Wiki pages do have a Web Part Zone, but does not display it)
    • Dashboard provides LOTS of detail
  • Platform Services
    • BCS is the new name for Business Data Catalog
    • Read/Write access to data
    • Comes with SharePoint Foundation now, NICE.
    • Office clients can then take the data offline (wonder how conflicts are managed)
    • SQL, Web Services
  • DEMO 2
    • Connecting the BCS to a Web Service
    • SharePoint Designer is the primary place to do this, can also do it in Visual Studio
    • With VS you can connect it through to a .NET type
    • Generate the CRUD operations for you
    • Explorer that helps you define these objects, and then you can write any custom mechanisms for performing the CRUD operations
    • IISRESETS will not be going away (not that I was expecting it)
    • Connect it through to lists using “External Content Types”
    • the result is that the external data looks exactly like a list.
  • SharePoint List Improvements (most interesting to me)
    • Can create relationships between lists, with cascades…(WOW)
    • This is piggy backing on SQL functionality
    • Validation support, Excel like formulas
    • Lookup to multiple columns, nice
    • Automatically create indexes where they make sense (for example on lookups)
    • Demonstrated a 220,000 item lists, (dont be afraid of large lists)…hmmmm I’m not sure this is really as big a deal as it is. Querying the data is still the important bit. Throttling will block queries that are made for large numbers of items (configurable)
  • XSLT for Views
    • Bit of CAML bashing, its not really that bad.
    • CAML does not go away, but views will now be done with XSLT
    • CAML mostly used for Queries (wonder where the LINQ/CAML overlap is)
  • DEMO 3
    • List definition obviously become more complex now, wonder how your average SharePoint user will feel about that.
    • Demonstrates the cascading functionality
    • Column validation looks hot, got an applause
    • Lists will indeed become much better for creating applications
  • Accessing Data in Lists
    • Lots of new options
    • Server OM (as we have now)
    • New: Client OM –> Runs on the desktop
    • New: REST API’s –> ATOM response
    • New: LINQ and all LINQ goodness
      • Supports Joins and Projections
      • Will dramatically reduce run time errors, moving them to compile time
  • Client Object Model
    • Different to the Server OM
    • Promotes the batching of commands, so different to Server OM, but will be familiar
    • Almost full access to site based functions, but not server operations (maybe some limited) you use this “ExecuteQuery” function to perform the operations you line up, nice.
    • .Net assembly, Silverlight and Javascript files (Very HOT)
  • REST API
    • Supports ADO.NET Data services
    • SP2010 also installed ADO.NET services as these are what the REST API’s are built on
    • SharePoint becomes an ADO data service. Thanks to REST. HOT
    • Seems to come in mostly on the LISTDATA service
    • Demonstrates querying by URL, smart stuff.
  • DEMO 4
    • Builds a Windows Forms application
    • Adds a data source, service reference –> connects to LISTDATA
    • Binds a Grid on to the SharePoint List
  • Event Improvements
    • Project Template
    • New After-Synchronous event
    • Site Scoped events
    • Web Creation Events
    • List Creation events
  • Workflow Improvements
    • This is a really long slide
    • SharePoint Designer has an improved design service
    • Integration between SPD – VS
    • Browser base visualisations, HOT
    • OOB workflows can be fully customised.
  • DEMO 5
    • Build a really quick workflow is VS
    • Creates a Sequential Workflow
    • Can create a “Site” or a “List” workflow, Site Workflows do not require a list.
    • VS has a very visual designer
    • Got your standard drag and drop workflow design, nice, but the devil is in the detail
    • Adds an “Initiation form”, this is just a web form
  • SharePoint Service Applications
    • If a job is too big for the Code Behind, make it a service application
    • SSP –> Service applications
    • Developers can create new services
    • WCF knowledge nice to know here
    • Includes:
      • WS/Database provisioning
      • Settings Store
      • and much more…
  • Ribbon and Dialog Framework
    • A number of elements available for use by developers:
      • Ribbon is context sensitive
      • Status bar
      • Notification area
      • Dialog Framework
    • These are all JS based, all AJAXy
  • Silverlight
    • Media Player – HOT
    • Beyond Media scenarios, I’m not really much of a Silverlight fan
    • Could be nice to smooth over the upload process
    • There is a client API for this
  • Flexible Deployment
    • Sandbox Solutions - HOT
      • Designed to strike a balance between business Agility and Security and Stability
    • Site Collection based
    • Limited API Access
    • Monitored
    • Deployed remotely to a solution gallery (a lot like a document library)
    • Does no end up anywhere on the server filesystem
    • Easy deployment
    • This has some pretty profound implications
  • DEMO 6
    • Sandbox solutions come with alternative VS deployment config
    • Create a web part –> Adds a label control which displays all the sites and all the lists
    • Tries to do some bad stuff in the code –> Creates a big loop
    • Packages it, and then goes to upload manually (very smart stuff)
    • Solution gallery lives in Site Settings
    • Adds the web part
    • When the loop goes for too long, then it hits a resource limitation
    • Resource monitoring which can set limits, and creates a series of metrics around the performance of various applications
      • eg. Resource Usage.
      • Clear this is functionality driven by Microsoft Online requirements
    • In my view this is the most significant new feature in the product
  • SharePoint Online
    • Supports Sandboxed solutions
    • Supports BCS
    • It becomes a development platform
  • Upgrade and Packaging
    • Upgrade callouts for features – HOT
    • Test your SP2007 code before running on a SP2010 server, SHOULD be ok, but needs to be tested
    • WSP is the unified packaging approach
  • TFS
    • Bit light on, will need to check out the specific session.

Get Your Demos While They Are Hot! Blog Central, Discussions Central, TunnelPoint and Produshare

As mentioned before, next week, zevenseas is heading to Las Vegas for the SharePoint Conference. Given its a week of “Show and Tell” we are coming fully equipped to demonstrate any of the three product releases we made this year.

Blog Central
Discussions Central (released this week)
TunnelPointhttp://www.tunnelpoint.com
ProduShare

If you have an interest in any of the above, and have 5 minutes to spare, drop me an email daniel@zevenseas.com or send me a tweet @danmc and lets be sure to find some time. I’ll even pay for the beer or coffee!

Assembly Free solution Contest with Cash prize

Readers of this blog will know that we have been spending a lot of time recently exploring the potential of SharePoint solutions that can be installed without touching the server.

There are our two cloud based service:

And the solution we have released:

To encourage the development of more “Assembly Free Solutions” we have decided to kick off a little contest. If you have a good idea for an assembly free solution, and have ninja-like Javascript and Web Service skills then put something together and send it through to hans@zevenseas.com.

First prize is EUR 500 cash, and we promise to showcase each of the solutions here on our blogs.

To get started take a look at our existing solutions

Team Status
Timesheets

And take a look at the following JS libraries:

Darren Johnston's JS API
JQuery Library for SharePoint Web Services by Sympraxis Consulting LLC

There are obviously a whole stack of Terms and Conditions, Hans has these over on his blog here.

Web Page Thumbnails in Your SharePoint Lists

I have been slow in posting on a very cool new community solution Mark published a few weeks back. Its called “ScreenScraper” and when installed to a list it will:

  1. Take in a URL
  2. Go out to the web
  3. Take a screen shot of the web page
  4. Save it as an attachment to the original list item

Combined with our free Tagged Links solution, it means you will never lose that cool web site again.

image  image

 image

Download ScreenScraper

Or Try it yourself (walkthrough here): 
Tagged Links
Username: DemoUser
Password: DemoUser

I’ll Be At SharePoint Conference 2009

image

Along with the whole zevenseas team (Mark, Robin and Hans). Looking forward to seeing you there!


 
 
 

© 2009 Community Kit For SharePoint