SlideShare a Scribd company logo
Advanced Visual Studio 2005 Tools for Office Programming and Deployment David Truxall Architect NuSoft Solutions
Agenda Server programming Security Deployment
Server Goals Make it as simple to create Office content on the server as it is for HTML Integrate with VSTO 2005  programming model Client/Server Symmetry.  Scale, Scale, Scale Integrate with ASP .NET programming model
Server Capabilities in VSTO 2005   Fill the data island on the server Program against the data on the server Run code outside the document Expose data from Office docs to ASPX
Server Feature Read and Write Cached Data ' Load the document (does not start the Office application) Dim productsDoc As String = "C:\Documents\Products0105.xls" Dim doc As ServerDocument = New ServerDocument(productsDoc) 1 ' Read the cached data from the dataset in the worksheet  Dim cdi As CachedDataItem cdi = doc.CachedDataManifest.Views("ProductWorksheet"). _ CachedData("ProductWorksheet.ProductCache") Dim sr As System.IO.StringReader = New _ System.IO.StringReader(cdi.Xml) ProductsData.ReadXml(sr) 2 ' Write the modified dataset back to the dataset ' in the workbook. cdi.SerializeDataInstance(ProductsData) doc.Save() doc.Close() 3
Data in Office Solutions How Does Server-Side Work? Server Code Server Client Server Side Code prepopulates elements before sending to client John is cool! $345.00 URL Request CreateExpense.aspx Databases Corporate Systems
Data in Office Solutions How Does Server-Side Work? Server Code Server Client Document is transferred with data URL Request CreateExpense.aspx Mike is cooler! $1000.00 Databases Corporate Systems
Filling the Data Island All the data in a VSTO 2005 enabled Office document is stored in a standard data island This enables the VSTO 2005 runtime to access the data without having to invoke Word or Excel Benefits Doesn’t require you to run Word or Excel on the server Some significant scaling issues Not supported by Microsoft
Filling A Data Island on the Server
What is Not Supported  on the Server Program against the view Since Word & Excel aren’t running on the server there’s no way to get to the object model for each application You can work around this quite easily since you can fill the data on the server and do all the databinding/view manipulation on the client Integrate with other Office apps Since they’re not running on the server However XML/Web Services provide an ideal way to do this
Server Summary Program against the data on the server Access any VSTO 2005 document from within an ASPX page Built to scale from day one
.NET Security VSTO Security managed by .NET security policy Evidence (location, signature, etc.) Permissions (execution, UI, full, etc.) Since code in VSTO documents call into the Office OM (unmanaged code), we require Full Trust permission
VSTO 2005 Security Won’t run any code by default Must trust both the document and the assembly (Full Trust) Evidence for assemblies is via Signing: Authenticode or Strong Naming Location: URL  Local Machine Zone is not enough Evidence for documents is via Location E-mail attachments must be copied to desktop (Outlook temp directory is Internet Zone)
Code Security Scenarios Alice creates a VSTO 2005 project for a Budget Spreadsheet Alice hands over final code to Bob in IT Bob deploys code & document to  http://budget   Bob deploys security policy to end users machine to trust  http://budget Fred creates a new budget from  http://budget   Code runs! Fred sends it to Sue via email Sue save the budget sheet to her desktop Opens it from the desktop Code runs!
Code Security – VeryEvil.com Evil Alice creates fakebudget.xls and creates a VSTO 2005 project Evil Alice deploys code to  http://veryevil.com/budget Evil Alice sends fakebudget.xls to Bob in email Bob opens the spreadsheet No code runs because  http://veryevil.com  isn’t trusted
Bad Trust Decision ISV Alice writes some VSTO 2005 code behind ISVBudget.xls Deploys code and budget to  http://www.budgetsrus.com   Fred creates a budget from website & saves it to his machine IT Bob discovers bug in the code behind ISVBudget.xls that compromises the corp security practices Bob tells ISV Alice but the fix won’t be ready for weeks Bob blocks access to  http:// www.budgetsrus.com  for the corporation Budgets don’t work but the corp security is safe Alice fixes bug Bob reinstates access to  http://www.budgetsrus.com The sun shines
Security Configuration
Deployment & Update Self updating Document App Manifest is updated to point to the latest assembly Manifest based deployment Application level and deployment level manifests
How Does This Work? <manifest> <deploy url= http://…/deploy.xml version=“1.0”/> <manifest> <deploy url= http://…/ deploy.xml version=“1.0.1”/> . <assembly Name=“foo.dll” updateURL= http://../1.0.1/foo.dll <manifest> <deploy url= http://…/ deploy.xml version=“1.0”/> Deploy.xml manifest.xml manifest.xml <manifest> . . curVersion-”1.0.1” Foo.xls manifest.xml Foo.dll v1.0 Foo.dll v1.0.1
Move to Production Server <manifest> <deploy url= http://…/deploy.xml version=“1.0”/> <manifest> <deploy url= http://svr2/deploy.xml version=“1.0.1”/> . <assembly Name=“foo.dll” updateURL= http://../1.0.1/foo.dll <manifest> <deploy url=  http://srv1/deploy.xml version=“1.0”/> Deploy.xml manifest.xml manifest.xml <manifest> . . curVersion-”1.0.1” <app url= “ http://srv2/  manifest.xml” Foo.xls manifest.xml Foo.dll v1.0 Foo.dll v1.0.1 Deploy.xml <manifest> . . curVersion-”1.0.1” <app url= “ http://srv2/  manifest.xml” Test Srv Production Srv
Server Object Model to modify  App Manifest CustomizedDocument doc = new CustomizedDocument (“file.doc”); doc.AppManifest.DeployManifestPath  = “…<new path>” Can change any parts of the app manifest
Why Manifests? .NET and Visual Studio moving to manifests Built using the same schema as Click Once New technology coming in the next version of .NET/VS Built into Vista Manifests provide rich information about your application Not just which dll is used Includes dependent assemblies Location of assemblies (moving to Product server)
Deployment Basics Requirements for the target machines Office 2003 Professional or Excel 2003 Standalone or Word 2003 Standalone .NET Framework 2.0 VSTO 2005 Runtime Office PIAs referenced in your assembly Can be set to install on demand Appropriate security policies
Local/Local Deployment Model Pros Network access is not required Users can modify and customize their documents  Cons Updates to document or assembly require redistribution to each user Local/Local
Local/Network Deployment Model Pros Eases updates to assembly Users can modify and customize their documents  Cons Updates to document require redistribution to each user Local / Network
Network/Network Deployment Model Pros Eases updates to assembly Eases updates to document Cons Users cannot modify or customize master documents Network / Network
Conclusion Server Program against the data on the server Access any VSTO 2005 document from within an ASPX page Security Must trust document and assembly Doesn’t run by default Deployment options Document/assembly options
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
*** BIND LIST *** If Not Me.EmpData Is Nothing Then Me.List1.DataSource = Me.EmpData.Tables(0) Else Me.List1.DataSource = nothing End If **** FILL DATA ISLAND **** Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating Dim da As New SqlClient.SqlDataAdapter(Me.SqlDataSource1.SelectCommand, Me.SqlDataSource1.ConnectionString) Dim empData As DataSet = New DataSet() da.Fill(empData) Dim doc As ServerDocument = New ServerDocument(Server.MapPath(&quot;EmployeeServerData.xls&quot;)) Dim hostItem As CachedDataHostItem Dim dataItem As CachedDataItem hostItem = doc.CachedData.HostItems(&quot;EmployeeServerData.Sheet1&quot;) dataItem = hostItem.CachedData(&quot;EmpData&quot;) dataItem.SerializeDataInstance(empData) doc.Save() doc.Close() End Sub
Ad

More Related Content

What's hot (17)

Jenkins hand in hand
Jenkins  hand in handJenkins  hand in hand
Jenkins hand in hand
netdbncku
 
End to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via IntuneEnd to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via Intune
Anoop Nair
 
ClickOnce Deployment Seminar
ClickOnce Deployment SeminarClickOnce Deployment Seminar
ClickOnce Deployment Seminar
tamilarnesan
 
Advanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.Biz
Advanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.BizAdvanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.Biz
Advanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.Biz
Suthep Sangvirotjanaphat
 
High Availability of Azure Applications
High Availability of Azure ApplicationsHigh Availability of Azure Applications
High Availability of Azure Applications
Mindfire Solutions
 
Get started with Windows AutoPilot Deployment
Get started  with Windows AutoPilot DeploymentGet started  with Windows AutoPilot Deployment
Get started with Windows AutoPilot Deployment
Microsoft
 
Managing Virtual Infrastructures With PowerShell
Managing Virtual Infrastructures With PowerShellManaging Virtual Infrastructures With PowerShell
Managing Virtual Infrastructures With PowerShell
guesta849bc8b
 
"Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,...
"Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,..."Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,...
"Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,...
LCloud
 
Glimpse of Loops Vs Set
Glimpse of Loops Vs SetGlimpse of Loops Vs Set
Glimpse of Loops Vs Set
Mindfire Solutions
 
Java web start Quick Reference
Java web start Quick Reference Java web start Quick Reference
Java web start Quick Reference
Praveen Kumar
 
Integrate Flex With Spring Framework
Integrate Flex With Spring FrameworkIntegrate Flex With Spring Framework
Integrate Flex With Spring Framework
Guo Albert
 
Maven – The build paraphernalia
Maven – The build paraphernaliaMaven – The build paraphernalia
Maven – The build paraphernalia
Subin Sugunan
 
Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad
Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad
Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad
DC Sitecore User Group
 
Dont fear software patching for operational technology
Dont fear software patching for operational technologyDont fear software patching for operational technology
Dont fear software patching for operational technology
Jo Ee Liew
 
Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013
SharePoint Saturday New Jersey
 
Seo pressor unlimited-license-v4.0
Seo pressor unlimited-license-v4.0Seo pressor unlimited-license-v4.0
Seo pressor unlimited-license-v4.0
Sarit Cohen
 
How to install and configure microsoft iis 7.5, php, my sql, and phpmyadmin
How to install and configure microsoft iis 7.5, php, my sql, and phpmyadminHow to install and configure microsoft iis 7.5, php, my sql, and phpmyadmin
How to install and configure microsoft iis 7.5, php, my sql, and phpmyadmin
Sandy Ra
 
Jenkins hand in hand
Jenkins  hand in handJenkins  hand in hand
Jenkins hand in hand
netdbncku
 
End to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via IntuneEnd to End Guide Windows AutoPilot Process via Intune
End to End Guide Windows AutoPilot Process via Intune
Anoop Nair
 
ClickOnce Deployment Seminar
ClickOnce Deployment SeminarClickOnce Deployment Seminar
ClickOnce Deployment Seminar
tamilarnesan
 
Advanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.Biz
Advanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.BizAdvanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.Biz
Advanced ClickOnce Deployment Techniques by Suthep S - GreatFriends.Biz
Suthep Sangvirotjanaphat
 
High Availability of Azure Applications
High Availability of Azure ApplicationsHigh Availability of Azure Applications
High Availability of Azure Applications
Mindfire Solutions
 
Get started with Windows AutoPilot Deployment
Get started  with Windows AutoPilot DeploymentGet started  with Windows AutoPilot Deployment
Get started with Windows AutoPilot Deployment
Microsoft
 
Managing Virtual Infrastructures With PowerShell
Managing Virtual Infrastructures With PowerShellManaging Virtual Infrastructures With PowerShell
Managing Virtual Infrastructures With PowerShell
guesta849bc8b
 
"Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,...
"Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,..."Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,...
"Don’t Run with Scissors: Serverless Security Survival Guide" | Hillel Solow,...
LCloud
 
Java web start Quick Reference
Java web start Quick Reference Java web start Quick Reference
Java web start Quick Reference
Praveen Kumar
 
Integrate Flex With Spring Framework
Integrate Flex With Spring FrameworkIntegrate Flex With Spring Framework
Integrate Flex With Spring Framework
Guo Albert
 
Maven – The build paraphernalia
Maven – The build paraphernaliaMaven – The build paraphernalia
Maven – The build paraphernalia
Subin Sugunan
 
Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad
Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad
Sitecore DevOps Automating your Sitecore Deployments by Naveed Ahmad
DC Sitecore User Group
 
Dont fear software patching for operational technology
Dont fear software patching for operational technologyDont fear software patching for operational technology
Dont fear software patching for operational technology
Jo Ee Liew
 
Seo pressor unlimited-license-v4.0
Seo pressor unlimited-license-v4.0Seo pressor unlimited-license-v4.0
Seo pressor unlimited-license-v4.0
Sarit Cohen
 
How to install and configure microsoft iis 7.5, php, my sql, and phpmyadmin
How to install and configure microsoft iis 7.5, php, my sql, and phpmyadminHow to install and configure microsoft iis 7.5, php, my sql, and phpmyadmin
How to install and configure microsoft iis 7.5, php, my sql, and phpmyadmin
Sandy Ra
 

Similar to Advanced Visual Studio 2005 Tools For Office Programming And Deployment (20)

Office And Vsto 200
Office And Vsto 200Office And Vsto 200
Office And Vsto 200
Mithun T. Dhar
 
Oracle Web ADI Implementation Steps
Oracle Web ADI Implementation StepsOracle Web ADI Implementation Steps
Oracle Web ADI Implementation Steps
standale
 
Developing for Office 2007 using VSTO 2005
Developing for Office 2007 using VSTO 2005Developing for Office 2007 using VSTO 2005
Developing for Office 2007 using VSTO 2005
sudhakar
 
STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...
STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...
STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...
Joel Oleson
 
Presentation on Visual Studio Tools for Office (VSTO) at HyderabadTechies
Presentation on Visual Studio Tools for Office (VSTO) at HyderabadTechiesPresentation on Visual Studio Tools for Office (VSTO) at HyderabadTechies
Presentation on Visual Studio Tools for Office (VSTO) at HyderabadTechies
pranavaa
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan
 
Share Point Web Parts 101
Share Point Web Parts 101Share Point Web Parts 101
Share Point Web Parts 101
Joseph Ackerman
 
Visual Studio 2008 & .Net 3.5
Visual Studio 2008 & .Net 3.5Visual Studio 2008 & .Net 3.5
Visual Studio 2008 & .Net 3.5
Hadi Karimi
 
Dell Boomi AtomSphere - iPaaS Document by RapidValue Solutions
Dell Boomi AtomSphere - iPaaS Document by RapidValue SolutionsDell Boomi AtomSphere - iPaaS Document by RapidValue Solutions
Dell Boomi AtomSphere - iPaaS Document by RapidValue Solutions
RapidValue
 
Getting Started With Share Point 2010
Getting Started With Share Point 2010Getting Started With Share Point 2010
Getting Started With Share Point 2010
Elaine Van Bergen
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
Ethos Technologies
 
Ranbijay Kumar - BlackBerry Jam Americas 2013
Ranbijay Kumar - BlackBerry Jam Americas 2013Ranbijay Kumar - BlackBerry Jam Americas 2013
Ranbijay Kumar - BlackBerry Jam Americas 2013
Dr. Ranbijay Kumar
 
Lightning week - Paris DUG
Lightning week - Paris DUGLightning week - Paris DUG
Lightning week - Paris DUG
Paris Salesforce Developer Group
 
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practicesSPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
Knut Relbe-Moe [MVP, MCT]
 
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
BIWUG
 
What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1
ukdpe
 
Accel_Series_2023Autumn_En.pptx
Accel_Series_2023Autumn_En.pptxAccel_Series_2023Autumn_En.pptx
Accel_Series_2023Autumn_En.pptx
NTTDATA INTRAMART
 
Next Level Learning IT Track - Office 365, Under the Covers
Next Level Learning IT Track - Office 365, Under the CoversNext Level Learning IT Track - Office 365, Under the Covers
Next Level Learning IT Track - Office 365, Under the Covers
Microsoft Education AU
 
ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...
ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...
ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...
Protect724tk
 
Revised Adf security in a project centric environment
Revised Adf security in a project centric environmentRevised Adf security in a project centric environment
Revised Adf security in a project centric environment
Jean-Marc Desvaux
 
Oracle Web ADI Implementation Steps
Oracle Web ADI Implementation StepsOracle Web ADI Implementation Steps
Oracle Web ADI Implementation Steps
standale
 
Developing for Office 2007 using VSTO 2005
Developing for Office 2007 using VSTO 2005Developing for Office 2007 using VSTO 2005
Developing for Office 2007 using VSTO 2005
sudhakar
 
STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...
STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...
STSADM Automating SharePoint Administration - Tech Ed South East Asia 2008 wi...
Joel Oleson
 
Presentation on Visual Studio Tools for Office (VSTO) at HyderabadTechies
Presentation on Visual Studio Tools for Office (VSTO) at HyderabadTechiesPresentation on Visual Studio Tools for Office (VSTO) at HyderabadTechies
Presentation on Visual Studio Tools for Office (VSTO) at HyderabadTechies
pranavaa
 
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan Msdn Tech Days Oc Day2
Daniel Egan
 
Share Point Web Parts 101
Share Point Web Parts 101Share Point Web Parts 101
Share Point Web Parts 101
Joseph Ackerman
 
Visual Studio 2008 & .Net 3.5
Visual Studio 2008 & .Net 3.5Visual Studio 2008 & .Net 3.5
Visual Studio 2008 & .Net 3.5
Hadi Karimi
 
Dell Boomi AtomSphere - iPaaS Document by RapidValue Solutions
Dell Boomi AtomSphere - iPaaS Document by RapidValue SolutionsDell Boomi AtomSphere - iPaaS Document by RapidValue Solutions
Dell Boomi AtomSphere - iPaaS Document by RapidValue Solutions
RapidValue
 
Getting Started With Share Point 2010
Getting Started With Share Point 2010Getting Started With Share Point 2010
Getting Started With Share Point 2010
Elaine Van Bergen
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
Ethos Technologies
 
Ranbijay Kumar - BlackBerry Jam Americas 2013
Ranbijay Kumar - BlackBerry Jam Americas 2013Ranbijay Kumar - BlackBerry Jam Americas 2013
Ranbijay Kumar - BlackBerry Jam Americas 2013
Dr. Ranbijay Kumar
 
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practicesSPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
SPSBE14 SPSBE02 SharePoint Upgrade reel life experience, best practices
Knut Relbe-Moe [MVP, MCT]
 
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
SharePoint Saturday Belgium 2014 SharePoint Upgrade, real life experience and...
BIWUG
 
What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1What's New for Presentation in Visual Studio 2008 SP1
What's New for Presentation in Visual Studio 2008 SP1
ukdpe
 
Accel_Series_2023Autumn_En.pptx
Accel_Series_2023Autumn_En.pptxAccel_Series_2023Autumn_En.pptx
Accel_Series_2023Autumn_En.pptx
NTTDATA INTRAMART
 
Next Level Learning IT Track - Office 365, Under the Covers
Next Level Learning IT Track - Office 365, Under the CoversNext Level Learning IT Track - Office 365, Under the Covers
Next Level Learning IT Track - Office 365, Under the Covers
Microsoft Education AU
 
ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...
ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...
ArcSight Actor Model Import Connector for Microsoft Active Directory Configur...
Protect724tk
 
Revised Adf security in a project centric environment
Revised Adf security in a project centric environmentRevised Adf security in a project centric environment
Revised Adf security in a project centric environment
Jean-Marc Desvaux
 
Ad

More from David Truxall (9)

iOS for Android Developers (with Swift)
iOS for Android Developers (with Swift)iOS for Android Developers (with Swift)
iOS for Android Developers (with Swift)
David Truxall
 
Consuming Web Services in Android
Consuming Web Services in AndroidConsuming Web Services in Android
Consuming Web Services in Android
David Truxall
 
Day Of Dot Net Ann Arbor 2008
Day Of Dot Net Ann Arbor 2008Day Of Dot Net Ann Arbor 2008
Day Of Dot Net Ann Arbor 2008
David Truxall
 
Visual Studio 2005 Database Professional Edition
Visual Studio 2005 Database Professional EditionVisual Studio 2005 Database Professional Edition
Visual Studio 2005 Database Professional Edition
David Truxall
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
David Truxall
 
Visual Studio 2005 New Features
Visual Studio 2005 New FeaturesVisual Studio 2005 New Features
Visual Studio 2005 New Features
David Truxall
 
ADO.Net Improvements in .Net 2.0
ADO.Net Improvements in .Net 2.0ADO.Net Improvements in .Net 2.0
ADO.Net Improvements in .Net 2.0
David Truxall
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
David Truxall
 
Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007
David Truxall
 
iOS for Android Developers (with Swift)
iOS for Android Developers (with Swift)iOS for Android Developers (with Swift)
iOS for Android Developers (with Swift)
David Truxall
 
Consuming Web Services in Android
Consuming Web Services in AndroidConsuming Web Services in Android
Consuming Web Services in Android
David Truxall
 
Day Of Dot Net Ann Arbor 2008
Day Of Dot Net Ann Arbor 2008Day Of Dot Net Ann Arbor 2008
Day Of Dot Net Ann Arbor 2008
David Truxall
 
Visual Studio 2005 Database Professional Edition
Visual Studio 2005 Database Professional EditionVisual Studio 2005 Database Professional Edition
Visual Studio 2005 Database Professional Edition
David Truxall
 
Sql Summit Clr, Service Broker And Xml
Sql Summit   Clr, Service Broker And XmlSql Summit   Clr, Service Broker And Xml
Sql Summit Clr, Service Broker And Xml
David Truxall
 
Visual Studio 2005 New Features
Visual Studio 2005 New FeaturesVisual Studio 2005 New Features
Visual Studio 2005 New Features
David Truxall
 
ADO.Net Improvements in .Net 2.0
ADO.Net Improvements in .Net 2.0ADO.Net Improvements in .Net 2.0
ADO.Net Improvements in .Net 2.0
David Truxall
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
David Truxall
 
Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007
David Truxall
 
Ad

Recently uploaded (20)

Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 

Advanced Visual Studio 2005 Tools For Office Programming And Deployment

  • 1. Advanced Visual Studio 2005 Tools for Office Programming and Deployment David Truxall Architect NuSoft Solutions
  • 2. Agenda Server programming Security Deployment
  • 3. Server Goals Make it as simple to create Office content on the server as it is for HTML Integrate with VSTO 2005 programming model Client/Server Symmetry. Scale, Scale, Scale Integrate with ASP .NET programming model
  • 4. Server Capabilities in VSTO 2005 Fill the data island on the server Program against the data on the server Run code outside the document Expose data from Office docs to ASPX
  • 5. Server Feature Read and Write Cached Data ' Load the document (does not start the Office application) Dim productsDoc As String = &quot;C:\Documents\Products0105.xls&quot; Dim doc As ServerDocument = New ServerDocument(productsDoc) 1 ' Read the cached data from the dataset in the worksheet Dim cdi As CachedDataItem cdi = doc.CachedDataManifest.Views(&quot;ProductWorksheet&quot;). _ CachedData(&quot;ProductWorksheet.ProductCache&quot;) Dim sr As System.IO.StringReader = New _ System.IO.StringReader(cdi.Xml) ProductsData.ReadXml(sr) 2 ' Write the modified dataset back to the dataset ' in the workbook. cdi.SerializeDataInstance(ProductsData) doc.Save() doc.Close() 3
  • 6. Data in Office Solutions How Does Server-Side Work? Server Code Server Client Server Side Code prepopulates elements before sending to client John is cool! $345.00 URL Request CreateExpense.aspx Databases Corporate Systems
  • 7. Data in Office Solutions How Does Server-Side Work? Server Code Server Client Document is transferred with data URL Request CreateExpense.aspx Mike is cooler! $1000.00 Databases Corporate Systems
  • 8. Filling the Data Island All the data in a VSTO 2005 enabled Office document is stored in a standard data island This enables the VSTO 2005 runtime to access the data without having to invoke Word or Excel Benefits Doesn’t require you to run Word or Excel on the server Some significant scaling issues Not supported by Microsoft
  • 9. Filling A Data Island on the Server
  • 10. What is Not Supported on the Server Program against the view Since Word & Excel aren’t running on the server there’s no way to get to the object model for each application You can work around this quite easily since you can fill the data on the server and do all the databinding/view manipulation on the client Integrate with other Office apps Since they’re not running on the server However XML/Web Services provide an ideal way to do this
  • 11. Server Summary Program against the data on the server Access any VSTO 2005 document from within an ASPX page Built to scale from day one
  • 12. .NET Security VSTO Security managed by .NET security policy Evidence (location, signature, etc.) Permissions (execution, UI, full, etc.) Since code in VSTO documents call into the Office OM (unmanaged code), we require Full Trust permission
  • 13. VSTO 2005 Security Won’t run any code by default Must trust both the document and the assembly (Full Trust) Evidence for assemblies is via Signing: Authenticode or Strong Naming Location: URL Local Machine Zone is not enough Evidence for documents is via Location E-mail attachments must be copied to desktop (Outlook temp directory is Internet Zone)
  • 14. Code Security Scenarios Alice creates a VSTO 2005 project for a Budget Spreadsheet Alice hands over final code to Bob in IT Bob deploys code & document to http://budget Bob deploys security policy to end users machine to trust http://budget Fred creates a new budget from http://budget Code runs! Fred sends it to Sue via email Sue save the budget sheet to her desktop Opens it from the desktop Code runs!
  • 15. Code Security – VeryEvil.com Evil Alice creates fakebudget.xls and creates a VSTO 2005 project Evil Alice deploys code to http://veryevil.com/budget Evil Alice sends fakebudget.xls to Bob in email Bob opens the spreadsheet No code runs because http://veryevil.com isn’t trusted
  • 16. Bad Trust Decision ISV Alice writes some VSTO 2005 code behind ISVBudget.xls Deploys code and budget to http://www.budgetsrus.com Fred creates a budget from website & saves it to his machine IT Bob discovers bug in the code behind ISVBudget.xls that compromises the corp security practices Bob tells ISV Alice but the fix won’t be ready for weeks Bob blocks access to http:// www.budgetsrus.com for the corporation Budgets don’t work but the corp security is safe Alice fixes bug Bob reinstates access to http://www.budgetsrus.com The sun shines
  • 18. Deployment & Update Self updating Document App Manifest is updated to point to the latest assembly Manifest based deployment Application level and deployment level manifests
  • 19. How Does This Work? <manifest> <deploy url= http://…/deploy.xml version=“1.0”/> <manifest> <deploy url= http://…/ deploy.xml version=“1.0.1”/> . <assembly Name=“foo.dll” updateURL= http://../1.0.1/foo.dll <manifest> <deploy url= http://…/ deploy.xml version=“1.0”/> Deploy.xml manifest.xml manifest.xml <manifest> . . curVersion-”1.0.1” Foo.xls manifest.xml Foo.dll v1.0 Foo.dll v1.0.1
  • 20. Move to Production Server <manifest> <deploy url= http://…/deploy.xml version=“1.0”/> <manifest> <deploy url= http://svr2/deploy.xml version=“1.0.1”/> . <assembly Name=“foo.dll” updateURL= http://../1.0.1/foo.dll <manifest> <deploy url= http://srv1/deploy.xml version=“1.0”/> Deploy.xml manifest.xml manifest.xml <manifest> . . curVersion-”1.0.1” <app url= “ http://srv2/ manifest.xml” Foo.xls manifest.xml Foo.dll v1.0 Foo.dll v1.0.1 Deploy.xml <manifest> . . curVersion-”1.0.1” <app url= “ http://srv2/ manifest.xml” Test Srv Production Srv
  • 21. Server Object Model to modify App Manifest CustomizedDocument doc = new CustomizedDocument (“file.doc”); doc.AppManifest.DeployManifestPath = “…<new path>” Can change any parts of the app manifest
  • 22. Why Manifests? .NET and Visual Studio moving to manifests Built using the same schema as Click Once New technology coming in the next version of .NET/VS Built into Vista Manifests provide rich information about your application Not just which dll is used Includes dependent assemblies Location of assemblies (moving to Product server)
  • 23. Deployment Basics Requirements for the target machines Office 2003 Professional or Excel 2003 Standalone or Word 2003 Standalone .NET Framework 2.0 VSTO 2005 Runtime Office PIAs referenced in your assembly Can be set to install on demand Appropriate security policies
  • 24. Local/Local Deployment Model Pros Network access is not required Users can modify and customize their documents Cons Updates to document or assembly require redistribution to each user Local/Local
  • 25. Local/Network Deployment Model Pros Eases updates to assembly Users can modify and customize their documents Cons Updates to document require redistribution to each user Local / Network
  • 26. Network/Network Deployment Model Pros Eases updates to assembly Eases updates to document Cons Users cannot modify or customize master documents Network / Network
  • 27. Conclusion Server Program against the data on the server Access any VSTO 2005 document from within an ASPX page Security Must trust document and assembly Doesn’t run by default Deployment options Document/assembly options
  • 28. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • 29. *** BIND LIST *** If Not Me.EmpData Is Nothing Then Me.List1.DataSource = Me.EmpData.Tables(0) Else Me.List1.DataSource = nothing End If **** FILL DATA ISLAND **** Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating Dim da As New SqlClient.SqlDataAdapter(Me.SqlDataSource1.SelectCommand, Me.SqlDataSource1.ConnectionString) Dim empData As DataSet = New DataSet() da.Fill(empData) Dim doc As ServerDocument = New ServerDocument(Server.MapPath(&quot;EmployeeServerData.xls&quot;)) Dim hostItem As CachedDataHostItem Dim dataItem As CachedDataItem hostItem = doc.CachedData.HostItems(&quot;EmployeeServerData.Sheet1&quot;) dataItem = hostItem.CachedData(&quot;EmpData&quot;) dataItem.SerializeDataInstance(empData) doc.Save() doc.Close() End Sub