Archive for the Pattern and Practise Category

The Logical Design phase During this process, we define the structure of various logical entities which will be forming the solution and the behavior of those to interact with each other. Process to create the logical design is as follows:

1 Identify Business Objects: The objects which either provide some kind of service or use some service or hold data which is useful for the business processes are the candidate business objects. Finalized business objects will be modeled as Classes.

2 Identify the services that will be offered by these business objects. These services later on will be modeled as Methods of the classes.

3Identify attributes of the business objects. Attributes will hold the data and will be modeled as Fields and Properties of the classes.

LogicalClass

(more…)

Visual Studio Team System 2010, Microsoft’s collaborative development environment, will introduce features that both align agile methodologies with project management and help developers from a “fingers on the keyboard” perspective.
2010agile.jpg
(more…)

Hi Pale,

The Dependency Injection and factory design patterns are very common, and
provide great flexibility in software development and also asked by many developer
that i’ve ever meet Although, most programmers have come across these patterns,
they may not grasp the concepts completely until they
see these patterns in action in real projects.
(more…)

Hi Developer geeks,

See me again in this session, i would like to share to you about somekind practically method of my experience and expertise during my professional development experiences. Due to many colleagues of mine that was asking me to write down the methodology of software development with the real implementation as a practise , therefore i would like to digest some surrogate keys of enterprise development, first of all that the IT worlds has so huge environment perspectives including the software development that’s why i supposed to aim about the limitation of mine that probably missing the pieces of a factor that i couldn’t  mentioned it in this blogs, but for at least it can contributed some lights that could become a bright way about the Enterprise application development. I devide into some section or session about enterprise development architecturing. in this session i’d like to talk about the initial of development process or in the other word is Pre Development Analysis process. There are many tools that coud drive the collaboration process of team to design the enterprise software, VSTS (Visual Studio Team System) + TFS (Team Foundation Server) are the one of the tools that probably become the best in the market for accomodate this whole of iteration process of enteprise software development, the main reason are this tools could accomodate the skeleton of defining the whole process methodology / ALM / SDLC as an enterprise collaboration team development such as MSF (Microsoft Solution Framework) Agile Methodology, MSF CMII methodology and also SCRUM methodology. Those MSF methodology will drive the all role activies that involved in software development based on their activities and roles which has a final path to QOS (Quality of Service) develoment so it could guarantee the control of the role activies and also the together moving of each role activies into one standard purpose. Okay let’s take a look about the first section picture about how to describe the Pre development analysis of based role activity and functionalities

Pre design

i will write down each of those details description on that picture above, as you could see above that actually we could devide the pre analysis iteration process into two main section Application requirement design and project timeline and resources, the application requirement design is a zone of technically side of pre development analysis and the project timeline and resources is the grey area and become a bridge of technical world and business world. in teachnicall world zone there are 5 roles involved (SA,BA,Network Engineer,DBA and Developer)  whether coordinate by software architect role and the other zone was hold by the person who could drive the all process into the goal that become the final path of achievement, but i guess from those view point we will have some figures about the pre design of software enterprise development architecture.

see you in my next session,

 cheers,

Doddy Ch Saputra, MCPD,MCITP,MCTS

Interviewers: Scott Swigart and Sean Campbell.

Interviewees:Blaine Wastell and Glenn Block.

In this interview with Blaine Wastell and Glenn Block of the Patterns and Practices Group at Microsoft we asked them about:

Blaine:   I’m Blaine Wastell. I’m a program manager in patterns & practices, and I’ve been in this role for a little over four years now. Most recently my focus has been in what we call the “client UX program”. It’s about providing guidance to customers on developing both smart client and web client applications.

For 12 years before Microsoft I was out in the consulting world helping business customers develop enterprise line of business applications, mainly Web applications.

(more…)

image005.gif  OVERVIEW

Model –View-Presenter ( MVP ) Pattern is one of the popular design pattern for creating the enterprise application, introduced by Martin Fowler, this pattern leverage many functionalities of loose coupling modules.

The Intention is separation between its business logic to user interface design, and for the developer will just keen to think to the particular business logic to drive the application, the MVP Pattern also enhance the fully functionality of module testing, which mean you could use mock object to test your every module and class or every single wire in your MVP application.

There are many kind implementation of MVP Pattern, one of the best and become the easiest way to implement the MVP Pattern is using the MVP framework from the Microsoft Pattern and Practise team. In this case I’ll try to explain of using the MVP Bundle package from them which is become the embedded skeleton as a library tools in your visual studio.

image0061.gif  Analysis Surgery

Actually there are two variants functionality and also the benefit that we could get from this bundle, which are Passive View and Supervising Controller.

Problem

A page in a Web application contains controls to display application domain data. A user can modify the data and submit the changes. The page retrieves the domain data, handles user events, alters other controls on the page in response to the events, and submits the changed domain data. Writing this code in the Web page (the code-behind class) makes the class complex, difficult to maintain, and hard to test. In addition, it is difficult to share code between Web pages that require the same behavior.

Forces

You want to maximize the code that can be tested with automation. (Views are hard to test.) You want the share code between pages that require the same behavior. You want to separate business logic from UI logic to make it easier to understand and maintain.

Solution

Separate the responsibilities for the visual display and the event handling behavior into different classes, the view and the presenter. The view class (the Web page) manages the controls on the page, and it forwards events to a presenter class. The presenter contains the logic to respond to the events, update the model (business logic and data of the application) and, in turn, manipulate the state of the view.

To facilitate testing the presenter, make the presenter have a reference to the view interface instead of to the view concrete implementation. By doing this, you can easily replace the real view with a mock implementation to run tests.

View Updates

When the model is updated, the view has to be updated to reflect the changes. View updates can be handled in several ways. The Model-View-Presenter variants Passive View and Supervising Controller specify different approaches to implement view updates.

In Passive View, the presenter updates the view to reflect changes in the model. The interaction with the model is handled exclusively by the presenter; the view is not aware of changes in the model.

In Supervising Controller, the view interacts directly with the model to perform simple data-binding that can be defined declaratively, without presenter intervention. The presenter updates the model; it manipulates the state of the view only in cases where complex UI logic that cannot be specified declaratively is required. Examples of complex UI logic might include changing the color of a control or dynamically hiding/showing controls. Figure 1 illustrates the logical view of the Passive View and Supervising Controller variants.

mvp-1.JPG

Figure 1

Passive View

In figure 1, explain about interaction by model is handled exclusively by the presenter and then the view is updated exclusively by the presenter which using the view interface.

The decision to use Passive View or Supervising Controller lies primarily on the testability level that you want to achieve for your application. If testability is a primary concern in your application, Passive View might be more suitable because you can test all the UI logic by testing the presenter. On the other hand,

mvp-2.JPG

Figure 2

Supervising Controller

if you prefer code simplicity over full testability, Supervising Controller might be a better option because you do not have to write code in the presenter to update the view for simple changes ( as you can see at the figure 2 above ). When choosing between Passive View and Supervising Controller, consider the following:

  • Both variants allow you to increase the testability of your presentation logic.
  • Passive View usually provides a larger testing surface than Supervising Controller because all the view update logic is placed in the presenter.
  • Supervising Controller typically requires less code than Passive View because the presenter does not collaborate in simple view updates.

Note:

In the View-Presenter pattern, the presenter exclusively handles the interaction with the model and updates the view; the view is not directly bound to the model. Thus, this approach is in line with the Passive View variant described in this topic.

Interaction with the Model

You can implement the interaction with the model in several ways. For example, you can implement the Observer pattern and have the presenter listen to events of the model and update the view as required. Another approach is to use an application controller to update the model.

Liabilities

There are more solution elements to manage.
You need a way to create and connect views and presenters.
The model is not aware of the presenter. Therefore, if the model is changed by any component other than the presenter, the presenter must be notified. Typically, notification is implemented with events.

Hallo folks…see my again in my sharing knowledge moment in my development journal blogs,
i would like to share to all of you about the knowledge of creating the domain architecture,
in this case i would like to create the WCF ( Windows Communication Foundation ) especially for further purpose is
implement the SOA ( Software Oriented Architecture ).

I will separate the part of the knowledge become the trilogy knowledge which are :

  • Introduction the Domain WCF or Web service
  • Introduction the Service Factory from The Pattern and Practise team to implement the WCF or Web service as a Domain Artifact model.
  • sample implementation the WCF or Web service.

so..let’s try to rock’n roll …

(more…)

Hallo folks … see you again in my sharing knowledge moment in my
development journal blogs,
i would like to share to all of you about the knowledge of creating the
domain architecture,
in this case i would like to create the WCF ( Windows Communication
Foundation ) especially for further purpose is
implement the SOA ( Software Oriented Architecture ).

I will separate the part of the knowledge become the trilogy knowledge
which are :

  1. Introduction the Domain WCF or Web service
  2. Introduction the Service Factory from The Pattern and Practise team to implement the WCF or Web service as a Domain Artifact model.
  3. Sample implementation the WCF or Web service.

so..let’s try to rock’n roll …

Overview :
the application development in this era has already come to service
oriented architecture which is known by SOA, by using SOA
we implement the interoperability application architecture which avoid
the system operation platform or even the language
of application development and domain application as well. we using the
independence file format transferring or independence format that
allow every domain
application could leverage every programming functionality such as
procedure or method for IPO ( Input-Process-Output) processing
Because the original purpose of SOA is become a bridge of many platform
which cater the functionality of the application then the ser-
vice need the endpoint or even the contract which is tighten from one
service point to another service point or from one domain
application to another domain application but of course loosely
coupling architecture.

For further detail explanation i put some figure about the domain WCF :

mywebservicedomainarticle.jpg

(more…)