SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
From legacy to WPF/SL,[object Object],Migrating applications from Windows Form to WPF/Silverlight,[object Object],Raffaele Garofalo,[object Object]
Who am I?,[object Object],Raffaele GarofaloNET Software ArchitectMCP (MCAD, MCSD, MCTS),[object Object],Blog: http://blog.raffaeu.com,[object Object],Twitter: @raffaeu,[object Object],Company: Nephila Capital Ltd. (www.nephila.com) ,[object Object],I am Italian, sorry for my bad English,[object Object]
My Books,[object Object],Microsoft,[object Object],APRESS,[object Object]
Summary,[object Object],Reasons for migrating,[object Object],Choose the right technology,[object Object],Is Windows Form dead?,[object Object],Choose the right architecture,[object Object],The team,[object Object],Some useful tools,[object Object]
Reasons for migrating,[object Object],Legacy application that requires refactoring (partial),[object Object],Legacy application developed with a very old technology (FoxPro, VB6, …) (re-write),[object Object],Application that requires a more complex UI (User Interface) not sustainable with Windows Form (partial),[object Object],Specific request from the Customer (at the end, he has the money …),[object Object],New project (never start a new project with an old technology!),[object Object]
Always consider the budget!,[object Object],You do not need to re-write everything, you can keep the existing UI and migrate only the new features,[object Object],Windows Form can live in parallel with WPF/SL,[object Object],You can host Windows Form in WPF (WindowsFormHost) and WPF in Windows Form (ElementHost) or SL in Windows Form (embed browser),[object Object]
Is Windows Form dead?,[object Object],No, it is not. There are still thousands of active projects done in Windows Form,[object Object],Win Form is still the following step after VB6 ,[object Object],WPF is not intended to replace Windows Forms,[object Object],It is not dead but it is an old technology. It is still available ,[object Object],It does not separate UI from code, I can’t employ a designer for the UI ,[object Object]
Choose the right technology,[object Object],First rule: WPF is for Standalone, Silverlight is for Web, Phones,[object Object],Second rule: WPF works only on Windows OS, Silverlight works on Windows, MAC, Linux,[object Object],Third rule: WPF is a more powerful technology, Silverlight uses a restricted version of the NET Framework but more feasible for Web and Media,[object Object],WPF requires a knowledge of XAML for WPF, Silverlight requires XAML for SL, HTML and JS and WCF,[object Object]
What can I do with?,[object Object],WPF,[object Object],Full .NET Framework(i.e. Split() has 6 overrides),[object Object],UI objects derives from Visual base class,[object Object],Routed events, more control,[object Object],Cryptography more powerful,[object Object],Not a lot of choices for Media management,[object Object],SILVERLIGHT,[object Object],Restricted version of .NET(i.e. Split() has 3 overrides),[object Object],UI objects derives from Control,[object Object],Routed events, less control,[object Object],SL supports only 4 hash algorithms,[object Object],Great support to Media management and streaming,[object Object]
What Microsoft suggests? SL,[object Object],If you're just starting out, and there's a question as to which technology to choose (Silverlight or WPF) then start with Silverlight. It is generally easier to move up to WPF from Silverlight than it is to move the other way. Silverlight has a smaller API, and is therefore generally considered easier to learn.,[object Object],If you need a desktop application with only basic system integration, consider building a Silverlight Out-of-Browser application. Silverlight 4 Trusted Applications with IDispatch support provide access to many system resources previously unavailable to web technologies.,[object Object],If you need deep system integration, excellent multi-touch support, device access, local resources, and all the other things that go with a solid desktop application, then consider moving up to WPF.,[object Object],If you're a C++ developer, you can choose to go with C++ and MFC, or use C++ with WPF on the front end, like the Expression team did.,[object Object]
Still missing …,[object Object],WPF,[object Object],A good designer tool, VS is not cool as Blend,[object Object],The Control toolkit is not exhaustive, you still need a third party control library,[object Object],Silverlight,[object Object],Same thing,[object Object],Interaction with HTML and Javascript still lacks in some parts,[object Object],Still requires to recompile your .dlls,[object Object]
Composite Frameworks,[object Object],Create an application using Modules (independent assemblies),[object Object],Specialize teams in different areas (UI, Presentation, Business),[object Object],Reusable architecture,[object Object],Increase quality and usability by sharing common services and functionality,[object Object]
Composite for WPF/SL,[object Object],Prism,[object Object],Requires observer patterns (message broker),[object Object],Cool navigation service in V4,[object Object],Only IoC with Unity (Microsoft),[object Object],Astonishing resources and documentation,[object Object],caliburn,[object Object],Auto-wiring,[object Object],Transitions between Views,[object Object],Open source with less technology limits,[object Object],Available also for Windows Phone,[object Object]
Demo,[object Object],WinForm demo application (MSDN, Telerik),[object Object],WPF demo application (MSDN, Codeplex),[object Object],Silverlight demo application (MSDN, Telerik),[object Object],WPF showcasehttp://windowsclient.net/community/showcase.aspx,[object Object],Silverlight showcasehttp://www.silverlight.net/showcase/,[object Object]
Choose the right architecture,[object Object],Layered application or monolithic block?,[object Object],SOA or not SOA? If I work with Silverlight that’s the only choice …,[object Object],TDD or not TDD?,[object Object],What about an O/RM? Entity Framework, Nhibernate or what?,[object Object],What about security, especially if I am working with SL?,[object Object],Design patterns, is M-V-VM mandatory?,[object Object]
Layered application, why?,[object Object],Why should I use a layered application if it requires:,[object Object],More code,[object Object],More time,[object Object],More effort,[object Object],More people,[object Object],More money,[object Object]
Layered application, why?,[object Object],The application we are designing is complex or it will be complex in the future,[object Object],I need to be able to make my application scalable, maintainable and secure,[object Object],I want to split the project over multiple teams and resources,[object Object],I need to recycle as many code/features as I can,[object Object],I need to cover with test as much surface as I can,[object Object]
Layered applications,[object Object]
SOA (Service Oriented Architecture),[object Object],Real reasons,[object Object],We need to hide the datastore and the business logic,[object Object],I need to spread the business logic over different technologies (WPF, Phones, REST),[object Object],I can’t migrate everything (like AS400 …) so I need a bridge between old/new,[object Object],Developer’s reasons,[object Object],I need to get certified on WCF,[object Object],It is cool and I am the only one that doesn’t use it yet,[object Object],I can write 10 times more code to do the same thing,[object Object]
TDD Overview,[object Object]
TDD Overview. A good unit test …,[object Object],Run fast (they have short setups, run times, and break downs).,[object Object],Run in isolation (you should be able to reorder them).,[object Object],Use data that makes them easy to read and to understand.,[object Object],Use real data (e.g. copies of production data) when they need to.,[object Object],Represent one step towards your overall goal.,[object Object]
TDD Pros and Cons,[object Object],PROS,[object Object],Indicator of project’s health,[object Object],Less time to fix bugs,[object Object],You should write application using functional code,[object Object],Good documentation for you code by function/requirements,[object Object],CONS,[object Object],One change may requires more effort on fixing tests than fixing real code,[object Object],Time to write tests,[object Object],You may not always need to write applications using functional code,[object Object],Wrong test will document wrong requirement,[object Object]
O/RM, which one?,[object Object],Nhibernate, Entity Framework are free, others are not,[object Object],Nhibernate is 100% flexible but no IDE,[object Object],EF has an IDE but is not flexible,[object Object],Nhibernate has years and is open source,[object Object],EF is still not mature and it is not open source,[object Object],Nhibernate requires more experience, it is not for newbie,[object Object]
O/RM,[object Object],PROS,[object Object],You are not anymore Database technology driven,[object Object],Write applications faster, do not need ton of SQL,[object Object],Easier to test the data layer,[object Object],CONS,[object Object],Less flexibility because you can’t use all the power of a specific RDBMS,[object Object],Devs tend to forget T-SQL/PL-SQL,[object Object],The database become a simple container of data, no more logic in it,[object Object]
Security real facts, did you know?,[object Object],Most developers have no clue about security,[object Object],Most of the intranet applications are not secure at all, especially WinForm,[object Object],SOA implies an additional layer of security,[object Object],The database should also be encrypted,[object Object],A web application with “secret” data should be always SSL,[object Object],The NET framework provides tons of utilities and facilities to apply security,[object Object]
Security concerns for my application,[object Object],Authentication, how the user will authenticate against the application,[object Object],Authentication with SOA,[object Object],Authorization, are we applying also granular security rights?,[object Object],Logging, do we know what is going on? Do we have a trace?,[object Object],Data protection, is security applied also at the data tier or do we use SA in SQL?,[object Object]
M-V-VM Overview,[object Object]
M-V-VM Main concepts,[object Object],Provides separation of concerns,[object Object],It is natural pattern for XAML platforms,[object Object],Enables the developer-designer workflow,[object Object],Increases application testability,[object Object]
Resources on M-V-VM,[object Object],In the Box Visual Studio integration (SEE DEMO),[object Object],My Book,[object Object],Gary McLean’s book,[object Object],PRISM documentationhttp://compositewpf.codeplex.com/,[object Object],Josh Smith http://joshsmithonwpf.wordpress.com/,[object Object],Karl Shiffletthttp://karlshifflett.wordpress.com/,[object Object]
The Team,[object Object],How big is the team I will work with?,[object Object],How much experience do they have?Guru | Some exp. | newbie,[object Object],What was their previous project? Do they know the difference between Client (WPF) and Web (SL)?,[object Object],Is there a technology leader in the Team with some experience? ,[object Object]
The right one,[object Object],Never put too many seniors: “Too many cooks spoil the dinner”,[object Object],Never use big teams, lot of technical debates and few hours on writing code,[object Object], Put together devs that love the technology they are working with, negativity is a cancer,[object Object],Tools make a developer life easier (documentation, books, controls, …),[object Object]
Make your life easier,[object Object],Choose a set of Controls, learn it and use it! ,[object Object],Apply one pattern for the UI, learn it and use it. ,[object Object],Do not “experiment” with customer money, do what you know and avoid the unknown,[object Object],Do not over engineer, remember that the Customer can appreciate only what he can see … (a.k.a. no NASA web services),[object Object],Small steps, small releases, small iterations,[object Object]
Some tools,[object Object],Books,[object Object],Guidance,[object Object],Best practices,[object Object],Forums and Communities,[object Object]
Books,[object Object],My book ,[object Object],Architecting Applications for the Enterprise,[object Object],PRISM’s Developer Guide (MS PRESS),[object Object],WPF 4 Unleashed (Adam Nathan),[object Object],Silverlight 4 Unleashed (L. Bugnion),[object Object]
Guidance,[object Object],Codeplexhttp://wpfslguidance.codeplex.com/,[object Object],MSDN“Developers Guide to Microsoft PRISM”,[object Object],WPFhttp://windowsclient.net,[object Object],Silverlighthttp://silverlight.net,[object Object]
QA?,[object Object]

Contenu connexe

Tendances

Btb017 David
Btb017 DavidBtb017 David
Btb017 DavidRohit Ray
 
Design Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for SoftwareDesign Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for SoftwareEdureka!
 
VSTO + LOB Apps
VSTO + LOB AppsVSTO + LOB Apps
VSTO + LOB AppsJoao Livio
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presentedVijayan Reddy
 
Basic Java script handouts for students
Basic Java script handouts for students Basic Java script handouts for students
Basic Java script handouts for students shafiq sangi
 
Flash Development Guide
Flash Development GuideFlash Development Guide
Flash Development GuideStanley Fok
 
VSTO + LOB Apps Information Matters
VSTO + LOB Apps Information MattersVSTO + LOB Apps Information Matters
VSTO + LOB Apps Information MattersComunidade NetPonto
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Combell NV
 
The seven pillars of aspnet
The seven pillars of aspnetThe seven pillars of aspnet
The seven pillars of aspnetNethaji Naidu
 
Outsourcing php india
Outsourcing php indiaOutsourcing php india
Outsourcing php indiataishaaben
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework differenceiScripts
 

Tendances (13)

Btb017 David
Btb017 DavidBtb017 David
Btb017 David
 
Design Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for SoftwareDesign Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for Software
 
VSTO + LOB Apps
VSTO + LOB AppsVSTO + LOB Apps
VSTO + LOB Apps
 
Installation of Silk Test Framework
Installation of Silk Test FrameworkInstallation of Silk Test Framework
Installation of Silk Test Framework
 
Stepin evening presented
Stepin evening presentedStepin evening presented
Stepin evening presented
 
Basic Java script handouts for students
Basic Java script handouts for students Basic Java script handouts for students
Basic Java script handouts for students
 
Lotus Framework
Lotus FrameworkLotus Framework
Lotus Framework
 
Flash Development Guide
Flash Development GuideFlash Development Guide
Flash Development Guide
 
VSTO + LOB Apps Information Matters
VSTO + LOB Apps Information MattersVSTO + LOB Apps Information Matters
VSTO + LOB Apps Information Matters
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...Professional PHP: an open-source alternative for enterprise development [Antw...
Professional PHP: an open-source alternative for enterprise development [Antw...
 
The seven pillars of aspnet
The seven pillars of aspnetThe seven pillars of aspnet
The seven pillars of aspnet
 
Outsourcing php india
Outsourcing php indiaOutsourcing php india
Outsourcing php india
 
PHP framework difference
PHP framework differencePHP framework difference
PHP framework difference
 

Similaire à NET Event - Migrating WinForm

Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightFrank La Vigne
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAlphageeks
 
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationStream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationstreambase
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development Shean McManus
 
Buzzword, How'd They Build That?
Buzzword, How'd They Build That?Buzzword, How'd They Build That?
Buzzword, How'd They Build That?dcoletta
 
WPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these daysWPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these daysDave Bost
 
Building A Platform From Open Source At Yahoo
Building A Platform From Open Source At YahooBuilding A Platform From Open Source At Yahoo
Building A Platform From Open Source At YahooDustin Whittle
 
Windows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentWindows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentChristos Matskas
 
Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)dcoletta
 
Data Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsData Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsDave Allen
 
Web application framework
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedDave Bost
 
A Developer Day 2014 - Durban
A Developer Day 2014 - Durban A Developer Day 2014 - Durban
A Developer Day 2014 - Durban Robert MacLean
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them AllFrank La Vigne
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software EngineerSean Coates
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 

Similaire à NET Event - Migrating WinForm (20)

Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex Intro
 
Stream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentationStream SQL eventflow visual programming for real programmers presentation
Stream SQL eventflow visual programming for real programmers presentation
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
PHP and Silverlight
PHP and SilverlightPHP and Silverlight
PHP and Silverlight
 
Buzzword, How'd They Build That?
Buzzword, How'd They Build That?Buzzword, How'd They Build That?
Buzzword, How'd They Build That?
 
WPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these daysWPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these days
 
Building A Platform From Open Source At Yahoo
Building A Platform From Open Source At YahooBuilding A Platform From Open Source At Yahoo
Building A Platform From Open Source At Yahoo
 
Windows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentWindows Phone and Windows 8 application development
Windows Phone and Windows 8 application development
 
Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)
 
Data Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight ApplicationsData Driven WPF and Silverlight Applications
Data Driven WPF and Silverlight Applications
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
MSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF DemystifiedMSDN Unleashed: WPF Demystified
MSDN Unleashed: WPF Demystified
 
A Developer Day 2014 - Durban
A Developer Day 2014 - Durban A Developer Day 2014 - Durban
A Developer Day 2014 - Durban
 
XAML: One Language to Rule Them All
XAML: One Language to Rule Them AllXAML: One Language to Rule Them All
XAML: One Language to Rule Them All
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
 
dot net
dot netdot net
dot net
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 

Dernier

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 

Dernier (20)

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 

NET Event - Migrating WinForm

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.

Notes de l'éditeur

  1. Topics that we will analyze in this workshop:Why we want to migrate an application? Do we really need to?Why we should use one technology instead of another one? Silverlight, WPF, what else?Is Windows Form dead? What about SL?Why we should choose one design instead of another one? Should I use an O/RM, shouldn’t I? Should I use SOA, shouldn’t I?Is my team ready for a new technology? If it’s not ready, what should I do?Some useful tools and links
  2. Who I am, what is my experience and my backgroundHow you can reach me, what I write in my blogWhere I work, what do I do thereDifferences between software developer and architect
  3. Why two different booksWhat do I talk about in the microsoft book?LayeringDesign patternsDALDDDTDDBLLMVVMWhat in the second one?WPFLayeringBlendEntity FrameworkWCFStylesDataTemplate
  4. Topics that we will analyze in this workshop:Why we want to migrate an application? Do we really need to?Why we should use one technology instead of another one? Silverlight, WPF, what else?Is Windows Form dead? What about SL?Why we should choose one design instead of another one? Should I use an O/RM, shouldn’t I? Should I use SOA, shouldn’t I?Is my team ready for a new technology? If it’s not ready, what should I do?Some useful tools and links
  5. I have a legacy application in Windows Form and I do not have the time to migrate or change itso it would be easier to add an additional component or module in WPF/SL and leave the old application as isI have a very old application that can’t be kept alive as is, so I need to re-write itThe technology I am using, like Windows Form, has some big limits and I can’t go over these limitsThe Customer wants an application using a new technology because it will guarantee a more durable lifeWhy should I use an old technology with a new project?
  6. Remember that the budget if fundamental. I can’t invest 6 months for an application that is already working just because I want to move into a new technology. The customer will not understand this business decision. I need to provide a real reason.Microsoft has designed WPF and SL and Windows Form in a way that the compatibility will be kept alive. This was the first target and this is the reason there isn’t an official tool to migrate from Win Form to WPF. You simply do not need it!
  7. There are tons of active projects written in Windows Form, in C++ and of course Microsoft can’t get rid of sucha technology in one shotRemember about VB6 to NET 2003If you were working with VBx before, Win Form is the natural next move. Same IDE, same way of handling methods, eventsJust more OOPIt is not dead but it won’t work forever. Consider what happened to Windows Phone. Windows CE 6 is not dead but the new phones will work on WP7 (Silverlight)Windows Form runs on Windows 7 but rumors say that in the future only WPF and SL will run on the next versions of Windows (they are rumors)At the PDC 2010 Microsoft didn’t talk at all about Windows Form. Guess why?It is an old technology and if you move to WPF you will have tons of advantages, right away
  8. Standalone means that it runs on a Client, it doesn’t need necessarily a web connection andit doesn’t need a browser and so on … Less security implied because it doesn’t use the internet. Less portable …SL is designed for the web and WP7 for the phones. SO different technology for different audience!WPF is a Windows technology while Silverlight is cross platform, cross device but with some limitationsWPF is more powerful but Silverlight is more feasible for Web and MediaWPF is for core developers, Silverlight is for web developers because it is a web technology
  9. Some demo with Windows Form. The UI loads slower because it takes more timeSome demo with WPF, better UI but more CPU usageSome silvelright demo, good but on IE they looks different than in chromeSHOW INSTALL SL LOCALLYSHOW WPF and SL showcases
  10. Should I stick the code inside the WPF view or should I use a layered architectureWhen it is the case of working with SOA, when it is not the caseTest Driven is a waste of time or it is notWhat are the advantages of using an O/RM and why we should use itWhat are the considerations about security that I should do especially with Silverlight and SOAAre design patterns mandatory?