SlideShare a Scribd company logo
Разработка приложений с использованием Workflow Foundation Максим Игнатов e-Legion Ltd. mail: maxim.ignatov@e-legion.com www.e-legion.com 1
Human Resource Management System www.e-legion.com 2
Цели Узкие места WF Варианты решений www.e-legion.com 3 http://www.flickr.com/photos/lofink/4501610335/
Ретроспектива ADD Conf Хочется НЕ хочется Готовый продукт Well Done Новая технология How To www.e-legion.com 4 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Коротко о возможностях WF Бизнес-процесс – как отдельная сущность Long running process Гибкий фрэймворк Интеграция с другими технологиями www.e-legion.com 5 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Xaml or Assembly www.e-legion.com 7 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Транзакционность процессов www.e-legion.com 8 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Custom Activity www.e-legion.com 9 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
AppFabric www.e-legion.com 10 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Примеры RSS Reader Factorial Calculator Approval Process Много, много, много других примеров www.e-legion.com 11 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
RSS Reader Xaml WF definition Передача в WF объектов 0 ветвлений бизнес-процесса http://www.techdays.ru/videos/2470.html www.e-legion.com 12 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
www.e-legion.com 13 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
RSS Reader www.e-legion.com 14 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
http://www.flickr.com/photos/lofink/4501610335/
Factorial Calculator Xaml WF definition Передача в WF объектов 0 ветвлений бизнес-процесса http://www.techdays.ru/videos/2470.html www.e-legion.com 16 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
www.e-legion.com 17 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Factorial Calculator www.e-legion.com 18 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Approval process Code WF definition – 2 штука  Передача в WF объектов Разветвленный бизнес-процесс WCF взаимодействие www.e-legion.com 19 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
http://www.flickr.com/photos/lofink/4501610335/
Approval process Typed Arguments WF Transferred objects Database objects Contract types Custom Activities www.e-legion.com 21 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Подходы к проектированию WF Разделить процессы на подпроцессы Единый процесс на все www.e-legion.com 23 23 http://www.flickr.com/photos/lofink/4501610335/
http://www.flickr.com/photos/lofink/4501610335/
http://www.flickr.com/photos/lofink/4501610335/
Процессы на подпроцессы Удачно соотносится с моделью данных Логически понятней Менее “тяжеловесный”WF Нужна логика маршрутизации к нужным WF www.e-legion.com 26 26 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Единый процесс на все Маршрутизация к WF не требуется Модель “размазана”на весь WF Более “тяжеловесный”WF www.e-legion.com 27 27 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Что если? Когда в WF изменилась логика Когда в WF изменились входные или выходные параметры Когда в WF + WCF поменялось OperationName Изменили базу данных Typed Arguments WF Transferred objects Database objects Contract types Custom Activities www.e-legion.com 28 28 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
О чем пойдет речь Версионность процессов Поддержка старых процессов Миграция www.e-legion.com 29 29 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 30 30
ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 31 31
ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 32 32
ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 33 33
ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 34 34
ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 35 35
http://www.flickr.com/photos/lofink/4501610335/
Ограничения WF не должен содержать внутри нестандартных типов данных WF должен уметь перейти в любое из возможных состояний Сборки лучше не подписывать www.e-legion.com 39 39 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Biztalk with HWS www.e-legion.com 40 40 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Sharepoint www.e-legion.com 41 41 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
Спасибо за внимание Максим Игнатов e-Legion Ltd. maxim.ignatov@e-legion.com www.e-legion.com 42 42 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/

More Related Content

Similar to Максим Игнатов «Windows Worflow Foundation»

About Flink streaming
About Flink streamingAbout Flink streaming
About Flink streaming
용휘 김
 
PloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, FuturePloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, Future
Steve McMahon
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
ifour_bhavesh
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex Intro
Alphageeks
 
Register For BOFC Live Webinar – Bulk Clone Operations
Register For BOFC Live Webinar – Bulk Clone OperationsRegister For BOFC Live Webinar – Bulk Clone Operations
Register For BOFC Live Webinar – Bulk Clone Operations
Atocloud
 
Osvrt Na Adobe Max 2009
Osvrt Na Adobe Max 2009Osvrt Na Adobe Max 2009
Osvrt Na Adobe Max 2009
Ivan Ilijasic
 
Flask
FlaskFlask
Software Craftsmanship - 1 Meeting
Software Craftsmanship - 1 MeetingSoftware Craftsmanship - 1 Meeting
Software Craftsmanship - 1 Meeting
Uri Lavi
 
Getting Started with Flex and PHP
Getting Started with Flex and PHPGetting Started with Flex and PHP
Getting Started with Flex and PHP
Ryan Stewart
 
Introducción a la agilidad
Introducción a la agilidadIntroducción a la agilidad
Introducción a la agilidad
Agile Spain
 
POS 355 Entire Course NEW
POS 355 Entire Course NEWPOS 355 Entire Course NEW
POS 355 Entire Course NEW
shyamuopuopeleven
 
Enterprise Flex Using Cairngorm
Enterprise Flex Using CairngormEnterprise Flex Using Cairngorm
Enterprise Flex Using Cairngorm
Jaibeer Malik
 
Contextual Tour of Plone - (a top open source web content management system)
Contextual   Tour of Plone - (a top open source web content management system)Contextual   Tour of Plone - (a top open source web content management system)
Contextual Tour of Plone - (a top open source web content management system)
Ken Wasetis
 
Toward firefox 4
Toward firefox 4Toward firefox 4
Toward firefox 4
dynamis
 
HTML5 & Web Platform
HTML5 & Web PlatformHTML5 & Web Platform
HTML5 & Web Platform
SwapSkills
 
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web AppsDevoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Max Katz
 
Introduction To Adobe Flex And Semantic Resources
Introduction To Adobe Flex And Semantic ResourcesIntroduction To Adobe Flex And Semantic Resources
Introduction To Adobe Flex And Semantic Resources
keith_sutton100
 
Mastering sp fx in larger projects yannick borghmans
Mastering sp fx in larger projects   yannick borghmansMastering sp fx in larger projects   yannick borghmans
Mastering sp fx in larger projects yannick borghmans
Yannick Borghmans
 

Similar to Максим Игнатов «Windows Worflow Foundation» (20)

About Flink streaming
About Flink streamingAbout Flink streaming
About Flink streaming
 
PloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, FuturePloneFormGen: Past, Present, Future
PloneFormGen: Past, Present, Future
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
 
Afik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex Intro
 
Register For BOFC Live Webinar – Bulk Clone Operations
Register For BOFC Live Webinar – Bulk Clone OperationsRegister For BOFC Live Webinar – Bulk Clone Operations
Register For BOFC Live Webinar – Bulk Clone Operations
 
Osvrt Na Adobe Max 2009
Osvrt Na Adobe Max 2009Osvrt Na Adobe Max 2009
Osvrt Na Adobe Max 2009
 
Flask
FlaskFlask
Flask
 
Software Craftsmanship - 1 Meeting
Software Craftsmanship - 1 MeetingSoftware Craftsmanship - 1 Meeting
Software Craftsmanship - 1 Meeting
 
Velocity Report 2009
Velocity Report 2009Velocity Report 2009
Velocity Report 2009
 
Getting Started with Flex and PHP
Getting Started with Flex and PHPGetting Started with Flex and PHP
Getting Started with Flex and PHP
 
Introducción a la agilidad
Introducción a la agilidadIntroducción a la agilidad
Introducción a la agilidad
 
POS 355 Entire Course NEW
POS 355 Entire Course NEWPOS 355 Entire Course NEW
POS 355 Entire Course NEW
 
Enterprise Flex Using Cairngorm
Enterprise Flex Using CairngormEnterprise Flex Using Cairngorm
Enterprise Flex Using Cairngorm
 
Contextual Tour of Plone - (a top open source web content management system)
Contextual   Tour of Plone - (a top open source web content management system)Contextual   Tour of Plone - (a top open source web content management system)
Contextual Tour of Plone - (a top open source web content management system)
 
Toward firefox 4
Toward firefox 4Toward firefox 4
Toward firefox 4
 
Performance with Selenium2
Performance with Selenium2Performance with Selenium2
Performance with Selenium2
 
HTML5 & Web Platform
HTML5 & Web PlatformHTML5 & Web Platform
HTML5 & Web Platform
 
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web AppsDevoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
Devoxx2010 - Mobile Development Choices: Native Apps vs Web Apps
 
Introduction To Adobe Flex And Semantic Resources
Introduction To Adobe Flex And Semantic ResourcesIntroduction To Adobe Flex And Semantic Resources
Introduction To Adobe Flex And Semantic Resources
 
Mastering sp fx in larger projects yannick borghmans
Mastering sp fx in larger projects   yannick borghmansMastering sp fx in larger projects   yannick borghmans
Mastering sp fx in larger projects yannick borghmans
 

More from e-Legion

MBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, PureMBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, Pure
e-Legion
 
MBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetricaMBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetrica
e-Legion
 
MBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba MobileMBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba Mobile
e-Legion
 
MBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha RestoranyMBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha Restorany
e-Legion
 
MBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500StartupsMBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500Startups
e-Legion
 
MBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, AviasalesMBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, Aviasales
e-Legion
 
MBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank OnlineMBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank Online
e-Legion
 
Rx Java architecture
Rx Java architectureRx Java architecture
Rx Java architecture
e-Legion
 
Rx java
Rx javaRx java
Rx java
e-Legion
 
MBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, SpotifyMBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, Spotify
e-Legion
 
MBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, WunderlistMBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, Wunderlist
e-Legion
 
MBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, SoundcloudMBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, Soundcloud
e-Legion
 
MBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&CoMBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&Co
e-Legion
 
MBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, PostforpostMBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, Postforpost
e-Legion
 
MBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, ParallelsMBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, Parallels
e-Legion
 
MBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DITMBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DIT
e-Legion
 
MBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, LitresMBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, Litres
e-Legion
 
MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box
e-Legion
 
MBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, MicrosoftMBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, Microsoft
e-Legion
 
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
e-Legion
 

More from e-Legion (20)

MBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, PureMBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, Pure
 
MBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetricaMBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetrica
 
MBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba MobileMBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba Mobile
 
MBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha RestoranyMBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha Restorany
 
MBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500StartupsMBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500Startups
 
MBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, AviasalesMBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, Aviasales
 
MBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank OnlineMBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank Online
 
Rx Java architecture
Rx Java architectureRx Java architecture
Rx Java architecture
 
Rx java
Rx javaRx java
Rx java
 
MBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, SpotifyMBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, Spotify
 
MBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, WunderlistMBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, Wunderlist
 
MBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, SoundcloudMBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, Soundcloud
 
MBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&CoMBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&Co
 
MBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, PostforpostMBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, Postforpost
 
MBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, ParallelsMBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, Parallels
 
MBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DITMBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DIT
 
MBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, LitresMBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, Litres
 
MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box
 
MBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, MicrosoftMBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, Microsoft
 
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Максим Игнатов «Windows Worflow Foundation»

  • 1. Разработка приложений с использованием Workflow Foundation Максим Игнатов e-Legion Ltd. mail: maxim.ignatov@e-legion.com www.e-legion.com 1
  • 2. Human Resource Management System www.e-legion.com 2
  • 3. Цели Узкие места WF Варианты решений www.e-legion.com 3 http://www.flickr.com/photos/lofink/4501610335/
  • 4. Ретроспектива ADD Conf Хочется НЕ хочется Готовый продукт Well Done Новая технология How To www.e-legion.com 4 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 5. Коротко о возможностях WF Бизнес-процесс – как отдельная сущность Long running process Гибкий фрэймворк Интеграция с другими технологиями www.e-legion.com 5 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 6.
  • 7. Xaml or Assembly www.e-legion.com 7 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 8. Транзакционность процессов www.e-legion.com 8 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 9. Custom Activity www.e-legion.com 9 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 10. AppFabric www.e-legion.com 10 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 11. Примеры RSS Reader Factorial Calculator Approval Process Много, много, много других примеров www.e-legion.com 11 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 12. RSS Reader Xaml WF definition Передача в WF объектов 0 ветвлений бизнес-процесса http://www.techdays.ru/videos/2470.html www.e-legion.com 12 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 13. www.e-legion.com 13 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 14. RSS Reader www.e-legion.com 14 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 16. Factorial Calculator Xaml WF definition Передача в WF объектов 0 ветвлений бизнес-процесса http://www.techdays.ru/videos/2470.html www.e-legion.com 16 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 17. www.e-legion.com 17 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 18. Factorial Calculator www.e-legion.com 18 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 19. Approval process Code WF definition – 2 штука  Передача в WF объектов Разветвленный бизнес-процесс WCF взаимодействие www.e-legion.com 19 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 21. Approval process Typed Arguments WF Transferred objects Database objects Contract types Custom Activities www.e-legion.com 21 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 22.
  • 23. Подходы к проектированию WF Разделить процессы на подпроцессы Единый процесс на все www.e-legion.com 23 23 http://www.flickr.com/photos/lofink/4501610335/
  • 26. Процессы на подпроцессы Удачно соотносится с моделью данных Логически понятней Менее “тяжеловесный”WF Нужна логика маршрутизации к нужным WF www.e-legion.com 26 26 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 27. Единый процесс на все Маршрутизация к WF не требуется Модель “размазана”на весь WF Более “тяжеловесный”WF www.e-legion.com 27 27 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 28. Что если? Когда в WF изменилась логика Когда в WF изменились входные или выходные параметры Когда в WF + WCF поменялось OperationName Изменили базу данных Typed Arguments WF Transferred objects Database objects Contract types Custom Activities www.e-legion.com 28 28 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 29. О чем пойдет речь Версионность процессов Поддержка старых процессов Миграция www.e-legion.com 29 29 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 30. ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 30 30
  • 31. ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 31 31
  • 32. ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 32 32
  • 33. ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 33 33
  • 34. ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 34 34
  • 35. ASP Pages DAL Services Get Actions Do Action WF Services Migrate XAML Service Save To DB Load From DB Load WF Persist WF Resume Bookmark WF Loader www.e-legion.com 35 35
  • 37.
  • 38.
  • 39. Ограничения WF не должен содержать внутри нестандартных типов данных WF должен уметь перейти в любое из возможных состояний Сборки лучше не подписывать www.e-legion.com 39 39 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 40. Biztalk with HWS www.e-legion.com 40 40 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 41. Sharepoint www.e-legion.com 41 41 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/
  • 42. Спасибо за внимание Максим Игнатов e-Legion Ltd. maxim.ignatov@e-legion.com www.e-legion.com 42 42 http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/ http://www.flickr.com/photos/lofink/4501610335/