Total Pageviews

Thursday, November 29, 2012

Learn .Net

Tuesday, November 27, 2012

Service Locator Pattern --a specilised version of Inversion of control

http://www.martinfowler.com/articles/injection.html

Use the Service Locator pattern to achieve any of the following objectives:
  • You want to decouple your classes from their dependencies so that these dependencies can be replaced or updated with little or no change to the classes.
  • You want to write logic that depends on classes whose concrete implementation is not known at compile time.
  • You want to be able to test your classes in isolation, without the dependencies.
  • You do not want the logic that locates and manages the dependencies to be in your classes.
  • You want to divide your application into loosely coupled modules that can be independently developed, tested, versioned, and deployed.

Solution

Create a service locator that contains references to the services and that encapsulates the logic that locates them. In your classes, use the service locator to obtain service instances. The following diagram illustrates how classes use a service locator.

How classes use a service locator
Ff648968.3622491a-3b9f-4368-aee4-493f7fb95027(en-us,PandP.10).png
The Service Locator pattern does not describe how to instantiate the services. It describes a way to register services and locate them. Typically, the Service Locator pattern is combined with the Factory pattern and/or the Dependency Injection pattern. This combination allows a service locator to create instances of services.

Example;
In Business we used the wcf.Unity and wcf service host factory

Repository Pattern

The Repository Pattern is a common construct to avoid duplication of data access logic throughout our application. This includes direct access to a database, ORM, WCF dataservices, xml files and so on. The sole purpose of the repository is to hide the nitty gritty details of accessing the data. We can easily query the repository for data objects, without having to know how to provide things like a connection string. The repository behaves like a freely available in-memory data collection to which we can add, delete and update objects.
The Repository pattern adds a separation layer between the data and domain layers of an application. It also makes the data access parts of an application better testable.

Use the Repository pattern to achieve one or more of the following objectives:
  • You want to maximize the amount of code that can be tested with automation and to isolate the data layer to support unit testing.
  • You access the data source from many locations and want to apply centrally managed, consistent access rules and logic.
  • You want to implement and centralize a caching strategy for the data source.
  • You want to improve the code's maintainability and readability by separating business logic from data or service access logic.
  • You want to use business entities that are strongly typed so that you can identify problems at compile time instead of at run time.
  • You want to associate a behavior with the related data. For example, you want to calculate fields or enforce complex relationships or business rules between the data elements within an entity.
  • You want to apply a domain model to simplify complex business logic.
Use a repository to separate the logic that retrieves the data and maps it to the entity model from the business logic that acts on the model. The business logic should be agnostic to the type of data that comprises the data source layer. For example, the data source layer can be a database, a SharePoint list, or a Web service.
The repository mediates between the data source layer and the business layers of the application. It queries the data source for the data, maps the data from the data source to a business entity, and persists changes in the business entity to the data source. A repository separates the business logic from the interactions with the underlying data source or Web service. The separation between the data and business tiers has three benefits:
  • It centralizes the data logic or Web service access logic.
  • It provides a substitution point for the unit tests.
  • It provides a flexible architecture that can be adapted as the overall design of the application evolves.
Repositories are bridges between data and operations that are in different domains. A common case is mapping from a domain where data is weakly typed, such as a database or SharePoint list, into a domain where objects are strongly typed, such as a domain entity model.

Repositories often use the Data Mapper pattern to translate between representations.

Tuesday, November 6, 2012

project 2010

Architect’s Class

  

Architect's Master Class


 
   Home     Services      Industry Leadership      About IDesign      Customers      Downloads      Contact Us   
 

  
  The Architect’s Master Class  
Overview
 While many developers and managers have a clear idea regarding the characteristics, practices, and corresponding set of responsibilities of their roles, the picture is often vague when it comes to software architects. What is the single most important task facing the software architect? What is the division of labor and responsibilities between the architect and the project manager? How much the architecture should be tied in to the particulars of the underlying technology used, or for that matter, for the specifics of the business? Where is the hand-off point between the architect and the developers? What are the necessary skills and analysis tools employed by an architect? How do you validate the design before construction begins? How do methodologies such as service-orientation affect the design and development process? What are software architecture's best practices, guidelines and pitfalls? How do you go about designing world-class systems? How do you make the transition from abstract design patterns and concepts to concrete development decisions? How does the architect decompose the system into its sub system and modules?
IDesign's flagship offering, the Architect’s Master Class, is the ultimate resource for the professional architect.
The class answers the above questions and more, and teaches the architect how to take an active leadership role in process, design, and technology. You will learn how to lead your team through the use of effective software processes, how to best leverage key technologies for the implementation of Service Oriented Architectures (SOA), and how to apply the IDesign Method™.
This 5 days training class is conducted by a Master Architect who shares his vast experience and perspective with the students, imparting both knowledge and insight, ensuring your success as a modern software architect. The IDesign Master architect will provide the common foundation required by software architects, both technical and soft skills. The class sets the focus on the why and the rationale behind particular design decisions, often shedding light on poorly understood aspects.
Noteworthy is that this class is called the Architect’s Master Class (as opposed to the Architecture Master Class) because it is dedicated to the core body of knowledge required of today’s modern software architects, knowledge that transcends mere design patterns and architecture. The core body of knowledge comprises of three elements: development process, technology, and finally analysis & design. The class shows the architect how to take an active leadership role on all three aspects, as a continuum, since in order to deliver high-quality, affordable solutions, one cannot separate process from design from technology – all three have to work in concert. The class also points out classic mistakes and risk mitigations across the process, technology and design. The agenda reflects these three elements. The first part is devoted to the accompanying service-oriented development process and the required project management skills. The second part is an immersion in key modern design patterns and development skills, using WCF as a reference model, as a way of illustrating the design ideas and best practices, ensuring the architect is a qualified technical lead.. This section of the class also includes a detailed projection of the next platform after .NET, and how to best prepare for it.
In the last part the IDesign architect will explain the IDesign original approach to large system analysis and design called the IDesign Method - a breakthrough, battle-proven approach to software architecture providing a significant reduction in the effort and time required for architecting, designing, and implementing software solutions. The IDesign Method distils the IDesign's accumulative lessons learned over more than a decade of architecting systems across numerous projects, industries, countries, and teams. The IDesign Method has three elements: it is a method for decomposing a system into modules or services based on the system top-level uses cases, the IDesign Method offers a set of very simple design notations to capture the design decisions, and a near-mechanical approach for automating the design decision of rarely discussed topics such as allocation of services to assemblies, allocation of services to processes, transaction boundaries, identity management, authorization and authentication boundaries, synchronization and more. To demonstrate the IDesign Method in action, the Architect Master Class will conclude in an interactive design session where the Master Architect will use the IDesign Method on a system provided by the students (a short version of what we focus on in our Architecture Clinics).
In the class you will also receive the IDesign documents and diagram templates, tools and samples, and reference projects.
Don’t miss on this unique opportunity to learn and improve your architecture skills with IDesign, and share our passion for architecture and software engineering, gain from our experience of numerous design projects and profound insight on architecture, technology and its applications.
Target Audience
Any .NET architect, project lead or senior developer would benefit greatly from the class.
Duration
5 very intense days.
 Outline  
The Architect
Software development as engineering
Types of architects
The role of the architect
Architects and technology
Architects and the business
Service-Oriented Development Process
Project planning
Estimation and tracking
Documentation
Requirement management and traceability
Configuration management
Quality control
Design for performance
Services simulation and emulation
Peer reviews
Development standards
Metrics collection
Visibility management
Introduction to Service-Orientation
Why service orientation
Service-oriented architecture
Service-oriented applications
WCF Essentials
Service-oriented programming
WCF architecture
Implementation considerations
Service Contract Design and Factoring
Service contract design
Contract factoring techniques
Contract metrics
Service-Oriented Design Patterns and Best Practices
Data contracts and data contracts versioning
Instance management and throttling
Operations and event management
Service discovery
Windows Azure AppFabric service bus
Transaction management and consistency
Concurrent management, responsiveness and availability
Design for security
Service Granularity
Every class as a service?
Performance consideration and perspective
WCF benchmarks
Beyond .NET and WCF
The future platform
Design and Architecture
The IDesign Method
Service decomposition
Use cases analysis
Assembly allocation
Run-time processes design
Identity management
Authentication
Authorization
Transaction flow
Synchronization
The Method in Action
The interview thought process
Use cases analysis
Service decomposition
Architecture diagrams
Process Groupthink
What about Monday
The pitfall of Groupthink
Architect as agent of change
 Upcoming Classes  
November 12-16, Los Gatos, CA (Register now to secure a seat!)
December 10-14, Belgium
February 25-March 1, Sydney, Australia
April 22-26, London, United Kingdom
Subscribe to the offerings feed
 Testimonials  
After taking the WCF Master Class last year, I felt the Architects Master Class would be the perfect follow up to take things to the next level. This class is light years ahead of the industry in terms of content and the sheer volume of knowledge the IDesign team presented. It’s a unique experience to be able to see the world through the eyes of world class architects, learn their techniques and way of thinking.
Stuart Snaddon
Software Engineer
United Kingdom

--------------------------------------------------------------------------------

IDesign’s Architect’s class is far and away the best training class I have ever taken. It transcends technological trends and gives you practical knowledge that will be useful for almost any platform and for the rest of your career. Easily the best thing I've spent my money on in quite a while.
Geoff Heeren
Lead Architect
Emportal

--------------------------------------------------------------------------------

The Architect’s Master Class rigorous approach to software design and development will enable you to engage in software architecture as an engineering discipline. I can see how my past failures could have been prevented if I had applied the IDesign method. My understanding of what the software architect is actually supposed to do has been clarified and reshaped by the class. The IDesign Architect’s Master Class is an essential part of any software architect’s training. You should not in good conscience call yourself a software architect if you don’t posses the skills and techniques presented in the class.
Russ Ferrill
Software Engineer
Vendor Safe Technologies

--------------------------------------------------------------------------------

Attending the Architect Master Class by Juval Lowy was simply the most rewarding professional experience of my career. The material was a world class combination of methodology, process, and technology that no one else in the industry is teaching. Juval’s extensive experience and knowledge base allowed him to present the material in a historical context that changed my perspective on current technologies in ways I did not previously think possible. I also thoroughly enjoyed Juval’s witty presentation style which kept me on my toes and, more importantly for such an intense class, kept my attention firmly focused. I now feel more prepared than ever to take my career to new heights and continue to build upon my newfound knowledge. I would recommend this class to any serious Architect looking for that elusive next level of enlightenment. Thank you Juval!
Joe Crabtree
Solutions Architect
SharePoint360

--------------------------------------------------------------------------------

It has to be the most influential and profound course I have ever undertaken; it has given me a depth and breadth of knowledge that was unbelievable.
Robert Dyball
WorkCover NSW

--------------------------------------------------------------------------------

Wanted to thank you for the highly impressive Architect’s Master Class.
I have never walked out of any training, whatsoever, so stunned as walking out of this. It has the exact mixture of practical and theoretical content. My only regret is that it didn't last longer :)
I have already started talking with our project managers and architects about process leadership and the role of an architect.
Thanks Again,
Ally Pearl
SharePoint Consultant
OBS

--------------------------------------------------------------------------------

The Architect’s Master course was the single most relevant and useful professional training I’ve ever attended. Juval brings his deep experience and Zen master-like wisdom to the class and makes it easy to apply the lessons to real world scenarios. If you are lucky enough to attend, you will emerge from the class, a lean, mean, service-oriented machine.
David Carrico
System Architect
ITG

--------------------------------------------------------------------------------

Thanks for sharing your wisdom and experience to us and it was the best technical class I have ever attended. You have provided answers to many of the lingering questions I used to have and that too without me asking all these questions, again it was wonderful and enchanting class.
Manoj Garg
FIS Global

--------------------------------------------------------------------------------

I just wanted to thank IDesign for the class, Brian for teaching it, and Juval for promoting it to me. I used things it taught me immediately in my work and found the ideas presented to be quite excellent. I would even say those that gave testimonials were not blowing smoke on this whatsoever. If anything they are underselling it. I started architecting my current system based on your methods, and am finding it to be a really intelligent way to go about my work. Juval, everything you said is coming out in spades. I feel I can handle pretty much anything that is thrown at me and I will create a great system for my company. Thanks again for the class and the ideas presented.
Steve Portock
Software Architect
St. Louis, Missouri

--------------------------------------------------------------------------------

IDesign has a unique way of presenting the design alternatives and narrowing them down to the best practices. The Architect's Master Class will teach you everything you need to know about architecting and building service-oriented applications. Not only will you walk away with a great learning experience, you will also have a host of tools and examples that you can put to work in your applications right away. This alone saved us months of development time and effort.
Michael Marchiondo
Spectrum Technology Consultants
Columbus, OH

--------------------------------------------------------------------------------

The incredible amount of experience and knowledge presented during the Architect’s Master class, in a few unbelievable days, has completely changed the way I think about software architecture. One of the main takeaways is the IDesign Method which is simple and effective was of designing systems. The method is so clear, simple and to the point that it can be implemented into our existing or future projects immediately, improving project schedules and increasing quality.
Camilo Orozco
Bioinformatics Programmer
GNF

--------------------------------------------------------------------------------

I wanted to let you know how impressed I was with the Architect’s Master Class. I have had a somewhat chequered career and for the last ten years or so have been in IT. During that time, I have attended more lectures, training courses and conferences than I care to count, but never have I walked out of any them as affected as last week left me. The course was entertaining, enormously thought provoking and yet, still managed to walk that fine line between theoretical and practical content. More importantly, it reignited my enthusiasm for the industry and my role in it. In addition, I will be seriously adopting the IDesign process for a project that we are just commencing. It is also the case that the knowledge that you divulged during the course will form part of our core architectural direction over the coming few years; in particular, your ‘every class as a service’ approach has ignited a great deal of curiosity and excitement amongst our senior developers!
Thanks Again,
Malcolm Young
General Manager, Architecture and Technology
F1 Solutions

--------------------------------------------------------------------------------

The IDesign Architect’s Master class was first rate. I never thought it was possible to learn so much in a few days, and my only regret is that the class was not longer. Juval’s clarity of thinking, precise examples, and anecdotal information has enabled me to start thinking more like a software architect. I highly recommended for anyone contemplating an architecture career or needing to work closely with architects.
Blair Shaw
Senior Consultant
Microsoft Partner Services
Redmond, Washington

--------------------------------------------------------------------------------

The IDesign Architect's Master Class is a true awakening. Juval spoke candidly about our software development crisis and presented his insight and solutions. His incredible knowledge of the software development history and methodical analysis of its evolution and future enlighten and inspire me. I am eager to apply the IDesign Method and WCF in our future projects along with the IDesign effective software development process using the templates for project management, top-level design, and share these techniques with management and fellow developers at Circle K.
Chao-Sha Huang
Senior Software Engineer
Circle K Stores

--------------------------------------------------------------------------------

The class was a mind blower, and a perfect educational complement to the WCF class. Juval was on fire. By the end of the week he had led the discussion beyond skills and techniques to address the larger concerns of professional and personal responsibility, which was truly inspirational. (And daunting. He sets the bar so high.)
Steve Taylor
Technical Lead
HEA Consulting

--------------------------------------------------------------------------------

Software architecture is engineering. Design and development of software systems must be done using a methodology that demystifies the process, reigns in technology and complexity and enables the teams’ productivity. The Architect’s Masters Class targets precisely these goals. The curriculum is built from Juval’s amazing in-depth understanding of architecture and original analysis techniques along with years of actual experience. All elements give architects the skills to deliver successfully on quality, on schedule, on budget, on features, for now and as the system evolve. I consider this the graduate class for real world Architects charged with providing solutions to real world businesses.
Joshua Dees
VP of MIS
Black Diamond Equipment Ltd.

--------------------------------------------------------------------------------

For anyone who has ever wondered if there is a better way of creating software, the Architect’s Master Class is nothing short of a revelation. Juval Löwy systematically demolishes (seemingly) all conventional-wisdom of software best-practice with precision, contextual honesty and reasoned argument; by the end of the first day you can already feel your consciousness being raised to a level you never knew existed. At the same time, he deconstructs each of his original teaching modules with crystal-clarity, coupled with the wit and good-humour of a master raconteur. As such, your attention is held with relentless focus for five gruelling days, during which Juval takes it upon himself to instil in you his vast experience as a world-class engineer. Microsoft recognizes him as a ‘Software Legend’, but to anyone who wants to be the best they can be, he is simply the Maestro.
Dr Riccardo Bennett-Lovsey
Senior Programmer Analyst
London, UK

--------------------------------------------------------------------------------

Simply put, the IDesign alumni that referred me to the Architect's Master Class described it as "career-altering," and he is not one for hyperbole. The class was the finest 5-day training I have been to in the last 10 years. Most classes focus only on technology, and by the end of day 5 you want to poke your eyes out with your laptop. The Architect's Master Class on the other hand, I could've done for another week. In fact, I will be back for your clinic next March. I have the benefit of having excellent sponsors that fully support my professional development, and that of my team. When I told them about the class and the clinic, they said "go!"
Ted Assur
IT Solutions Architect
Providence Health & Services

--------------------------------------------------------------------------------

I wanted to thank you for a (professional) life changing week. Usually I can't sit at class more than 50% of the time - it is boring and they don't teach me anything I couldn't teach myself or already know. In the Architect's Master Class I set for 9 hours a day and couldn't have enough of it: I learned what are my responsibilities as an architect (I thought the architect is only the software designer), the engineering aspect of software, the importance of delivering not only on time but also on budget and on quality, not to wait to "grow" to be an architect but to manage my career, and how to quantify and measure what I previously considered as hunches. I have much more insight from this week and many pieces are in place now. I can't wait to attend the Architecture Clinic and the other Master Classes.
Itai Zolberg
Software Architect
Tel Aviv, Israel

--------------------------------------------------------------------------------

I want to thank you again for the Architect's Master Class. You took me apart and put me back together again. I have known for years that the best way to do class design is to encapsulate what will change--that's what design patterns are all about. And yet it has eluded me for so long that this same concept is to be applied to architecture. It is so simple, so elegant, and was right under my nose for all of this time. I have been looking through the IDesign Alumni forum and it is an absolute gold mine, a treasure trove of knowledge and experience. Access to this alone is well worth the cost of the class. Taking the Architect's Master Class has been one of the few defining inflection points in my career. I have been searching for this material for years and have come up empty handed so many times. Thank you for putting this material together, for teaching it and for pushing our profession (and passion) towards a legitimate engineering discipline. I look forward to hearing from you on the forums and in upcoming clinics.
Cris Zamora
Senior Architect and Project Lead
Seamless
Salt Lake City, UT

--------------------------------------------------------------------------------

 
  

© 2012 IDesign, Inc. All rights reserved. | Hosted by OrcsWeb.