design

There are 32 entries for the tag design

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

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

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

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

10 Tools Which I Still Use, Even I Have VSTS 2008

In my last post, titled "10 Tools Which I Left After Using VSTS 2008", I have included a list of 10 tools which I am not using currently, as I have the corresponding features available in Visual Studio Team System 2008. However, on the other hand, I am still using few tools even I have VSTS 2008! Here are 10 of among them.. 1. Code Smith: An excellent template based code generator. 2. Crystal FTP: Excellent FTP client tool. 3. Total Validator: One of the most powerful tool that I ever seen, which...

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

New Asp.Net Starter Kit Available: Employee Info Starter Kit

Employee Info Starter Kit is a starter kit, which includes very simple user requirements, where we can create, read, update ad delete (crud) the employee info of a company. The primary purpose of this starter kit is, to provide a solid guideline with respect to building enterprise level projects, by utilizing new asp.net 2.0 and sql server 2005 features, as well as latest best coding practices. The starter kit includes several cases where we can perform multi-table joining and/or write operations....

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 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 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 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 Nested Master Page in ASP.NET

Master page made the developers life extremely easy where all of the core design (specially headers, footers etc) can be designed and defined in one page which then can be inherited by all the pages in the application without requiring adding the header, footers etc explicitly. However master pages can also be nested, that is in a application, where are there two (or more) set of designs to be followed in two or more set of pages, along with following some common design components (such as header,...

Simple C# Delegate Sample

New developers often ask me about C# delegate, as they got a bit confused about the basic concept and specially maximum of the reference contains and discussed from an advanced view. Well I think delegate is really simple, when you grab it's basic idea. So what is delegate? Basically it is similar like the old "C" age function pointer, where functions can be assigned like a variable and called in the run time based on dynamic conditions. C# delegate is the smarter version of function pointer which...

Unique Data Columns in SQL Server 2005: A Quick Look

- Primary key -- Only one Identity column -- Can't be null - Identity -- Automatic value -- Only one Identity column -- Can't be null -- Can exist in addition of primary key, GUID-auto columns - Uniqueindentifier -- Can be multiple -- Can be null - Uniqueindentifier - rowguid -- Auto generated -- Only one Identity column -- Can be null -- Can exist in addition of primary key, Identity columns - Unique Key -- Can be null -- Can be multiple Technorati Tags: database,design,software development...

Normalization Case Study and Theory

Functional Dependencies The value of one attribute in a table is determined entirely by the value of another attribute. For example, the birthday of a Customer can be determined by the primary key of the Customer, in which record the birthday belongs. Here an Customer’s birthday depends on the Customer’s primary key. Customer birthday (depends on) -> Customer ID The notation X -> Y means if and only if each X value is associated with at most one Y value. We can find the birthday of a Customer,...

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

A Quick View to the Capabilities Which Can Make You a Great Developer

Regarding my previous experience in software development team, as developer and project manager, I’ve found some capabilities that are required to be a good developer to put a valuable effort in the development team. As mainly I have worked with web based database driven applications, these capabilities are closely or loosely relevant to that context. Of course you can consider some other capabilities regarding the software development context in broader sense, but here I consider the very basic...

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

.NET 3.0 — A Sea In Paradise !!!

Microsoft is changing it’s development technology very frequently. By the early of this year I started to learn .net 2.0 and VS.NET 2005 seriously, and with in few months I was just able to capture few new features of this, although I was also engaged with project management, UML, Ajax and other software engineering issues, as I need to be on the track with other development tracks. Well, not only Microsoft, but also other technologies, relevant to software development is changing very frequently....

Some Common Issues That Should Be Considered While Creating UML Class Diagrams

Top level view: 1. Definition: Use standard dependency, aggregation, composition, generalization, associations where possible to identify, illustrate data entities and their relationships. 2. Restriction: As this is top level view, we don’t have to consider the primary key, foreign key issues here.3. Functional Requirements: Rather mentioning commonly used functionalities, we will mention specific functional requirements in the “Method” portion of each classes.4. Casing and Naming:...

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

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

Squeeze Sort: A New Sorting Technique

1. INTRODUCTION 1.1 A New Sorting Algorithm One of the most common and fundamental problem in computer science, is ordering a list of items, which is well known as ‘Sorting’. Considering information processing performed by millions of computers along the whole world, ‘Sorting’ takes a very important role.As it gained its importance to real world problem, it also gets the attention of computer scientists. As a matter of fact, various types of sorting algorithm have been developed....

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