Three types of people

In the spirit of using completely arbitrary ways to categorise people, I’d like to suggest that there’s 3 types of people.

At the end of Captain America: The Winter Soldier you are one of these:

  1. The person who walks out the instant the credits start rolling
  2. The person who waits for the ‘bonus’ bit that all comic related movies have these days. Once that bit in the middle of the credits has played, you congratulate yourself for waiting and then walk out
  3. The person who is overly cautious and waits right until the very end, and then as the credits finish and the final roman numeral copyright year rolls off the top of the screen you are rewarded with the ‘Bucky’ scene.

 

What Would I Know?

iStock_000014731095Large

IgnoranceYou know when you read lazy tech reporting and it just wastes your time? Yeah, I hate that. People who don’t really know much, but are more than happy to share their ill-informed opinions. Or worse, they’re a walking case study for ignorance parading as opinion… yeah, we all hate that.

So, why do I feel the need to contribute more of the same?

Well, basically, I find that writing down my thoughts helps me clarify them. The final result might well still be flawed, but it’s a lot better than where I started. And perhaps, if I’m extremely lucky, there might be some snippet of an idea that could stimulate you, dear reader.

As always, comments are where the clarity is – let me know where I’m wrong, I’m keen to improve.

CLARITY: Visual Studio Tools for Office (VSTO)

Visual Studio Tools for Office (VSTO)

After chatting with a few people about Visual Studio Tools for Office (VSTO) recently, it’s clear that the technology is not that well understood (even though, in my opinion, Microsoft have done a pretty good job of articulating it – much better than say OBA for example). So in this post I’m aiming to give a high level overview of VSTO and clear up some misconceptions.

As usual this is covered under my ‘well duh’ disclaimer, and I apologise in advance for ‘reworking’ some of my content from earlier in the year, including this one from January and my general VSTO page. For a comparison of VSTO to VSTA see this page.

VSTO – What?

VSTO is Microsoft’s tool set for building applications that run on Microsoft Office (eg Word, Excel, Outlook, PowerPoint).

I deliberately choose the word ‘on’ because part of understanding VSTO is to view Office as a platform.

VSTO – A brief history…

Originally a replacement for VBA (Visual Basic for Applications) that was delivered in Excel and Word, VSTO was made available in its first version approximately around the start of 2004, targeting the Office 2003 platform. Development was performed in Visual Studio 2003 but was referred to as VSTO 2003 (or sometimes VSTO 1.0). It was an add-on to VS.NET 2003 and wasn’t free (costing around $450).

The second version, referred to as V2 or VSTO 2005 was a big update that added numerous advances and enhancements (eg support for Outlook). It was delivered as a special SKU of VS 2005 (my understanding is it was not available as a separate download, but I could be wrong).

The third version, confusingly titled VSTO 2005 Second Edition (VSTO 2005 SE) was delivered in 2007 and focused on targeting the Office 2007 platform. It was a freely downloadable add-on for VS 2005.

This SE version was tweaked significantly and released in November 2007 as part of Visual Studio 2008 (Professional and above – it is not available in the Standard edition), and is referred to as VSTO V3 (even though it is the fourth version of the product). VSTO 2008 overcomes many of the deployment and security hurdles found in previous versions, and adds a number of design helpers (eg visual editing of Office 2007 toolbars, support for SharePoint 3.0 Workflow, etc). SP1 for VSTO V3 is to be released shortly and further improves deployment abilities (as well as bug fixes, enhancement, etc).

[The reason the version numbers are confusing is because in Vx terms they refer to the runtime used, not so much the tooling released. So, technically speaking VSTO 2005 and VSTO 2005 SE both use the same V2 runtime. VSTO in Visual Studio 2008 is using V3 of the runtime, even though it is the fourth release of the product. For more information Andrew Whitechapel has a excellent overview.]

The aim of VSTO is to provide tools for developers to build on top of Office as a platform. Using VB.NET and/or C#, developers can use Visual Studio to build add-ins for most of the Office 2003 and 2007 applications, including Word, Excel, Outlook, PowerPoint, InfoPath and Visio. SharePoint and Groove development is also possible, although not directly targeted.

VSTO – How?

So, how to get working with VSTO?

In a nutshell VSTO is a set of Visual Studio project templates that allow you to write add-ins for Microsoft Office applications (eg an add-in for Outlook, or Word, etc).

(Don’t worry) I’m not going into any code in this post, but I think screen shot from File –> New –> Project… in Visual Studio 2008 helps explain the scope:

Visual Studio New Project dialog showing VSTO templates

As a developer you can build add-ins for most of the Office programs. Start by choosing a particular template (eg an Outlook 2007 Add-in) and Visual Studio will setup the skeleton and initial hooks.

Application level versus Document level

VSTO supports four types of add-in. The two main ones are:

  • Application level add-ins – are those that reside in the program itself. Example: you add a toolbar in Word that has functionality that can run regardless of which document you have open. Application level add-ins can be written for just about all Office apps including Outlook, Word, Excel, PowerPoint, Project and Visio (all in both 2003 and 2007 versions) and InfoPath 2007.
  • Document level add-ins (or customisations) – are delivered within a specific document. Example: you include functions in a specific Excel workbook. The functions are only available when you open that workbook. Document level add-ins are only relevant to Word and Excel. (You could think of Document level customisations as the VSTO equivalent of VBA macros in Word and Excel).

VSTO also support two lesser known types:

  • SharePoint 2007 Workflow templates
  • InfoPath 2007 Form Templates

 

VSTO – Some misconceptions

There’s a few common misconceptions I’ve come across talking with people about VSTO. Here’s the clarifications:

  • Yes, VSTO V3 requires Visual Studio 2008 and the .NET Framework 3.5 – I mention this because it is a common question on the forums. So, if you don’t have Visual Studio 2008, or can’t be certain your users will have .NET 3.5 then you’ll need to work with a previous version. 
  • Yes, you can target both Office 2003 and Office 2007 apps using VSTO V3, but no, you can’t target them both in the same add-in (eg you can’t write a single add-in that will work in both Outlook 2003 and Outlook 2007).
  • Yes, VSTO and VBA are friends. Whilst VSTO may have started out as a replacement for VBA, it soon became apparent that Interop with VBA is much better for all concerned. VBA is going to be around for a while, and with interop the huge body of VBA code can be used in VSTO apps (see this post for more VBA and VSTO details).
  • Yes, VSTO is a part of OBA – you may run into the term Office Business Applications (OBA) and think  OBA and VSTO are synonymous. But that’d be missing the huge scope of OBA. OBA covers a whole enterprise architecture with LOB apps and Servers as well as Office. VSTO is just part of the tooling for building OBAs (see here for a full overview of OBA).

 

VSTO – Why?

Question: Why exactly would you want to consider VSTO?

Answer: so you can build on a platform.

And not just any platform. But a platform that is now in its twelfth version, covers almost every imaginable business and home user scenario, and is installed on more 500M PCs worldwide… The Office platform.

Now, to be fair, not all of those users are using Visual Studio 2003 or 2007, but the majority certainly are, and growing. (For example, in a recent OBA webcast I watched, around the 3:09 mark there were figures from Forester Research – dated 31 Mar 2008 – detailing that 62% of surveyed enterprises not yet on Office 2007 were moving to Office 2007 in the next 12 months.)

So then the question becomes – why build on a platform? I think Andrew Coates answered this beautifully in his Standing on the Shoulders of Giants post a year ago. If you haven’t already, read it. [Aside: Initially, you’ll wonder why he goes into such detailed history… but later, perhaps pondering it while stuck in line at the local supermarket, or caught in a boring meeting, it’ll suddenly fall into place, and you’ll understand the necessity of working with a platform.]

With VSTO, you get to build on top of the Office platform, using the vast functionality of the .NET framework.

VSTO – Hurdles

VSTO isn’t without its problems. For one, you’ve got a whole lot of extra weight you need to ship with your app (including a bunch of extra DLLs called Primary Interop Assemblies – I’ll be explaining those things in a later post – plus the VSTO runtime, and of course the .NET Framework). But that isn’t the main thing…

Deployment has been the biggest hurdle to VSTO adoption. Getting your add-in out there and easy to install isn’t the simple task it should be. V3 has certainly improved the process, but there’s still work to be done. And as mentioned in an earlier post, a big focus of the upcoming VS2008 SP1 enhancements has been to make VSTO deployment even easier. Andrew Coates links to a number of good resources on VSTO deployment.

[Assuming those issues are resolved shortly, there is really only one further hurdle: mindset. I’ve mentioned this previously, and I think it still stands, but since it isn’t really to do with understanding VSTO itself I won’t go into details here.]

VSTO – Where are the examples?

One of the frustrations I’ve found with VSTO is finding some good real-world examples. Sure, there’s plenty of code samples, and the odd Code Gallery post, but there’s nothing detailing commercial applications that I can find (I’m hoping someone corrects me on this). There’s nothing on the Microsoft case studies site (the closest I could find were some OBA case studies that mention VSTO), and there’s nothing in any blogs that I can find pointing to cool VSTO apps available for download.

That’s not to say there aren’t plenty of add-ins for Outlook, Word, Excel, etc out there, it’s just that I can’t be certain if they were built using VSTO or not. For example, Xobni is a nice little Outlook add-in, but doesn’t appear to use VSTO. Hopefully I can add some examples to this section soon.

VSTO – Resources

I’ll be linking to a full list of VSTO resources in a future post, but for now start here: VSTO Portal on MSDN. Then go here for a Getting Started with VSTO guide. For hands on detail, take a look at this helpful forum post by the awesome Cindy Meister and these How Do I Videos on the Office Dev Center. For blogs and articles head over to OfficeZealot and of course the official VSTO blog. I’ve also listed some other resources on my VSTO page.

Also, if you’re interested I have a separate feed for my VSTO related posts:  VSTO

VSTO – Summary

  • Visual Studio Tools for Office is a set of Visual Studio project templates and runtimes for building add-ins for Microsoft Office programs.
  • VSTO is mature (now in its fourth version) and easy to use. It has overcome many of the deployment hurdles it had in the past, but still has a few to resolve.
  • The latest version uses Visual Studio 2008 and the .NET Framework 3.5 and can create add-ins for just about any Office 2003 or Office 2007 app.

 

CLARITY: Office Business Applications (OBA)

Office Business Applications is a term getting bandied about a fair bit these days.

What is it exactly? Well, answers differ, and you’d be forgiven if you thought it was as simple as using Office to build Applications for use in Business.

The purpose of this post is to try to get some simple high level understanding of OBAs. In later posts I’ll be digging into resources and also covering VSTO. (As per usual this is covered under my ‘well duh’ disclaimer.)

OBA – Concept

The concept behind OBA is perhaps best summed up in the following quote from the OBA Central site where they state:

“Office Business Applications are a new breed of application that… turn document-based processes into real applications.”

This sums up the main aim of OBAs: they are document based.

OBA – Delivery

But what about the delivery – the technology enabling it? This is where it can get overwhelming. OBAs can encompass a huge range of technologies. The Microsoft Office suite of course, but also (and perhaps predominantly) the Microsoft Servers with SharePoint Server being key, followed by Unified Communications (Office Communication Server), Exchange and Groove Servers. It also extends to non-Microsoft vendor products including SAP, PeopleSoft, even CAD programs.

Here’s how they fit together:

Simplified overview of OBA

(Note: this is my own summary of OBA – based on an excellent Steve Fox webcast on OBA)

Line Of Business (LOB) applications

To really understand how OBA sits together we need to agree on what Line Of Business (LOB) applications are.

What are LOBs? Wikipedia is reasonably sparse on details but captures the main point: LOBs are related to business needs. SearchCIO has a more helpful description, highlighting that LOBs are vital to running an enterprise. That is, they are a set of processes/applications that run your business (or a division ie line of your business), and can be complex and deeply integrated with a number of systems. In terms of OBA they can be Microsoft provided (eg Dynamics) or other vendors (common examples are PeopleSoft, Oracle, SAP).

It can get blurry though – for example, why would Microsoft Dynamics be a LOB app and Exchange not? The distinction comes down to how they are used. If you just install one of the Dynamics apps and use as is to enhance a few processes then it’s probably not a LOB tool. But if you use it as a fundamental aspect of your business, to the extent that part of your enterprise relies on it, then it is a LOB app. Similarly, if you dramatically enhanced Exchange and built crucial business processes on top of it, then yes, it moves from being just a Server, to a LOB app.

When we talk about Oracle, PeopleSoft etc as a LOB app, we are talking about them being crucial to everyday business. Just installing an Oracle server somewhere in the IT department does not make it LOB…

Thus, summarising again the delivery aspect of OBA, here’s what we’ve got:

OBA = Microsoft Office + Microsoft Servers + LOBs

Digging deeper into the Microsoft Stack

This helpful diagram from the Office Business Applications Architecture Overview (well worth downloading – it’s a Word doc) helpfully puts it in context.

Office System Logical Architecture - click to enlarge

Looking through the diagram you’ll see that just about every facet of Microsoft’s Office, Server and Developer tool set offerings can be directed into an OBA scenario.

Admittedly this diagram is a little out of date (eg it refers to the previous version of VSTO, there’s no mention of Expression etc) but it does show the scope of OBA.

By the way, you’ll notice that most of the discussion around OBA is concentrated on Office 2007. What happened to Office 2003?

Whilst not specifically excluded (and in a later post I’ll be covering how Office 2003 is fully supported in VSTO) Microsoft’s push is definitely focused on Office 2007.To that end, just about every example, overview and case study features Office 2007.

OBA- Why?

Why is OBA so important?

The beauty of OBA (for me) is the way it brings together such a wide range of technologies, and aligns them for a common purpose. That purpose will be specific to each organisation of course, and by having a glance through the OBA cast studies site you’ll quickly appreciate how diverse and powerful they can be.

 

 

 

 

 

In terms of business benefit there’s plenty of compelling information about ROI and so forth on the OBA sites. But have your BS filters on, the figures that get bandied about are on the best case side at every turn, and sometimes are complete fantasy (marketing gets carried away for example when they try to make unrealistic licensing cost per person arguments). And whilst I agree that Office 2007 adoption is high (much higher than say Vista), we need to be careful when stating that OBAs provide significant training advantages because users are familiar with the Office interface. The fact is, to many enterprises the Office 2007 ribbon re-training is a hidden cost they can’t quantify.

But my intention here isn’t to nitpick, rather it’s to say that building OBAs isn’t an open and shut case when it comes to training cost.

To me the value of OBA development is in other key areas – surely the main benefit of OBA is the ability to:

  1. Use what you know
  2. Use what you have

Use what you know

There’s been cases where a new CIO joins an enterprise and successfully changes their entire infrastructure (eg comes in, chucks out Java and rolls out .NET, or vice versa). The reason these events happen is because the CIO knows they can get results simply because they have achieved success with those tools before, and they know how to manage the implementation.

This is extreme of course, but my point is that a particular technology choice is rarely right or wrong, rather its about whether you know how to make the technology choice work. The reason I mention this is because when it comes to OBA, many CIOs already know how to make two-thirds of the equation work (that is, they know Office, and they know Microsoft Servers). And this trickles down to all areas (users with Office, IT with SharePoint & Exchange, developers with .NET etc).

Summary: OBA may or may not be the best technology architecture – but it will often be the best choice – simply because your IT team know how to make it successful.

Use what you have

The second benefit of OBA is the ability to use what you have (ie  minimise TCO). If you already have Office and Microsoft Servers in place, then building on top of them is a comfortable position to take. Notwithstanding the need to upgrade (eg Office 2003 to Office 2007, or SharePoint Server 2003 to MOSS) there is a considerable enterprise base in place that can be used. At this point the marketing collateral descends into ‘leverage’, ‘proven’, ‘scalable’ and other buzzword guff, but the point is valid.

Again, the actual technology may or may not be the best, but having it in place offsets costs required to develop functionality that might already exist in other offerings.

OBA- Who?

At this point you might be buying in to the whole OBA vision. But is it appropriate for your business? Does it apply for example, to companies with only 30 staff? Again the case study site provides good guidance here.

You’ll see for example that most examples are for large corporates (1000+ employees). But the good news is that OBA applies at all levels, and there are a few examples where companies with as few as 10 or 14 employees are using OBA to improve their business (the smaller company examples typically use Dynamics CRM as their LOB app).

In terms of where OBA is predominant, the top two industries are Finance (Banking, Insurance, etc) and Manufacturing and the top two processes are Financial processes and Sales processes.

OBA – Where does VSTO fit in?

Visual Studio Tools for Office (VSTO) is a small but vital part of the OBA discussion. It’s the main tool developers use to build the extensions to Office apps that allow interaction with LOBs. But that’s a whole topic on its own, and I’ll be covering that in a later post.

Summary

  • Office Business Applications are solutions built using: Microsoft Office + Microsoft Servers (predominantly MOSS) + LOB apps
  • They focus on automating document based processes.
  • They are applicable to companies of all sizes, but usually enterprises with hundred or thousands of employees.
  • OBAs allow companies to provide significant functionality by using What they know (Technical Knowledge) to utilise What they have (Technical Infrastructure)
  • VSTO is a small but important part of the tooling that enables OBA

[If you found this useful you may be interested in other Clarity series posts]

CLARITY: SQL Server 2008

One of the problems we often encounter is information overload. There’s no shortage of great articles, examples, podcasts and webcasts on every conceivable technology. Microsoft’s products are no different.

Thus, the following is comprised of numerous sources easy to find online – there’s no special insight here. Rather, I’ve just simply tried to distill a product to its highest level overview. Hope it helps, and as usual it’s covered by my ‘well duh‘ disclaimer.

Anyway, on to today’s topic: SQL Server 2008

 

History of SQL ServerSQL Server 2008

SQL Server has been around for a while, with version 6 coming along in the early ’90s.

Version 6.5 and 7.0 followed. SQL 2000 and SQL 2005 are the most common versions in use now.

SQL Server 2008 has just entered its Release Candidate cycle, which means it may be released in the next few months.

 

Editions

There’s a number of editions, the main ones being:

SQL Server Standard, Enterprise & Developer

SQL Server Web & Workgroup

SQL Express (available Free)

SQL Compact Edition (available Free)

(These support a variety of operating systems and chip sets)

 

ComponentsSQL Server 2008 overview

You may have seen the following helpful diagram at some point – it is a good overview of the main components in SQL Server 2008: 

Database Engine

The main storage and query engine, supporting security, tables, views, stored procedures, replication and general management of data. SQL Agent also hangs off the database engine, allowing jobs or tasks to be scheduled.

Analysis Services

As the name implies, Analysis services are about providing in depth functions for analysing data.

There’s two main parts to Analysis Services. Multi-dimensional data is where structures are built that package up data, often from multiple sources, into a single aggregated model. Often referred to as ‘cubes‘ due to their multi-dimensional format. These structures are then also used in other packages (eg PerformancePoint) and reporting tools.

Data Mining is about interrogating vast volumes of data, often to provide predictive models and trends.

Reporting Services

Reporting services provide presentation and programming tools for delivering reports. Various formats, scheduling and exporting options are provided.

Integration Services

Integration services provide a platform for efficiently moving data in and out of SQL Server. Numerous formats and conversions between them can be managed. The integration tasks are coded as ‘packages’, and GUI tools are provided to help build them.

Service Broker

Provides the database engine with the capability to build messaging and queuing applications. Allows distributed applications to be built easily (since it supports transactions).

Replication

Replication facilitates data being distributed between different databases, and synchronised at regular intervals (sometimes close to real time). Replication can function over LANs, WANS, and the internet.

What about Notification Services?

Notifications services was a component of SQL Server 2005 that allowed messages to be sent to subscribers. It was a way of deploying apps that could send notifications in huge volumes. However it was dropped from SQL Server 2008.

 

ToolsSQL Server 2008 Tools

SQL Server Management Studio

Key function: Managing

This is the main application for managing and administering the servers & services, databases,  stored procedures, security, replication, resource governor and more.

Business Intelligence Development Studio

Key function: Developing

This is where you build applications (ie think Solutions and Projects) for any of the main services, including Analysis, Reporting and Integration Services. For example, you’d use this for building Analysis cubes, or an Integration Services package (eg here’s one I did earlier :-))

SQL Server Profiler

Key function: Debugging

This is used for capturing and analysing activity. The tool allows almost any communication item in SQL Server to be captured, everything from queries, stored procedures, result sets, handshaking, and more. This is usually the first port of call when debugging SQL performance for example.

Other tools

There’s also various command line tools as well as configuration tools (although apparently not the Surface Area Configuration tool I mentioned recently).

 Microsoft data vision

Other important stuff

Microsoft has an overall vision for providing data everywhere, whether that’s on the desktop, web, mobile device or in the data centre. Here’s a nice little piccy that puts it in context ->

 

Microsoft Sync Framework

Part of the strategy for making data available anywhere, is having the means to synchronise it back with the main data store. This is where the Microsoft Sync Framework fits in. It’s not yet released (currently CTP2) and handles more than just database synchronisation ( but we are only interested in the database part for now).

The diagrams below show two manifestations of this. The first uses the internet for connecting back to a main storage server. The second adds to this by allowing the devices to synchronise between themselves as well as the main server (again over the internet).

The main point is that this supports an ‘occasionally connected‘ architecture.

 

Microsoft Sync Services Microsoft Sync Services

SQL Server Data Services

Plus Microsoft has a SQL Server Data Services concept coming (it’s currently in limited Beta), which provides on-demand data storage, all hosted by Microsoft.

 

Closing comment

Yet again Microsoft marketing has chosen to hit us with the ‘actionable’ adjective. I still smile every time I see it – here’s why.

image

 

CLARITY: CRM Live becomes CRM Online

The main interest in this article from Mary Jo is not about CRM (who cares about a name change after all) but rather how Microsoft are clarifying their terms:

Live: Consumer focus

Online: Business & Enterprise focus, hosted by Microsoft

Hosted services: hosted by Microsoft partners

And don’t miss the revenue sharing snippet at the bottom – Microsoft will share 10% of the CRM Live charge with reseller partners (its at the bottom of page 10 of the linked document).

(via Mary Jo Foley)

Technorati Tags: , , ,

CLARITY: VSTS, VSTO, VSTA, VSX

Seems like Microsoft is having a V Day, every day. Here's a run down of the main V technologies/tools:

VSTS (Visual Studio Team System)

Firstly, Visual Studio. Visual Studio 2008 (the current version) is Microsoft's IDE for building .NET based applications, be they Web, Desktop, Device or Microsoft Office based.

Visual Studio comes in a number of different versions, grouped into three main areas:

The premier version is called Visual Studio Team System 2008 Team Suite and includes everything from all the different-role based versions.

VSTO (Visual Studio Tools for Office)

VSTO is Microsoft's tool set for building applications that run in Microsoft Office (eg Word, Excel, Outlook, PowerPoint). They are built using Visual Studio.

Originally a replacement for VBA (Visual Basic for Applications) in Excel and Word, VSTO was made available in its first version approximately around the start of 2004. The most recent version – VSTO V3 – was delivered as part of Visual Studio 2008 in November 2007.

The aim of VSTO is to provide tools for developers to build on top of Office as a platform. Using VB.NET and/or C#, developers can use Visual Studio to build add-in for most of the Office 2003 and 2007 applications, including Word, Excel, Outlook, PowerPoint, InfoPath and Visio. SharePoint and Groove development is also possible, al though not directly targeted.

(See also my further thoughts on VSTO here)

VSTA (Visual Studio Tools for Applications)

VSTA is a customisation toolkit for allowing your application to be extended (using .NET). You are basically exposing your application's object model in a form that can be built upon using Visual Studio. You can even embed a cut-down version of Visual Studio into your application to allow customers to extend it without having to install Visual Studio.

If they do have Visual Studio installed, they'll be able to built add-ins for your application.

VSTA comes from the same Microsoft product group as VSTO and shares a similar architecture. Here's how they relate to each other:

Microsoft has a product (eg Outlook) that they want you to be able to extend. They use VSTA to allow their product (Outlook) to be extended using Visual Studio. They call their extension toolset VSTO.

(Note: They don't embed the cut-down version of Visual Studio into Outlook, but the concept is similar to how they provide the macro editor embedded into Office.)

VSTA is reasonably new – the first version was announced in early 2006. The second version is due in early 2008.

VSX (Visual Studio Extensions/Extensibility)

It's easy to get confused between VSTA and VSX. The difference is that with VSTA you provide extensibility for your application, whilst with VSX you build new extensions for Visual Studio. With VSX you are building something new onto the Visual Studio IDE.

Code Magazine recently had an entire issue devoted to VSX.

VSX is part of the Visual Studio Ecosystem of products, delivered via the Visual Studio 2008 SDK.

Microsoft has been focussing on opening up extensibility for Visual Studio a lot lately. Although the ability to do so has been around for a while, it is now free (previously it was licensed at a cost), licensing restrictions have been toned down, and the Visual Studio Shell has been released (meaning you can build Visual Studio Add-ins without even needing Visual Studio installed).

Also, a number of open source projects have appeared on CodePlex, including the World of Warcraft AddOn Studio.

Other V words:

VSS (Visual SourceSafe)

Microsoft's long running source control product has been superseeded in many ways by the source control elements of Team Foundation Server, however VSS is still promoted and supported. Ideal for smaller development teams.

Volta (Volta)

A new initiative from Microsoft labs, as opposed to a product as such, this is a process of so called tier splitting, whereby the Volta technology takes a traditional WinForms application and splits it out into client and server tiers/components, all held together with Volta goodness. The server tiers can be transformed to being web based (JavaScript usage features heavily in this case).

Vista

I think we all know this one. Microsoft Vista is an operating system, and the successor to Windows XP. 

Technorati Tags: , , , , ,

CLARITY: Thin, Thick and Smart clients

The term Smart Client is probably the most often misused of the three, and there always seems to be a little bit of confusion as to where Thick stops and Smart begins.

But, yet again, The Architecture Journal (Issue 14, p10) guides us with a simple and helpful summary. Some will no doubt disagree (since the issue is focused on connectivity and mobile devices).

I've summarised them here:

Thin Client (Online Application): Client software, normally browser based, where connectivity is required.

Thick Client (Offline Application): Client software, installed locally, where connectivity is not required. All required data is local. (Synchronising of data at some point may be provided)

Smart Client (Occasionally Connected Application): Client software, installed locally, where connectivity is required regularly but not continuously.

This is a helpful guide, but of course is still open to debate.

The key point is what the term 'required' means? The common answer in my experience is that 'required' means 'required to provide a good user experience'.

Thus, is a program like Outlook a Thick Client or a Smart Client application? I usually say it is both, since it will work fine on its own (eg for Contacts, Tasks, Calendar) and yet it requires a regular connection for others (eg Email, Meeting requests). If a good user experience for you means instantaneous email Send/Receive then Outlook is a Smart Client, but if you only need to check email once a day or every few days then it is a Thick Client.

CLARITY: Flash versus Flex versus Silverlight

Summary: Flex is to Adobe as Silverlight is to Microsoft

Silverlight is often referred to as Microsoft's version of Flash, however it is more correct to say it is Microsoft's version of Flex.

You could say the following…
Silverlight 1.0 = Flash
Silverlight 2.0 = Flex

[UPDATE: Silverlight 1.1 has been re-branded as Silverlight 2.0]

Here's a very basic comparison of Flex and Silverlight:

Flex is an Adobe product which allows you to build Rich Internet Applications* (RIA)

It is basically a developer tool which has a framework of functions that allows you to build applications that run in a browser (any browser on any platform).

Flex can use the Adobe Integrated Runtime (AIR)** to run those very same web apps on the desktop as desktop apps.

Flex is currently building in .Net framework support.
Flex is currently in Beta for version 3.

In comparison, Silverlight is a Microsoft technology that allows you to build RIAs.

Silverlight apps are built using Visual Studio, Blend and other tools.
Silverlight 1.0 (released in October 2007) focused on providing Rich Media support.

Silverlight 1.1 (currently in Alpha) is focused on the programmability behind the apps.

Via a Silverlight plug-in, the apps run in any browser on any platform (there are some limits though).

Silverlight does not provide desktop app functionality. WPF is the Microsoft solution for rich media desktop applications.

* Some people contest that RIA stands for Rich Interactive Applications
** AIR used to be referred to as Apollo (it's previous codename)

Technorati Tags: , , ,

CLARITY: SharePoint – WSS versus MOSS

There's still plenty of confusion out there about SharePoint, particularly around what is included in WSS versus MOSS. Part of the problem is that there is soooo much information about SharePoint that the simple details get lost…

So, let's go through the various options, comparing WSS with MOSS Standard and MOSS Enterprise as simply as possible. I'll exclude technicalities (eg that you need R2 of W2K3 etc) and just focus on the main points.

Windows SharePoint Services (WSS)

Currently in version 3.0, WSS is a free add-on to Windows 2003 Server. WSS is the foundation of SharePoint. It provides a stack of features (or services), including document management & collaboration, Wikis, Blogs, RSS feeds, strong Office integration (Word, Excel, Outlook, Access, PowerPoint) including alerts and synchronisation, basic workflow and some search capabilities. It has the foundational elements such as security and storage services.

Many intranet requirements are completely catered for with WSS. And WSS can be used quite effectively as a web site too.

[I've seen discussions about storage limits within WSS being set at 4GB*, but my current understanding is that this is not the case – ie there is no set limit.]

Microsoft Office SharePoint Services (MOSS) Standard

MOSS** sits on top of WSS and comes in two main versions: Standard and Enterprise.

MOSS Standard has stacks of features of course (including Enterprise Content Management, Portals and comprehensive Workflow), but the main ones to consider are:

  • Enterprise Search (which allows you to crawl a number of data sources)
  • People management (which includes all the My Site stuff, Personalisation features, Single Sign On and more)
  • Analytics (which includes all the usage and auditing functions for example: you can audit who is searching for what)

Point to note: Enterprise Search IS included in the Standard version.

Microsoft Office SharePoint Services (MOSS) Enterprise

Moving on to MOSS Enterprise, we get everything in Standard, plus a few more features added, the most important of which are:

  • Business Data Catalog or BDC (which is a means of linking SharePoint to basically anything including SQL Servers, Oracle Servers, Microsoft CRM, SAP and more, and providing the BI functions including dashboards and KPIs)
  • Excel 2007 Services (which allow Excel spreadsheets to be 'hosted' and rendered, and even accessed as web services)
  • Forms server (see below)

Point to note: People sometimes confuse BDC with Enterprise Search. To clarify: BDC can be considered an extra source of data feeds into Enterprise Search.

Other versions

There also used to be various flavours of MOSS for Search, and these can best be summed up as WSS plus Enterprise Search (ie they lack some of the other MOSS features such as ECM etc). They have recently been re-branded as Microsoft Search Server 2008 and come in a free 'Express' version and the Standard version.

Aside: There is another SharePoint pseudo-version known as the Office Forms Server 2007 which basically allows InfoPath forms to be rendered in the browser. It can be added to just WSS if required, and is included by default in the MOSS Enterprise version.

Comment

Microsoft hasn't gone out of its way to make all this clear I have to admit – the hype around SharePoint is usually focused on the MOSS side of things – and why not? After all that's where the big dollars are. Speaking of big dollars, it may not be as big as everyone keeps making out.

Licensing

Sure enough the Internet facing licensing is off with the fairies (at around the USD 40K per server mark!), but inside the company it can be significantly cheaper.

I don't claim to understand the SharePoint licensing intimately, but this link will give you an overview of licensing (eg a basic intranet MOSS license is under $5K, although moving to Enterprise will get you into $60K level – Yikes!). However, the real kicker comes when you have to weigh up all the CALs you need (and for Enterprise you need to buy both the Standard CALs and the Enterprise CALS on top).

Getting confused yet? Yep, and to top it off you also need to factor in SQL Server licenses if you don't already have those in place.

Summary: You need MOSS Server license + CALs + SQL Server licenses

Point to note: If you want to expose your intranet on the internet (eg via your web site) then you are in for a headache :-)

This barely helpful link from Microsoft attempts to make it clearer, but requires about five readings before it starts to make sense.

This Excel spreadsheet is a great SharePoint feature comparison for those wanting to get into the nitty-gritty (well worth the download).

Consider this…

Here's the main takeaway… if you are considering SharePoint for your intranet but have been worried about licensing costs, then start with WSS. It has stacks of collaboration features and may be all you need. And it's free. Plus you can always build on it, adding MOSS features later.

If you did move to MOSS, start with MOSS Standard and think carefully about whether you need the Enterprise features.

And think very, very carefully about making your web site MOSS based :-)

References

References: Inside Microsoft Office SharePoint Server 2007 by Patrick Tisseghem

Notes

* 4GB limitation – MOSS running on SQL Express will be limited to 4GB (due to the SQL Express limitations), but WSS seems to run on a special version of SQL that is not limited. MOSS is never recommended to be run on SQL Express. Disclaimer: I am not sure of these details.

** MOSS is technically MOSS 2007, as there has not been any previous MOSS versions. The previous version of SharePoint was SharePoint Portal Server 2003, usually referred to as SPS or SPS 2003.

Technorati Tags: , ,