Cloud ComputingMobile ApplicationsAGILE Methodology – SCRUMN-tier architectureJava vs .NET Object Oriented Design and its Relevance
Cloud Computing Fundamentals• Cloud computing provides computation, software, data access, and storage services that do not require end-user knowledge of the physical location and configuration of the system that delivers the services. • The Power Grid example
Cloud Computing – 5 salient features1. Dynamic Computing Infrastructure2. IT Service Centric approach3. Self Service based usage model4. Minimally or Self Managed platform5. Consumption based billing ** PROVISIONING **
Mobile ApplicationsWhat is a mobile app?perioperative patient tracker example …how many of us have a mobile phone here?can you pay the electricity bill using your mobile phone?How do you/a company make money from mobile apps?• Sell it through a mobile app store / network• Ad inside the app - can monetize everytime the user runs the application / plays the game• Question !• What location or where inside the application should an Ad be placed to get maximum returns?
Agile Development Methodology Iterative Development user stories further divided into tasks Product Backlog, Sprint Backlog Continuous Integration TFS or Cruise Control Unit Tests + TDD (Test Driven Development) Pair Programming Spike Solutions Merciless Refactoring The Daily Standup meeting (5 minutes / developer) What has been done after the last stand up meeting? What will you be doing till the next standup meeting? Any bottlenecks? The Sprint Burndown chart
Agile Principles1. Satisfy the Customer2. Welcome Change3. Deliver Frequently4. Work as a Team5. Motivate People6. Communicate Face-to-Face7. Measure Working Software8. Maintain Constant Pace9. Excel at Quality10. Keep it Simple11. Evolve Designs12. Reflect Regularly
Release PlanningPlan features in sprints and releasesReleases depend on accepted sprints
N-tier architecture* N-tier Vs N-layer ? 3-layer architecture
True N-Layer Architecture Example Media Server – CDN based Media Server – CDN based Media Server – CDNCDN Media Servers – based based CDN: content delivery networks3rd Party Web Services * Akamai * Amazon * Reliance Globalcom
Why Java? Development and runtime - both platform independent Better standards compliance Open Source language that further depends on other open source vendors for its IDE, Web Server, App Server, etc. Claimed to be more secure than .NET code** Name a programming construct avilable in Java, but not in .NET?
Why .NET? Fast turn around time Single Framework handles everything – no need for multiple frameworks from different vendors for different functionalities. Much better funded so that newer features are coming out at the fastest pace. LINQ, AJAX, Performance Profiler, Unit Testing Framework, Client side Reporting and a lot more integrated into one platform Language independent – C#, VB.NET, C++ developers can all work together on the same project Simpler AJAX implementation** Is .NET free?
Java, .NET Object Oriented Most of what can be done using Java can be done using .NET and vice-versa Java as well as.NET languages like C#, VB.NET, etc are all Object Oriented Object Oriented Design has been steady for the past 30 years or so and has changed very little. Case in Point: Most, if not all of the design patterns published by the GoF(Gang of Four) in 1994 are still the back bone of current OOPs design (Singleton, Strategy, State, Factory etc.)
Object Oriented Design – most important Class Object Encapsulation Inheritance Polymorphism Overloading Overriding UML (Unified Modeling Language) Association Aggregation Composition Class diagrams, sequence diagrams, … more. Abstract Class Interface
Domain Areas WebSecurity WindowsNetwork Mobile Smart Client
Discover Your Passion! What area in IT interests you the most? Writing business logic code? – focus on OOPs, design patterns, … etc Creating beautiful interfaces? – focus on design tools like Expression Blend Application performance? – focus on optimization tools like VS2010 Profiler, DotTrace, Ants Trace Application Testing – ( relative cost of a bug in production vs a bug caught during development ) Data storage/retrieval ? focus on DB administration / development Network administration – security/firewalls/login/domains/ADs/…. ERP software and tools (SAP, Peoplesoft, Oracle, BAAN, …) Web vs. Windows vs. Smart Client Apps vs. Mobile apps
True Story of a Young Boy Moral of the Story…. You have to figure out your passion Finding a mentor to guide you and assist you – someone who has the right experience Having a plan – plan your next 10 years Do your best and not compare with anyone else
Inform Yourself … Check these out…• MSDN Magazine (http://msdn.microsoft.com/en-us/magazine/default.aspx)• Java Magazine (http://www.oracle.com/technetwork/java/javamagazine/index.html)• Refactoring Cheat Sheet (http://www.refactoring.com/,http://www.refactoring.com/catalog/index.html)• Freelance sites like rent a coder(vworker)/elance/oDesk/…• Forums like CodeProject, MSDN forums, Codeplex repository for open source projects• Head First Object-Oriented Analysis and Design: Brett D. McLaughlin, Gary Pollice, DaveWest• Head First Design Patterns: Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra• Code optimization tools like ANTS profiler, Dot Trace profiler• Clientside optimization tools like Fiddler, YSlow, Page Speed• Inspiration: TED Talks (search on Google)
Thank You !! Name: Eldos P. Kuriakose Email: firstname.lastname@example.org Web: http://logic8.in/