Saturday 17th March 2012.... Saint Patrick's day and GP Partner Connections PreGame 2012.
The day started with breakfast at the hotel with Mariano. This was the first time Jennifer and Mariano had met in person. They got on like a house on fire... discussing all my weaknesses, failures and personal issues. Maybe letting your wife meet your work colleagues is not such a good idea!
David and Mariano
Jennifer and Mariano
After breakfast, we left Jennifer to spend time with her friend and Mariano and I walked across the the Convention Centre to register. On the way we met Mark Polino MVP, it is always great to catch up with friends.
David, Mark and Mariano
Back at the hotel, we heard a voice with dulcet Irish tones calling our names. Lo and behold, it was Ian Stewart. Ian is the only MVP in Europe and this was the first time I had met him in person. It was fantastic to catch up with another MVP and blogger.
Mariano, David and Ian (notice the green Ireland top)
Then it was time for the first sessions of the conference.
GP Partner Connections hosted the PreGame sessions and invited all Microsoft Dynamics GP Partners to attend. There were two tracks available with sessions for sales and marketing people and sessions for developers and consultants.
Mariano and I attended the developer track and were treated to presentations by Pam Misialek and Kevin Racer.
Pam gave us an overview of where Microsoft Dynamics GP is heading and some timelines for GP "12" Readiness.
Microsoft Dynamics GP Product Roadmap
Microsoft Dynamics GP "12" Readiness timeline
Then came Kevin's presentations. First they showed us the Dynamics GP "12" Web client in action. It has come a long way since we last saw it. It now logs into Microsoft Dynamics GP and provides a background window with the same navigation features and Business Analyzer objects as the desktop client. It even goes one step further because the Business Analyzer objects/parts can be dynamically moved and resized. This improvement for the Web client has also been rolled back to the Desktop client for GP "12".
Kevin Racer concentrating on a very cool demo of the GP "12" Web client
The Web client also now supports multiple windows open inside the background "desktop" and scrolling windows/grids are now working as well.
Example of GP "12" Web client in action
The presentation went on to explain how the GP "12" Web Client delivers Dynamics GP in a browser via a secure connection leveraging Silverlight and .Net technologies. The window design and business logic is still in Dexterity which means that Dexterity based ISV product will still work. Below is a diagram showing the Services running for the Session Service and the Tenant Service. For each web client active, there will be a GP session server process created.
GP "12" Web Client Components
The Session Service is a web service that manages the GP User sessions including Authentication and starting and terminating the sessions. It also handles recovery after a network disconnection. Depending on what "timeout" setting you use, it would be possible to disconnect from work, drive home and reconnect to your previous session and continue working.
The Tenant Service is a web service that manages the relationship between users and the GP tenant or instance to connect to. This would allow a single web client environment to work with multiple Dynamics GP Customers as it will know which client environment (dictionaries etc) and which databases (named system database and company databases) to use depending on the user connecting to the web client.
The GP "12" Web client uses a server process to convert the Dexterity window definition to a .net representation which is then sent to the Silverlight client running in a browser to be rendered. User interface events at client generate call backs to the server for processing by the Dexterity code. Triggers, dialogs, Macros, background processing all work the same as in the Desktop client.
GP "12" Web Client Runtime Architecture
So here are the key messages that you need to take away from this session:
- Ribbons: The style sheets or UI Templates previously discussed for customising the web client UI have gone away for now. They are replaced with Ribbon functionality which can be added to your Dexterity windows using commands and command lists. While the Ribbons are defined in Dexterity, they are only used for the web client.
- Tabs: The web client will also add tab functionality to Dexterity, where any window of any form can be placed into a tab inside a web client window. This will make navigation simpler without the need for sub windows as now used inside the Desktop client (think Customer Maintenance window with Email, Options, Address, Accounts, etc. sub windows). Again this is defined inside Dexterity and only used for the web client.
- Homepage Parts: As already mentioned the Homepage Parts are dynamically movable and resizable and have "memory". This functionality has been rolled back to the Desktop client as well.
- Reports: Report Writer reports will be rendered using Word Templates.
- Multitenant: There will be changes to Web Services, eConnect and Integration Manager to handle multitenant installations.
- Named Databases: The previously fixed DYNAMICS system database and TWO sample company database names will now be changeable. From GP 2010 SP3 onwards, developers can use the new GetSystemDatabaseName() and GetSampleDatabaseName() functions instead of constants or hardcoded strings. From the SQL level, you can query the SY00100 table in the company database to identify the correct system database.
Now comes the bad news. While I think that the development team have achieved some amazing results and that the GP "12" Web client is just fantastic, there are some features of the full Desktop client which will not work in the first version of the Web client. There are some parts that are just too hard at this time and had to be skipped to allow the first release to stay on schedule. So here is the Not Supported in Version 1 list:
- Visual Basic for Applications (VBA) Customizations (note that Modified windows will work)
- UI Templates or style sheets for windows
- Visual Studio Tools (VST) winforms (note that .Net business logic against Dexterity windows will work)
Whether (or when) these features will get into the Web client is not know at this time.
My suggestions at this time to allow customizations to work in the Web client would be:
- For Dexterity customizations: Implement Ribbons and window Tabs for your forms. For best performance: Avoid using move field command. Clean out dead scripts (scripts with source but no executable code) - There will be a new pragma command to mark a dead script. Change hidden or ~internal~ windows to internal window type.
- For VBA customizations: Use modified windows as normal, but transfer the business logic from VBA to VB.Net in Visual Studio Tools. Avoid using VBA Userforms.
- For VS Tools customizations: Avoid using Visual Studio Winforms and use Modifier or Dexterity instead to create/modify windows. Business logic can remain in C# or VB.Net.
To prepare for the Web client, partners should invest in becoming comfortable with the underlying technologies being used, the following slide has a summary.
Preparing for GP "12" Web client - Technologies to learn
Thanks to Pam Misialek, Kevin Racer, Jay Manley and Brian Roney for providing this great information on the future of Microsoft Dynamics GP.
After the sessions we had a chance to catch up with some friends from the Fargo Microsoft Dynamics GP Development and support teams as well as partners David Eichner and Mark Rockwell.
Jay Manley, Brian Roney, Kevin Racer and Daryl Anderson
David Eichner, David Musgrave, Mark Rockwell and Scott Stephenson (Support Manager)
Following the breakout sessions there was a Town Hall meeting which was an open Q & A session with Doug Kennedy (VP Microsoft Dynamics Partners) and Hal Howard (Corporate VP, Microsoft Dynamics ERP Research and Development). Anyhow, what happens in Partner Town Hall meetings, stays in Partner Town Hall meetings. Needless to say, our esteemed guest executives will be going home with a number of action items.
After the town hall session, Jennifer joined us for a social gathering organised by the Microsoft Dynamics Communities team at the bar in Spencer's Steakhouse. There we caught up with Frank Hammely MVP, Leslie Vail MVP and John Lowther (GPUG All Star).
Jennifer, Mariano and Frank (all playing with their phones)
John and Leslie (being more sociable)
After the drinks, a few of us stayed at Spencer's for a nice dinner... while John donned a festive hat and continued to party on.
John in the Saint Patrick's day spirit
After a long day, it was good to get back to my room for some sleep. My first presentation was due tomorrow.