architecture

There are 43 entries for the tag architecture

Design Patterns for Model

What is Model? A model can be considered as a container that facilitates presentation view, behavior and/or persisting data to/from data source (i.e. database etc). Besides the data container elements, a model may or may not contain behavior (i.e. logic), depending on design context of corresponding architecture. While the term “Model” is frequently discussed and used in Model-View-Controller pattern context, it is one of most important consideration in current world of software architecture. Download ...

Microsoft datajs API: A 5 Minutes Quick Start

Ajax enabled data centric applications are getting popular day by day in web development space. While these type of web applications provide rich user experience, building a robust and powerful application quickly is a great challenge for developers. Fortunately Microsoft has started providing great frameworks, plug-ins and APIs to facilitate this process. Last week Microsoft announced a new version of java-script API “datajs”, which is intended to help web developers to build data centric AJAX applications ...

Employee Info Starter Kit: Project Mission

Employee Info Starter Kit is an open source ASP.NET project template that is intended to address different types of real world challenges faced by web application developers when performing common CRUD operations. Using a single database table ‘Employee’, it illustrates how to utilize Microsoft ASP.NET 4.0, Entity Framework 4.0 and Visual Studio 2010 effectively in that context. Employee Info Starter Kit is highly influenced by the concept ‘Pareto Principle’ or 80-20 rule. where it is targeted to ...

Announcement: Employee Info Starter Kit (v5.0) is Released

Ever wanted to have a simple jQuery menu bound with ASP.NET web site map file? Ever wanted to have cool css design stuffs implemented on your ASP.NET data bound controls? Ever wanted to let Visual Studio generate logical layers for you, which can be easily tested, customized and bound with ASP.NET data controls? If your answers with respect to above questions are ‘yes’, then you will probably happy to try out latest release (v5.0) of Employee Starter Kit, which is intended to address different types ...

Getting Started with Employee Info Starter Kit (v4.0.0)

The new release of Employee Info Starter Kit contains lots of exciting features available in Visual Studio 2010 and .NET 4.0. To get started with the new version, you will need less than 5 minutes. Minimum System Requirements Before getting started, please make sure you have installed Visual Studio 2010 RC (or higher) and Sql Server 2005 Express edition (or higher installed on your machine. Running the Starter Kit for First Time 1. Download the starter kit 4.0.0 version form here and extract it. ...

Employee Info Starter Kit (v4.0.0) - Visual Studio 2010 and .NET 4.0 Version is Available Now

Employee Info Starter Kit is a ASP.NET based web application, which includes very simple user requirements, where we can create, read, update and delete (crud) the employee info of a company. Based on just a database table, it explores and solves most of the major problems in web development architectural space. This open source starter kit extensively uses major features available in latest Visual Studio, ASP.NET and Sql Server to make robust, scalable, secured and maintainable web applications ...

Aggregator Provider Pattern: An Extension of Provider Pattern

Definition Aggregator Provider Pattern is an extension of Provider Pattern, which enables us to create and utilize multiple instance of the class having the same provider interface. In this pattern, there is an Aggregator class which implements the provider interface and contains a collection of instances of classes having the same provider interface. The underlying caller class of this aggregator is simply unaware of how many provider instances do the caller Provider Aggregator contains, but all ...

5 Reasons to Write Automated Tests for Generated Data Access Layer Code

Software Designers often have to face a common decision factor, that whether they need to design automated test (unit test, integration test etc) infrastructure for data access layer code, specially when the data access layer codes are written using code generator tool. Basically the straight forward answer as ‘Yes’ or ‘No’ in this regard depends of several situations/ factors such the size and budget of the project etc. Here are my 5 top reasons to write automated test (unit test, integration test ...

nAML: A New Revolutionary Way to Model Your .NET Applications!

Understanding the architecture and code in software application plays as major factors while building good software products. Having an easy to understand visual notation, not only helps architects to model the system efficiently, but also helps developers to quickly implement that, as well as it helps the re-engineering process to easily adopt the architectural model with respect to new requirement. A new visual modeling technique, termed as “nAML” (.NET Application Modeling Language) is being introduced ...

Design Factors 21: Do we use cascading on CRUD operations? If so, is it in DAL or DB layer? Why?

Cascading is a technique that resides between the relations between two database tables. It enables the records of the child tables to be deleted/updates with respect to the corresponding records of the parent table records. Besides the database level, this operation can also be considered in the inter-mediate logical layer. Software designers are required to define the appropriate explanation regarding this consideration. Technorati Tags: architecture,database,.net ...

Design Factors 20: Do we use transaction? If so, is it in DAL or SP layer? Why?

Transaction is a mechanism where a batch of operations can be rolled back for any failure at the mid point of the whole process or can be committed after successful completion of all the operation. Transaction can be used in both database level and/or application level. Technorati Tags: architecture,database ...

Design Factors 19: How the logical layers are connected?

Logical layers such as BLL, DAL, CL etc can be hosted in the same machine or can be distributed in separate machines specially where high end scalability are required. The relation and isolation among logical and physical tiers are required to be defined and explained with appropriate design goal. While considering logical layers in distributed environment, there are several technologies are available. SOAP/HTTP based web service or .NET remoting can be considered, each of which has own merits and ...

Traceability in Layered Architecture: A Roadmap

Traceability in layered architecture lets software architects to define, utilize, reuse and re-engineer existing, current and future application architecture in more structured way. This article provides a roadmap to trace multi-layer architectures easily. Introduction Multi layer architecture is one of the most popular and proven model in the current trend of software development. It lets software designers and developers to easily isolate user interface, business logic and data access logic. In ...

Design Factors 18: Which portion of the db utility classes are vendor specific?

To perform database operations from application, generally DAL uses some db utilities helps to write minimal lines of codes to perform data operations. In the data utility classes, some classes and methods might be specific to vendor (for instance, SQLHelper class will only work to perform operations on MS SQL Server) and some classes and methods might be used regardless of database vendors. These issues, along with the boundaries, should be addressed here. Technorati Tags: architecture,layered ...

Design Factors 17: Where exceptions are thrown for invalid values?

In some cases invalid values are handled from the user interface level, by using validation controls. However we need to address the points, where and how we handle invalid values, which are not been validated from there user interface layer and/or required to be validated in coding level. These considerations are retired to be addressed in this point. Technorati Tags: architecture,layered ...

Design Factors 16: How the null values are handled?

Null values are one of the basic considerations, without taking care of which may raise lots of confusions and errors while the application is running in the live. Some application architecture supports a model which puts null values to the database while the user is providing empty data from the user interface end. For string/text type data some times are saved as empty string (i.e. string.empty). But it creates confusion where empty string itself considered as a value. Also, besides string/text ...

Design Factors 15: Rather common model of BLL and DLL classes, what are special cases we need to consider?

The common model of the logical layers which can be fitted to maximum of the business entities can be implemented using code generator tools, which saves a lots of developer times. Besides the common model, there might have some cases which require special consideration. Specific and complex business logic can be an example of such special cases. Technorati Tags: layered,architecture,.net ...

Design Factors 14: How do we generally handle many to many (database) relationships in logical layers?

Generally a many-to-many relation between two data tables forms a third table which contains the primary key of both tables. For instance, if there are two table or data entity, named “Person” and “Address”, and if there is a relation between these entities is “many to many”, there would be another table, which will keep this relation in the table, which could be named as “Person-Address”. Some logical model supports to create a separate logical entity in application layered components (DAL, BLL, ...

Design Factors 13: How do we generally handle one to many (database) relationships in logical layers?

One to many relation is one of the most core consideration in relational database design context. However while mapping the database tables to the logical layers, it needs to be defined clearly, how it has been handled. For instance, as design can include a container class that holds parent and child classes as property, or another design can include separate classes for all data entities regardless of parent/child relationship. Technorati Tags: architecture,layered ...

Design Factors 12: For CRUD operation in DAL, when we use the business entity and when do use parameters?

Business entities can be passed as method parameter in DAL, or all data elements can be passed separately in DAL methods as method parameter. Some design also may support the Business Entity class to include the corresponding CRUD methods, which basically doesn’t require any data element to be passed in the CRUD methods. Technorati Tags: architecture,.net,layered ...

Design Factors 11: For CRUD operation in BLL, when we use the business entity and when do use parameters?

Business entities can be passed as method parameter in BLL, or all data elements can be passed separately in BLL methods as method parameter. Some design also may support the Business Entity class to include the corresponding CRUD methods, which basically doesn’t require any data element to be passed in the CRUD methods. Technorati Tags: architecture,.net,layered ...

Design Factors 10: What are the mapping criteria for BLL classes and CRUD methods?

BLL classes can be defined with respect to physical or logical business entities, DAL classes, as vice versa. This mapping process can include one to one, one to many or many to many technique. For example, we have two business entities (physical or logical), named “Order Summery” and “Order Items” for an e-commerce application. Having a one-to-many mapping relation with BLL and DAL in class level can contain one separate BLL class, as “OrderBLL”, and two separate two separate DAL classes, as “OrderSummeryDAL” ...

Design Factors 9: What are the mapping criteria for DAL classes and CRUD methods?

DAL classes can be defined with respect to physical or logical business entities, BLL classes, as vice versa. This mapping process can include one to one, one to many or many to many technique. For example, we have two business entities (physical or logical), named “Order Summery” and “Order Items” for an e-commerce application. Having a one-to-one mapping relation to DAL will contain, two separate DAL classes, as “OrderSummeryDAL” and “OrderItemsDAL”. Technorati Tags: architecture,layered ...

Design Factors 8: How the layers communicate with next level layers?

For a three layered application model, in some cases, the UI interface layer can use the DAL directly, rather using it via the BLL (i.e. “immediate next layer”). This type of application model generally includes a small set of classes and methods in business logic layer, ignoring the mapping all functionalities from DAL to BLL. This design issue provides a sort of performance, by reducing the engagement of intermediate layer(s). On the other hand, we can have a model, where a complete set of functionalities ...

Design Factors 7: Do you use cache layer?

To improve the application performance, “Caching” is one of the popular techniques in current trend of best practices. In some design context supports to cache data in UI interface level, where built-in cache mechanism is available. Sometimes, putting the cache mechanism in a separate layer provides better isolation and control over application space. If so the cache isolation, expiration and coupling with other layers policy should be addressed properly. Technorati Tags: architecture,.net,layered ...

Design Factors 6: How many layers will be considered? Why?

Here we will address few primary design considerations regarding logical layers. This is not mandatory that we need to build each and every system in popular “Three Layer” model. There might be a design context where single or two layer approaches can be a good design choice. Here we need to clarify the layered division and their responsibilities. Here we can also address some present and future possible considerations, supporting the current division of layers, such as, regarding multiple UI (Windows ...

Design Factors 5: Are there any special considerations for “typed” entities?

There are few entities which data are not been changed very frequently, but one or two items are added over few months. For instance, user type, product category, order type, payment mode. For better database operations values of these fields are kept in database and been referred to other entities as foreign keys. But interestingly values of these “Type” entities are used very frequently in coding layer, where developers had to use the hard-coded primary key value or the string value of this type ...

Design Factors 4: How do you map OOP concepts to relational database design?

Let’s consider a simple sample: Contact db table: Contact ID (primary key), Contact Name, Contact Address Employee db table: Employee ID (primary key), Employee Joining Date Customer db table: Customer ID (primary key), Customer Birth Date Now to utilize the object oriented inheritance concept in relational database model, we can create a one to one relation with Contact table with Employee and Customer table, where besides primary key, Employee ID and Customer ID will be used as the foreign key ...

Design Factors 3: Where and how the joined operation (fetched from multiple data tables) is placed in business entities?

When we need to retrieve result sets from multiple database tables via join operation a common practice is to use Generic DataSet to store the result. We can consider Custom Business Entity for the cases where the joining operation can be determined at the software design time, which provides faster execution time than DataSet. Also in some cases joining operation is required to be implemented in application end, rather database end query, especially when multiple entities are required to be combined ...

Design Factors 2: To which context Business Entity classes are mapped?

For simple applications, mapping directly from physical table to logical business entities reduces lots of cost in programming, especially while using code generators. However, no matter in sample or complex applications, besides mapping physical tables, there are few areas which might not be suitable to be mapped directly from databases tables. To map one-to-many relation from database to logical application model, some design creates a base container class for the business entities, which includes ...

Design Factors 1: What is the type of business entity?

For .NET application, business entities can be categorized as Custom Entity, Typed DataSet and Generic DataSet. Custom Entities are generally simple and faster than DataSet, where as it includes more involvement from developer end, as opposed to DataSet, which includes lots of built-in functionality, along with several trade-off in performance end. Choosing the right business entity is one of the basic parts in the software architecture, which fits accordingly in application requirements and development ...

Using .NET 2.0 Generics for Custom Entity Collection

Generics is a new feature in .NET 2.0 which allows us to create a data structure without committing to a specific data type. In the early age of .net 2.0 (i.e. .net 1.x), while using custom entity model in our application data architecture, we had to create a separate class regarding the collection for each of custom entity. The custom entity public class SystemUser { public string _Name, _Password; public SystemUser(string name, string password) { _Name = name; _Password = password; } public string ...

Software Design Tradeoff Factors

In perfect world you can get all of the best things in one place. But in real world it’s not. In software development there are some basic trade-offs when you consider a specific design feature. Exploring these considerations will help you to create the architecture that matches best with the given context. Performance Security (code level, encryption etc) VS Performance (code level) Caching: Memory VS Performance Object Oriented/Layered Code VS Performance Scalability VS Deployment (n-tier) User ...

Developer Grades: Where Do You Fall-in?

I am leading a mid size development team of 15 members. Recently I had to put grades on them to facilitate future assignments on projects. Just thought I could share those grade points, so that you have a quick asses! Grades Level Comments A+ Outstanding Fully fitted for enterprise level leadership and architecture. A Excellent Can be a core contributor in architecture for enterprise level projects. B+ Very Good Excellent implementer of the architectures for enterprise level projects defined by others. ...

Creating a Performance Benchmark Framework for Your .NET Codes

Performance is a one of the basic requirements in the most of the current trend of web applications. While designing software architecture, there are several technologies kept available for the designers. Among these available options, some of techniques may includes multiple solutions, combining of those can create a case, where the basic performance output can't be determined based on the common sense and/or in depth knowledge on the corresponding topics. In short, based upon different options ...

Object Oriented Tagging : Adding Power to Web 2.0 Tags!

One of the basic consideration in web 2.0 concept is 'tagging' where any contents in the web can be associated with one or more tags, which can be shared among social community network. It lets others to find any content according to their chosen tag. Tag is nothing, but a way to categorize any web content. In real world, any visitor can quickly reach to a content thru it's associated tags, can thus get a basic idea about whether s/he will consider it to read/download etc. "Search" is older concept ...

Design Consideration for Joined Query while Developing Custom Business Entity

Multi-layer architecture generally involves presentation layer, business logic layer, data access layer etc. which are spitted according to specific responsibility, target as well as boundary. A well designed multi-layered application simplifies the modification, update of code. One primary design consideration while developing software is the “Business Entity” which is the data container and is passed among the layers with data. .NET framework has a rich functional built-in data container, ...

Problems of Software Developers in Bangladesh

1. INTRODUCTION As computer technology offers efficient and high performance information processing, it has got popularity over the home, office users in the whole world. By the decade of 1990, in Bangladesh, it has also taken an important role. Since during this time PCs become more user friendly and attractive, the number of users had been increased. Beside the general users, in Bangladesh, a number of Software Developers has been increased as well as. Many of Computer Science and Engineering graduates ...

Database Simplest Samples – Northwind Employees

Northwind database is such a database which is available in SQL Server 2000 and which data model is well known to most microsoft based developers. So, when testing or modeling new software framework or architecture, specially from data driven perspective, if we conisder Northwind it reduces sample data modeling, data generation etc overhead and also our architecture or product sample can be easily sharable with other developers. As relational database deals with three types of relationships, rather ...

Requirement Analysis Steps while Developing Software

Introduction This article provides a basic outline to discover, document requirement documents for a given software project. Some of the steps can be ignored if the application requirements are pretty simple or small. The Steps Research on Application Requirements This document includes the URL’s that are the web application and similar to the current project, which will be used to elicit the requirements. It also contains the necessary user name and password for the research sites, along with ...

Something about Requirement Engineering

What is Requirement Engineering? The primary issue that is scaled as the success of a software system is that, whether it is capable enough to meet all the requirements of its users, that is the satisfaction level of its users reflects its degree of success. Requirement Engineering includes some processes regarding this fact. A requirement engineering process is a set of structured activities to derive, validate and maintain systems requirements document [1, 2]. As an engineering task generally defined ...

Enterprise Application Solution: A Component Based Approach

1. INTRODUCTION The trend of Information Technology has taken a big aspect over the whole world. It has got the trust of various types of users, especially of business organizations by offering the way to optimize the business processes.To achieve high performance with respect to information technology, it’s obvious that a company should contain a well organized computer based information system, containing an application solution that reflects the business strategies, business processes, business ...

Custom Entity – Many 2 Many Table Issue

When we define a custom business entity as an architecture for a given project, one common issue arises that, how we will consider “Many to Many” relationships? As there is only one entity for each database table, “Many to Many” tables might not be a good choice to make a separate table for that, since this is basically a connector entity. Case: Database Simplest Samples – Northwind Employees Entities: Employees, Territories, EmployeeTerritories, RegionOne-to-One: Employees ...