SlideShare a Scribd company logo
1 of 79
 Krzysztof Cwalina Program Manager Microsoft Corporation http://blogs.msdn.com/kcwalina   ,[object Object],[object Object],[object Object]
 
Dow Jones Industrial Average @ 9,000
Dow Jones Industrial Average @ 9,000
 
 
[object Object],[object Object],[object Object],[object Object],[object Object]
public class XmlFile {  string filename;  Stream data;  public XmlFile(string filename) {   this.data = DownloadData(filename); } } public XmlFile(string filename) {   this.filename = filename;  } lazy
public class ArrayList {  public int Count {get;} }
 
EmployeeList l = FillList(); for (int i = 0; i < l.Length; i++){ if (l.All[i] == x){...} } if (l.GetAll()[i]== x) {...} public Employee[] All {get{}} public Employee[] GetAll() {} Moral: Use method if the operation is expensive  Calling Code
 
 
 
 
 
 
 
 
 
 
 
 
Time to cut…
 
 
 
public class TheBase : Object { public override string ToString() { return “Hello from the Base&quot;; } } public class Derived : TheBase { public override string ToString() { return “Hello from Derived&quot;; } }
Derived d = new Derived(); Console.WriteLine (d.ToString()); TheBase tb = d; Console.WriteLine (tb.ToString()); Object o = tb; Console.WriteLine (o.ToString());
 
[object Object],[object Object],[object Object]
Barbara Liskov
public interface IComparable {   int CompareTo(object obj); }
 
 
Careful dependency management is the necessary ingredient to successful evolution of frameworks. Without it, frameworks quickly deteriorate and are forced out of relevance prematurely.
 
   BCL WPF XML Reflection
 
 
 
 
 
 
 
 
Climbing a mountain?
Scaling a peak?
Running across a desert?
Falling into a pit?
 
 
 
 
 
 
 
 
 
 
[object Object]
 
 
 
 
The Power of Sameness
[object Object],[object Object],[object Object]
public class MemberDoc { public  int CompareTo(object value)  public s tring Name { get;} }
public class CMyClass {   int CompareTo (object objValue) {..}   string lpstrName {get;}   int iValue {get;} }
 
 
 
 
 
 
Brad Abrams http://blogs.msdn.com/brada   Krzysztof Cwalina http://blogs.msdn.com/kcwalina   Please fill out  the session  evals!
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

What's hot

0331. Podvodno čUdovišTe
0331. Podvodno čUdovišTe0331. Podvodno čUdovišTe
0331. Podvodno čUdovišTe
Tompa *
 
الرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعة
الرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعةالرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعة
الرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعة
saudi507
 
Lms 0218 kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...
Lms 0218   kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...Lms 0218   kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...
Lms 0218 kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...
zoran radovic
 

What's hot (20)

Vajat erp 125
Vajat erp 125Vajat erp 125
Vajat erp 125
 
Quran para 11 for Kindle
Quran para 11 for KindleQuran para 11 for Kindle
Quran para 11 for Kindle
 
Alan Ford 105 - Piroman
Alan Ford 105 - PiromanAlan Ford 105 - Piroman
Alan Ford 105 - Piroman
 
Quran para 18 for Kindle
Quran para 18 for KindleQuran para 18 for Kindle
Quran para 18 for Kindle
 
Quran para 10 for Kindle
Quran para 10 for KindleQuran para 10 for Kindle
Quran para 10 for Kindle
 
John petrucci rock discipline
John petrucci   rock disciplineJohn petrucci   rock discipline
John petrucci rock discipline
 
Catálogo Oriflame Costa Rica Octubre 2022
Catálogo Oriflame Costa Rica Octubre 2022Catálogo Oriflame Costa Rica Octubre 2022
Catálogo Oriflame Costa Rica Octubre 2022
 
Zagor - Čovek iz Maverika (VČ S 25)
Zagor - Čovek iz Maverika (VČ S 25)Zagor - Čovek iz Maverika (VČ S 25)
Zagor - Čovek iz Maverika (VČ S 25)
 
Quran para 20 for Kindle
Quran para 20 for KindleQuran para 20 for Kindle
Quran para 20 for Kindle
 
0331. Podvodno čUdovišTe
0331. Podvodno čUdovišTe0331. Podvodno čUdovišTe
0331. Podvodno čUdovišTe
 
الرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعة
الرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعةالرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعة
الرسام الايراني ايمان المالكي..29 لوحة رسم بالزيت..لوحات اكثر من رائعة
 
Mtech - Degree Certificate
Mtech - Degree CertificateMtech - Degree Certificate
Mtech - Degree Certificate
 
Surah Inshirah pdf
Surah Inshirah pdfSurah Inshirah pdf
Surah Inshirah pdf
 
اردو ترجمہ و تفسير ( المائدة ) ٥ سورۃ القرآن [PDF] ┇ Quran Surah 5 Al-Maidah...
اردو  ترجمہ و تفسير ( المائدة ) ٥ سورۃ القرآن [PDF] ┇ Quran Surah 5 Al-Maidah...اردو  ترجمہ و تفسير ( المائدة ) ٥ سورۃ القرآن [PDF] ┇ Quran Surah 5 Al-Maidah...
اردو ترجمہ و تفسير ( المائدة ) ٥ سورۃ القرآن [PDF] ┇ Quran Surah 5 Al-Maidah...
 
Shah e khuban (by)saim chishti naat research center
Shah e khuban (by)saim chishti naat  research centerShah e khuban (by)saim chishti naat  research center
Shah e khuban (by)saim chishti naat research center
 
10 CERTIFICATE (1)
10 CERTIFICATE (1)10 CERTIFICATE (1)
10 CERTIFICATE (1)
 
Lms 0218 kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...
Lms 0218   kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...Lms 0218   kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...
Lms 0218 kit teler - covek s plastom (scanturion &amp; stbojsa &amp; emeri)...
 
Dylan dog 12 emet
Dylan dog 12   emetDylan dog 12   emet
Dylan dog 12 emet
 
15 tabarak
15 tabarak15 tabarak
15 tabarak
 
Supernatural 6.13 Unforgiven script
Supernatural 6.13 Unforgiven scriptSupernatural 6.13 Unforgiven script
Supernatural 6.13 Unforgiven script
 

Similar to Framework Design Guidelines

A Sceptical Guide to Functional Programming
A Sceptical Guide to Functional ProgrammingA Sceptical Guide to Functional Programming
A Sceptical Guide to Functional Programming
Garth Gilmour
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
Jussi Pohjolainen
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
Lars Albertsson
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
intelliyole
 
Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010
Andres Almiray
 

Similar to Framework Design Guidelines (20)

Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
A Sceptical Guide to Functional Programming
A Sceptical Guide to Functional ProgrammingA Sceptical Guide to Functional Programming
A Sceptical Guide to Functional Programming
 
Ocl 09
Ocl 09Ocl 09
Ocl 09
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
 
"Final fsFighting Complex Application State Management with Finite-State Mach...
"Final fsFighting Complex Application State Management with Finite-State Mach..."Final fsFighting Complex Application State Management with Finite-State Mach...
"Final fsFighting Complex Application State Management with Finite-State Mach...
 
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsKotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projects
 
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
 
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
End-to-end Big Data Projects with Python - StampedeCon Big Data Conference 2017
 
Oop2010 Scala Presentation Stal
Oop2010 Scala Presentation StalOop2010 Scala Presentation Stal
Oop2010 Scala Presentation Stal
 
Map, flatmap and reduce are your new best friends (javaone, svcc)
Map, flatmap and reduce are your new best friends (javaone, svcc)Map, flatmap and reduce are your new best friends (javaone, svcc)
Map, flatmap and reduce are your new best friends (javaone, svcc)
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
 
Graph Database Query Languages
Graph Database Query LanguagesGraph Database Query Languages
Graph Database Query Languages
 
The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015The curious Life of JavaScript - Talk at SI-SE 2015
The curious Life of JavaScript - Talk at SI-SE 2015
 
ORM JPA
ORM JPAORM JPA
ORM JPA
 
Stepping Up : A Brief Intro to Scala
Stepping Up : A Brief Intro to ScalaStepping Up : A Brief Intro to Scala
Stepping Up : A Brief Intro to Scala
 
Object-oriented Basics
Object-oriented BasicsObject-oriented Basics
Object-oriented Basics
 
Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concu...
Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concu...Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concu...
Map, Flatmap and Reduce are Your New Best Friends: Simpler Collections, Concu...
 
Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010Polyglot Programming @ Jax.de 2010
Polyglot Programming @ Jax.de 2010
 
Intro to Spark and Spark SQL
Intro to Spark and Spark SQLIntro to Spark and Spark SQL
Intro to Spark and Spark SQL
 

Recently uploaded

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Framework Design Guidelines

Editor's Notes

  1. 06/05/09 19:20 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.