Archive for the Framework & Architecture 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…)

The Component Diagram can show various classes, interfaces, pages, executables etc. packaged into deployable units called components. Components expose interfaces which are either the provider interface or the paired consumer interface. Component can have internal other multiple components which represent any deployable unit like web site, class library, page etc. and the container component can delegate the interface implementation to these internal components. In the following example the ITester interface of the Development component is consuming the ITester interface of the Testing component. Testing component has Tests and Unit Tests as further internal components. Tests component implements the ITester interface so the Testing component delegates tasks of ITester interface to Tests component. Similarly Unit Tests component implements IUnitTest interface so the Tests component further delegates the tasks of IUnitTest to Unit Tests component.
ComponentDiagram
(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 guys,

If we know better about the design pattern, it will be usefull a lot for us to build the reusable software component like we want to achieve it, one of the famous pattern is singeleton and much of developer especially in web development until this time still confuse to implemented. Now i wanna to discuss the common usage of singeleton pattern in aspnet which always shown in development project. Lets rock and roll …

There may be numerous programming scenarios when we may need to restrict an
object to a single instance. Some of them are:

  • A single instance of a mail server might be required to process all incoming
    mail requests.
  • The Session object in ASP.NET is implemented using singleton pattern. That
    is why each user will have only one session instance accessible at any point
    of time.
  • The Application object in ASP.NET is also singleton based. There is only
    one instance of the Application object for an entire application.
    We may need a single instance of a logging utility to process all logging
    requests in our application.

(more…)

Hi, Geeks …See you again in my blog, in this session I would like to share about the exactly how to define the methodology for our development. I thought that these phase are become the part of a very basic designing the requirement which compulsory to initial our step. The architect and the team need to formulate the methodology based on the type of project, load project and also time line which is supposed to be discussed together with the project manager as a liaison person to the management area.I would like to walk straight ways to some little bit point which are become the main discussion in this session:

  1.  I would like to explain and share the main core of each methodology that I’ve known as a practical person.
  2. Then we need to perform the team development based on the methodology that we’ve already taken.
  3. I would like to share as well about the probability of infrastructure that we need for accommodating your team development, in this case I am refer to use the Team Foundation server and Visual Studio Team Suite edition.

As we known before, there are many methodology for development, for instance we know about waterfall before, and then after water fall really “fall”  due to this methodology following the sequential phase method which couldn’t got adaptation to the fast changing and requirement which driven by deadline and timeline such as this diagram below :

WaterFall_Model

Failure_Of_Waterfall

So the conclusion of the legacy failure method of waterfall are :

  • Waterfall method failed to deliver the application as intended to the customer in the time frame we predicted because all of the process is sequential but the deadline could move according to the key time line that customer defined, and remember one thing that “…your customer is your king …”
  •  Because of the inability in us to deliver the application as the customer want then we felt like don’t have anything to ship to the hold the customer’s confidence.
  • Reworking what we have may require ripping out some of what we’ve already built for instance when we are in the midst of project then suddenly there are some accidental requirement come from customer, let say 25 percent from the entire load project , but after we doing re-analyzing again then show 50 even more up to 75 percent of whole entire development supposed to be changed, oops..knock..knock…. your development team will kill you asap due to you will be charged as the most wasting time and energy in the world… J and every developer will hate you pale … 
  •   Finally we haven’t driven the risk out of the project because integration is not complete yet  and the time line will always move into the left side. and  then raise new methodology based on the collaboration team with roles activities and involve the customer as the part of whole interaction role, method such as RUP (Rational Unified Process) , Agile Methodology, Agile for CMII  (continuity methodology for Capability mature process)and then for short development is Agile Extreme Programming, in the other side there is a Scum methodology which based on product back log requirement designing, administering by scrum master  and the sprint task as the iteration development methodology.Okay, it’s time to keen our discussion about those method above, first we should to know the essential of each method  :

Currently the  Collaboration team methodology has many elements which refer to agile manifesto (www.agilemanifesto.org), it was a synthesis of common beliefs that underlie the various method whether contain such elements like this :

  • Individuals and interactions over process and tools (TDD, Source control and work item traceability)
  • Working software over comprehensive documentation (process guidance)
  • Customer collaboration over contract negotiation (Timeline management and resources )
  • Responding to change over following plan (Iteration process drive the project goal ) 

So, The modern tools of team collaboration development will refer to the Agile Manifesto principle, in next session i will describe one by one of each methodology of SDLC refer to Agile Manifesto.

Cheers,

Doddy Ch Saputra, MCPD,MCITP,MCTS

Hi..see you again.. this section is the continue part of my trilogy Multipurpose of Exception Handling class, okay let’s make it this quickly, the last class that we need is EmailGenerator class :

  • This class using 3 core of .Net library; System IO for accessing the XML email template,System XML and then System.Web.Email.
  • The main idea for this class is service another class that want to generate the email notification so we need to produce the public method for sending the emai, here are the method

public void AutomaticSendEmailLogging(string ErrorMessage)
        {
          
            MailMessage mailMsg = new MailMessage(); // Create instance of EmailMessage Object

            string templateName = FrameworkLayer.ConfigurationUtility.WebApplicationConfiguration.ProgrammerEmailName;
            mailMsg.From = FrameworkLayer.ConfigurationUtility.WebApplicationConfiguration.EmailSender;
            mailMsg.To = FrameworkLayer.ConfigurationUtility.WebApplicationConfiguration.ProgrammerEmail;
            //mailMsg.Cc = EmailUser;

(more…)

Okay in this section part i will talk more detail about those kind of class ,

  1. Logging Class

Prerequisite for this class :

  • You need provide the xml file for become the email template, the simple form like this :<EMAIL>
    <TITLE>Error Notification</TITLE>
    <MESSAGE>
    <SUBJECT>Global Coding System Notification
    </SUBJECT>
    <BODY>ERROR MESSAGE ALERT {0}
    ================================================\n\nPlease be advised that somthing error happen in your application :
    {1} \N
    </BODY>
    </MESSAGE>
    </EMAIL>

(more…)

In this Part, i will share of my code project which is i have made the multipurpose exception handling class. What is the trully meaning of multipurpose ? in this class i have create the exception handling class which covered the function for throwing the exception message and also giving the email alert notification to the programmer or event for system administrator.

for instance is like this :

in DAL i am using the exception handling class –> if there is something error in my DAL class –> the error handler will capture the Exception stack trace –> the Exception class will talk to the Logging class and also either the email class.

and then my class like this Logging class and Email class :

log

(more…)

In this 2nd part i’ll try to describe more detail in coding which i mentioned it in part 1,

a. ConnectionString Class

  • First Of all you need to save your connection string variable in your web config, in my case i put all of the setting in particular configuration setting class which being taken from webconfig setting.
  • I must inherit from the WebPageBase class for become the master of base page class, this WebPageBase class inherit the System.web.UI.Page , this class will become the property provider to every page in Web UI such as retrive the current user,current password and of course the applicationID that we need.
  • And the last thing i made two public static method which return the string of connectionstring and providername, both of those method will filter the appropriate connection string and provider name which inputed from each outside ( define input parameter ).

     let see the complete module :

     (more…)

In my current project i have made some DAL ( Data Access Layer ) class in my framework which has some purpose for handling many project needs such as :

1.  Able to provide multiple connection string in my project

2. Able to provide the multiple datastore string with many provider

3. Should be able to handling many application parameter response redirect

see the picture below of my class design :

class-design.jpg

I put the all of my engine application in Framework layer project including the Data Access utility, wheter contain :

a. ConnectionString Class :

  • This Class has purpose and duty to serving the connection string and provider name which will be consumed by the Query Builder class. In this class i set the Connection to database namespace and also i made inherit the web base class for accessing the web base class page property and method in the future utilization.
  • Why i must inherit from the page base class, in this project framework i need to access the ApplicationID property which catered by the page base class wheter all of web page should inherit from this base class.
  • After the initialially web page loaded in this case the default.aspx, there is an automatically fill the ApplicationID property in base class which consumed from the url parameter. Actually there is still need the decrypt class which serving for securing the parameter from URL but later i will create for this purpose.
  • This class has 2 methods which will cater the connection string and provider name the mthods are GetCN which return on string and either for GetPV.

b. Query Builder Class ( Interface Class )

  • This is sound of interesting part from the whole stories, this class has a duty for catering the automatically object parameter, object connection and the type of the sql command.
  • Therefore this class has an may important part method that execution in any output parameter method such as execute the dataset return,data reader return,execute scalar return in integer and also add parameter method for processing the parameter input to this class.
  • This Class has three kind overload method which catering the text string query, the stored procedure type of query which will be implemented in DAL project later.