SlideShare a Scribd company logo
Social media platform with
         Telligent Community, WCF
             RESTful and Sitecore

                     Ovidiu Stan, Software Architect




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
ITCamp 2012 sponsors                                                       Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Agenda                                                                     Mobile &
                                                                           Development




•   SvS – The Business (Requirements)
•   SvS – The Solution (Architecture)
•   Telligent Community – Short Intro
•   WCF RESTfull API
•   Akamai CDN
•   Sitecore CMS – Short Intro



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
The Business                                                                                                 Mobile &
                                                                                                             Development


•       The client: Cadbury
         –       Biggest UK chocolate manufaturer, World’s second
         –       Official Trait Provider for London 2012 Olympics




    •    The campaign: “Spots vs Stripes” (SvS)
             –    “Biggest funest game ever”
             –    “Cadbury is inviting the nation to divide into two teams, Spots v Stripes and play all sorts of games in the
                  run up to the Olympic and Paralympic Games in 2012”




@       itcampro             # itcamp12                Premium conference on Microsoft technologies
Spots v Stripes Campaign                                                                Mobile &
                                                                                        Development

•   Much more than just software:
•   Real world events & games
•   TV ads, TV Show participation (e.g. NBC’s Minutes To Win It)
•   Rich presence on social networks: YouTube channels, Facebook, Twitter
•   Prizes: Olympics tickets, sweets, cash




@   itcampro        # itcamp12           Premium conference on Microsoft technologies
System Requirements                                                        Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Spots v Stripe – Games                                                      Mobile &
                                                                            Development


Flash Games                                                          Real World Games




                                   Points

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
SvS Architecture – High Level                                              Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
API Platform - Architecture                                                Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
API Platform - Architecture                                                Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
SvS Architecture - Infrastructure                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                                       Mobile &
                                                                                        Development


                        www.telligent.com

• Ready-to-use Social Network/Community portal with features like:
         •   Profiles
         •   Groups
         •   Friends/Connections
         •   Blogs, Wikis, Forums
         •   Search
         •   RSS Feeds
         •   Administration: user management, content management
         •   Moderation

• Extensible platform allowing customization at two levels:
         • UI: new pages, custom widgets, cutom themes
         • API: RESTful API exposing most of the platform functionality:
               – 3rd party integration
               – New UI functionality




@   itcampro      # itcamp12             Premium conference on Microsoft technologies
Telligent Community – Short Intro                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                          Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                           Mobile &
                                                                            Development

Creating Custom Widgets




@   itcampro    # itcamp12   Premium conference on Microsoft technologies
Telligent Community – Short Intro                                                 Mobile &
                                                                                  Development

1. Derive from ExternallyImplementedConfigurableContentFragmentBase




@   itcampro    # itcamp12         Premium conference on Microsoft technologies
Telligent Community – Short Intro                                                                     Mobile &
                                                                                                      Development

 2. Implement PollsWidget.ascx and access property values




 3. Compile the web app and deploy it
         All widgets implement IContentFragment interface.
         The available base classes (including ExternallyImplementedContentFragmentBase) implements it too.
         When Telligent loads, it finds all the classes from /bin folder that implement this interface



  Widget base classes:
         ContentFragmentBase – no config values and no external ascx file.
         ConfigurableContentFragmentBase – has config values bu no external ascx file.
         ExternallyImplementedContentFragmentBase – external ascx file, no config values
         ExternallyImplementedConfigurableContentFragmentBase – external ascx file and config vlues

      For the first two, controls are added by overriding:
           AddContentControls(System.Web.UI.Control control)



@   itcampro          # itcamp12                Premium conference on Microsoft technologies
Telligent Community – Short Intro                                                 Mobile &
                                                                                  Development

• Telligent Community Platform API - Example




@   itcampro    # itcamp12         Premium conference on Microsoft technologies
Telligent Community – Short Intro                                                Mobile &
                                                                                 Development


• Platform API categories:
      Users
           Add user: POST api.ashx/v2/users.xml (or .json)
           Delete user: POST (Header: DELETE)api.ashx/v2/users/{username}.xml (or
            .json)
           Validate user password
           etc…
        Activity messages
        Followers
        Groups
        Blog posts and comments
        Forum
        Wiki
        Content Search
        etc…


@   itcampro     # itcamp12       Premium conference on Microsoft technologies
Telligent Community – Short Intro                                                         Mobile &
                                                                                          Development

•   SvS.CommunityClient (façade): wraps some of the Telligent’s API




@    itcampro        # itcamp12            Premium conference on Microsoft technologies
API Platform – RESTful Services                                                        Mobile &
                                                                                       Development


• RESTful web services - key concepts
     o Statelessness:
          By design, RESTful services are stateless
          No storage on server between requests
          All information needed is in the request
     o Resources:
          The services act upon resources
          Each resource must have in ID resulting in a URI
          Example: Users, groups, status messages
     o Representation of data:
          The same resource can have multiple representations
          Example: user detail and follower detail
     o By design work over HTTP.
     o Use standart HTTP verbs for the operations:
         • GET, POST, PUT, DELETE
         • POST can be used to do any updates, including additions and deletions




@   itcampro      # itcamp12            Premium conference on Microsoft technologies
API Platform – WCF RESTful                                                       Mobile &
                                                                                 Development



• WS-* vs RESTful
     • WCF: WSHttpBinding vs WebHttpBinding
     • Arguments for RESTful in this project:
         • Callers are mostly client side elements: flash games, javascript (Ajax
           with JQuery)
         • Light messages
         • Both XML and JSON message format are required
         • Easier to be used by clients (SOAP is hard to use without proxy
           generation)
         • WS-* advanced features were not necessary: transaction, federation,
           etc.
• Alternatives to WebHttpBinding:
     • ASP.NET Web API – part of ASP.NET MVC 4 Beta


@   itcampro    # itcamp12        Premium conference on Microsoft technologies
API Platform – WCF RESTful                                                       Mobile &
                                                                                 Development



• WS-* vs RESTful
     • WCF: WSHttpBinding vs WebHttpBinding
     • Arguments for RESTful in this project:
         • Callers are mostly client side elements: flash games, javascript (Ajax
           with JQuery)
         • Light messages
         • Both XML and JSON message format are required
         • Easier to be used by clients (SOAP is hard to use without proxy
           generation)
         • WS-* advanced features were not necessary: transaction, federation,
           etc.
• Alternatives to WebHttpBinding:
     • ASP.NET Web API – part of ASP.NET MVC 4 Beta


@   itcampro    # itcamp12        Premium conference on Microsoft technologies
API Platform – Examples                                                          Mobile &
                                                                                 Development


•   GET searchUser/{searchText}



                                    Response:




•   POST user/supporting/add         Request:




•   POST submitmultiplayergame/      Request:



     Response:




@   itcampro     # itcamp12       Premium conference on Microsoft technologies
API Platform – Security                                                           Mobile &
                                                                                  Development

API Security - Requirements
• Client applications authentication & authorization:
     o Protected API methods can be accessed only by authorized client apps.
     o The client apps will be identified based on a application name and a private
       key.
• Message integrity
     o The data from the request cannot be modified by 3rd parties
     o For example the Score parameter for the SubmitGame method
• End User authentication
     o Some API methods require to be executed in the context of an end user
     o For these methods, both the caller app and the user it’s impersonating must
       be authenticated
• Avoid replay attacks
     o repeating valid requests either by the originator or by a third who intercepts
       the request



@   itcampro     # itcamp12        Premium conference on Microsoft technologies
API Platform – Security                                                                    Mobile &
                                                                                           Development

API Security - Implementation
                                                                Client Apps Table
 Keep the client apps in a DB table
     •   AppName – unique for each client                       AppName           ApiKey
                                                                ClientApp1        rjvm4Y8hrKkJwfM
 Generate and provide the client apps                          ClientApp2        NmD9BaDk6uS5OkS
  developers with a private key (ApiKey)
                                                                ClientApp3        L6EYXMQAEMKHcbh


 Require the callers to embed this info in the request:

 HTTP Header                                    •   ApplicationName – client app name
                                                •   UserName – SvS user the caller is impersonating
 SvS-Authorization:                             •   Nonce – timestamp, different for each request
      application=<ApplicationName>,            •   Signature =
      user=<UserName>,                                     MD5(ApiKey, SessionId, Nonce)
      nonce=<Timestamp>,                                   SessionId: provided by Login API method
      signature=<md5hash>



@   itcampro        # itcamp12              Premium conference on Microsoft technologies
API Platform - Security                                                                           Mobile &
                                                                                                  Development

API Security - Implementation
                                                                    Cache: List of UserSession
 API Method: Login(userName, password)                               User      SessionId          Nonce
     •       Authorize caller (client application)                    Name
     •       Validate userName & password against SvS DB and
             Telligent                                                User1     Brgsi4KR8f3BeVj    88258960234
     •       Generate a SessionId and stores it in the cache
                                                                      User2     D67NZwChfBT7Z08    88258960236
     •       Return the SessionId to the caller
                                                                      User3     kUGSpND68kVWlJ5    88258960238


  Authorize() – internal method (called from each API Method)                                 Expire: 15 mins
         •   Look up the <ApplicationName> in ClientApps table
         •   Look up <UserName> in Cache
         •   Compare provided <Nonce> with session Nonce
         •   Update session Nonce
         •   Calculate signature in the same way as the client has done it:
                           MD5(ApiKey, SessionId, Nonce)
         •   Compare the signatures


  Alternatives: SSL, OAuth


@   itcampro            # itcamp12              Premium conference on Microsoft technologies
API Platform – Code Sample                                                                    Mobile &
                                                                                              Development
     Register Service Routes: Hub.Services.Api.Web / Global.asax / Application_Start




    Service Contract Interface: Hub.Services.Api.Shared / IScoresService




     Service Implementation: Hub.Services.Api / ScoresService




@    itcampro         # itcamp12               Premium conference on Microsoft technologies
Content Delivery Networks - Intro                                                     Mobile &
                                                                                      Development


• Content Delivery Network (CDN)
     o A large distributed system of servers deployed in multiple data
       centers in the Internet
     o The servers are optimized for file serving
     o When a user request a resource from CDN, the server that is
       geographically closer to the user serves the resource
     o Akamai, one of the biggest CDNs delivers
         20 % if of the world’s traffic

• Advantages using a CDN
     o   Reduce the load on your servers
     o   Support higher traffic
     o   Reduce the load time to end users
     o   Geolocation
     o   May deffend against DDoS attacks
     www.spotsvstripes.com      origin.spotsvstripes.com


@   itcampro       # itcamp12          Premium conference on Microsoft technologies
Content Delivery Networks - Intro                                                          Mobile &
                                                                                           Development



• Website development targeting CDNs:
     • No dynamic content rendered by the server
         • All “personalized” user content is updated client side
     • No session
         • Most of the page requests will not hit the origin server
     • Set HTTP caching headers:
         • Cache-control (ex: Cache-Control: public, max-age=600)
               – max-age (seconds), public, private, no-cache, no-store, must-revalidate
         • Last-Modified
         • Expires – like max-age but absolute date value
         • When both Cache-Control and Expires are present, Cache-Control takes
           precedence




@   itcampro      # itcamp12              Premium conference on Microsoft technologies
Akamai and SvS Website                                                                  Mobile &
                                                                                        Development

•   SvS: Configuring HTTP Cache headers in Sitecore




@   itcampro        # itcamp12           Premium conference on Microsoft technologies
Akamai and SvS Website                                                                 Mobile &
                                                                                       Development

•   Configuring HTTP Cache headers in Sitecore




@   itcampro       # itcamp12           Premium conference on Microsoft technologies
Akamai and SvS Website                                                             Mobile &
                                                                                   Development


•   Customized content is updated client side
     •   Ajax calls to SvS API




@   itcampro         # itcamp12     Premium conference on Microsoft technologies
Sitecore – Short Intro                                                     Mobile &
                                                                           Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Q&A


@   itcampro   # itcamp12   Premium conference on Microsoft technologies

More Related Content

What's hot

ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp
 
Using Web Technologies to Build Native iPhone & Android Applications
Using Web Technologies to Build Native iPhone & Android ApplicationsUsing Web Technologies to Build Native iPhone & Android Applications
Using Web Technologies to Build Native iPhone & Android ApplicationsAxway Appcelerator
 
Mono for Android Development
Mono for Android DevelopmentMono for Android Development
Mono for Android DevelopmentThinslices
 
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages –  Embrace, Extend, IntegrateIBM Connect AD206 IBM Domino XPages –  Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
Niklas Heidloff
 
Smartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone BudgetSmartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone Budget
Gail Frederick
 
Gsma mwc roberto de la mora feb 27 2012
Gsma mwc roberto de la mora feb 27 2012Gsma mwc roberto de la mora feb 27 2012
Gsma mwc roberto de la mora feb 27 2012Cisco Collaboration
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
Nokia
 
Collaborative and agile development of mobile applications
Collaborative and agile development of mobile applicationsCollaborative and agile development of mobile applications
Collaborative and agile development of mobile applications
Ayushman Jain
 
MeeGo战略及产业动态
MeeGo战略及产业动态MeeGo战略及产业动态
MeeGo战略及产业动态yangdj
 
webinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governancewebinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governance
webinos project
 
Software Park Thailand : The New Challenge (NEC2011)
Software Park Thailand : The New Challenge (NEC2011)Software Park Thailand : The New Challenge (NEC2011)
Software Park Thailand : The New Challenge (NEC2011)
Software Park Thailand
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
Nokia
 
Zembly: Applications for the Masses by the Masses
Zembly: Applications for the Masses by the MassesZembly: Applications for the Masses by the Masses
Zembly: Applications for the Masses by the MassesCassandra Phillipps
 
Meego presentation
Meego presentation   Meego presentation
Meego presentation
manju2611
 
Meego Mobile OS
Meego Mobile OSMeego Mobile OS
Meego Mobile OS
DOSONKA Group
 
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
account inactive
 
Docking DevOps 2015-03-01
Docking DevOps 2015-03-01Docking DevOps 2015-03-01
Docking DevOps 2015-03-01
Robbie Minshall
 
Webinar The App Lifecycle Platform
Webinar The App Lifecycle PlatformWebinar The App Lifecycle Platform
Webinar The App Lifecycle Platform
Service2Media
 
Meego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaMeego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca Roffia
Francesco Baldassarri
 
Programr overview2
Programr overview2Programr overview2
Programr overview2_programr
 

What's hot (20)

ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystems
 
Using Web Technologies to Build Native iPhone & Android Applications
Using Web Technologies to Build Native iPhone & Android ApplicationsUsing Web Technologies to Build Native iPhone & Android Applications
Using Web Technologies to Build Native iPhone & Android Applications
 
Mono for Android Development
Mono for Android DevelopmentMono for Android Development
Mono for Android Development
 
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages –  Embrace, Extend, IntegrateIBM Connect AD206 IBM Domino XPages –  Embrace, Extend, Integrate
IBM Connect AD206 IBM Domino XPages – Embrace, Extend, Integrate
 
Smartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone BudgetSmartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone Budget
 
Gsma mwc roberto de la mora feb 27 2012
Gsma mwc roberto de la mora feb 27 2012Gsma mwc roberto de la mora feb 27 2012
Gsma mwc roberto de la mora feb 27 2012
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
 
Collaborative and agile development of mobile applications
Collaborative and agile development of mobile applicationsCollaborative and agile development of mobile applications
Collaborative and agile development of mobile applications
 
MeeGo战略及产业动态
MeeGo战略及产业动态MeeGo战略及产业动态
MeeGo战略及产业动态
 
webinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governancewebinos and Open Ecosystems Open Governance
webinos and Open Ecosystems Open Governance
 
Software Park Thailand : The New Challenge (NEC2011)
Software Park Thailand : The New Challenge (NEC2011)Software Park Thailand : The New Challenge (NEC2011)
Software Park Thailand : The New Challenge (NEC2011)
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
 
Zembly: Applications for the Masses by the Masses
Zembly: Applications for the Masses by the MassesZembly: Applications for the Masses by the Masses
Zembly: Applications for the Masses by the Masses
 
Meego presentation
Meego presentation   Meego presentation
Meego presentation
 
Meego Mobile OS
Meego Mobile OSMeego Mobile OS
Meego Mobile OS
 
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
Using Qt to Build Mobile Applications Featuring Social Networking and Monetiz...
 
Docking DevOps 2015-03-01
Docking DevOps 2015-03-01Docking DevOps 2015-03-01
Docking DevOps 2015-03-01
 
Webinar The App Lifecycle Platform
Webinar The App Lifecycle PlatformWebinar The App Lifecycle Platform
Webinar The App Lifecycle Platform
 
Meego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca RoffiaMeego Italian Day 2011 - Dr. Luca Roffia
Meego Italian Day 2011 - Dr. Luca Roffia
 
Programr overview2
Programr overview2Programr overview2
Programr overview2
 

Similar to ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, WCF RESTful and Sitecore

ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitchITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitchITCamp
 
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...ITCamp
 
ITCamp 2011 - Mihai Tataran, Tudor Damian - Keynote
ITCamp 2011 - Mihai Tataran, Tudor Damian - KeynoteITCamp 2011 - Mihai Tataran, Tudor Damian - Keynote
ITCamp 2011 - Mihai Tataran, Tudor Damian - KeynoteITCamp
 
ITCamp 2012 - Alex Gyoshev - Kendo-UI
ITCamp 2012 - Alex Gyoshev - Kendo-UIITCamp 2012 - Alex Gyoshev - Kendo-UI
ITCamp 2012 - Alex Gyoshev - Kendo-UIITCamp
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSITCamp
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Enea Gabriel
 
ITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp
 
How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)
ITCamp
 
ITCamp 2012 - Tim Huckaby - Keynote
ITCamp 2012 - Tim Huckaby - KeynoteITCamp 2012 - Tim Huckaby - Keynote
ITCamp 2012 - Tim Huckaby - KeynoteITCamp
 
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Vunvulea radu   it camp-ro 2012 - building metro style applications on window...Vunvulea radu   it camp-ro 2012 - building metro style applications on window...
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Radu Vunvulea
 
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp
 
Developing SharePoint 2010 and Silverlight web parts
Developing SharePoint 2010 and Silverlight web partsDeveloping SharePoint 2010 and Silverlight web parts
Developing SharePoint 2010 and Silverlight web parts
Ovidiu Becheş-Puia
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp
 
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows AdministratorsITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows AdministratorsITCamp
 
ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...
ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...
ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...ITCamp
 
ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...
ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...
ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...ITCamp
 
Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)
ITCamp
 
Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Developing for Windows Phone 8.1
Developing for Windows Phone 8.1
Dan Ardelean
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Alessandro Pilotti
 

Similar to ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, WCF RESTful and Sitecore (20)

ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitchITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
 
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
 
ITCamp 2011 - Mihai Tataran, Tudor Damian - Keynote
ITCamp 2011 - Mihai Tataran, Tudor Damian - KeynoteITCamp 2011 - Mihai Tataran, Tudor Damian - Keynote
ITCamp 2011 - Mihai Tataran, Tudor Damian - Keynote
 
ITCamp 2012 - Alex Gyoshev - Kendo-UI
ITCamp 2012 - Alex Gyoshev - Kendo-UIITCamp 2012 - Alex Gyoshev - Kendo-UI
ITCamp 2012 - Alex Gyoshev - Kendo-UI
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile apps
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
 
ITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
 
How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)
 
ITCamp 2012 - Tim Huckaby - Keynote
ITCamp 2012 - Tim Huckaby - KeynoteITCamp 2012 - Tim Huckaby - Keynote
ITCamp 2012 - Tim Huckaby - Keynote
 
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Vunvulea radu   it camp-ro 2012 - building metro style applications on window...Vunvulea radu   it camp-ro 2012 - building metro style applications on window...
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
 
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
 
Developing SharePoint 2010 and Silverlight web parts
Developing SharePoint 2010 and Silverlight web partsDeveloping SharePoint 2010 and Silverlight web parts
Developing SharePoint 2010 and Silverlight web parts
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
 
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows AdministratorsITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
 
ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...
ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...
ITCamp 2012 - Ovidiu Beches - Developing SharePoint 2010 and Silverlight web ...
 
ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...
ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...
ITCamp 2013 - Tim Huckaby - Kinect for Windows - Designing Software for Gestu...
 
Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)
 
Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Developing for Windows Phone 8.1
Developing for Windows Phone 8.1
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 

More from ITCamp

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp
 
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp
 

More from ITCamp (20)

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
 
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on...
 

Recently uploaded

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
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
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
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
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
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
 
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
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
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
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
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 !
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
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
 
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
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, WCF RESTful and Sitecore

  • 1. Social media platform with Telligent Community, WCF RESTful and Sitecore Ovidiu Stan, Software Architect @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 2. ITCamp 2012 sponsors Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 3. Agenda Mobile & Development • SvS – The Business (Requirements) • SvS – The Solution (Architecture) • Telligent Community – Short Intro • WCF RESTfull API • Akamai CDN • Sitecore CMS – Short Intro @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 4. The Business Mobile & Development • The client: Cadbury – Biggest UK chocolate manufaturer, World’s second – Official Trait Provider for London 2012 Olympics • The campaign: “Spots vs Stripes” (SvS) – “Biggest funest game ever” – “Cadbury is inviting the nation to divide into two teams, Spots v Stripes and play all sorts of games in the run up to the Olympic and Paralympic Games in 2012” @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 5. Spots v Stripes Campaign Mobile & Development • Much more than just software: • Real world events & games • TV ads, TV Show participation (e.g. NBC’s Minutes To Win It) • Rich presence on social networks: YouTube channels, Facebook, Twitter • Prizes: Olympics tickets, sweets, cash @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 6. System Requirements Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 7. Spots v Stripe – Games Mobile & Development Flash Games Real World Games Points @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 8. SvS Architecture – High Level Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 9. API Platform - Architecture Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 10. API Platform - Architecture Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 11. SvS Architecture - Infrastructure Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 12. Telligent Community – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 13. Telligent Community – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 14. Telligent Community – Short Intro Mobile & Development www.telligent.com • Ready-to-use Social Network/Community portal with features like: • Profiles • Groups • Friends/Connections • Blogs, Wikis, Forums • Search • RSS Feeds • Administration: user management, content management • Moderation • Extensible platform allowing customization at two levels: • UI: new pages, custom widgets, cutom themes • API: RESTful API exposing most of the platform functionality: – 3rd party integration – New UI functionality @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 15. Telligent Community – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 16. Telligent Community – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 17. Telligent Community – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 18. Telligent Community – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 19. Telligent Community – Short Intro Mobile & Development Creating Custom Widgets @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 20. Telligent Community – Short Intro Mobile & Development 1. Derive from ExternallyImplementedConfigurableContentFragmentBase @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 21. Telligent Community – Short Intro Mobile & Development 2. Implement PollsWidget.ascx and access property values 3. Compile the web app and deploy it  All widgets implement IContentFragment interface.  The available base classes (including ExternallyImplementedContentFragmentBase) implements it too.  When Telligent loads, it finds all the classes from /bin folder that implement this interface  Widget base classes:  ContentFragmentBase – no config values and no external ascx file.  ConfigurableContentFragmentBase – has config values bu no external ascx file.  ExternallyImplementedContentFragmentBase – external ascx file, no config values  ExternallyImplementedConfigurableContentFragmentBase – external ascx file and config vlues For the first two, controls are added by overriding: AddContentControls(System.Web.UI.Control control) @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 22. Telligent Community – Short Intro Mobile & Development • Telligent Community Platform API - Example @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 23. Telligent Community – Short Intro Mobile & Development • Platform API categories:  Users  Add user: POST api.ashx/v2/users.xml (or .json)  Delete user: POST (Header: DELETE)api.ashx/v2/users/{username}.xml (or .json)  Validate user password  etc…  Activity messages  Followers  Groups  Blog posts and comments  Forum  Wiki  Content Search  etc… @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 24. Telligent Community – Short Intro Mobile & Development • SvS.CommunityClient (façade): wraps some of the Telligent’s API @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 25. API Platform – RESTful Services Mobile & Development • RESTful web services - key concepts o Statelessness:  By design, RESTful services are stateless  No storage on server between requests  All information needed is in the request o Resources:  The services act upon resources  Each resource must have in ID resulting in a URI  Example: Users, groups, status messages o Representation of data:  The same resource can have multiple representations  Example: user detail and follower detail o By design work over HTTP. o Use standart HTTP verbs for the operations: • GET, POST, PUT, DELETE • POST can be used to do any updates, including additions and deletions @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 26. API Platform – WCF RESTful Mobile & Development • WS-* vs RESTful • WCF: WSHttpBinding vs WebHttpBinding • Arguments for RESTful in this project: • Callers are mostly client side elements: flash games, javascript (Ajax with JQuery) • Light messages • Both XML and JSON message format are required • Easier to be used by clients (SOAP is hard to use without proxy generation) • WS-* advanced features were not necessary: transaction, federation, etc. • Alternatives to WebHttpBinding: • ASP.NET Web API – part of ASP.NET MVC 4 Beta @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 27. API Platform – WCF RESTful Mobile & Development • WS-* vs RESTful • WCF: WSHttpBinding vs WebHttpBinding • Arguments for RESTful in this project: • Callers are mostly client side elements: flash games, javascript (Ajax with JQuery) • Light messages • Both XML and JSON message format are required • Easier to be used by clients (SOAP is hard to use without proxy generation) • WS-* advanced features were not necessary: transaction, federation, etc. • Alternatives to WebHttpBinding: • ASP.NET Web API – part of ASP.NET MVC 4 Beta @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 28. API Platform – Examples Mobile & Development • GET searchUser/{searchText} Response: • POST user/supporting/add Request: • POST submitmultiplayergame/ Request: Response: @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 29. API Platform – Security Mobile & Development API Security - Requirements • Client applications authentication & authorization: o Protected API methods can be accessed only by authorized client apps. o The client apps will be identified based on a application name and a private key. • Message integrity o The data from the request cannot be modified by 3rd parties o For example the Score parameter for the SubmitGame method • End User authentication o Some API methods require to be executed in the context of an end user o For these methods, both the caller app and the user it’s impersonating must be authenticated • Avoid replay attacks o repeating valid requests either by the originator or by a third who intercepts the request @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 30. API Platform – Security Mobile & Development API Security - Implementation Client Apps Table  Keep the client apps in a DB table • AppName – unique for each client AppName ApiKey ClientApp1 rjvm4Y8hrKkJwfM  Generate and provide the client apps ClientApp2 NmD9BaDk6uS5OkS developers with a private key (ApiKey) ClientApp3 L6EYXMQAEMKHcbh  Require the callers to embed this info in the request: HTTP Header • ApplicationName – client app name • UserName – SvS user the caller is impersonating SvS-Authorization: • Nonce – timestamp, different for each request application=<ApplicationName>, • Signature = user=<UserName>, MD5(ApiKey, SessionId, Nonce) nonce=<Timestamp>, SessionId: provided by Login API method signature=<md5hash> @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 31. API Platform - Security Mobile & Development API Security - Implementation Cache: List of UserSession  API Method: Login(userName, password) User SessionId Nonce • Authorize caller (client application) Name • Validate userName & password against SvS DB and Telligent User1 Brgsi4KR8f3BeVj 88258960234 • Generate a SessionId and stores it in the cache User2 D67NZwChfBT7Z08 88258960236 • Return the SessionId to the caller User3 kUGSpND68kVWlJ5 88258960238  Authorize() – internal method (called from each API Method) Expire: 15 mins • Look up the <ApplicationName> in ClientApps table • Look up <UserName> in Cache • Compare provided <Nonce> with session Nonce • Update session Nonce • Calculate signature in the same way as the client has done it: MD5(ApiKey, SessionId, Nonce) • Compare the signatures  Alternatives: SSL, OAuth @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 32. API Platform – Code Sample Mobile & Development  Register Service Routes: Hub.Services.Api.Web / Global.asax / Application_Start  Service Contract Interface: Hub.Services.Api.Shared / IScoresService  Service Implementation: Hub.Services.Api / ScoresService @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 33. Content Delivery Networks - Intro Mobile & Development • Content Delivery Network (CDN) o A large distributed system of servers deployed in multiple data centers in the Internet o The servers are optimized for file serving o When a user request a resource from CDN, the server that is geographically closer to the user serves the resource o Akamai, one of the biggest CDNs delivers 20 % if of the world’s traffic • Advantages using a CDN o Reduce the load on your servers o Support higher traffic o Reduce the load time to end users o Geolocation o May deffend against DDoS attacks www.spotsvstripes.com origin.spotsvstripes.com @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 34. Content Delivery Networks - Intro Mobile & Development • Website development targeting CDNs: • No dynamic content rendered by the server • All “personalized” user content is updated client side • No session • Most of the page requests will not hit the origin server • Set HTTP caching headers: • Cache-control (ex: Cache-Control: public, max-age=600) – max-age (seconds), public, private, no-cache, no-store, must-revalidate • Last-Modified • Expires – like max-age but absolute date value • When both Cache-Control and Expires are present, Cache-Control takes precedence @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 35. Akamai and SvS Website Mobile & Development • SvS: Configuring HTTP Cache headers in Sitecore @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 36. Akamai and SvS Website Mobile & Development • Configuring HTTP Cache headers in Sitecore @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 37. Akamai and SvS Website Mobile & Development • Customized content is updated client side • Ajax calls to SvS API @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 38. Sitecore – Short Intro Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 39. Q&A @ itcampro # itcamp12 Premium conference on Microsoft technologies