SlideShare una empresa de Scribd logo
1 de 17
Library Phase II – Windows Business & Data Access TiersIntroduction:For this project, I was responsible for developing the Windows Forms, Business Layer, and Data Access Layer for this n-tier library application.  The Data Access tier utilizes stored T-SQL procedures to query and update SQL Server database tables.  Within each stored procedure, I implemented data validation and proper error handling techniques.  Created a custom exceptions class to catch Sql Exceptions and give the user a more detailed message, while avoiding an Exception error.  The business tier acts as a middle tier between the Windows Application tier and the Data Access tier, passing data as objects to separate Data Access from Presentation Layer completely and ensuring that no SQL Code is in the application to prevent SQL Injection Attacks.Audience:This project is designed for library personnel to carry out typical library functions, such as adding members and checking in/out library books.  The forms were designed to be easy to use, adhering to windows forms best-practices and multiple document interface usage. Project Goals:Design the Presentation, Business and Data Access tiers.Develop code that is scalable and easily maintainable.Provide adequate error handling.Use database-programming techniques that provide maximum programming flexibility and control while minimizing resource utilization. Use of ADO.NET for Utilizing SQL Stored ProceduresGet Members/// ,[object Object],        /// ,[object Object],The member's member number (ID).        /// ,[object Object],        public Member GetMember(short memberNumber)        {            Member member = null;            //Establish the connection            using (SqlConnection con = new SqlConnection(MC.DataAccess.Properties.Settings.Default.LibraryConnectionString))            {                //Instantiate a command with the connection for stored procedure                //dbo.Adult_Member_Sel                using (SqlCommand cmd = new SqlCommand(
dbo.Member_Sel
, con))                {                    cmd.CommandType = CommandType.StoredProcedure;                    #region Add Parameters                    cmd.Parameters.AddWithValue(
@member_no
, memberNumber);                                        SqlParameter param = new SqlParameter(
@lastname
, SqlDbType.VarChar, 15);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@firstname
, SqlDbType.VarChar, 25);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@middleinitial
, SqlDbType.Char, 1);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@street
, SqlDbType.VarChar, 15);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@city
, SqlDbType.VarChar, 15);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@state
, SqlDbType.VarChar, 2);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);  Continued on next page… Get Members Continued…  param = new SqlParameter(
@zip
, SqlDbType.VarChar, 10);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@phone_no
, SqlDbType.VarChar, 13);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@expr_date
, SqlDbType.DateTime, 8);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@is_juvenile
, SqlDbType.Bit, 1);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@adult_member_no
, SqlDbType.SmallInt, 2);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    param = new SqlParameter(
@birth_date
, SqlDbType.DateTime, 8);                    param.Direction = ParameterDirection.Output;                    cmd.Parameters.Add(param);                    #endregion                    try                    {                        //Open our connection and execute our query                        con.Open();                        int returnValue = cmd.ExecuteNonQuery();                        //Check to see if we have a juvenile                        if ((bool)cmd.Parameters[
@is_juvenile
].Value)                        {                            JuvenileMember jm = new JuvenileMember();                            //Fill member properties                            jm.MemberID = (short)cmd.Parameters[
@member_no
].Value;                            jm.LastName = cmd.Parameters[
@lastname
].Value.ToString();                            jm.FirstName = cmd.Parameters[
@firstname
].Value.ToString();                            jm.MiddleInitial = cmd.Parameters[
@middleinitial
].Value.ToString();                            jm.Street = cmd.Parameters[
@street
].Value.ToString();                            jm.City = cmd.Parameters[
@city
].Value.ToString();                            jm.State = cmd.Parameters[
@state
].Value.ToString();                            jm.ZipCode = cmd.Parameters[
@zip
].Value.ToString();                            jm.PhoneNumber = cmd.Parameters[
@phone_no
].Value.ToString();                            jm.ExpirationDate = Convert.ToDateTime(cmd.Parameters[
@expr_date
].Value);                            jm.AdultMemberID = (short)cmd.Parameters[
@adult_member_no
].Value;Continued on next page… Get Members Continued…jm.BirthDate = Convert.ToDateTime(cmd.Parameters[
@birth_date
].Value);                            //Cast the juvenile member to a member                            member = (Member)jm;                        }                        else                        {                            member = new Member();                            //Fill member properties                            member.MemberID = (short)cmd.Parameters[
@member_no
].Value;                            member.LastName = cmd.Parameters[
@lastname
].Value.ToString();                            member.FirstName = cmd.Parameters[
@firstname
].Value.ToString();                            member.MiddleInitial = cmd.Parameters[
@middleinitial
].Value.ToString();                            member.Street = cmd.Parameters[
@street
].Value.ToString();                            member.City = cmd.Parameters[
@city
].Value.ToString();                            member.State = cmd.Parameters[
@state
].Value.ToString();                            member.ZipCode = cmd.Parameters[
@zip
].Value.ToString();                            member.PhoneNumber = cmd.Parameters[
@phone_no
].Value.ToString();                            member.ExpirationDate = Convert.ToDateTime(cmd.Parameters[
@expr_date
].Value.ToString());                        }                    }                    catch (SqlException sqlex)                    {                        switch (sqlex.State)                        {                            case 2:                                throw new LibraryException(ErrorCode.NoSuchMember);                                break;                            default:                                throw new LibraryException(ErrorCode.GenericException, sqlex.Message);                                break;                        }                                                                    }                    catch (Exception ex)                    {                        throw new LibraryException(ErrorCode.GenericException, ex.Message);                    }                }            }            return member;        }        #endregion    }}This method is located in the Data Access class, which handles all calls to the database by use of stored procedures.  The SQLCommand object is populated with input and output parameters, as well as calling a Custom Exceptions class.   The catch blocks handle any SQLExceptions and throw a new custom Library Exception back to the presentation layer. Custom Exception Handlingpublic class LibraryException : Exception    {        private ErrorCode libraryErrorCode;        public ErrorCode LibraryErrorCode        {            get { return libraryErrorCode; }        }        /// ,[object Object],        /// ,[object Object],        public LibraryException(string msg) : base(msg)        {            libraryErrorCode = ErrorCode.None;        }        /// ,[object Object],        /// ,[object Object],The error code that indicates the reason for the exception.        public LibraryException(ErrorCode errorCode)        {            libraryErrorCode = errorCode;        }        /// ,[object Object],        /// ,[object Object],The error code that indicates the reason for the exception.        /// ,[object Object],The error message that explains the reason for the exception.         public LibraryException(ErrorCode errorCode, string msg) : base(msg)        {            libraryErrorCode = errorCode;        }        #endregion    }This is a partial representation of a custom exceptions class I created for catching SQL Exceptions and rethrowing the exception as a Library Exception with a more detailed error message from the ErrorCode enumeration. Custom Exception Handlingpublic class ExceptionMessages    {                /// ,[object Object],        /// ,[object Object],Library Exception        /// ,[object Object],        public static string HandleExceptions(LibraryException le)        {            string s;            switch (le.LibraryErrorCode)            {                case ErrorCode.AddAdultFailed:                    s = 
Add Adult Failed.
;                    break;                case ErrorCode.AddJuvenileFailed:                    s = 
Add Juvenile Failed.
;                    break;                case ErrorCode.CheckInFailed:                    s = 
Check In Failed.
;                    break;                case ErrorCode.CheckOutFailed:                    s = 
Check Out Failed.
;                    break;                case ErrorCode.GenericException:                    s = le.Message;                    break;                case ErrorCode.ItemAlreadyOnLoan:                    s = 
Item is Already On Loan.
;                    break;                case ErrorCode.ItemNotFound:                    s = 
The Item was Not Found.
;                    break;                case ErrorCode.ItemNotOnLoan:                    s = 
The Item is Not Currently On Loan.
;                    break;                case ErrorCode.MissingAdultMember:                    s = 
Missing Adult Member.
;                    break;                case ErrorCode.NoSuchMember:                    s = 
Member not found.
;                    break;                case ErrorCode.None:                    s = 
No Error.
;                    break;                default:                    s = 
Exception Occurred.
;                    break;            }            return s;        }    } SQL Stored ProcedureCreate a Stored ProcedureCREATE PROCEDURE [dbo].[Member_Sel] -- Add the parameters for the stored procedure here@member_no SMALLINT = NULL,@lastname VARCHAR(15) = NULL OUTPUT, @firstname VARCHAR(15) = NULL OUTPUT, @middleinitial CHAR(1) = NULL OUTPUT,@street VARCHAR(15) = NULL OUTPUT,@city VARCHAR(15) = NULL OUTPUT,@state CHAR(2) = NULL OUTPUT,@zip CHAR(10) = NULL OUTPUT,@phone_no CHAR(13) = NULL OUTPUT,@expr_date DATETIME = NULL OUTPUT,@is_juvenile BIT = 0 OUTPUT,@adult_member_no SMALLINT = NULL OUTPUT,@birth_date DATETIME = NULL OUTPUTASBEGIN-- SET NOCOUNT ON added to prevent extra result sets from-- interfering with SELECT statements.SET NOCOUNT ON;--Check for nullsIF (@member_no IS NULL) OR (@member_no < 1) OR (@member_no > 32767)BEGINRAISERROR('Member ID is not valid.', 11, 1);RETURNEND--Check to see if member_no is in the juvenile tableIF (SELECT COUNT(*) FROM Juvenile WHERE member_no = @member_no) > 0BEGIN --Juvenile functionalitySET @is_juvenile = 1--Get juvenile informationSELECT @lastname = m.lastname, @firstname = m.firstname, @middleinitial = m.middleinitial,@birth_date = birth_date, @adult_member_no = adult_member_noFROM Juvenile AS jJOIN Member as mON j.member_no = @member_no AND m.member_no = @member_no--Get parent's information from @adult_member_noSELECT @street = street, @city = city, @state = state, @zip = zip, @expr_date = expr_date,@phone_no = phone_noFROM Adult WHERE member_no = @adult_member_noEND Stored Procedure Continued…ELSE IF (SELECT COUNT(*) FROM Adult WHERE member_no = @member_no) > 0BEGIN --Adult functionalitySET @is_juvenile = 0--Get adult informationSELECT @lastname = m.lastname, @firstname = m.firstname, @middleinitial = m.middleinitial,@street = a.street, @city = a.city, @state = a.state, @zip = a.zip, @expr_date = a.expr_date,@phone_no = a.phone_noFROM Adult AS a JOIN Member AS mON a.member_no = @member_no AND m.member_no = @member_noENDELSE BEGIN --Member does not exist errorRAISERROR('Member does not exist.', 11, 2);The following stored procedure is being called by an ADO.NET SqlCommand object.  The stored proc returns all info into output parameters from either the Juvenile or Adult Table.  If an error occurs, it raises it’s own SqlException with a specified State, which the Data Access Layer then bubbles up to the Presentation Layer for proper error handling and notification to the user. Business Layer    public class BusinessLayer    {        /// ,[object Object],        public BusinessLayer()…        /// ,[object Object],        /// ,[object Object],memberId to look up        /// ,[object Object],        public Member GetInformation(short memberId)        {            //Create a library data access object            LibraryDataAccess lda = new LibraryDataAccess();            //Call the Get member method and pass in the memberId            Member myMember = lda.GetMember(memberId);            return myMember;        }                /// ,[object Object],        /// ,[object Object],memberId        /// ,[object Object],        public ItemsDataSet GetBooks(short memberId)        {            //Create a library data access object            LibraryDataAccess lda = new LibraryDataAccess();            //Call the GetItems method            ItemsDataSet ids = lda.GetItems(memberId);            return ids;        }        /// ,[object Object],        /// ,[object Object],member who checked out book        /// ,[object Object],ISBN of Book        /// ,[object Object],copyNo of Book        public void CheckOutBook(short memberId, int isbn, short copyNo)        {            //Create a library data access object            LibraryDataAccess lda = new LibraryDataAccess();            //Call the CheckInItem Method            lda.CheckOutItem(memberId, isbn, copyNo);        }    }The above class is partial and represents some of the methods within the business tier and communicates data between the presentation layer and the data access layer.   Implementing Interfaces in Custom Classes    [DeveloperInfo(
Mike Colon
, Date = 
04/22/2009
, Title = 
Products
)]    [CustomDescription(
Products is a collection of Product: IList,[object Object]
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio
Michael Colon Portfolio

Más contenido relacionado

La actualidad más candente

Converting Db Schema Into Uml Classes
Converting Db Schema Into Uml ClassesConverting Db Schema Into Uml Classes
Converting Db Schema Into Uml ClassesKaniska Mandal
 
30 5 Database Jdbc
30 5 Database Jdbc30 5 Database Jdbc
30 5 Database Jdbcphanleson
 
How to Bring Common UI Patterns to ADF
How to Bring Common UI Patterns to ADF How to Bring Common UI Patterns to ADF
How to Bring Common UI Patterns to ADF Luc Bors
 
Introduction to sql new
Introduction to sql newIntroduction to sql new
Introduction to sql newSANTOSH RATH
 
Functional Java 8 in everyday life
Functional Java 8 in everyday lifeFunctional Java 8 in everyday life
Functional Java 8 in everyday lifeAndrea Iacono
 
Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26SynapseindiaComplaints
 
JQuery Presentation
JQuery PresentationJQuery Presentation
JQuery PresentationSony Jain
 
Les18-Oracle
Les18-OracleLes18-Oracle
Les18-Oraclesuman1248
 
#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...
#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...
#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
F# in the enterprise
F# in the enterpriseF# in the enterprise
F# in the enterprise7sharp9
 
Sql server ___________session_18(stored procedures)
Sql server  ___________session_18(stored procedures)Sql server  ___________session_18(stored procedures)
Sql server ___________session_18(stored procedures)Ehtisham Ali
 
Java script advance-auroskills (2)
Java script advance-auroskills (2)Java script advance-auroskills (2)
Java script advance-auroskills (2)BoneyGawande
 

La actualidad más candente (20)

8. sql
8. sql8. sql
8. sql
 
Converting Db Schema Into Uml Classes
Converting Db Schema Into Uml ClassesConverting Db Schema Into Uml Classes
Converting Db Schema Into Uml Classes
 
30 5 Database Jdbc
30 5 Database Jdbc30 5 Database Jdbc
30 5 Database Jdbc
 
React/Redux
React/ReduxReact/Redux
React/Redux
 
Drupal7 dbtng
Drupal7  dbtngDrupal7  dbtng
Drupal7 dbtng
 
SQL
SQLSQL
SQL
 
How to Bring Common UI Patterns to ADF
How to Bring Common UI Patterns to ADF How to Bring Common UI Patterns to ADF
How to Bring Common UI Patterns to ADF
 
Introduction to sql new
Introduction to sql newIntroduction to sql new
Introduction to sql new
 
Functional Java 8 in everyday life
Functional Java 8 in everyday lifeFunctional Java 8 in everyday life
Functional Java 8 in everyday life
 
How te bring common UI patterns to ADF
How te bring common UI patterns to ADFHow te bring common UI patterns to ADF
How te bring common UI patterns to ADF
 
Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26Synapse india complain sharing info about php chaptr 26
Synapse india complain sharing info about php chaptr 26
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
Commands of DML in SQL
Commands of DML in SQLCommands of DML in SQL
Commands of DML in SQL
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
JQuery Presentation
JQuery PresentationJQuery Presentation
JQuery Presentation
 
Les18-Oracle
Les18-OracleLes18-Oracle
Les18-Oracle
 
#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...
#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...
#36.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_재직자환급교육,실업자교육,국비지원교육, 자바교육,구...
 
F# in the enterprise
F# in the enterpriseF# in the enterprise
F# in the enterprise
 
Sql server ___________session_18(stored procedures)
Sql server  ___________session_18(stored procedures)Sql server  ___________session_18(stored procedures)
Sql server ___________session_18(stored procedures)
 
Java script advance-auroskills (2)
Java script advance-auroskills (2)Java script advance-auroskills (2)
Java script advance-auroskills (2)
 

Destacado

Wrapping an api with a ruby gem
Wrapping an api with a ruby gemWrapping an api with a ruby gem
Wrapping an api with a ruby gemJames Thompson
 
E E N M U U R M E T B R I E V E N
E E N  M U U R  M E T  B R I E V E NE E N  M U U R  M E T  B R I E V E N
E E N M U U R M E T B R I E V E Nguest3f5eaf
 
Ects 637, session seven, integration of global perspectives for marketing and...
Ects 637, session seven, integration of global perspectives for marketing and...Ects 637, session seven, integration of global perspectives for marketing and...
Ects 637, session seven, integration of global perspectives for marketing and...Resort Opportunities(tm)
 
Helath mangement in business
Helath mangement in business Helath mangement in business
Helath mangement in business Hélder Silva
 
Learn Ruby 2011 - Session 4 - Objects, Oh My!
Learn Ruby 2011 - Session 4 - Objects, Oh My!Learn Ruby 2011 - Session 4 - Objects, Oh My!
Learn Ruby 2011 - Session 4 - Objects, Oh My!James Thompson
 
518, MP1, Introduction to Internet Marketing, saxe
518, MP1, Introduction to Internet Marketing, saxe518, MP1, Introduction to Internet Marketing, saxe
518, MP1, Introduction to Internet Marketing, saxeResort Opportunities(tm)
 
4 studyoverseasnewcomersankhtuyabelendalai25112012
4 studyoverseasnewcomersankhtuyabelendalai251120124 studyoverseasnewcomersankhtuyabelendalai25112012
4 studyoverseasnewcomersankhtuyabelendalai25112012Gegeen Australia
 
Standard ot sb presentation updated 20130402
Standard ot sb presentation updated 20130402Standard ot sb presentation updated 20130402
Standard ot sb presentation updated 20130402Gegeen Australia
 
Een Muur Met Brieven
Een Muur Met BrievenEen Muur Met Brieven
Een Muur Met Brievenguest3f5eaf
 
Ruby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpecRuby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpecJames Thompson
 
Representing Uncertainty in Situation Maps for Disaster Management
Representing Uncertainty in Situation Maps for Disaster ManagementRepresenting Uncertainty in Situation Maps for Disaster Management
Representing Uncertainty in Situation Maps for Disaster Managementhje
 

Destacado (20)

Wrapping an api with a ruby gem
Wrapping an api with a ruby gemWrapping an api with a ruby gem
Wrapping an api with a ruby gem
 
E E N M U U R M E T B R I E V E N
E E N  M U U R  M E T  B R I E V E NE E N  M U U R  M E T  B R I E V E N
E E N M U U R M E T B R I E V E N
 
Sample: Student Work
Sample: Student WorkSample: Student Work
Sample: Student Work
 
Ects 637, session seven, integration of global perspectives for marketing and...
Ects 637, session seven, integration of global perspectives for marketing and...Ects 637, session seven, integration of global perspectives for marketing and...
Ects 637, session seven, integration of global perspectives for marketing and...
 
Helath mangement in business
Helath mangement in business Helath mangement in business
Helath mangement in business
 
PART I.1 - Physical Mathematics
PART I.1 - Physical MathematicsPART I.1 - Physical Mathematics
PART I.1 - Physical Mathematics
 
MP2 - 10 Minutes to Domain Success
MP2 - 10 Minutes to Domain SuccessMP2 - 10 Minutes to Domain Success
MP2 - 10 Minutes to Domain Success
 
Learn Ruby 2011 - Session 4 - Objects, Oh My!
Learn Ruby 2011 - Session 4 - Objects, Oh My!Learn Ruby 2011 - Session 4 - Objects, Oh My!
Learn Ruby 2011 - Session 4 - Objects, Oh My!
 
Bt9
Bt9Bt9
Bt9
 
518, MP1, Introduction to Internet Marketing, saxe
518, MP1, Introduction to Internet Marketing, saxe518, MP1, Introduction to Internet Marketing, saxe
518, MP1, Introduction to Internet Marketing, saxe
 
4 studyoverseasnewcomersankhtuyabelendalai25112012
4 studyoverseasnewcomersankhtuyabelendalai251120124 studyoverseasnewcomersankhtuyabelendalai25112012
4 studyoverseasnewcomersankhtuyabelendalai25112012
 
Some ethical axes
Some ethical axesSome ethical axes
Some ethical axes
 
Standard ot sb presentation updated 20130402
Standard ot sb presentation updated 20130402Standard ot sb presentation updated 20130402
Standard ot sb presentation updated 20130402
 
Een Muur Met Brieven
Een Muur Met BrievenEen Muur Met Brieven
Een Muur Met Brieven
 
Time management
Time managementTime management
Time management
 
Part IX - Supersymmetry
Part IX - SupersymmetryPart IX - Supersymmetry
Part IX - Supersymmetry
 
Dubai
DubaiDubai
Dubai
 
Fantastic Trip
Fantastic TripFantastic Trip
Fantastic Trip
 
Ruby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpecRuby Testing: Cucumber and RSpec
Ruby Testing: Cucumber and RSpec
 
Representing Uncertainty in Situation Maps for Disaster Management
Representing Uncertainty in Situation Maps for Disaster ManagementRepresenting Uncertainty in Situation Maps for Disaster Management
Representing Uncertainty in Situation Maps for Disaster Management
 

Similar a Michael Colon Portfolio

Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeletonIram Ramrajkar
 
VPN Access Runbook
VPN Access RunbookVPN Access Runbook
VPN Access RunbookTaha Shakeel
 
Ensure code quality with vs2012
Ensure code quality with vs2012Ensure code quality with vs2012
Ensure code quality with vs2012Sandeep Joshi
 
Library Project Marcelo Salvador
Library Project Marcelo SalvadorLibrary Project Marcelo Salvador
Library Project Marcelo SalvadorDomingos Salvador
 
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVERINSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVERDarwin Durand
 
Library Project Phase 1
Library Project Phase 1Library Project Phase 1
Library Project Phase 1gholtron
 
Architecting JavaScript Code
Architecting JavaScript CodeArchitecting JavaScript Code
Architecting JavaScript CodeSuresh Balla
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Executing Sql Commands
Executing Sql CommandsExecuting Sql Commands
Executing Sql Commandsleminhvuong
 
Library Website
Library WebsiteLibrary Website
Library Websitegholtron
 

Similar a Michael Colon Portfolio (20)

Week 12 code
Week 12 codeWeek 12 code
Week 12 code
 
Email Program By Marcelo
Email Program By MarceloEmail Program By Marcelo
Email Program By Marcelo
 
Email Program By Marcelo
Email Program By MarceloEmail Program By Marcelo
Email Program By Marcelo
 
Email Program By Marcelo
Email Program By MarceloEmail Program By Marcelo
Email Program By Marcelo
 
Code
CodeCode
Code
 
Advance Java Programs skeleton
Advance Java Programs skeletonAdvance Java Programs skeleton
Advance Java Programs skeleton
 
VPN Access Runbook
VPN Access RunbookVPN Access Runbook
VPN Access Runbook
 
Library Project
Library ProjectLibrary Project
Library Project
 
Ensure code quality with vs2012
Ensure code quality with vs2012Ensure code quality with vs2012
Ensure code quality with vs2012
 
Ad java prac sol set
Ad java prac sol setAd java prac sol set
Ad java prac sol set
 
Library Project Marcelo Salvador
Library Project Marcelo SalvadorLibrary Project Marcelo Salvador
Library Project Marcelo Salvador
 
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVERINSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
INSERCION DE REGISTROS DESDE VISUAL.NET A UNA BD DE SQL SERVER
 
Library Project Phase 1
Library Project Phase 1Library Project Phase 1
Library Project Phase 1
 
Clean code
Clean codeClean code
Clean code
 
Architecting JavaScript Code
Architecting JavaScript CodeArchitecting JavaScript Code
Architecting JavaScript Code
 
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
Executing Sql Commands
Executing Sql CommandsExecuting Sql Commands
Executing Sql Commands
 
Javascripting.pptx
Javascripting.pptxJavascripting.pptx
Javascripting.pptx
 
Library Website
Library WebsiteLibrary Website
Library Website
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 

Michael Colon Portfolio

  • 1.