Software Development

This is the most common catagory, which falls in anything related to software development. ALL the catagories related to software development will overlap to this catagory.

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

Agile Software Development: More About Human Ideology, Rather Machine or Technology!

In the recent trend of software development and information technology, Agile has been a Buzz word among the developer community. There are three types of guys, while a new hype gets introduced. First, who really ignores it, as it is being hype, second, who really get excited about it, but really not very aware to utilize the concept properly, and the third, who really don’t care about whether it is hype or not, but cares to utilize and adopt it properly. It’s very hopeful that the third type of ......

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

Creating Multi-Project Templates with Wizard Using Visual Studio 2010

A VSIX file enables us to install Visual Studio extensions (tools, controls, template etc) with few clicks. I have created a simple example of creating multi-project templates with wizard using Visual Studio 2010, which generates VSIX file. Checkout the sample in codeplex here ......

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

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

ASP.NET Role Based Security: The Basics

Authentication and authorization is the two basic part of the user-end security in asp.net web applications. After to successful authentication of a user, authorization takes the place according to which the authenticated user are allowed to access to the corresponding resources in the web application. Role based security is very basic requirements in the current trend of web applications. Mostly there are two roles involved, which are registered user and the admin users. However in a web application ......

Starting Work With Visual Studio 2005

I have started studying and working with VS.NET 2005 & .NET Framework 2.0 from February 2006. The guys who had worked for .NET in previous few year can start VS.NET 2005 very quickly by 'Starter Kits', which contain templated samples, and some of them are intgrated with VS.NET 2005 directly. Thru that you will able just to start and learn a new project by few clicks with in few seconds.VS.NET 2005 IDE has the built in starter kit 'Personal Web Site Starter Kit' which is very simple to learn. ......

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

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

Where Do You Place Your Documents?

Putting your documents and codes in organized manner is very very primary requirements to manage your tasks properly. As as developer (well although I contain the highest technical position in the current organization I am working on, I believe that still I am developer!), I do feel to take care about it, specially having some standards will help you to find and manage your documents quickly. Here is a basic sample that I maintain for my end (and encourages my team members to keep the same ;) ). ......

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

The .NET Framework 3.5 At a Glance

All .NETTERS! Download the pdf poster here by which you can see .net 3.5 at a glance! Check Paul's blog for a quick note ......

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

Performing Long Running Operation with Asynchronous Page in ASP.NET 2.0

Technorati Tags: asp.net,async,web service,performance,database There are few cases in current web applications, where it involves long running operations. For instance, a system admin uploads 1 gig of data in the system, which will be processed by the system for 30-40 minutes to be splitted and putted properly in the database system, as well as notifying other system user regarding the availability if data. In the traditional approach of web application, the user has to wait for the whole time until ......

Performance Benchmark on Database Column and Row Expansion

What performs better – Expanding DB column or expanding db row? My benchmark test shows expanding DB column performs better, on the following machine configuration: Processor: Intel® Pentium® 4; 2.66 GHz; Memory: 960 RAM. Operating System: Windows XP, Version 2002, Service Pack 2. Expanding Columns A table having 4 columns with nchar(10) data type with 20,112 rows, query executes: SQL Server Execution Times: CPU time = 47 ms, elapsed time = 125 ms. Scan count 1, logical reads 232, physical reads ......

Some Basic Differences Between ASP.NET 2.0 ObjectDataSource and SqlDataSource

* Type NameFor ObjectDataSource, the property TypeName includes the class name, that will responsible to manage data, this may NOT be the data object collection. The select, insert etc methods will use the mentioned methods to access or retrieve data. For SqlDataSource, a built-in data collection is used, which can be bound to data data controls. * Connection StringFor ObjectDataSource, there is NO connection string needed, as it is used middle tier. For SqlDataSource, connection string is needed. ......

VSS: Same Solution Folder Space VS Project in Isolated Space

While adding a new solution to the visual source safe server, besides the root directory of the projects, vss proposes for one additional root folder in the server side. Well if all the projects of the solution lies under same directory then this additional root folder might seem unnecessary, but if one or more than project is located in other directory, then the additional root folder places the useful role. While working in team environment, it is good having a fixed working folder for a solution ......

CodeSmith Tips: Part 2

* Template and out-put view: Use F5 and F7 so run & see out put and to switch to the code view. * Reusing templates: In the master page, register as: <%@ Register Name="SubTemplate" Template="SubTemplate.cst" %> and render the sub-template content in the master template as <% new SubTemplate().Render(this.R... %> * Code behind page: In the template page, use the following line to consider the code-behind page <%@ CodeTemplate Src="CodeBehind.cst.cs" Inherits="SampleCodeBehindC... ......

CodeSmith Tips: Part 1

1. When set the dynamic content, don't use the ';' Example: <%= My() %> 2. When call any method or put any codes (in non-script or content area), use ';' where implementable Example: <% My(); %> 3. For non-IDE property, put them in 'script' tag, never put the properties in the render '<% %>' block. 4. For IDE property, put them at the beginning if the page, as follows Example: <%@ Property Name="SampleStringProperty" Type="System.String" Default="SomeValue" Optional="True" Category="Strings" ......

Efficient Batch Operation From ASP.NET 2.0 Using SQL Server 2005 XML Data Type

One of the good practice while developing high performance web application is to reduce the database roundtrip as much as possible. In the current trend of web applications, its a very common to enable users to delete multiple items in a list user interface at a time. To perform this type of batch delete operation, one common mistake that happens by beginner developers are to calling the data access method repetitively for each item with in a loop as below: For Each row As GridViewRow In gvEmployees.Rows ......

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

Brainstorm with Marbles!

When I was the 2nd year student in my computer science under-grad course, solving logical and computational problem was my favorite hobby. Some of those were directly related to programming and some were just brainstorming. When not engaged with study, I passed my time either using pen and pages to draw diagrams or just seen in the sky whether I can find any solutions there! 12 Marbles Problem Among all of the problems that I found and solved, the most interesting problem to me was "12 marbles problem". ......

Few Words From A Fresh MVP

One of the famous quotes of Socrates that drives me all the time is: "Know Thyself". Around the world there are lots of things which might be in your interest on not. Knowing yourself doesn't only mean to find your choices, it also includes the facts, which don't belong to your choice as well as! Knowing what I don't know Well, so I need to know myself. As a technical guy, how do I know where I can be the best fit or where I can be comfortable to explore my ideas to create new but necessary things? ......

ASP.NET 2.0 Deployment: Some Common Considerations

Regarding the previous ages of VS.NET 2005, web project deployment was pretty simple, but with limited options. For different types of projects, you may have different types of deployment requirements. For example, you may wish only to update the dll or contents for each component of the project separately, specially if the project is too big to take much time to upload the components each time. For smaller projects, it would be great if we can upload only one file to reflect the new changes of a ......

Atlas Async Function Call: Common Scenarios

1. Starter client method: A server side web method is being called from a client side method, that will be executed asynchronously (i.e. NO need to wait or halt for the user interface execution completion). Along with the parameters of that web method, the client side method calls the method by adding another parameter with a client method name, that will be executed after the execution of the web method. 2. Server side web method: The server side web method will be executed asynchronously.3. Callback ......

Attached with 'Culminis'

Culminis is an international organization devoted to the development and growth of the IT community. After getting the membership from INETA, our group ASP.NET Developer, Bangladesh, got the membership of this organization. As the group leader, today I have accessed the resource site of this community and surprised with the resources and organization of it. We really feel ourselves to find better and better ways to explore our experience with other professionals and communities, as well as have greater ......

Concentration on Smarter Database Documentation

I have been working in SQL Server 2000 for previous several years. Of course it's a nice tool, where I can compile the top level requirements to physical implementation layer in much professional way. Well, as a developer, I have been faced a common problem in multiple projects, where I got confused while seeing the database diagram of an existing system, after a long time while I designed the database. Using database diagram, I can easily see the data fields, analyze the relations etc. But the ......

Being Placed in INETA Newsletter October 2006!

"INETA (International .NET Association) is the next evolution in user group communities" as it is told in the web site of this organization, I really found it true when I was first interested about INETA. This fast growing .NET based developer association expanding it's activities with a real driving force. The fact which made me more surprised that, it has been successful to put .NET developers the whole world in an umbrella, according with very useful resources, pure dedication of expert group ......

Me, My Groups and INETA

Rather being involved on core coding, this month I was pretty busy on project management, user requirements analysis and of course in developer community activities. For last few days I tried to get the membership of my own developer group, where me and my other mates shares their ideas and thoughts. As the group leader, finally I was able to get the recognition from INETA (International .NET Association). For verification purpose I was called from Microsoft, Bangladesh office, which was a good surprise ......

Common Sharable Content: A Missing Feature of Web 2.0

Lets consider the situation: I have 6 categories of resumes and portfolios which are used for different purposes (i.e. for professional job, contract, personal, marriage, research proposal, university admission purposes etc). I have to provide those with recent information when needed. Also I am a developer, who has blogs, profiles among several online community, forum, sites, for instance in 20 sites. Among those, of course there are some information which are being changed very frequently (i.e. ......

nDepend: A Good Code Analyzer

nDepend (http://www.ndepend.com/) is a cool tool, that will help you to better understand your .NET code.

Take Care with VS.NET 2005 Web Site Name That Has Asynchronous Web Service Call

I was playing with the sample tutorials provided in “Atlas” quickstart. The first work through sample was “Creating a Basic ASP.NET 'Atlas' Web Application”, which made an asynchronous call to a web service located into the same application. It worked fine. Well I found to have problem on the application when I renamed the VS.NET 2005 web site (in VS.NET 2005 this is web site, not web application :D) as “Creating a Basic ASP.NET 'Atlas' Web Application”, although ......

Can't access asp.net application from intranet ?

Yesterday my team has fallen into a strange problem. On a Windows XP SP 2 machine, my assistant Ehsna wanted host an asp.net application so that other developers in our LAN can have a beta test on it. Well he can access the application from his pc, but others couldnot! "The page cannot be displayed" page was displayed! Strange, as the same application has been hosted and tested previously in LAN, so whats the problem now? Ehsan, spent few hours digging on this issue in internet but didn’t found ......

Looking to Atlas

As web 2.0 gets a major consideration among the web development technology, AJAX has taken the place here by providing rich user experience. All though it has not been possible to provide FULL strength of operating system UI, but AJAX gets popular due to it's new approach. Although AJAX is providing a new, rich experience to the users, but the technology, based on which it is being utilized is not new at all. AJAX is basically the acronym of Asynchronous JavaScript and XML, as the elaboration says, ......

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

“Hello .NET 3.0 Installation!”

When a new development technology comes, the first thing that makes the developers busy, crazy and tensed is “how I can see the first ‘Hello World?’” Well of course you need to successfully install the corresponding software into your pc, then can write a new or open an provided sample, generally which is as simple as showing the “Hello World” message. After then the developer goes through the more complex samples, finds good tutorials and start discuss about it ......

LINQ – We can use intellisense on queries !!!

As a developer always we want to have the opportunity to write the codes properly, along with programming language specific words and keyword to be highlighted in to different colors. Also VS.NET developers enjoys an IDE features named “Intellisense”, where while wring codes, a list of probable class or object name appears in a list and can be inserted to the code segment, just by selecting the appropriate item from the list. This becomes EXTREMELY useful, when we have to use long class ......

Web 2.0 — What Do I feel?

Starting from the static page, Web 1.0 has been turned to dynamic contents (like Google, yahoo etc), where users can interact with web pages, by providing instructions and contents through graphical interfaces. In short web 1.0 dealt with human-machine communication through web, accessible through wide range of operating system platforms, which was been possible by using http and html. Besides human to machine communication, the concept of web 2.0 concentrates on the following issues, that I have ......

Removing Confusion While Creating Use Cases, Regarding Actor Responsibilities/Association

While developing use cases, the designer often faces a confusing situation to name the use case, while this is associated by multiple actors. For instance, a salesman sells a concert ticket to the customer. In this case there are two actors salesman, customer and one use case. What will be the use case name??? “Sell a ticket” ? or “Buy a ticket”? Since both actors are associated, how we can recognize specifically which actor is buying or selling the ticket? Well from my point ......

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

The Magic of Traceability Matrix

While working with outsourcing clients, a common problem appears, is the functional specification. Clients generally don't want to spend much time creating specs, try to write ASAP, which results an unfinished spec. While developing developers suffers a lot. First, it often gets confusing, the developer can't understand exactly what the spec is saying. Second, during the development (and also after seeing some demo), client discovers new features, which results much re-engineering on the code, as ......

Different Views While Designing and Architecting Software

Domain view: which considers the domain environment of the system, based on which the future system will be developed. This is also known as ‘existing system’. Design view: This is the view of the future (or the proposed) system, which is being built after analyzing domain view. Top level view: Considers the system (domain or design) from very abstract level, hiding underlying details. We can also consider this view as ‘analysis view’.Implementation/low level view: This level ......

MS Project -- Distributing Task Hours Automatically

As a project manager you have to estimate the project time line and set the deadline according to the human and physical resources on your hand. In this case generally what I do Using MS Project, is, Identify what are the tasks (planning, engineering, development, documentation etc ) needed to complete this project. Assign estimated time spans for the corresponding tasks Then assign my team members to the corresponding projects. Of course the time span assigned for the project is regarding expert ......

“Instance Saver” Custom Entity Model- Basic Architecture

Business Entity: For each custom business entity, there is a collection class. However, if our tech platform is .net 2.0, we can use the generic list class for collections. Business Layer: 1. Contains a “Save” instance method in business layer for insert and update operations.2. For delete and get operations, it uses static methods in the business layer. Data Access Layer: Data access layer contains all CRUD operations in one class ......

Scenario Analysis + Prototype = [Any Alternative??]

Regarding software requirements, there are several scenarios, generally that should be illustrated, considering different conditions while using the software. When we use UML, two types of diagrams comes in place, one is 'Activity diagram' which preferably can be used from top level perspective or the 'Interaction diagrams' (Sequence/Collaboration diagrams) in that case. On the other hand 'Screen Mockups' or 'Prototypes' are used to illustrate the snaps of the real software, well but mock-up are ......

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

VS 2005 Project Deployment Issues

Deploying an ASP.NET 2.0 is a bit tricky than before. Specially if you are habituated to work in ASP.NET 1.x application for previous few years you will be really confused to see how you should deploy your ASP.NET 2.0 application that you just built. Well unlike previous cases, VS.NET 2005 doesn’t generate any assembly by default in the web application “bin” folder for each built. When you build an application, it shows the output on the fly. However when you finish your coding ......

Building a Starter Kit Quickly

I was really glad when I first found the “Starter Kits” support in the VS.NET 2005 IDE. With few clicks I can just make a basic pre-defined .NET application, specially with commonly used custom codes. Well the second wonder was waiting for me, when I have seen how easy to built my own starter kits. Here is the very quick steps that is needed to be followed to built a starter kit. 1. Create your application with VS.NET (which might be a windows application or web site or any other type ......

SQL Scripting in SQL Server 2005 Express

When we had worked in SQL Server 2000, including deployment into the remote server, for deployment in testing servers as well as slice the whole database in several parts requires sripts to be generated for both database schema and data. By this time for schema script generation I used “Enterprise Manager” and for generate SQL INSERT script for data I used an third party tool, found in codeproject, which can be found at http://www.codeproject.com/... Beside to populate ......

My Articles on ASP.NET

Definitely it was a great experience for me when i have first seen my name on the official site of ASP.NET. http://www.asp.net has mentioned my articles in the "Latest Articles" section by 22nd March 2006, titled 'Common UI Practices in ASP.NET Applications' which was originally published in http://www.codeproject.com. Later for just after 5 days, by 27th March 2006, asp.net published my another article 'A Simple HTML Builder Utility Class' which was also orginally published by codeproject . However, ......

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

Using Data Access Application Block for .NET 2.0

DAAB definitely saves the lines of codes to be written for data access. The sample provided below doesn’t include DAAB, but some general codes in .net 2.0 for data access: string connectionString = (string)ConfigurationSettin... SqlConnection connection = new SqlConnection(connectionStr... SqlCommand command = new SqlCommand("INSERT_PERSON", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar, ......

SQL Express Connection String

To let ASP.NET to search the database location, use the following connection strings in the web.config in specific cases -> in the default data folder connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilen... -> in an absolute path connectionString="Provider=... Source=C:\NewMembershipProv... Security Info=False" ......