In The Mix

As a SharePoint architect I have the business behind me and the Developers and IT Pro on my shoulders.

TechEd 2012 Europe on Roku June 22, 2012

Filed under: Roku — fmuntean @ 9:40 pm

TechED 2012 Europe will start next week.

As I plan to watch the sessions on my TV I put together a Roku Channel for this event.

Looking at the channel status found that are over 30 people that read my blog and own a Roku themselves so I have publish this channel too.

To add it to your Roku device follow: https://owner.roku.com/add/TechEd2012Europe

Currently only the Key Note from 2010 is live however I plan to update the channel once the videos are available. I will update this blog post to keep you informed when this happen.

As before If you have any comments please share them here.

[2012-06-27] Update: The videos are available now and I updated the channel so you can watch them on the TV.

 

Microsoft TechED 2012 North America: Roku Channel June 18, 2012

Filed under: Roku — fmuntean @ 7:58 am
Tags:

Few weeks ago I got a new internet media player, one that is programmer friendly of course, ROKU2.

As TechED 2012 North America just closed its doors in Orlando people are starting to review or catch up with the presentations. This year is another year with technology refresh, Microsoft was big on the new OS, Virtualization, Cloud Computing and the new developer tools.

Spent some time last night and was able to put together my first channel for Roku2 to be able to watch all the public sessions right there on my TV.

For the owners of a Roku device I made the first version of channel/app available here: https://owner.roku.com/add/TechEd2012NA

Please use this post to also give me feedback.

 

Is Active Directory a thing of the Past? February 3, 2012

Filed under: Question,SharePoint — fmuntean @ 9:56 pm

With the new information that we received lately from Microsoft I wonder if Active Directory will soon be a thing of the past.

Now let me explain why:

1. Windows Phone 7 already using Windows Live authentication

2. Windows 8 will introduce the possibility to log into the system using Windows Live account

3. Office 2010 and more Office 15 supports windows live

4. SharePoint 15 will support OAuth2 out of the box which is used by Windows Live

 

Currently everywhere I go I need a separate user name and password then sometime even security questions or captcha on top.

Will be a time when the true “Single Sign On” be a reality?

There is still a long path but I can see the future when we do not have to remember hundreds of passwords but just provide everybody with a unique identity “us”.

 

I’ll let you wonder and debate if that is what you want and/or needed. 

 

SPTraceView v1.0 Released June 28, 2011

Filed under: SharePoint — fmuntean @ 7:42 pm
Tags:

Yesterday we finally released the version 1 for the SharePoint Trace View tool available on CodePlex.

SPTraceView analyses in real time the ULS trace messages coming from all SharePoint components and can notify you using a balloon-style tray bar messages when something of interest happens. This functionality is targeted mainly for people that develop and/or test custom SharePoint applications. It could be also useful to administrators to diagnose and troubleshoot their SharePoint farm.

As soon as you run it, SPTraceView will start receiving all messages from SharePoint.

 

Features:

  • Receives messages directly from the ETW logging system.
  • Easily enable/disable processing of the messages.
  • Process them and filter based on different criteria.
  • Balloon-style real time notification.
  • Log to xml files.
  • Trace to the Debug View for further filtering and processing.
  • Monitor entire Farm remotely.
  • Automatic update notification.

 

You can download the current version from here: http://sptraceview.codeplex.com/releases

Also a version supporting SharePoint 2010 is available too and work is done to release a stable version soon.

 

SharePoint for Project Managers March 11, 2011

Filed under: Uncategorized — fmuntean @ 8:23 pm

We are currently using SharePoint for many things like collaboration, portal, custom solutions, requirements gathering and project management.

As our current usage of SharePoint for project management is not public and process heavy I looked around and find a good blog about how to use SharePoint for Project Management. The following posts are not only doing that, but actually they provide a great step by step introduction to the world of PMs.

So if you are a beginner and want to learn more about PM or you are an expert in using Microsoft Project  but want to learn how SharePoint can help you to make others understand the complex plan that you put together follow the recipe for a simple and transparent way of managing projects.

 

PM Guide – (1) Initiate the Project

  • (i) Get the Project Approved and Resources Allocated
  • (ii) Decide the Project Management Process
  • (iii) Create a Collaborative Project Site

PM Guide – (2) Plan and Setup the Project

  • (i) Plan the Project
  • (ii) Desk Check the Project Plan
  • (iii) Notify the Team of their Responsibilities

PM Guide – (3) Work on the Project

  • (i) Find Work
  • (ii) Do Work
  • (iii) Update Progress on work

PM Guide – (4) Track and Re-Plan the Project (continuously until project closure)

  • (i) Check and understand the project’s progress
  • (ii) Find and Manage Exceptions (e.g. issues, risks and change requests)
  • (iii) Re-Plan the project

PM Guide – (5) Close the Project

  • (i) Run Project Post-Mortem and Track Lessons Learnt
  • (ii) Close out the Project site
  • (iii) Capture any useful modifications made to the project site for use on future projects

And he does not stop here but continues with the guide into the depths of Project Management:

 

PM Guide – (6) Project Management and Your Leadership Style

They even provide you with the templates (for a price) or you can actually build your own.

 

PM Guide – (7) Collaborative Project Management Sites

PM Guide – (8) Exercise – Build Your Own Project Management Approach

 

Hope this will help people understand how they can use SharePoint for Project Management as for sure if you read this blog you already have SharePoint.

Not sure if you are aware but if you one of the very experienced Project Managers out there Microsoft Project (Server) does integrates nicely with SharePoint Server.

 

I recommend SharePoint for project management for one single reason(ok two): Visibility & Transparency.

 

Want to dig deeper into this world?

Book cover of SharePoint for Project Management

SharePoint for Project Management

How to Create a Project Management Information System (PMIS) with SharePoint

By Dux Raymond Sy
Publisher: O’Reilly Media
Released: October 2008
Pages: 256
 

Correctly Handling the Silverlight OOB Update when hosted inside WCF December 28, 2010

Filed under: Silverlight — fmuntean @ 10:54 pm

On a project that I was working on lately I had to use Silverlight OOB (Out Of the Browser) and the xap file was actually not hosted in IIS but rather in a custom application (read either console app or Windows Services for the scope of this post).

The architectural approach is:

image

On the server side we have a console application running that host a WCF REST Service which will deliver, using WebGet, the files needed to run the Silverlight application. In other words the WCF service takes the place of IIS.

This is so that the user easily go to a web page then install the Silverlight application locally.

Now let’s see the implementation for this approach:

First the Service interface:

  1. [ServiceContract]
  2.     public interface ISilverlightHost
  3.     {
  4.         [OperationContract]
  5.         [WebGet(UriTemplate = "")]
  6.         Stream GetHtml();
  7.  
  8.         [OperationContract]
  9.         [WebGet(UriTemplate = "clientaccesspolicy.xml")]
  10.         Stream GetPolicy();
  11.  
  12.         [OperationContract]
  13.         [WebGet(UriTemplate = "SLPlayer.xap")]
  14.         Stream GetXap();
  15.  
  16.         [OperationContract]
  17.         [WebGet(UriTemplate = "Silverlight.js")]
  18.         Stream GetJavaScript();
  19.  
  20.     }

And the implementation:

  1. public class SLService : ISilverlightHost
  2. {
  3.     public Stream GetHtml()
  4.     {
  5.         return new FileStream(“SLPlayer.html”, FileMode.Open, FileAccess.Read);
  6.     }
  7.  
  8.     public Stream GetJavaScript()
  9.     {
  10.         return new FileStream(“Silverlight.js”, FileMode.Open, FileAccess.Read);
  11.     }
  12.  
  13.     public Stream GetXap()
  14.     {
  15.         var request = WebOperationContext.Current.IncomingRequest;
  16.         var response = WebOperationContext.Current.OutgoingResponse;
  17.  
  18.         //we need to manually implement a way to correctly update the xap file when running OOB
  19.         DateTime? modifiedSince = request.IfModifiedSince;
  20.         if (modifiedSince!=null)
  21.         {
  22.             var fileInfo = new FileInfo(“SLPlayer.xap”);
  23.             if (fileInfo.LastWriteTime < modifiedSince)
  24.             {
  25.                 response.StatusCode = HttpStatusCode.NotModified;
  26.                 return null;
  27.             }
  28.         }
  29.         response.ContentType = “application/x-silverlight”;
  30.         return new FileStream(“SLPlayer.xap”, FileMode.Open, FileAccess.Read);
  31.     }
  32.  
  33.     public Stream GetPolicy()
  34.     {
  35.         SetResponseContentType(“text/xml”);
  36.         return new FileStream(“clientaccesspolicy.xml”, FileMode.Open, FileAccess.Read);
  37.     }
  38.  
  39.     private static void SetResponseContentType(string contentType)
  40.     {
  41.         if (WebOperationContext.Current != null)
  42.         {
  43.             WebOperationContext.Current.OutgoingResponse.ContentType = contentType;
  44.         }
  45.     }
  46. }

 

Now lets explain the code a little bit:

1. The user open the web url for this application using a web browser the WCF will intercept the request and get return the html file stored locally see GetHtml method.

2. The browser parse the html and loads the Silverlight.js and the xap file.

3. The clientaccesspolicy.xml is provided in case there are other WCF services hosted under this url.

Now let’s talk about the OOB update of the application:

The process of upgrading a Silverlight application is described here:

Silverlight 3 Out-of-browser Update Model by Tim Heuer (the same applies for Silverlight 4 in case you are wondering)

As described in Tim’s post the Silverlight PlugIn send a request to the original web location of the Silverlight application using a special header, If-Modified-Since which IIS interprets it and respond correctly to it. However our WCF service will not know what to do with it by default so it is up to us to correctly handle this (see GetXap method).

The main idea here is that each time when the Silverlight app is either installed or upgraded some metadata is stored locally including a timestamp of the last update. when calling  Application.Current.CheckAndDownloadUpdateAsync(); the plugin will check if the file was modified after the last time stamp and the expectation is that the server will respond with a status code of 304 Not Modified and an empty body when there was no update. However when the file is newer then  regular response is expected including the xap file and a status code of 200 OK.

There were plenty of posts out there explaining how to host Silverlight inside WCF but none talked about the issue with the update. Hope this post will be helpful to people who will wonder why their application always reports update available even when there is none.

 

Getting Build Date and Time from Assembly Version

Filed under: .NET,Silverlight — fmuntean @ 10:43 pm

When you use the following format for Assembly Version Attribute 
[assembly: AssemblyVersion("1.0.*")] the build number and revision are automatically generated for you when building the application.

It turns out that that a formula based on DateTime.Now is used to generate those numbers.

So to get the DateTime time stamp when the assembly was build all you have to do is:

Code Snippet
  1. Version v = ParseVersionNumber(Assembly.GetExecutingAssembly());
  2.            return new DateTime((v.Build – 1) * TimeSpan.TicksPerDay + v.Revision * TimeSpan.TicksPerSecond * 2).AddYears(1999);
 

 
Follow

Get every new post delivered to your Inbox.