Hallo,

Another kind of a methology for anayzing and designing development process is MSF for CMII, i’m not emphasize to much about this methodology, but for at least i’ll try to share the idea of this methodology, okay …

The Software Engineering Institute’s (SEI) Capability Maturity Model Integration (CMMI4) provides five levels at which an organization’s.process maturity can be measured, and it is often used to guide processimprovement across a project or an entire organization.

In theory,

you can select MSF for CMMI when creating your Team Projectand then simply follow the Process Guidance to become ready for level

three certification while having a clear way to reach level five.

However, inpractice, your team will have to do a lot more than just follow a set ofinstructions in order to achieve CMMI certification and produce great software.You can get some idea of the amount of work involved in using theMSF for CMMI framework by reading its Process Guidance and looking at

the documents it creates in your Team Project’s document folder.

This development process, as you might imagine, is completely prescribed andthere is almost no scope for variation, which makes it an unattractive optionfor a team that wants a design process. 

If you are working for a defense contractor or are involved with safetycriticalprojects, your team may have no option but to obtain CMMI certification,

in which case MSF for CMMI could be a good choice.

However, teams working on other types of projects might want to look for alternativeframeworks. Given the amount of management expected for peopleusing the MSF for CMMI framework, it is difficult to see how its use couldbe justified in a small or even medium-size teamprobably in next session i’ll talking much in practises by using TFS.

cheers,

Doddy Ch Saputra, MCPD,MCITP,MCTS

Hi Geeks,

How are you, well we met again in this session which talking about a part of designing and analyzing development. Currently we will discuss about RUP (Rational Unified Process) , so let’s rock and roll

RUP has reflects the experiences of over a decade of software development from a variety of companies and thought leaders applying object-oriented and iterative technique.

With respects to object oriented , the most roots of the process include Jacobson objector process, which introduced the use-case technique for requirement expression and leveraged component and object –oriented thinking.  We could know the RUP by these characters :

  1. RUP provides a full lifecycle approach covering a series of product lifecycle phases called inception, elaboration, construction, and transition.
  2. RUP Provides a software development method and a set software engineering practices that cover the majority of software development disciplines
  3. RUP iterative. Within each phase, the project undergoes multiple iterations ; the nature of each is determined in part by the life cyle phase. Early iterations build the business case and the requirements and architectural baseline. Later iterations focus on implementation and transition to the development .
  4. RUP is incremental; each iteration builds on the functionality of the prior iteration; the software application evolves in this fashion with the benefit of regular and continues feedback. 

So let’s take a look the model of RUP :

RUP Model
 

From those model above , we could know two axis, and first is Discipline axis, “…this axis elements describes the software disciplines that are necessary to achieve a quality result.These include requirements,analysis and design,implementation,test,deployment,configuration and change management and project management…”

for example :

  • In elaboration,iterations will have a heavier focus on requirements,analysis and design than they do in implementation and test.
  • In Project management discipline exists to stitch the other discipline together in a way that produces demonstrable results at the end of each iteration.                     

Finally let’s see another axis of those model :

   I.     Inception Iterations

·    Plan and prepare the business case. Establish the project software scope and boundary conditions, Including an operational vision and acceptance criteria.

·    Define the critical uses case of the system

·    Demonstrate at least one candidate architecture against the primary scenarios.

·    Estimates the overall cost and schedule for the entire project

·    Estimate potential risks especially time,human and ofcourse money

·    Synthesize a candidate of architecture, evaluating trade-offs in design and in make/buy/reuse so that cost,schedule and resources can be estimated.

·    Prepare the environment for the project,selecting tools and deciding which parts of the process to modify.    II.      Elaboration Iterations 

  • Address architecturally significant risks of the project and implement a baseline architecture to address them.
  • Produce exploratory, throwaway prototypes to mitigate critical risks.
  • Demonstrate that the architecture will support the requirement of the system.
  • Refine the vision of the basis of new information obtained during the phase.
  • Create initial iteration plans and release plans for the construction phase
  • Refine the development  case and put the development environment in place
  • Refine the architecture and select components.   

  III  .  Construction Iterations

  • Iteratively and incrementally develop a complete product that is ready to transitions to its user community.
  • Complete the analysis,design,development and testing of all required functionality in each iteration.·Minimize development costs by optimizing resources and avoiding unnecessary scrap and rework.·Achieve adequate quality as rapidly as practical
  • Decide if the software ,the sites and the users are all ready for the application to be deployed.
  • Complete component development and testing against the define evaluate criteria.
  •  Assess product releases against acceptance criteria for the vision. IV.  Transition Iteration
  • Test early iteration and releases to validate the new system against user expectation
  • Finalize end user support material; train users and maintainers.
  • Roll-out to the marketing ,distribution and sales forces
  • Finalize deployment – specific engineering such as cutover, commercial packaging, production,sales roll-out and field personal training.
  • Complete tuning activities such as bug fixing,performance and usability enhancement .
  • Assess the deployement baselines against the complete vision and the  acceptance criteria for the product.
  • ·Execute deployment plan.

So, Finally just try to understand the each axis and the relationship of every point mapping inorder we could get the essential RUP as another kind of agile methodology.

cheers,

Doddy Ch Saputra,MCPD,MCITP,MCTS 

Hi Geeks,

Today i’ll show you a little bit of scrum methology that we can use to define the analyzing and requirement process of our SDLC. 

The pioneer of scrum Jeff Sutherland and Ken Schwarber , they formulated the scrum which is

 “…a lightweight agile project  management method that is enjoying widespread adoption and effective use…”

A view characteristic or the elements of Scrum methodology are :

  1. Small, cross-functionality teams work closely together in an open environment to produce incremental releases of a product in 30-day increments, or sprint.·    Teams are self –directed and empowered to meet the objectives of the sprints.
  2. Team work is facilitated by a scum master role who does not direct technically activity but eliminates impediments and reinforces the core discipline of scrum.
  3. Work is organized via a product backlog,which is reprioritized for each sprint.               Based on the characteristic above then we could move to the next implementation if we choose        the scrum  method   as follow :
  4. Cross-Funtionality and collated teams of 8 or fewer team members develop software in sprints.
  5. Sprints are iterations of a fixed 30 day duration.Each sprints delivers incremental ,tested functionality of value to the user.
  6. Work within a sprint is fixed. Once the scope of a sprint is committed, no additional functionality can be added except by the development team.
  7. The Scrum master role  mentor and manage the self organizing and self managing teams that responsible for delivery of successful outcomes at each sprint.
  8. All work to be done is carried as Product Backlog, which includes requirements to be delivered, defect workload, as well as infrastructure and design activities.
  9. The product Backlog is developed, managed ,and prioritized by the product owner, who is an integral member of the team and who has the primary responsibility of interfacing with external customers.
  10. A daily 15 minutes stand up meeting or “Daily scrum” is a primary communicated method.
  11. Scrum focuses heavily on time boxing. Sprints, stand-up meetings, release review meetings, and like are all completed in prescribed times.

Scrum allow requirements, architecture and design to emerge over the course of the project   So, let’s take a look more deep  and dive,by using the figure that we could describe in empirical model like this :

Emprical model of scrum

Product Backlog –> provides input to the define/build/test process

The Evaluation Activities –> provides an objective measure whether the code delivers the intended result (Passes all tests meets objectives criteria) –> So the decision maker in evaluation will define the next item on the backlog  which will always be addressed. If not, the software is reworked immediately until it meets the objective of the requirement.The practically framework of scrum iteration could  be generated like this :
 Scrum-Activities from the principle of scrum and the activities figure above , we have a little bit clear of scrum methodology . So , have a nice development and see you again.

cheers,

Doddy Ch Saputra, MCPD,MCITP,MCTS

The Essential Of Agile Extreme Programming 

As We known before  that from Fowler,Gamma,Cunningham had defined the definition of Exteme programming which has the meaning is “..a lightweight methodology for small to medium-size teams developing software in the face of vague or rapidly changing requirements…” and furthermore XP has a view characteristics which are :

  • A team of 5-10 programmers work at one location with costumer representation on site.
  • Development occurs in frequent builds or iterations, each of which is releasable and delivers incremental functionality.
  • Requirements are specified as stories, each a chunk of new functionality the user requires.
  •  Programmers work in pairs, follow strict coding standards, and do their own unit testing.
  • Requirements, architecture, and design emerge over the course of the project.

             So , let’s take a look the model of extreme programming process :

XP-Model From that point view above we could follow the process of XP like this point :

  1. From the left side of the graphic model ,we can see two things that drive release planning and development .
  2. User stories represent functionality that is to be implemented in the course of the release.
  3. Architectural spikes are any work that the team needs to execute in order to lay in some architectural foundation, to explore a potential refactoring, or to look at new technology that may need to be included in the release. These inputs drive the release planning session.
  4. The outcome of the release session is an iteration plan defining a set of iterations intended to accomplish the release.
  5. To the right , and integral to the iteration, are the ever-present acceptance tests, which are typically written by the customer  and serve to the test the functionality implemented against the user stories.
  6. Finally, the result of all the process is a series of small releases that rapidly evolve to address the customer problem.

Okay , from the simple thought of Extreme programming above we have already get a paradigm of XP collaboration team development .

cheers,

Doddy Ch Saputra,MCPD,MCITP,MCTS

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 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

Hi Folks,

Nice to see you again, in this session i would like to share something nice about practically of high availibility strategies based on my experiences. As we known that all of a IT elements, i mean as a Software architect in application or in Database application had agree about one principle about how to get the goal of application process, especially in data transaction process. The rule is ACID test (Atomicity,Consistency,Isolation and Durability), i wouldn’t talked too much about the detail of these rules due to you can grab the knowledge from many theoritical database book in any where but the things that we should understand is ,between application domain and database should have mutual cooperation to gain this goal in practically, you might take care this rule in transaction process in application by using smart transaction method using ADO.NET or handling smart transaction by using stored procedure in the database. But in in these session, i wouldn’t discuss with you about those things probabaly next session pale , i would like to emphasize the discussion to maintain high availibility in database infrastructure in YUKON or as we known is SQL Server 2005.

Let say i have a scenario mirroring design like this following picture :

 MirrPic


Read the rest of this entry »

Folks,

Session object in Web Application is very important things for transferring variable or even doing some caching, as we known before in ASPNET there are a view mechanism to implement this caching object, one way approach is using the SQL server session wheter this way is eat the peformance of the retrieving the session object coz the system need to go round trips during the process, okay let’s forget it about using SQL Server session object in stead of we implement the session that we stored in Dictionary Collection which encapsulated in the class, the second things is using the cache object whether the system could save the system in web server memory by implement the cache and put it the span time to arrange the life cycle of the caching. Those action should be done coz the cache has a unlimited time life cycle in the web server memory, until  we destroy the cache by manually.

Read the rest of this entry »

Hi Folks,

See me again, just like my last posted before, i promise to you to share about the xml serialization transfer object.

I have a case that i should transfer the data inside in the xml from another platform such as SAP application but unfortunately ,the xml file that i’d received is not equipped by the schema or even the diffgram, my consideration doing the xml transfer data is QoS ( Quality of Service ), this is the unfuncionality area that i should focus because has a relation to the application performance, well, i don’t want to use the object dataset as much like the developer way to approach the transfer between the wire by using  return object dataset, coz it’s very heavy and reduce the performance a lot, so i must find out how to serialize the xml file into object class,and then i am using my old method to rectify the solution and here is my old method :

Read the rest of this entry »

Hi Folks,

I would like to share about my current project which is talking about integrated file data transfer from XML , whether there is a case that i need the SAP application transfer the XML data into my application, then i solve with creating the XML Web Service whether i cater the function to deserialize the XML file into Object Generic List, whether after i i have finish deserialize the XML then i put into an my class object then added into my generic array list.

In the other side my application just refer to the web service reference that i’ve been created before and accept the return value in object array.

after that i’m just happy with my array object later, i’ll share the simple sample deserialization code in the case later.

Thanks,

Doddy Ch Saputra

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.

Read the rest of this entry »

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 …

Read the rest of this entry »

linqPad

LINQPad lets you interactively query SQL databases in a modern query language: LINQ. Kiss goodbye to SQL Management Studio! LINQPad supports everything in C# 3.0 and Framework 3.5:

  • LINQ to SQL
  • LINQ to Objects
  • LINQ to XML

LINQPad is also a terrific tool for learning LINQ: it comes preloaded with 200 examples from the recently released C# 3.0 in a Nutshell. There’s no better way to experience the coolness of LINQ and functional programming.

LINQPad is free and needs no installation:The executable is only 1MB and is self-updating.

To get this tools, do not forget to check it out at http://www.codeplex.com

linqpad.JPG

Developer Folks,

Impedance Mismatch is the seriously problem in the previous dotnet 2.0 whether developer should thinking how to build a bridge between Object oriented memory repository and system modeling, that’s why there are so much ORM (Object Relational Mapping ) Tools issued in the previous version but currently in Dotnet Framework 3.5 especially in ORchas VS Studio 2008 there is a facility to handling those problem and it’s catering much functionality for system architects for creating modeling ( Entity Data Model ), it’s tools called Ado.Entity Framework and combine with the LINQ ( Language Integrator Query Language ) is the best solution to create any Data access Layer in your application, herewith the sample of using  Entity Data Reader which being written by the pioneer of Entity framework service Project Manager Developer Mr Zlatko Michailov…he built the library about implementing the ADO.NET Data Reader and you’ll found many things that make it your LINQ development is enjoyable.. have enjoy coding folks….

By The way check it out in codeplex for download this library ..

  Read the rest of this entry »

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

Read the rest of this entry »

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;

Read the rest of this entry »

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>

Read the rest of this entry »

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

Read the rest of this entry »

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 :

     Read the rest of this entry »

I would like to share about how to handling the upload file or creating something in your project which is need for file uploading, in this part there are some purpose that we want to achieve :

1. Browsing the file in local client into the list of file uploading

2. Move the all file list into the table which already to sent to web server  

  • The UI design                          * User Control for Editing and viewing Files

           UI Design                   grid-view-file.jpg

  • From the UI design I made the MediaFileUpload.Aspx , and then in the code behind of this control you need to made a declaration for web file repository like this : 

Read the rest of this entry »

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.