Friday, June 10, 2005

Deep dive into MSCRM 2.0

One of the sessions at TechEd that I had really been looking forward to was the session on MSCRM 2.0. I was never too impressed with version 1.2, and I’ve been hoping that its shortcomings would be addressed in the new version. And I feel they pretty much were. All in all I was quite impressed with version 2, and I’m looking forward to getting a closer look at it.

User experience

It is still a web application, which is something I was never too happy about. They have done a lot to make the UI nicer, but I would still prefer it to be a “real” application with a Winforms UI. But compared to version 1.2 there has been major improvements. Working in the CRM, especially when off-line, is very Outlook-oriented, which I used to think was a bit unnecessary. But after having seen the demos at this session I’ve pretty much changed my mind. The CRM data is available as folders in Outlook, and working with it from there seemed surprisingly natural. When working in Outlook it is very easy to link an email to the CRM, which allows the whole correspondence relating to a certain issue or customer to be tracked in the CRM. The same works for the Outlook calendar as well. Both functions work both off-line and on-line. The synchronization between the local data and the server seems to work pretty seamlessly, and you can also set up the synchronization to only get data that is truly relevant to you (filtered by sales region, for example). There is also a light Outlook client available, that doesn’t support off-line use.In the Web UI there is a lot more contextual information and per-item contextual actions available to the user than before. The context-aware actions are also customizable, and it seems most of the UI structure can be modified as well. Each user has a customizable workspace, where the user can select what role they want to work in, which will affects what information they see in their workspace. Overall, it all looked pretty nice. It’s difficult to say how good the actual CRM functionality is in it, since the demo was a bit too brief (and also quite technically oriented) for me to be able to form an opinion on that.

Microsoft has (not surprisingly) decided to move away from using Crystal Reports for reporting, and have instead used SQL Server Reporting Services instead. This means that the Reporting Services features like scheduling etc. are available as well. They have also built Excel integration into the product, and they showed a demo where they transferred a sales pipeline to Excel as a Pivot table and analyzed them further using the familiar functionality in Excel. So that could be used for ad-hoc analysis. It did not become clear if you can transfer more complex data to Excel, or if you always have to work with just one entity. Security applies to the reports as well, so you can create a report that shows sales leads, and the reporting system will automatically make sure that users only see those sales leads they have a right to see (for example they might only see those that belong to their own department).

One thing that was mentioned but not shown was the ability to send alerts to users when certain conditions are met in the CRM.

Customizing and extending the CRM

Here were some of the most exiting changes in the new version. First of all, it is now possible to add custom entities (YES! FINALLY!). That makes the product much more of a possible enterprise-level product. The really nice thing about making your custom entities is that they will be treated just like any other entity. This implies they can use the same security model and such, but one of the more major positive points with this is that they can be made to work off line as well.

Creating new forms for your entities is of course also possible. You do that using a Web interface, and I am a bit sceptical regarding how user friendly it is. One new thing on the form side is that there is a new IFrame control you can use, which will allow you to plug in any web page in the CRM. You can pass parameters to the web page, which will allow you for example to show a page that actually sits in you ERP and show the payment statistics for a certain customer. Another new thing, which is quite a major improvement, is that all fields in the forms now have an eventing model (YES! FINALLY!). This way you can hook up your own logic to fields, to handle stuff like formatting and such. Basically they have tried to add UI hooks and customization points wherever possible, which should open up more possibilities for advanced customizations.

The architecture has been changed quite a bit from version 1.2. They now have a cleaner object model, which is also strongly typed, which should simplify development since errors can more easily be caught at design time instead of run time like before. They are also moving more towards a SOA model, where they try to expose all entities through Web Services. This also works automatically for custom entities you create yourself. There’s also metadata about the entities that can be queried through an API.

During the talk it was also mentioned that they have done significant performance improvements, so the business layer should be noticeably faster now.

The workflow components have been improved, events and entities can fire workflows and among other new features is also the ability to adapt the workflow by adding your own assemblies that implement workflow actions. Data returned by those actions can be utilized in the workflow to determine how the flow should proceed. Quite nice stuff. They showed a demo where they had a workflow that was fired whenever you created a new customer, and that workflow went ahead and created a SharePoint site for managing information relating to the customer.

System requirements from MSCRM 2.0

They didn’t really go into this, apart from saying that it requires Outlook XP and higher. I had been afraid they would require Outlook 2003, but luckily that was not the case. Exchange is also required, just as before. They have made the integration to Exchange cleaner and more efficient.

The synchronization requires MSDE to be installed on the laptop, and it uses the Cassini web server (familiar from VS2005) to run the application locally. This means that it uses the same code base on both the server and the client, which is a very nice feature.

Tuesday, June 07, 2005

Exploring the ClickOnce installation mechanism

I caught the last half hour of a session on ClickOnce, which is a new installation technology in .NET 2.0. The main idea is that an application can easily be installed over the Web. It can also be updated automatically whenever a new version is placed on the server it originally was installed from.

ClickOnce is a very interesting technology, and it looks like a very interesting deployment option for Smart Clients. It seems quite secure through its use of certificates for signing deployments, and it still leaves enough maneuverability for it to suit a wide range of options. The deployment mechanism can be configured to work both automatically and manually, and if running automatically you can select if it should check for updates before starting (so that users always run the latest version) or while the application is running (so that the user can use the new version the next time he runs the program). You can also configure certain updates to be compulsory, which is nice if you need to distribute an urgent hot fix and don’t want to give the user the chance to not accept the update. You can also do the updating in code, which means you can let the application decide when an update should take place.

ClickOnce can also install the .NET Framework on PC:s that do not already have it installed, through a small bootstrapper. This should greatly simplify deployment on unmanaged machines. I guess most mid-size organizations still tend to not manage their machines through SMS or Tivoli, so this will be a great help both for deploying applications in corporate environments and on machines running in a small organization or in someone's home. In addition to the Framework you can also configure it to check for a bunch of other prerequisites and to also install other MSI packages that is needed by the application. SQL Server Express is now so easy to install and configure (you can even xcopy-deploy databases) that it can be deployed as a prerequisite for your ClickOnce application. Severely cool, and I think we are going to see a lot of stuff utilizing this technology in the next year.

One negative thing is that ClickOnce can only install applications per user, meaning it is difficult to use it to install applications that will be used by several users on the same machine.

Compared to No-Touch-deployment, which was pushed quite hard as the way to distribute .NET apps over the web until now, it is quite safe to say that ClickOnce offers a complete replacement since it can work with a much wider range of applications and is much better. There are still situations where you want to use MSI:s, and conceivably you can also consider the two technologies to be complimentary. You could distribute an application on a CD as an MSI and then have it update itself using ClickOnce. The Application Updater application block is not necessarily replaced by ClickOnce either, since the Application Updater can be tweaked more, giving you a wider range of control over the update functionality. Furthermore, the Application Updater uses BITS for background transfer, which is kinder to your network connection.

Playing with the Maestro

I went to a session focusing on business performance management using the new product announced from Microsoft last month, Maestro. Basically Maestro is the next step forward for the “Microsoft Office Solution Accelerator for Business Scorecards”, and apart from changing the name into something that people can actually remember they’ve also tried to make it into more of a product than it was before. This probably signifies a more serious commitment from Microsoft to get into the BI space.

Essentially Maestro is a three-part marriage between the business analysis functionality in SQL Server, the infrastructure of SharePoint and the presentational capabilities of the Office Web Components. So it requires a bit of infrastructure, including setting up OLAP cubes for your data.

Maestro defines a KPI as a set of source mappings, business logic and application metadata that all represent a business metric. For each KPI there is a target and set of report views. KPIs can also have indicators like traffic lights, text and other visual cues that tell you how the KPI is doing compared to its target. Maestro can utilize SQL KPIs in SQL Server 2005, and you can set up Maestro KPIs that pretty much support all the things in the MSSQL 2005 KPIs. Setting up KPIs that compare different values against each other, for example sales results from the current quarter to those from the same quarter last year, is also possible.

Since it is built on SharePoint you can collaborate around the KPIs and their values. This is useful if a KPI is in the red and you want to discuss the issue with other people involved, or if you want to discuss the KPIs and the logic behind them.

There is a client-side maintenance tool for maintaining the KPIs, scorecards, data sources and indicators. This tool is used to create the KPIs, map them to data, configure any logic relating to them and set up how you want them to be displayed using the Office Web Components. From this tool you can publish scorecards to the SharePoint portal where they can be viewed by the users.

There are two types of scorecards in Maestro. The first is the Multi-Dimensional Scorecard, which takes it data from a single cube. This is good for deep analysis of the data in the cube. The other kind of scorecard is the Multi-Data source scorecard, which can present a summary view of several data sources. The latter is good for finding KPIs that are not meeting their target, but are not so good for analyzing the actual data from different views (doing different views per dimensions etc).

Maestro can be extended through Web Services, through an API and by placing KPI information into a URL and using that as a way to call another web page that can render the data in a meaningful way. The URL-based extensions was demonstrated by showing how Map Point could be used to display data.

The licensing model will be a server CAL based model. The actual pricing was not announced, as it has not been decided yet. Currently the product is in the beta phase and Microsoft is accepting nominations for taking part in the Beta.

All in all Maestro looks quite interesting, provided you want to have a completely scorecards and KPI-driven BI solution. On the other hand the term scorecard can be bent quite a bit, meaning you can probably accomplish most things by either utilizing SQL Reporting Services for displaying data or by plugging in your own web page into SharePoint and having that display the data in a way you want. So Maestro is probably a welcome addition to the BI playing field and I suspect that it will be quite interesting for companies who do not yet have a BI solution and that are otherwise a Microsoft shop. One downside is that it seems to require quite a bit of infrastructure to get it up and running, and also quite a bit of work has to go into setting up the data analysis bits. But this is pretty common for most OLAP-based analysis tools.

Keynote, day 2

The second keynote focused on connectivity and connected systems. There was some cool stuff being shown, the best parts were about RFID tags. My colleague Jörgen blogged about this, so I a won’t. I used the time to write up some of my previous blog entries instead.

Monday, June 06, 2005

Building solutions on the Office System

I went to a session that presented two sample solutions built around the Office System and talked about building solutions on top of Office. The session was pretty entry-level, but one of the main point was that if you want to build solutions that utilize the Task Pane in Office 2003 then the best way to go is to use the Visual Studio Tools for Office 2.0 on top of VS2005. This I pretty much new already, based on experiences from version 1 of the tools and from the horror of the ISmartDocument interface. The Information Bridge Framework was also mentioned, but more as a way of accessing and displaying information and not as a way of actually manipulating the document. So it seems that the way to go for 2–way interactive stuff is to use VS2005 and version 2 of the tools for Office. One interesting point was that if you want to create a solution that works with a bunch of docs, i.e. sits in the actual App (Word, or Excel and so forth), the IBF, the Research Services and Smart Tags are the way to go.

The FabriKam and GeneriCo samples are available now, or should be so reasonably soon. FabriKam is more of an Office System solution, and GeneriCo is a Smart Client that is connected to a SOA. The FabriKam stuff works on-line, but GeneriCo contains offline functionality as well.

FabriKam

This is more of a solution platform and a set of best practices and examples. It is distributed as a virtual machine on a DVD (can be ordered on msdn.microsoft.com/fabrikam) and there’s documentation for it available on MSDN. It is not something that can be put into production as is, but it should be a good starting point.

GeneriCo

This is a proper Smart Client, except for it cannot be updated automatically. There was a lot of stuff about how it works, too much to go into here. But the sample should be available for download.

All in all this presentation didn’t get into enough detail to really be interesting, and they didn’t even demo the solutions. So I spent most of the time typing up my notes from the keynote…

Keynote with Big Steve

BallmerThis was the first time I saw Steve Ballmer live. Sure, I’ve seen those “Developers, Developers, Developers!” and “I LOOOOVE this company” videos, and I didn’t expect him to act like that all the time. He didn’t do anything spectacular this time, except for chanting “Invest, Invest, Invest” at one point, but that didn’t involve any dancing.

The keynote covered a lot of stuff, so here I will briefly cover those that I found most interesting.

The mobile workforce

The main topic for the keynote was around enabling people to drive business success and about getting the most of your IT investments. Quite a lot of the focus was around mobility and Windows Mobile, which, while being interesting on a general level, isn’t really something that can be brought out to the clients quite yet. Maybe next year, but at least in Finland the readiness is not quite there yet. The devices they showed were cool though.

What they showed that I liked a lot was Direct Mobile Messaging, which is based on SP2 of Exchange and the Messaging and Feature pack for Windows Mobile 5. If you install SP2 on your Exchange server and the add-on pack for you mobile device you will get push email functionality out of the box. Me wants that. There will be about 40 mobile devices out this year that supports this stuff. Hope some of them make it to Europe. One interesting point with all of this was that everything can be managed centrally, and required very little configuration and setup on the mobile device. For example, you can set it up so that a password is required for accessing the device, and if you type in the wrong password more times than allowed then all your data is wiped from the device. Good if your device gets stolen, bad if your boss forgets his password often. But after all it’s easy to get the device set up again. One funny detail during the demos was that in the demo user’s inbox there was an email from Steve Ballmer that had the subject “Developers, Developers, Developers” and was marked as urgent. These guys have a sense of humor.

Active DirectorySecurewindows

Later this year, with the release of R2 of Windows Server, AD will support federated security where you can build thrust relationships between companies. This is useful where you have people from different corporations collaborating on something, or where you want your client (i.e. supplier or whatnot) manage which of their users can access your ordering system etc. AD will also support Web Services, although what this means in practice was not expanded upon.

Miscellaneous stuff

In the future virtualization will actually be built into Windows Server, which probably explains the low price point on Virtual Server. They also talked about security (of course) and how secure Windows is compared to some competing server operating systems.

Longhorn was briefly shown, to demonstrate how the desktop search works there. They showed some nifty filtering stuff, but what was extremely cool was to see how you could zoom into the list of search hits and actually see a preview of what the document looks like!

An online service called Virtual Earth was also shown. This is built on to of Map Point, and is pretty much a competitor to Goggle Maps. It looked pretty sweet, you could search for street addresses or for companies, and their location was shown interactively on a map. You could look at both a street map and an actual satellite photograph, but the coolest was when you merged these two so you got the actual streets drawn on top of the photograph. Nice. I wonder if there are any photos of Finland in there?Netacceptance

There was some talk about the .NET momentum, and it was mentioned that according to some research (probably extremely impartial ) .NET was the primary development environment for 43% of developers, compared to 35% for Java. When the Java guys see Visual Studio 2005 that number is going to drop considerably. MS is going to give the Java crowd some real challenges next year.They showed some performance test from running the Sun WSTest 1.1 Benchmark. .NET 1.1 improved on the performance of Web Sphere with over 100% and .NET 2.0 added another 25–40% on that.

Microsoft is really trying to get into the field of software development processes and lifecycle management, and they even said that they are going after Rational. I wonder what would have happened if Microsoft had bought Rational instead of IBM beating them to it. I think it could have been good.

There was a cool demo shown where they had built a bunch of Outlook extensions using VS2005, where information from a CRM system (probably MSCRM 2.0) was combined with information from SharePoint and from the Web, and all of it displayed in Outlook.

Sun got their fair share of banter during a demo where MOM was used to display the status of a Solaris box. Web Services were used to communicate between MOM and Solaris. They demonstrated how MOM picked up notifications from the Sun box when Ballmer tortured it by pulling its fans out. WS Management is apparently a new standard for this, and it will also be supported on a hardware/BIOS level, so you can send commands to the machine even if the operating system isn’t working.

The final thing was new Microsoft Update stuff, and how they now have a unified model for updating servers and desktops regardless of company size and tools used (i.e. Windows update, SMS and whatnot). Windows Update Services CD:s were Hy_podpassed out to everyone attending the keynote.

Oh, and one last thing, as part of the intro they had a spoof news segment announcing that Apple had launched a joint project with Toyota that had merged the iPod and the hybrid cars from Toyota. Behold the hy_pod.

Sunday, June 05, 2005

TechEd 2005 in Orlando, FL

First time in Florida, and it rains. It will rain all week. I watched the weather forecast last night, and apparently I’m in for a week of rain showers and thunderstorms, and an average temperature of 30 degrees Centigrade. Not what I expected from sunny Florida…

Getting here was a major hassle, and despite my colleague’s high opinion of American Airlines I have to say it was one of the suckier bits of traveling I’ve ever made. Sure, they have nice leg room, if you get a seat that is not either next to the toilet or right up against the screen between coach and business class. Which we didn’t. And the funny bit is that we had specifically requested seats with extra leg room. And we got the shittiest seats in the whole plane. And they have stopped serving free alcohol as well. And almost no food. So we had to survive by hunting down one of the stewardesses and eating her. (Ok, to be honest, we didn’t eat a stewardess. But we were seriously considering it. We had the plans drawn up and everything.) With yet one more airline added to my personal boycott list, I’m not really sure how I will be able to do any traveling in the future.

We were awake for more than 24 hours in a row (that’s how long the trip took), and this morning I was awakened about 3 hours earlier than expected because the idiot who’d had occupied my hotel room before me set the radio alarm clock for 7 am. May he live in interesting times.

Anyway, I’m trying to piece together a schedule for this week, and that’s no easy task. There is a lot of interesting stuff at TechEd this year, more than usual. I don’t know if it is because a lot of projects at work happen to relate to several of the highlights of this year’s conference, or if it is because MS has managed to put together an even better TechEd? For most time slots I have at least three interesting sessions that I would like to attend.

I’ll blog about the best bits, hopefully I’ll be able to do at least one post per day.