Search
Wednesday, February 22, 2012 ..:: Services ::.. Register  Login
 N-Tier Minimize
NOTICE:  This material is highly technical and provided herein as example of not only N-Tier techniques, but also for coding ability with regard to database, middleware, user interfacing and even documentation components.  With a few mouse clicks one can review database structure, T-SQL source code and even C# and VB.NET source code for ALL compenents used in the proposed application.
 
Tube99 Application - A Solution Using Classic N-Tier Architecture

It is not the purpose of this documentation to define or describe the 'application need' that Tube99 was designed to provide.  In fact it might be easier for one to visualize the true nature of N-Tier application architecture by looking at a solution with no preconceived idea of purpose.  Suffice it to say, that Tube99 was a pilot that never saw the light of day...  a good idea that never obtained funding.
 
This documentation was written to illustrate N-Tier application design practices. The Tube99 sample as with most N-Tier applications consists of a Data Repository (MS-SQL in this case), Several 'middle ware' objects or components and a number of User Facing Forms or Pages.  For many people the three layers mentioned above constitute the N-Tier architecture.  In reality, 'N' means 'any number' *Excellent Article by Robert Chartier and from the contents of this Tube99 example, one can quickly see that 'N' normally means hundreds if not thousands of objects placed into at least three layers or tiers of the application structure. 
 
The temptation to 'get to market', cut costs, coupled with degrees of Object Design literacy leads many to over simplify the layers or tiers implemented.   As shown herein, one should logically divide components into one of the three layers mentioned above, HOWEVER it is required that careful planning be used (sprinkled with generous amounts of experience) when deciding exactly which layer will house a given component or piece of business logic.  The one constant in software engineering is that software is 'ever evolving'... Ideas, needs and wants will forever change and as such your software environment must be adaptable and capable of providing this flexibility. 
 
"If you don't have time to do it right... when will you find time to do it over!"   
 
We offer the N-Tier newbie the following two quick start paths:
  • ERD - Enity Relationship Diagram ( Data! The bedrock of every application)
  • Namespace(s) Grouping or division of objects. A brief analogy would be to consider a house... walls, floors, ceilings (assemblies).  Each of these assemblies is composed of many pieces of wood.  Each piece of wood has characteristics, length, width, thickness, angles, etc.  (2x4, or 2x6 joist). There are ceiling joists, and floor joists.  It is the use of this assembly name before the word joist that defines its location. In the software world this location is called Namespace(s). In addition, while we used a particular 2x6 in one spot of a floor, it cannot be reused in another assembly or even additional spot of the same assembly.  In the virtual world of software we are allowed to reuse this exact same object... or not.. depending on business logic. 

A quiz: Well not actually. More like a challenge; How quickly can you discern the 'convention' used when naming objects throughout this system? There is a common approach at all levels.. database, middleware and user interface. Watch for it.  A vital technique when building or working on projects with multiple technicians.... 
NOTICE:  This material is highly technical and provided herein as example of not only N-Tier techniques, but also for coding ability with regard to database, middleware, user interfacing and even documentation components.  With a few mouse clicks one can review database structure, T-SQL source code and even C# and VB.NET source code for ALL compenents used in the proposed application.
 
Tube99 Application - A Solution Using Classic N-Tier Architecture

It is not the purpose of this documentation to define or describe the 'application need' that Tube99 was designed to provide.  In fact it might be easier for one to visualize the true nature of N-Tier application architecture by looking at a solution with no preconceived idea of purpose.  Suffice it to say, that Tube99 was a pilot that never saw the light of day...  a good idea that never obtained funding.
 
This documentation was written to illustrate N-Tier application design practices. The Tube99 sample as with most N-Tier applications consists of a Data Repository (MS-SQL in this case), Several 'middle ware' objects or components and a number of User Facing Forms or Pages.  For many people the three layers mentioned above constitute the N-Tier architecture.  In reality, 'N' means 'any number' *Excellent Article by Robert Chartier and from the contents of this Tube99 example, one can quickly see that 'N' normally means hundreds if not thousands of objects placed into at least three layers or tiers of the application structure. 
 
The temptation to 'get to market', cut costs, coupled with degrees of Object Design literacy leads many to over simplify the layers or tiers implemented.   As shown herein, one should logically divide components into one of the three layers mentioned above, HOWEVER it is required that careful planning be used (sprinkled with generous amounts of experience) when deciding exactly which layer will house a given component or piece of business logic.  The one constant in software engineering is that software is 'ever evolving'... Ideas, needs and wants will forever change and as such your software environment must be adaptable and capable of providing this flexibility. 
 
"If you don't have time to do it right... when will you find time to do it over!"   
 
We offer the N-Tier newbie the following two quick start paths:
  • ERD - Enity Relationship Diagram ( Data! The bedrock of every application)
  • Namespace(s) Grouping or division of objects. A brief analogy would be to consider a house... walls, floors, ceilings (assemblies).  Each of these assemblies is composed of many pieces of wood.  Each piece of wood has characteristics, length, width, thickness, angles, etc.  (2x4, or 2x6 joist). There are ceiling joists, and floor joists.  It is the use of this assembly name before the word joist that defines its location. In the software world this location is called Namespace(s). In addition, while we used a particular 2x6 in one spot of a floor, it cannot be reused in another assembly or even additional spot of the same assembly.  In the virtual world of software we are allowed to reuse this exact same object... or not.. depending on business logic. 

A quiz: Well not actually. More like a challenge; How quickly can you discern the 'convention' used when naming objects throughout this system? There is a common approach at all levels.. database, middleware and user interface. Watch for it.  A vital technique when building or working on projects with multiple technicians.... 
  
 Video / Media / Conversion Minimize
Name: 

Description:
More a second generation of New Florida Kitchen this site was designed to combine CMS and Social networking features into a one stop site for all local area 'stuff'.

Built upon DotNetNuke (portal) and incorporating several custom modules, This site combines many external data feeds into one central content site based on geographic area (zipcode). For example the Weather, Traffic and Yahoo Upcoming (Events) data is all subscribed and repackaged from Yahoo.  These components are available for purchase elsewhere on this site.

Please note: Registration is required to review all features... and registration is free.

Name: 

Description:
More a second generation of New Florida Kitchen this site was designed to combine CMS and Social networking features into a one stop site for all local area 'stuff'.

Built upon DotNetNuke (portal) and incorporating several custom modules, This site combines many external data feeds into one central content site based on geographic area (zipcode). For example the Weather, Traffic and Yahoo Upcoming (Events) data is all subscribed and repackaged from Yahoo.  These components are available for purchase elsewhere on this site.

Please note: Registration is required to review all features... and registration is free.

  
 Portal - CMS - DNN Minimize
Name:  ChefRolf.com

 

Description:
More a second generation of New Florida Kitchen this site was designed to combine CMS and Social networking features into a one stop site for all local area 'stuff'.

Built upon DotNetNuke (portal) and incorporating several custom modules, This site combines many external data feeds into one central content site based on geographic area (zipcode). For example the Weather, Traffic and Yahoo Upcoming (Events) data is all subscribed and repackaged from Yahoo.  These components are available for purchase elsewhere on this site.

Please note: Registration is required to review all features... and registration is free.

Name:  ChefRolf.com

 

Description:
More a second generation of New Florida Kitchen this site was designed to combine CMS and Social networking features into a one stop site for all local area 'stuff'.

Built upon DotNetNuke (portal) and incorporating several custom modules, This site combines many external data feeds into one central content site based on geographic area (zipcode). For example the Weather, Traffic and Yahoo Upcoming (Events) data is all subscribed and repackaged from Yahoo.  These components are available for purchase elsewhere on this site.

Please note: Registration is required to review all features... and registration is free.

  
 Video Capture - Dynamic Forms Minimize

Name: Virtual Video Interviews

Click to visit web site

 


Description:
Provided as example of automating a very complex real world process.

Designed to virtualize the typical interview process... this system is an extension of our survey engine. The survey engine, presents highly customized surveys which include typical 'form based' questions, file uploads for resumes, and questions in the form of video clips (ie talking head), during clip playback the user's web cam is incorporated to record video and audio responses. At end of interview session, video capture is previewed, approved and attached as part of session 'responses' for web based hiring review process.

Register first, download custom browser... to experience full Interview Process.

Name: Virtual Video Interviews

Click to visit web site

 


Description:
Provided as example of automating a very complex real world process.

Designed to virtualize the typical interview process... this system is an extension of our survey engine. The survey engine, presents highly customized surveys which include typical 'form based' questions, file uploads for resumes, and questions in the form of video clips (ie talking head), during clip playback the user's web cam is incorporated to record video and audio responses. At end of interview session, video capture is previewed, approved and attached as part of session 'responses' for web based hiring review process.

Register first, download custom browser... to experience full Interview Process.

  

The projects listed below represent a very small sample of skills and technology tools available.

Most overlap in skill sets involved, each was selected to focus on one aspect of the application which is pointed out in the project frame title. 

For details on a specific project or skill set feel free to email us.

The projects listed below represent a very small sample of skills and technology tools available.

Most overlap in skill sets involved, each was selected to focus on one aspect of the application which is pointed out in the project frame title. 

For details on a specific project or skill set feel free to email us.

 Cross Platform Minimize

Name: TelePrompter Description:
 
Free Web and Windows PC based teleprompter software.  Demonstrates skill with cross platform technology, heavy use of bitmaps, ActiveX components.  This application started as a web based solution that in turn was ported to function as windows standalone application.  

Next phases of project target multiple environments for client software, namely Mac, Unix/Linix all using the MONO runtime environment.

Name: TelePrompter Description:
 
Free Web and Windows PC based teleprompter software.  Demonstrates skill with cross platform technology, heavy use of bitmaps, ActiveX components.  This application started as a web based solution that in turn was ported to function as windows standalone application.  

Next phases of project target multiple environments for client software, namely Mac, Unix/Linix all using the MONO runtime environment.

  
 Windows Services - Web Service Minimize
Name: ELoyaity

Card.jpg

Description:
Restaurant loyality/rewards system... Example of a successful and complex desktop database application that was ported to web/MS-SQL... and then as modules for use in DNN portal.

All web version of product incorporate various 'connectors' for use with in store POS systems. Most of these connectors are implemented as 'true windows service components'.  Latest version includes Web Service capabiity for same 'connector uses'.  Use of cross platform integration is good example of reworking one or more processes to cut down on time/errors while at the same time providing an entirely new/better product.

Register to view 'member' features... back office access available upon request. Registration is free...

Name: ELoyaity

Card.jpg

Description:
Restaurant loyality/rewards system... Example of a successful and complex desktop database application that was ported to web/MS-SQL... and then as modules for use in DNN portal.

All web version of product incorporate various 'connectors' for use with in store POS systems. Most of these connectors are implemented as 'true windows service components'.  Latest version includes Web Service capabiity for same 'connector uses'.  Use of cross platform integration is good example of reworking one or more processes to cut down on time/errors while at the same time providing an entirely new/better product.

Register to view 'member' features... back office access available upon request. Registration is free...

  
 Human Factors Minimize

Name:  OCD Research Project 

Due to nature of project access cannot be granted.  Project stake holders have generously allowed us to provide the user training materials.  This material is in the form of 'screen capture sessions' which demonstrate not only how to use the system... but also show a very complex GNATT chart developed to simplify the presentaton of Time/Tasks data.  Simply click on the project name for access to the training videos. 

Description:

Project stake holder 'vision' was one of a simple web form to gather data for end of term manual analysis.  We accepted the project to provide not only initial requirement, but also as challenge to demonstrate Human Factors/ User Interface skills.  Built on MS-SQL as database with complex T-SQL stored procedures and making heavy use of N-Tier theory, this application is composed of many middle ware business components which drive the contents of a dynamic HTML based Gnatt chart.

As shown in the training manual, this Gnatt chart becomes the major navigation interface into data analysis and charting.   

Name:  OCD Research Project 

Due to nature of project access cannot be granted.  Project stake holders have generously allowed us to provide the user training materials.  This material is in the form of 'screen capture sessions' which demonstrate not only how to use the system... but also show a very complex GNATT chart developed to simplify the presentaton of Time/Tasks data.  Simply click on the project name for access to the training videos. 

Description:

Project stake holder 'vision' was one of a simple web form to gather data for end of term manual analysis.  We accepted the project to provide not only initial requirement, but also as challenge to demonstrate Human Factors/ User Interface skills.  Built on MS-SQL as database with complex T-SQL stored procedures and making heavy use of N-Tier theory, this application is composed of many middle ware business components which drive the contents of a dynamic HTML based Gnatt chart.

As shown in the training manual, this Gnatt chart becomes the major navigation interface into data analysis and charting.   

  
 Software Problem Resolution Minimize
 
Software Problem Resolution (SPR) ... science or art form?
 
In this day of N-Tier software, the process of locating root cause of system failure or bugs is daunting.  A new breed of technician and tools are evolving dedicated to this every task. 
 
When used by the indivual such techniques are capable of locating bottlenecks or pinpointing failures in the work of others WITHOUT access to source code. 
 
When used by all or part of a software team (designer, developer, technical writter and support staff) these techniques can generate massive returns.  
 
Prehaps the best approach to understanding SPR is to first realize that application problems fall in one of the following major catagories:
  • Does Not Function as required
  • Works here but not there
  • Performance is lacking
  • Malware /Spyware

Herein: We are only focused on the first three... malware is a dedicated software segment.

In order to best illustrate the benefits of using a structured approach to software problem resolution the following case histories are provided.  They cover a pretty broad range of software 'types' with respect to web, windows, database, distrubuted and even device driver software issues.

No matter if you are looking for help with your software problem...OR...Consult on how to best apply SPR technology to your SDLC process, or even simply train your staff on techniques and tools. Gapware Custom Software is your SPR artist! Email for engagements details.
 
Software Problem Resolution (SPR) ... science or art form?
 
In this day of N-Tier software, the process of locating root cause of system failure or bugs is daunting.  A new breed of technician and tools are evolving dedicated to this every task. 
 
When used by the indivual such techniques are capable of locating bottlenecks or pinpointing failures in the work of others WITHOUT access to source code. 
 
When used by all or part of a software team (designer, developer, technical writter and support staff) these techniques can generate massive returns.  
 
Prehaps the best approach to understanding SPR is to first realize that application problems fall in one of the following major catagories:
  • Does Not Function as required
  • Works here but not there
  • Performance is lacking
  • Malware /Spyware

Herein: We are only focused on the first three... malware is a dedicated software segment.

In order to best illustrate the benefits of using a structured approach to software problem resolution the following case histories are provided.  They cover a pretty broad range of software 'types' with respect to web, windows, database, distrubuted and even device driver software issues.

No matter if you are looking for help with your software problem...OR...Consult on how to best apply SPR technology to your SDLC process, or even simply train your staff on techniques and tools. Gapware Custom Software is your SPR artist! Email for engagements details.
  
Copyright 2010 by GapWare Custom Software   Terms Of Use  Privacy Statement