CLI315CLI315Solution Architectures with Solution Architectures with Microsoft Office Professional Microsoft Office Professional Edition 2003: FabriKam and Edition 2003: FabriKam and GeneriCoGeneriCo
Chris J.T. AuldChris J.T. AuldManaging Director- Kognition Managing Director- Kognition Microsoft Regional Director & MVPMicrosoft Regional Director & [email protected]@kognition.co.nz
AgendaAgenda
Talk about Microsoft Office Talk about Microsoft Office technologies in the context of technologies in the context of Office solutions!Office solutions!
Solution ScenariosSolution Scenarios
Office technologiesOffice technologies
ExamplesExamples
Solution ScenariosSolution Scenarios
Document CreationDocument Creation
ReportingReporting
Line of BusinessLine of BusinessERPERP
CRMCRM
CustomCustom
You name it!You name it!
Solution Scenarios Solution Scenarios Document creationDocument creation
Client-SideClient-SideUser directed/initiatedUser directed/initiated
Done in the context of the documentDone in the context of the documentContext specific actions/informationContext specific actions/information
Assisted authoring e.g. Fabrikam Project DocumentAssisted authoring e.g. Fabrikam Project Document
Requires flexibilityRequires flexibility
Examples: contracts, financial documentsExamples: contracts, financial documents
Server-SideServer-SideDone in bulkDone in bulk
Must be fast and scalableMust be fast and scalable
Usually template-basedUsually template-based
Examples: reports, etc.Examples: reports, etc.
Solution Scenarios Solution Scenarios Document creation solutionsDocument creation solutions
Client-SideClient-SideISmartDocument ISmartDocument
Microsoft Visual Studio Tools for Microsoft Visual Studio Tools for Office (VSTO) 2003 Office (VSTO) 2003
Server-SideServer-SideWordprocessingML/SpreadsheetMLWordprocessingML/SpreadsheetML
BothBothVSTO 2005 (Data Islands w/o App running)VSTO 2005 (Data Islands w/o App running)
ASPOSE Components (incl Powerpoint)ASPOSE Components (incl Powerpoint)
ActiveDocs (High end document gen)ActiveDocs (High end document gen)
Solution Scenarios Solution Scenarios ReportingReporting
Data browsingData browsingConnect to back-end systemsConnect to back-end systems
Slice & dice dataSlice & dice data
Leads to actionsLeads to actions
Data viewingData viewingServer-generated Server-generated
Rich formattingRich formatting
Can lead to data browsingCan lead to data browsing
Mail MergesMail Merges
Solution Scenarios Solution Scenarios Reporting solutionsReporting solutions
Microsoft Office Excel Microsoft Office Excel XML Import/ExportXML Import/Export
Pivot Tables, etc Pivot Tables, etc
Microsoft Office SharePoint Microsoft Office SharePoint Portal Server Portal Server
BI PortalBI Portal
Microsoft Office WordMicrosoft Office WordWordprocessingMLWordprocessingML
Custom schema support!Custom schema support!
Solution Scenarios Solution Scenarios Line of businessLine of business
Connecting to a single applicationConnecting to a single applicationConnect directly?Connect directly?
Database, Web Service, .NET Remoting, Database, Web Service, .NET Remoting, etc.etc.
Multiple AppsMultiple AppsConnect to each independently Connect to each independently – or– or
Use a Service-Oriented ArchitectureUse a Service-Oriented ArchitectureSingle interfaceSingle interface
Much easier for client developmentMuch easier for client development
Solution ScenariosSolution ScenariosLine of business solutionsLine of business solutions
Share work across multiple Office appsShare work across multiple Office apps
Connect to systems with managed Connect to systems with managed codecode
Web ServicesWeb Services
.NET Remoting.NET Remoting
Enterprise ServicesEnterprise Services
Some office apps interop better than Some office apps interop better than othersothers
Build your own (GeneriCo)Build your own (GeneriCo)
TechnologiesTechnologies
XML (Namespaces, XSLT, XML XML (Namespaces, XSLT, XML Schema, XPath)Schema, XPath)
Managed Code SupportManaged Code Support
Task PaneTask Pane
Collaboration and WorkflowCollaboration and Workflow
PAG Application BlocksPAG Application Blocks
Technologies Technologies XMLXML
Native File FormatNative File FormatDocument generation made easyDocument generation made easy
Using XPath can query the document for dataUsing XPath can query the document for data
Custom Schema SupportCustom Schema SupportDocuments now aware of data Documents now aware of data
XML Import/ExportXML Import/ExportData detached from document!Data detached from document!
Extended Object ModelExtended Object ModelCustom solutions target the data, not Custom solutions target the data, not the documentthe document
Technologies Technologies XML XML –– what it means what it means
Document format doesn’t matterDocument format doesn’t matterLogic not tied to structureLogic not tied to structure
Information not tied to documentInformation not tied to document
Less brittle – automated grannywareLess brittle – automated grannyware
Document format or even type can Document format or even type can change on contextchange on context
Microsoft Office InfoPath for gatheringMicrosoft Office InfoPath for gathering
Word for documentationWord for documentation
Excel for reportingExcel for reporting
Same SchemaSame Schema
TechnologiesTechnologiesManaged codeManaged code
Many new managed code solutionsMany new managed code solutionsWord and ExcelWord and Excel
ISmartDocument, VSTO 2003ISmartDocument, VSTO 2003
VSTO 2005VSTO 2005
InfoPath SP1InfoPath SP1Native & VSTO (limited)Native & VSTO (limited)
OutloookOutloookManaged Com Add-InManaged Com Add-In
VSTO 2005VSTO 2005
PowerpointPowerpointASPOSE PowerpointASPOSE Powerpoint
Always got COM Always got COM Interop…Interop…
TechnologiesTechnologiesTask paneTask pane
Context-specific informationContext-specific information
Can be used to manipulate the documentCan be used to manipulate the documentISmartDocument, VSTO 2005ISmartDocument, VSTO 2005
Show contextual info from other sourcesShow contextual info from other sourcesIBF, Research Services, Smart TagsIBF, Research Services, Smart Tags
Document-specificDocument-specificISmartDocument, VSTO 2003, VSTO 2005ISmartDocument, VSTO 2003, VSTO 2005
App-specificApp-specificIBF (multi-app), Research Services, Smart TagsIBF (multi-app), Research Services, Smart Tags
TechnologiesTechnologiesCollaboration and workflowCollaboration and workflow
Microsoft SharePointMicrosoft SharePoint
BizTalk Server 2004BizTalk Server 2004
Web ServicesWeb Services
SQL Server, SQL XML, SQL Server, SQL XML, SQL Notification ServicesSQL Notification Services
Live Communications ServerLive Communications Server
Etc.Etc.
Come to PDC!Come to PDC!
TechnologiesTechnologiesPAG application blocksPAG application blocks
Remember, we’re coding .NET here!!!Remember, we’re coding .NET here!!!
App blocks apply to us Office devs as well App blocks apply to us Office devs as well
Smart Client Offline Application BlockSmart Client Offline Application BlockSee BlogCast with AriB www.dot.net.nzSee BlogCast with AriB www.dot.net.nz
Updater Application Block*Updater Application Block*
*Many Office solutions have very good updating scenarios all of their *Many Office solutions have very good updating scenarios all of their ownown
ExamplesExamples
Available Now Available Now DVDs swapped for EvalsDVDs swapped for Evals
Examples for partners, customers and Examples for partners, customers and you!you!
FabriKamFabriKam6 Office System Solutions and 6 Office System Solutions and 4 Infrastructure Components4 Infrastructure Components
GeneriCoGeneriCoOffice System Smart Client connected Office System Smart Client connected to SOAto SOA
FabriKamFabriKamIntroductionIntroduction
Solution PlatformSolution Platform
Best Practices, Code SamplesBest Practices, Code Samples
Team, Department, Enterprise Business Team, Department, Enterprise Business ProcessesProcesses
DVD – Code, Documentation, Infrastructure,DVD – Code, Documentation, Infrastructure,and Resourcesand Resources
Delivery FormatDelivery FormatDVD, Fully configured and expandableDVD, Fully configured and expandable
(order from msdn.microsoft.com/fabrikam)(order from msdn.microsoft.com/fabrikam)
Swap for evals at end of session.Swap for evals at end of session.
Documentation on MSDNDocumentation on MSDN
FabriKamFabriKamSolution overviewSolution overview
ComponentsComponents SolutionsSolutionsActive Directory Active Directory IntegrationIntegration
SharePoint Library SharePoint Library AggregatorAggregator
SharePoint Routing SharePoint Routing ServiceService
SQL Server SQL XML SQL Server SQL XML serviceservice
Expense ReportExpense Report
Technical Manual Technical Manual CreationCreation
Project Site ManagerProject Site Manager
Budget PlanningBudget Planning
Status ReportStatus Report
Sales Order Sales Order Capture/ProcessingCapture/Processing
FabriKam Solution DetailsFabriKam Solution DetailsExpense report requirementsExpense report requirements
Stored in databaseStored in database
Tamper resistantTamper resistant
Identity confirmationIdentity confirmation
Automated workflowAutomated workflow
Must not be persisted on client diskMust not be persisted on client disk
FabriKam Solution DetailsFabriKam Solution DetailsExpense report solutionsExpense report solutions
Stored in databaseStored in databaseSQLXML - shreds Form XML on submitSQLXML - shreds Form XML on submit
SQLXML - recreates Form XML on requestSQLXML - recreates Form XML on request
Tamper resistantTamper resistantDigitally sign form on server when it is generatedDigitally sign form on server when it is generated
Identity confirmationIdentity confirmationInfoPath digital signatures and windows security contextInfoPath digital signatures and windows security context
Automated workflowAutomated workflowBizTalk 2004 OrchestrationBizTalk 2004 Orchestration
Must not be persisted on client diskMust not be persisted on client diskDisable saveDisable save
Custom SharePoint Web Part Custom SharePoint Web Part Displays form status in workflowDisplays form status in workflow
Generates new/requested forms using SQLXML AdapterGenerates new/requested forms using SQLXML Adapter
FabriKam Solution DetailsFabriKam Solution DetailsExpense report architectureExpense report architecture
SQLSQL
InfoPathInfoPathFormForm
BTS04BTS04OrchestrationOrchestration
E-mailE-mail(Receipt)(Receipt)
SQLXML SQLXML FPCFPC
SharePoint SharePoint Web PartWeb Part
DemoDemo
Fabrikam Expense ApplicationFabrikam Expense Application
FabriKam Solution DetailsFabriKam Solution DetailsTechnical manual creation requirementsTechnical manual creation requirements
Gather project kickoff informationGather project kickoff informationProject contributors and rolesProject contributors and roles
Document meta-dataDocument meta-dataChapter headings, descriptions, etcChapter headings, descriptions, etc
Launch ProjectLaunch ProjectGenerate SharePoint siteGenerate SharePoint site
Generate initial documentGenerate initial document
Make doc generation easyMake doc generation easy
Provide Routing and WorkflowProvide Routing and Workflow
FabriKam Solution DetailsFabriKam Solution DetailsTechnical manual creation solutionsTechnical manual creation solutions
Gather project kickoff informationGather project kickoff informationSingle InfoPath form walks user through processSingle InfoPath form walks user through process
Launch ProjectLaunch ProjectInfoPath form submits XML to web service whichInfoPath form submits XML to web service which
Generates SharePoint siteGenerates SharePoint site
Adds usersAdds users
Generates WordprocessingML & saves to siteGenerates WordprocessingML & saves to site
Make doc generation easyMake doc generation easyISmartDocument solution aids authors while ISmartDocument solution aids authors while writingwriting
Provide Routing and WorkflowProvide Routing and WorkflowCustom SharePoint Routing Service Custom SharePoint Routing Service
FabriKamFabriKamStatsStats
20k+ lines of managed code solutions20k+ lines of managed code solutions
600 pages of documentation600 pages of documentation
Strong Office managed code storyStrong Office managed code storyWord, Excel, InfoPathWord, Excel, InfoPath
Strong Back Office storyStrong Back Office storySharePoint customizationSharePoint customization
BTS04 OrchestrationsBTS04 Orchestrations
SQL 2k w/SQLXMLSQL 2k w/SQLXML
GeneriCoGeneriCoIntroductionIntroduction
Service Oriented ArchitectureService Oriented Architecture
3rd Party Spec 3rd Party Spec The Middleware CompanyThe Middleware Company
IMHO Not as SOA as it should beIMHO Not as SOA as it should be
Thin ClientThin Client
Mobility ClientMobility Client
Office System Smart ClientOffice System Smart Client
GeneriCoGeneriCoSmart client requirementsSmart client requirements
Must use Office System wherever Must use Office System wherever appropriateappropriate
Must work offlineMust work offline
Must mimic thin-client applicationMust mimic thin-client applicationMain portal windowMain portal window
Expense reportsExpense reports
Employee ReviewsEmployee Reviews
TasksTasks
Product CatalogProduct Catalog
Employee SearchEmployee Search
Must not break thin-clientMust not break thin-client
GeneriCo Smart ClientGeneriCo Smart ClientChallengesChallenges
Share data across appsShare data across apps
Effectively call SOAEffectively call SOATranslate between thin client calls and Translate between thin client calls and smart client callssmart client calls
Offline detectionOffline detection
Data synchronizationData synchronization
GeneriCoGeneriCoSmart client solutionSmart client solution
OfflineOfflineSmart Client Offline Application BlockSmart Client Offline Application Block
Portal sitePortal siteOutlook Managed Code Add-In similar to “Today” PageOutlook Managed Code Add-In similar to “Today” Page
Expense ReportExpense ReportInfoPath – Gather informationInfoPath – Gather informationExcel – Analyze, approve or deny for managersExcel – Analyze, approve or deny for managers
Employee ReviewEmployee ReviewInfoPath – Gather informationInfoPath – Gather informationWord – Final format of reviewWord – Final format of review
TasksTasksOutlook tasksOutlook tasks
Employee SearchEmployee SearchInformation Bridge FrameworkInformation Bridge Framework
GeneriCo Smart ClientGeneriCo Smart ClientService agentService agent
Between Office applications and SOABetween Office applications and SOA
Resources shared across clientResources shared across clientCachingCaching
CommunicationsCommunications
Offline DetectionOffline Detection
Enterprise ServicesEnterprise ServicesDe-coupled logicDe-coupled logic
App PoolApp Pool
EventsEvents
Handles all SOA communicationHandles all SOA communication
GeneriCo OverviewGeneriCo Overview
Service AgentService Agent
Legend
GeneriCo Service AgentGeneriCo Service Agent
Service Agent Service Agent
Client ProxyClient Proxy
Queue ProcessorQueue Processor
ProxyProxyAgentAgentProxyProxyAgentAgent
SOASOA SOASOA
Service AgentService Agent
EventsEvents
Service AgentService Agent
““server” proxyserver” proxy
Client AppClient App
(VSTO/IPath/etc)(VSTO/IPath/etc)
Service Agent Service Agent
Client ProxyClient Proxy
AgentAgent
Cache ThreadCache Thread
Office AppOffice App
Enterprise Enterprise ServicesServices
App BlocksApp Blocks
ProxyProxy
CacheCache
EntryEntry
GeneriCo Service AgentGeneriCo Service AgentApplication blocksApplication blocks
Queue ProcessorQueue Processor
ProxyProxyAgentAgentProxyProxyAgentAgent
CacheCache
SOASOA SOASOA
AgentAgent
EntryEntry
Cache ThreadCache Thread
ProxyProxy
Legend
Office AppOffice App
Enterprise Enterprise ServicesServices
App BlocksApp Blocks
ClientClientClientClientClient AppClient App
(VSTO/IPath/etc)(VSTO/IPath/etc)
GeneriCo Service AgentGeneriCo Service AgentEnterprise servicesEnterprise services
Service AgentService Agent
EventsEvents
Service AgentService Agent
““server” proxyserver” proxyService Agent Service Agent
Client ProxyClient Proxy
Service AgentService Agent
LegendLegend
Office AppOffice App
Enterprise Enterprise ServicesServices
App BlocksApp Blocks
ClientClient
GeneriCo Service AgentGeneriCo Service Agent
Service Agent Service Agent
Client ProxyClient Proxy
Queue ProcessorQueue Processor
ProxyProxyAgentAgentProxyProxyAgentAgent
CacheCache
SOASOA SOASOA
Service AgentService Agent
EventsEvents
Service AgentService Agent
““server” proxyserver” proxy
ClientClientClient AppClient App
(VSTO/IPath/etc)(VSTO/IPath/etc)
Service Agent Service Agent
Client ProxyClient Proxy
AgentAgent
EntryEntry
Cache ThreadCache Thread
ProxyProxy
Legend
Office AppOffice App
Enterprise Enterprise ServicesServices
App BlocksApp Blocks
ConclusionConclusion
Combine theCombine the power of Office System 2003power of Office System 2003with the with the power of .Net programming topower of .Net programming togenerate generate enterprise class solutions!enterprise class solutions!
There are examples out there to look at!There are examples out there to look at!
More InfoMore Info
http://www.syringe.net.nzhttp://www.syringe.net.nzPresentation files will be up todayPresentation files will be up todayAll links mentioned here will be includedAll links mentioned here will be included
FabriKam DVD order formFabriKam DVD order formhttp://msdn.microsoft.com/fabrikamhttp://msdn.microsoft.com/fabrikam
FabriKam DocumentationFabriKam Documentationhttp://msdn.microsoft.com/library/en-us/fabrikam/html/ODC_OFIntroduction_to_FabriKam3http://msdn.microsoft.com/library/en-us/fabrikam/html/ODC_OFIntroduction_to_FabriKam3
GeneriCo update coming soon!GeneriCo update coming soon!Whitepapers, presentations, sample code, etc.Whitepapers, presentations, sample code, etc.http://www.microsoft.com/windowsserversystem/http://www.microsoft.com/windowsserversystem/overview/benefits/cstrial.mspxoverview/benefits/cstrial.mspx
Other Questions?Other [email protected] [email protected] www.syringe.net.nzwww.syringe.net.nz