SlideShare a Scribd company logo
1 of 95
Developing Windows and Web Applications using Visual Studio.NET Deployment and Security Peter Gfader Senior Software Architect
[object Object],[object Object],[object Object],[object Object],[object Object],Admin Stuff
Homework?
[object Object],[object Object],[object Object],[object Object],Session 3: Last week?
N-Tier Application Simplified
Northwind DAL LINQ to SQL DBML BL WebUI WinUI
[object Object],How did we do it?
Where does LINQ to SQL fit in? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],2 Tiered?
Northwind Northwind.Common.Objects DataContext Entities
Northwind Northwind.Common.Objects DataContext Entities WebUI WinUI
Northwind Northwind.Common.Objects DataContext Entities WebUI WinUI
Northwind Northwind.Common.Objects DataContext Entities WebUI WinUI Services
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Where does LINQ to SQL fit in?
[object Object],[object Object],[object Object],So how do we separate our Data Access layer?
[object Object],[object Object],[object Object],N-Tier Business app
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Agenda Session 4: Deployment & Security
Part 1 - ClickOnce
Windows  vs  Web forms ,[object Object]
ClickOnce  - The Best of both Worlds z Web Forms Network Dependency Limited User Experience Complex To Develop Windows Forms Fragile “ DLL Hell” Tough To Update Tough To Deploy Easy To Update Easy To Deploy Easy To Manage Rich User Experience Offline Capable Responsive & Flexible High User Productivity Click Once
ClickOnce The Best of both Worlds ,[object Object]
History ,[object Object],[object Object]
History: Feel the pain…  Windows Installer vs ClickOnce z Features Windows Installer ClickOnce Click a link Post-installation rollback Does not affect shared components Security permissions required Administrator Internet/Intranet Zone  Installation-time user interface Multipart Wizard Single prompt Automatic Updates Application and deployment manifest signing Security permissions granted Full Trust by default only permissions necessary Installation of assemblies on demand Add application to Start menu Application installation location Program Files folder ClickOnce app cache Install time Registry access (so move to app) Limited Installation of Drivers Installation to Global Assembly Cache Installation for multiple users Installation of shared files Add application to Startup group Add application to Favorites menu Register File types Binary File patching
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],History: Feel the pain… .Net 1.x HREFing .EXEs
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],History: Feel the pain… Updater Application Block
[object Object],SSW Diagnostics - Clickonce
[object Object],Demo
[object Object],[object Object],[object Object],[object Object],[object Object],ClickOnce Deployment -  How it works? z
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ClickOnce Deployment   Deployment Manifests
ClickOnce Deployment -  Deployment Manifests z 1.0    1.1 Application Manifest Web Page   Link to Manifest   Deployment Manifest 1.0 Application Manifest 1.1
Deployed Files
ClickOnce Deployment -  Bootstraper ,[object Object],z Setup.exe Dotnetfx.exe Mdac_typ.exe Custom.msi Bar.application Reboot Dotnetfx.exe Custom.msi Bar.application MDAC detected! Setup.exe  
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ClickOnce Deployment Which download to provide?
ClickOnce Deployment   Prerequisites  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],z
[object Object],[object Object],[object Object],[object Object],[object Object],ClickOnce Deployment   Prerequisites    Note #1:  If you specify an alternate prerequisite location, the packages must exist there; these errors are not handled with ClickOnce Note #2:  While selecting your prerequisites, keep in mind that prerequisites might need administrator privileges to be installed.
[object Object],[object Object],[object Object],[object Object],ClickOnce Deployment  - Strategies
ClickOnce Deployment   Strategies Compared Web Install CD Install Web Run Adds Shortcuts Adds Add/Remove Requires Updates Allow Passing of Query Parameters Doesn’t require internet
ClickOnce  Deployment Setup Interface
ClickOnce  Deployment Setup Options Interface
[object Object],[object Object],[object Object],[object Object],ClickOnce  Update How it works?   Note 1:  If you use Visual Studio to compile your application, it will generate new hash signatures for  all  files whenever you  rebuild  the entire project. Note 2:  File patching does not work for files that are marked as  data  and stored in the data directory  C:ocuments and SettingsdamCoganocal Settingspps.0
ClickOnce  Update -   How it works?  z Yes No Application Store Installed Startup SHIM My Application Deployment Framework Service What is a SHIM?   It’s a small piece of software that is added to an existing system program or protocol in order to provide some enhancement. Update  Check?
ClickOnce  Update - Strategies ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],ClickOnce  Update - Strategies
[object Object],ClickOnce  Update - Strategies
[object Object],[object Object],[object Object],[object Object],ClickOnce  Update Optional and Required Updates
ClickOnce  Update -   Blocking ,[object Object],[object Object],z
What if you release a bad version?
[object Object],[object Object],Advanced Rolling back updates
[object Object],User Settings & Configuration
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],User Settings
[object Object],[object Object],[object Object],[object Object],User Settings
[object Object],[object Object],[object Object],[object Object],Application Settings
[object Object],[object Object],[object Object],Demo
[object Object],[object Object],[object Object],Advanced Scalability
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Advanced Cache Note: The value in the OnlineAppQuoteInKB registry key is a DWORD that expresses the cache size in kilobytes
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],BUGS Proxy Servers on Client Machines
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],BUGS  Publish Version sync issues
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Warnings   ClickOnce and non-IE Browsers
[object Object],[object Object],[object Object],[object Object],[object Object],Warnings  File Patching and Rebuilds
[object Object],[object Object],[object Object],[object Object],[object Object],Warnings Manifest Overwriting
[object Object],[object Object],[object Object],[object Object],Warnings  File Compression
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Suggestions & Missing Features
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Moving your Application to  ClickOnce
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Limitations Overview
Part 2 -  Security
[object Object],[object Object],[object Object],[object Object],Security
[object Object],[object Object],[object Object],[object Object],[object Object],Security in .NET
[object Object],[object Object],[object Object],[object Object],Role-based Security
[object Object],Authentication & Authorisation
[object Object],Authentication & Authorisation
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Authentication & Authorisation
Demo
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Authentication & Authorisation
Authentication & Authorisation IIdentity (Authentication) IPrincipal (Authorisation) Active Directory (Windows Security) Generic (Text-based) Read from Database (Custom) … …
[object Object],[object Object],[object Object],[object Object],[object Object],Impersonation
[object Object],[object Object],[object Object],[object Object],[object Object],Impersonation
[object Object],[object Object],[object Object],[object Object],[object Object],Impersonation
Impersonation ,[object Object],Login via web as “ DOMAINomJones” IIS checks login against Active Directory .NET code is now impersonating Windows User DOMAINomJones
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],What about lots of users?
[object Object],[object Object],[object Object],[object Object],[object Object],Special case - Mixed
[object Object],Code Access Security
[object Object],[object Object],[object Object],Code Access Security
[object Object],[object Object],[object Object],Code Access Security
[object Object],[object Object],[object Object],Assembly Strong Naming
[object Object],[object Object],[object Object],[object Object],[object Object],Assembly Strong Naming
ClickOnce  Security
[object Object],ClickOnce  Security Partial Trust Permission Settings
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ClickOnce  Security Security Features
[object Object],[object Object],[object Object],[object Object],Useful links
[object Object],[object Object],Resources - AutoWaitCursor public void DoWork() { try {     this.Cursor = Cursors.WaitCuros;     DoSomeBigThing();     . . . . } catch() {     . . . ..     . . . . . } finally {     . . . .     this.Cursor = Cursors.Default; } }
[object Object],[object Object],[object Object],Resources - AutoWaitCursor
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],References
What's  next?
3  things… ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Microsoft 365 Developer
 
Whats New In Windows 7 And What To Expect
Whats New In Windows 7 And What To ExpectWhats New In Windows 7 And What To Expect
Whats New In Windows 7 And What To ExpectVijay Raj
 
There's more to third-party patching than SCCM 1806
There's more to third-party patching than SCCM 1806There's more to third-party patching than SCCM 1806
There's more to third-party patching than SCCM 1806Ivanti
 
January 2022 patch tuesday
January 2022 patch tuesdayJanuary 2022 patch tuesday
January 2022 patch tuesdayIvanti
 
Everything You Ever Wanted To Know About Application Compatibility
Everything You Ever Wanted To Know About Application CompatibilityEverything You Ever Wanted To Know About Application Compatibility
Everything You Ever Wanted To Know About Application CompatibilityStephen Rose
 
OpenNTF Blast from ILUG 2007
OpenNTF Blast from ILUG 2007OpenNTF Blast from ILUG 2007
OpenNTF Blast from ILUG 2007Kevin Pettitt
 
Ivanti Patch Tuesday for October 2019
Ivanti Patch Tuesday for October 2019Ivanti Patch Tuesday for October 2019
Ivanti Patch Tuesday for October 2019Ivanti
 
Salesforce development lifecycle
Salesforce development lifecycleSalesforce development lifecycle
Salesforce development lifecyclegiridhar007
 
2021 August Patch Tuesday
2021 August Patch Tuesday2021 August Patch Tuesday
2021 August Patch TuesdayIvanti
 
August Patch Tuesday Analysis
August Patch Tuesday AnalysisAugust Patch Tuesday Analysis
August Patch Tuesday AnalysisIvanti
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional testHarry Zheng
 
Patch Tuesday Analysis - September 2015
Patch Tuesday Analysis - September 2015Patch Tuesday Analysis - September 2015
Patch Tuesday Analysis - September 2015Ivanti
 
2021 June Patch Tuesday
2021 June Patch Tuesday2021 June Patch Tuesday
2021 June Patch TuesdayIvanti
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and BeyondESUG
 
ZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN DummiesZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN DummiesRoel van Bueren
 

What's hot (20)

Develop MS Office Plugins
Develop MS Office Plugins Develop MS Office Plugins
Develop MS Office Plugins
 
Office Add-ins community call-March 2019
Office Add-ins community call-March 2019Office Add-ins community call-March 2019
Office Add-ins community call-March 2019
 
Whats New In Windows 7 And What To Expect
Whats New In Windows 7 And What To ExpectWhats New In Windows 7 And What To Expect
Whats New In Windows 7 And What To Expect
 
Wsus sample scripts
Wsus sample scriptsWsus sample scripts
Wsus sample scripts
 
There's more to third-party patching than SCCM 1806
There's more to third-party patching than SCCM 1806There's more to third-party patching than SCCM 1806
There's more to third-party patching than SCCM 1806
 
Leveling Up Deployment Infrastructure
Leveling Up Deployment InfrastructureLeveling Up Deployment Infrastructure
Leveling Up Deployment Infrastructure
 
January 2022 patch tuesday
January 2022 patch tuesdayJanuary 2022 patch tuesday
January 2022 patch tuesday
 
It 240 it240
It 240 it240It 240 it240
It 240 it240
 
Everything You Ever Wanted To Know About Application Compatibility
Everything You Ever Wanted To Know About Application CompatibilityEverything You Ever Wanted To Know About Application Compatibility
Everything You Ever Wanted To Know About Application Compatibility
 
Security
SecuritySecurity
Security
 
OpenNTF Blast from ILUG 2007
OpenNTF Blast from ILUG 2007OpenNTF Blast from ILUG 2007
OpenNTF Blast from ILUG 2007
 
Ivanti Patch Tuesday for October 2019
Ivanti Patch Tuesday for October 2019Ivanti Patch Tuesday for October 2019
Ivanti Patch Tuesday for October 2019
 
Salesforce development lifecycle
Salesforce development lifecycleSalesforce development lifecycle
Salesforce development lifecycle
 
2021 August Patch Tuesday
2021 August Patch Tuesday2021 August Patch Tuesday
2021 August Patch Tuesday
 
August Patch Tuesday Analysis
August Patch Tuesday AnalysisAugust Patch Tuesday Analysis
August Patch Tuesday Analysis
 
Database continuous integration, unit test and functional test
Database continuous integration, unit test and functional testDatabase continuous integration, unit test and functional test
Database continuous integration, unit test and functional test
 
Patch Tuesday Analysis - September 2015
Patch Tuesday Analysis - September 2015Patch Tuesday Analysis - September 2015
Patch Tuesday Analysis - September 2015
 
2021 June Patch Tuesday
2021 June Patch Tuesday2021 June Patch Tuesday
2021 June Patch Tuesday
 
VAST 7.5 and Beyond
VAST 7.5 and BeyondVAST 7.5 and Beyond
VAST 7.5 and Beyond
 
ZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN DummiesZENworks Application Virtualization for NGN Dummies
ZENworks Application Virtualization for NGN Dummies
 

Similar to N-Tier Application with Windows Forms - Deployment and Security

Real World Click Once
Real World Click OnceReal World Click Once
Real World Click OnceVivusCraig
 
ClickOnce Deployment Seminar
ClickOnce Deployment SeminarClickOnce Deployment Seminar
ClickOnce Deployment Seminartamilarnesan
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019Thomas Daly
 
important DotNet Questions For Practicals And Interviews
important DotNet Questions For Practicals And Interviewsimportant DotNet Questions For Practicals And Interviews
important DotNet Questions For Practicals And InterviewsRahul Jain
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 serversMark Myers
 
How create react app help in creating a new react applications
How create react app help in creating a new react applications How create react app help in creating a new react applications
How create react app help in creating a new react applications Concetto Labs
 
TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...
TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...
TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...Concentrated Technology
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureSigfred Balatan Jr.
 
Click Once Deployment
Click Once DeploymentClick Once Deployment
Click Once Deploymenttamilarnesan
 
3 App Compat Win7
3 App Compat Win73 App Compat Win7
3 App Compat Win7llangit
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Finalmentvanderplas
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialAbid Khan
 
Update to IBM Connections 5 CR1 step by-step guide
Update to IBM Connections 5 CR1 step by-step guideUpdate to IBM Connections 5 CR1 step by-step guide
Update to IBM Connections 5 CR1 step by-step guideRoberto Boccadoro
 
Web application development process
Web application development processWeb application development process
Web application development processJohn Smith
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptxVgPolampalli
 
Microsoft 70-416 it certifications
Microsoft  70-416  it certificationsMicrosoft  70-416  it certifications
Microsoft 70-416 it certificationslilylucy
 
Deploying An Optimized Desktop - XP to 7 With P2V
Deploying An Optimized Desktop - XP to 7 With P2VDeploying An Optimized Desktop - XP to 7 With P2V
Deploying An Optimized Desktop - XP to 7 With P2VStephen Rose
 

Similar to N-Tier Application with Windows Forms - Deployment and Security (20)

Real World Click Once
Real World Click OnceReal World Click Once
Real World Click Once
 
ClickOnce Deployment Seminar
ClickOnce Deployment SeminarClickOnce Deployment Seminar
ClickOnce Deployment Seminar
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
 
important DotNet Questions For Practicals And Interviews
important DotNet Questions For Practicals And Interviewsimportant DotNet Questions For Practicals And Interviews
important DotNet Questions For Practicals And Interviews
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
 
How create react app help in creating a new react applications
How create react app help in creating a new react applications How create react app help in creating a new react applications
How create react app help in creating a new react applications
 
TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...
TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...
TechMentor Fall, 2011 - Using Task Sequences to Completely Automate Windows 7...
 
Twelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application ArchitectureTwelve-Factor App: Software Application Architecture
Twelve-Factor App: Software Application Architecture
 
Click Once Deployment
Click Once DeploymentClick Once Deployment
Click Once Deployment
 
3 App Compat Win7
3 App Compat Win73 App Compat Win7
3 App Compat Win7
 
MMT 1
MMT 1MMT 1
MMT 1
 
Bfc Presentation
Bfc PresentationBfc Presentation
Bfc Presentation
 
MMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_FinalMMS2011_BC34_Plas_Final
MMS2011_BC34_Plas_Final
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Update to IBM Connections 5 CR1 step by-step guide
Update to IBM Connections 5 CR1 step by-step guideUpdate to IBM Connections 5 CR1 step by-step guide
Update to IBM Connections 5 CR1 step by-step guide
 
Web application development process
Web application development processWeb application development process
Web application development process
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Microsoft 70-416 it certifications
Microsoft  70-416  it certificationsMicrosoft  70-416  it certifications
Microsoft 70-416 it certifications
 
Deploying An Optimized Desktop - XP to 7 With P2V
Deploying An Optimized Desktop - XP to 7 With P2VDeploying An Optimized Desktop - XP to 7 With P2V
Deploying An Optimized Desktop - XP to 7 With P2V
 
Best free tools for w d a
Best free tools for w d aBest free tools for w d a
Best free tools for w d a
 

More from Peter Gfader

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019Peter Gfader
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)Peter Gfader
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineerPeter Gfader
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilistPeter Gfader
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Peter Gfader
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryPeter Gfader
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recapPeter Gfader
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Peter Gfader
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code DevelopmentPeter Gfader
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Peter Gfader
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube BrowsersPeter Gfader
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesPeter Gfader
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesPeter Gfader
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL ServerPeter Gfader
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text searchPeter Gfader
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesPeter Gfader
 

More from Peter Gfader (20)

Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
You Cant Be Agile If Your Code Sucks (with 9 Tips For Dev Teams)
 
How to make more impact as an engineer
How to make more impact as an engineerHow to make more impact as an engineer
How to make more impact as an engineer
 
13 explosive things you should try as an agilist
13 explosive things you should try as an agilist13 explosive things you should try as an agilist
13 explosive things you should try as an agilist
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 
Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!Use Scrum and Continuous Delivery to innovate like crazy!
Use Scrum and Continuous Delivery to innovate like crazy!
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Qcon london2012 recap
Qcon london2012 recapQcon london2012 recap
Qcon london2012 recap
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...Silverlight vs HTML5 - Lessons learned from the real world...
Silverlight vs HTML5 - Lessons learned from the real world...
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
 
Data Mining with SQL Server 2008
Data Mining with SQL Server 2008Data Mining with SQL Server 2008
Data Mining with SQL Server 2008
 
SSAS - Other Cube Browsers
SSAS - Other Cube BrowsersSSAS - Other Cube Browsers
SSAS - Other Cube Browsers
 
Reports with SQL Server Reporting Services
Reports with SQL Server Reporting ServicesReports with SQL Server Reporting Services
Reports with SQL Server Reporting Services
 
OLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis ServicesOLAP – Creating Cubes with SQL Server Analysis Services
OLAP – Creating Cubes with SQL Server Analysis Services
 
Business Intelligence with SQL Server
Business Intelligence with SQL ServerBusiness Intelligence with SQL Server
Business Intelligence with SQL Server
 
SQL Server - Full text search
SQL Server - Full text searchSQL Server - Full text search
SQL Server - Full text search
 
Usability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET FeaturesUsability AJAX and other ASP.NET Features
Usability AJAX and other ASP.NET Features
 

Recently uploaded

Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptshraddhaparab530
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 

Recently uploaded (20)

Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Integumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.pptIntegumentary System SMP B. Pharm Sem I.ppt
Integumentary System SMP B. Pharm Sem I.ppt
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 

N-Tier Application with Windows Forms - Deployment and Security

  • 1. Developing Windows and Web Applications using Visual Studio.NET Deployment and Security Peter Gfader Senior Software Architect
  • 2.
  • 4.
  • 6. Northwind DAL LINQ to SQL DBML BL WebUI WinUI
  • 7.
  • 8.
  • 9.
  • 13. Northwind Northwind.Common.Objects DataContext Entities WebUI WinUI Services
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Part 1 - ClickOnce
  • 19.
  • 20. ClickOnce - The Best of both Worlds z Web Forms Network Dependency Limited User Experience Complex To Develop Windows Forms Fragile “ DLL Hell” Tough To Update Tough To Deploy Easy To Update Easy To Deploy Easy To Manage Rich User Experience Offline Capable Responsive & Flexible High User Productivity Click Once
  • 21.
  • 22.
  • 23. History: Feel the pain… Windows Installer vs ClickOnce z Features Windows Installer ClickOnce Click a link Post-installation rollback Does not affect shared components Security permissions required Administrator Internet/Intranet Zone Installation-time user interface Multipart Wizard Single prompt Automatic Updates Application and deployment manifest signing Security permissions granted Full Trust by default only permissions necessary Installation of assemblies on demand Add application to Start menu Application installation location Program Files folder ClickOnce app cache Install time Registry access (so move to app) Limited Installation of Drivers Installation to Global Assembly Cache Installation for multiple users Installation of shared files Add application to Startup group Add application to Favorites menu Register File types Binary File patching
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. ClickOnce Deployment - Deployment Manifests z 1.0  1.1 Application Manifest Web Page Link to Manifest Deployment Manifest 1.0 Application Manifest 1.1
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. ClickOnce Deployment Strategies Compared Web Install CD Install Web Run Adds Shortcuts Adds Add/Remove Requires Updates Allow Passing of Query Parameters Doesn’t require internet
  • 38. ClickOnce Deployment Setup Interface
  • 39. ClickOnce Deployment Setup Options Interface
  • 40.
  • 41. ClickOnce Update - How it works?  z Yes No Application Store Installed Startup SHIM My Application Deployment Framework Service What is a SHIM? It’s a small piece of software that is added to an existing system program or protocol in order to provide some enhancement. Update Check?
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. What if you release a bad version?
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65. Part 2 - Security
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72. Demo
  • 73.
  • 74. Authentication & Authorisation IIdentity (Authentication) IPrincipal (Authorisation) Active Directory (Windows Security) Generic (Text-based) Read from Database (Custom) … …
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 94.
  • 95.