An AJI Software Community
BLOGGER LIST

(1304, 11/07/2009) 
(1268, 11/05/2009) 
(1111, 11/07/2009) 
(851, 10/15/2009) 
(757, 11/08/2009) 
(676, 10/19/2009) 
(638, 11/02/2009) 
(615, 10/02/2009) 
(570, 11/05/2009) 
(555, 9/16/2009) 
(526, 11/02/2009) 
(472, 10/21/2009) 
(431, 10/16/2009) 
(403, 10/19/2009) 
(398, 10/17/2009) 
(391, 11/02/2009) 
(384, 9/26/2009) 
(378, 11/07/2009) 
(367, 9/18/2009) 
(353, 11/03/2009) 
(305, 11/05/2009) 
(304, 11/06/2009) 
(292, 11/04/2009) 
(258, 11/04/2009) 
(257, 10/31/2009) 
(253, 11/05/2009) 
(248, 10/02/2009) 
(243, 10/22/2009) 
(234, 10/28/2009) 
(223, 6/24/2009) 
(213, 11/08/2009) 
(202, 10/28/2009) 
(200, 11/07/2009) 
(197, 10/19/2009) 
(196, 6/03/2009) 
(191, 11/06/2009) 
(190, 10/29/2009) 
(186, 11/07/2009) 
(178, 11/06/2009) 
(170, 9/24/2009) 
(165, 6/15/2009) 
(165, 11/06/2009) 
(164, 10/01/2009) 
(161, 9/08/2009) 
(152, 8/27/2009) 
(143, 10/26/2009) 
(142, 7/10/2009) 
(140, 11/04/2009) 
(140, 11/04/2009) 
(139, 11/04/2009) 
(138, 11/03/2009) 
(136, 11/02/2009) 
(133, 6/18/2009) 
(132, 9/29/2009) 
(131, 10/19/2009) 
(125, 7/02/2009) 
(125, 7/23/2009) 
(125, 10/28/2009) 
(124, 11/06/2009) 
(124, 8/31/2009) 
(123, 10/18/2009) 
(120, 7/19/2009) 
(119, 7/01/2009) 
(112, 9/29/2009) 
(110, 5/26/2009) 
(110, 11/02/2009) 
(109, 11/08/2009) 
(107, 9/09/2009) 
(106, 10/20/2009) 
(105, 11/06/2009) 
(105, 8/06/2009) 
(104, 11/07/2009) 
(101, 10/15/2009) 
(99, 10/23/2009) 
(98, 6/05/2009) 
(97, 8/18/2009) 
(96, 10/28/2009) 
(95, 10/11/2009) 
(94, 10/22/2009) 
(93, 8/06/2009) 
(92, 10/22/2009) 
(92, 11/02/2009) 
(90, 10/19/2009) 
(84, 11/01/2009) 
(84, 5/21/2009) 
(80, 6/24/2009) 
(80, 11/05/2009) 
(77, 8/07/2009) 
(76, 11/09/2009) 
(75, 8/12/2009) 
(74, 5/20/2009) 
(72, 10/26/2009) 
(71, 11/03/2009) 
(70, 11/07/2009) 
(70, 11/04/2009) 
(70, 10/04/2009) 
(67, 10/20/2009) 
(66, 11/03/2009) 
(66, 11/05/2009) 
(64, 8/27/2009) 
(64, 11/08/2009) 
(64, 9/22/2009) 
(63, 9/09/2009) 
(62, 8/13/2009) 
(62, 11/06/2009) 
(60, 9/22/2009) 
(59, 10/20/2009) 
(58, 5/14/2009) 
(57, 10/27/2009) 
(57, 10/01/2009) 
(56, 10/14/2009) 
(56, 5/20/2009) 
(54, 11/02/2009) 
(52, 9/16/2009) 
(52, 8/20/2009) 
(51, 11/04/2009) 
(51, 5/28/2009) 
(51, 10/22/2009) 
(51, 8/19/2009) 
(51, 8/24/2009) 
(51, 11/01/2009) 
(50, 5/12/2009) 
(49, 10/21/2009) 
(49, 11/05/2009) 
(49, 11/08/2009) 
(48, 10/13/2009) 
(47, 11/06/2009) 
(47, 6/16/2009) 
(47, 11/01/2009) 
(46, 11/06/2009) 
(44, 11/02/2009) 
(44, 11/08/2009) 
(44, 7/08/2009) 
(44, 8/07/2009) 
(43, 10/19/2009) 
(43, 10/19/2009) 
(43, 9/12/2009) 
(42, 11/05/2009) 
(42, 10/23/2009) 
(41, 8/17/2009) 
(40, 10/07/2009) 
(40, 11/08/2009) 
(39, 5/17/2009) 
(39, 10/15/2009) 
(39, 11/05/2009) 
(38, 9/26/2009) 
(38, 8/06/2009) 
(38, 9/16/2009) 
(37, 11/06/2009) 
(37, 7/21/2009) 
(36, 5/22/2009) 
(36, 10/15/2009) 
(36, 11/05/2009) 
(35, 8/14/2009) 
(34, 11/08/2009) 
(33, 6/04/2009) 
(32, 11/04/2009) 
(32, 8/25/2009) 
(32, 9/04/2009) 
(32, 8/27/2009) 
(31, 9/21/2009) 
(30, 6/18/2009) 
(30, 10/12/2009) 
(30, 11/02/2009) 
(29, 11/08/2009) 
(29, 10/21/2009) 
(29, 10/17/2009) 
(28, 9/02/2009) 
(28, 11/07/2009) 
(27, 11/04/2009) 
(27, 10/14/2009) 
(27, 10/30/2009) 
(27, 9/07/2009) 
(27, 10/09/2009) 
(27, 11/08/2009) 
(26, 9/21/2009) 
(26, 8/28/2009) 
(26, 10/25/2009) 
(25, 10/30/2009) 
(25, 10/15/2009) 
(25, 7/23/2009) 
(25, 10/31/2009) 
(25, 6/25/2009) 
(25, 9/24/2009) 
(24, 7/30/2009) 
(24, 9/04/2009) 
(24, 10/16/2009) 
(24, 10/13/2009) 
(24, 10/28/2009) 
(24, 8/19/2009) 
(24, 8/31/2009) 
(23, 10/19/2009) 
(23, 6/30/2009) 
(22, 11/02/2009) 
(22, 10/08/2009) 
(22, 11/08/2009) 
(21, 10/20/2009) 
(21, 10/29/2009) 
(21, 10/19/2009) 
(21, 9/26/2009) 
(21, 7/31/2009) 
(21, 5/14/2009) 
(21, 10/23/2009) 
(20, 10/03/2009) 
(20, 10/03/2009) 
(20, 10/19/2009) 
(20, 11/06/2009) 
(19, 8/19/2009) 
(19, 6/01/2009) 
(19, 8/29/2009) 
(19, 10/05/2009) 
(18, 7/11/2009) 
(18, 9/12/2009) 
(18, 10/07/2009) 
(18, 10/01/2009) 
(18, 10/25/2009) 
(17, 10/05/2009) 
(17, 9/28/2009) 
(17, 8/04/2009) 
(17, 9/30/2009) 
(17, 7/08/2009) 
(17, 10/07/2009) 
(16, 10/25/2009) 
(16, 10/27/2009) 
(16, 7/08/2009) 
(16, 8/28/2009) 
(16, 8/04/2009) 
(16, 6/19/2009) 
(16, 7/13/2009) 
(16, 10/28/2009) 
(16, 7/27/2009) 
(16, 9/26/2009) 
(15, 11/05/2009) 
(15, 8/19/2009) 
(15, 10/02/2009) 
(15, 8/11/2009) 
(15, 8/11/2009) 
(15, 11/05/2009) 
(14, 9/17/2009) 
(14, 5/12/2009) 
(14, 10/26/2009) 
(14, 9/10/2009) 
(14, 10/23/2009) 
(14, 9/27/2009) 
(14, 10/17/2009) 
(14, 10/19/2009) 
(14, 9/01/2009) 
(13, 9/04/2009) 
(13, 9/24/2009) 
(13, 6/30/2009) 
(13, 10/29/2009) 
(13, 10/20/2009) 
(13, 11/05/2009) 
(13, 8/19/2009) 
(13, 9/06/2009) 
(13, 8/04/2009) 
(13, 7/16/2009) 
(13, 9/14/2009) 
(13, 10/08/2009) 
(12, 8/21/2009) 
(12, 10/29/2009) 
(12, 6/25/2009) 
(12, 9/22/2009) 
(12, 7/01/2009) 
(12, 10/01/2009) 
(12, 11/05/2009) 
(12, 7/21/2009) 
(12, 8/21/2009) 
(12, 11/06/2009) 
(11, 10/11/2009) 
(11, 5/27/2009) 
(11, 10/11/2009) 
(11, 10/08/2009) 
(11, 10/20/2009) 
(11, 8/12/2009) 
(11, 11/03/2009) 
(11, 10/22/2009) 
(11, 7/06/2009) 
(11, 10/05/2009) 
(11, 6/18/2009) 
(11, 10/09/2009) 
(11, 10/14/2009) 
(10, 10/19/2009) 
(10, 7/07/2009) 
(10, 7/18/2009) 
(10, 7/21/2009) 
(10, 10/30/2009) 
(10, 11/07/2009) 
(10, 10/29/2009) 
(10, 10/22/2009) 
(10, 10/19/2009) 
(10, 10/11/2009) 
(10, 10/17/2009) 
(10, 6/29/2009) 
(10, 9/24/2009) 
(10, 10/29/2009) 
(9, 10/27/2009) 
(9, 8/21/2009) 
(9, 8/13/2009) 
(9, 7/31/2009) 
(9, 10/12/2009) 
(9, 11/05/2009) 
(9, 10/02/2009) 
(9, 9/04/2009) 
(9, 10/09/2009) 
(9, 10/13/2009) 
(9, 8/20/2009) 
(8, 10/26/2009) 
(8, 9/23/2009) 
(8, 11/07/2009) 
(8, 10/28/2009) 
(8, 7/30/2009) 
(8, 8/04/2009) 
(8, 9/24/2009) 
(8, 5/12/2009) 
(8, 11/04/2009) 
(8, 11/05/2009) 
(8, 9/02/2009) 
(8, 5/15/2009) 
(8, 9/04/2009) 
(8, 9/08/2009) 
(8, 8/26/2009) 
(7, 7/10/2009) 
(7, 7/19/2009) 
(7, 7/20/2009) 
(7, 9/03/2009) 
(7, 8/28/2009) 
(7, 10/27/2009) 
(7, 8/24/2009) 
(7, 8/10/2009) 
(7, 8/13/2009) 
(7, 10/23/2009) 
(7, 7/27/2009) 
(6, 10/24/2009) 
(6, 5/19/2009) 
(6, 6/05/2009) 
(6, 6/20/2009) 
(6, 10/28/2009) 
(6, 10/21/2009) 
(6, 10/30/2009) 
(6, 7/03/2009) 
(6, 11/02/2009) 
(6, 5/26/2009) 
(6, 5/10/2009) 
(6, 8/13/2009) 
(6, 5/14/2009) 
(5, 9/09/2009) 
(5, 9/09/2009) 
(5, 7/01/2009) 
(5, 10/18/2009) 
(5, 8/17/2009) 
(5, 10/20/2009) 
(5, 10/06/2009) 
(5, 6/10/2009) 
(5, 8/26/2009) 
(5, 10/01/2009) 
(5, 10/18/2009) 
(5, 10/09/2009) 
(5, 6/26/2009) 
(5, 9/12/2009) 
(5, 7/09/2009) 
(5, 6/07/2009) 
(4, 10/08/2009) 
(4, 7/27/2009) 
(4, 8/12/2009) 
(4, 7/08/2009) 
(4, 5/29/2009) 
(4, 7/08/2009) 
(4, 9/24/2009) 
(4, 6/21/2009) 
(4, 5/26/2009) 
(4, 8/14/2009) 
(4, 8/10/2009) 
(4, 8/31/2009) 
(4, 10/27/2009) 
(4, 10/13/2009) 
(4, 11/03/2009) 
(4, 11/05/2009) 
(4, 5/17/2009) 
(4, 7/24/2009) 
(3, 9/09/2009) 
(3, 9/23/2009) 
(3, 7/01/2009) 
(3, 6/09/2009) 
(3, 7/29/2009) 
(3, 9/26/2009) 
(3, 5/25/2009) 
(3, 11/06/2009) 
(3, 11/09/2009) 
(3, 10/27/2009) 
(3, 10/30/2009) 
(3, 11/03/2009) 
(3, 11/09/2009) 
(3, 7/18/2009) 
(3, 7/22/2009) 
(3, 10/06/2009) 
(3, 11/05/2009) 
(3, 7/19/2009) 
(3, 7/15/2009) 
(3, 10/03/2009) 
(3, 7/20/2009) 
(3, 10/16/2009) 
(3, 7/04/2009) 
(3, 6/15/2009) 
(3, 10/06/2009) 
(3, 7/23/2009) 
(2, 5/24/2009) 
(2, 7/17/2009) 
(2, 8/21/2009) 
(2, 6/24/2009) 
(2, 9/10/2009) 
(2, 6/19/2009) 
(2, 8/13/2009) 
(2, 7/29/2009) 
(2, 7/05/2009) 
(2, 10/04/2009) 
(2, 6/23/2009) 
(2, 8/23/2009) 
(2, 7/30/2009) 
(2, 10/03/2009) 
(2, 9/03/2009) 
(2, 8/14/2009) 
(2, 9/25/2009) 
(2, 10/15/2009) 
(2, 10/24/2009) 
(2, 10/12/2009) 
(2, 10/27/2009) 
(2, 11/07/2009) 
(2, 11/05/2009) 
(2, 11/06/2009) 
(2, 9/27/2009) 
(2, 8/19/2009) 
(2, 9/25/2009) 
(1, 11/02/2009) 
(1, 11/07/2009) 
(1, 11/09/2009) 
(1, 11/01/2009) 
(1, 10/30/2009) 
(1, 11/05/2009) 
(1, 10/20/2009) 
(1, 10/07/2009) 
(1, 9/16/2009) 
(1, 9/15/2009) 
(1, 9/04/2009) 
(1, 9/01/2009) 
(1, 8/17/2009) 
(1, 8/21/2009) 
(1, 9/04/2009) 
(1, 10/28/2009) 
(1, 7/21/2009) 
(1, 7/23/2009) 
(1, 8/03/2009) 
(1, 9/03/2009) 
(1, 8/11/2009) 
(1, 9/16/2009) 
(1, 7/27/2009) 
(1, 8/04/2009) 
(1, 6/19/2009) 
(1, 7/06/2009) 
(1, 7/02/2009) 
(1, 7/01/2009) 
(1, 5/28/2009) 
(1, 6/15/2009) 
(1, 6/03/2009) 
(1, 5/28/2009) 
(1, 5/28/2009) 
(1, 6/20/2009) 
(1, 6/20/2009) 
(1, 5/15/2009) 
(1, 6/10/2009) 
(1, 8/27/2009) 
(1, 6/22/2009) 
Tag | architecture Posts

I try not to be too much of a reposter, but I got a little nostalgic on this one. I remember when the first version of this tome came out and I got a free copy when I visited Redmond for the Guided Design conference. You may not agree with everything you find in here, but it is definitely worth the read to see what Microsoft thinks architecture is. Technorati Tags: Patterns and Practices,architecture,application architecture guidance,microsoft...
Microsoft has released a final version of its book “Microsoft Application Architecture Guide, 2nd Edition”. The book is described as: This guide is available online here in the MSDN Library and will be available in the Fall of 2009 as a Microsoft Press book, ISBN# 9780735627109, that you can purchase through local and online booksellers. The guide is intended to help developers and solution architects design and build effective, high quality applications using the Microsoft platform and the .NET...
If you are in the Baton Rouge area there is a new event for you to attend! Intended for aspiring and current software architects, the BRAG Lunch is a place for an informal gathering to talk about what works and doesn’t work in real life. Our first meeting is going to start off on the Service Locator pattern mediated by Lance Dunnehoo and we’ll see where we go from there! I hope to see you guys there, and you can find out the granular details at our EventBrite page. If you plan on attending, please...
I stumbled on an article here, and could help but to agree more on the same. The thought is just awesome and almost echoes what i was thinking for long but i was always in loss of words. Initially, I shunned the very thought of managing people and getting more into managing timelines, schedule and execution of the project. I looked for the role if Individual Contributor (IC) and quickly discovered that the role is almost non-existent for mere mortals like me!! So, i decided to train myself in Leadership...
To Microsoft’s credit their Architecture resources are much improving. The excellent free Architecture Journal and the MSDN Architecture Centre have been going for sometime but I noticed recently that there is a new UK centric Architecture Portal written by the UK DPE Architect Team with the new free monthly Arc Magazine. The first editions of the Arc Magazine tackle the highly logical new buzz ‘Software + Services’ with links to the Microsoft Strategy Software + Services Home Page. I will talk about...
Creating a plugin architecture in .NET can be achieved in a few steps using the .NET framework. All it takes is a little time, a common interface and reflection. In this blog we’re going to look at how to make a simple plugin that performs basic integer calculations. As a disclaimer, this method is not CLS compliant. If that is necessary for you, then stick around and I hope to have a new version that maintains compliance posted. The code in this blog is mostly illustrative, and the full code is...
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...
Kobe is a “getting started” resource kit on planning, architecting, and implementing Web 2.0 applications and services using the Microsoft Platform. I am sure all of you who are interested in this area would be really benefitted with it. Check this out: http://msdn.microsoft.com/en-us/architecture/bb194897.aspx Technorati Tags: architecture,starter kit,asp.net,visual studio...
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...
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...
The 5th dotNETwork gathering will be: Saturday, June 28, 2008. The agenda is as follows: 12:00 AM - 01:30: Delivering Rich User Experience Applications using Silverlight 2 by Yasser Makram 01:30 PM – 2:00 PM: Coffee Break 02:00 PM – 3:30 PM: Patterns and antipatterns of SOA by Mohamed Samy 03:30 PM – 4:00 PM: Lunch It’ll be in: Canadian International College - Busses will be available at: Nady El-Sekka (11:00 AM - 11:30 AM). The gathering being on Sunday not Saturday as usual makes it harder to attend...
A friend of mine Denny Boynton and I were talking at TechEd last week about green computing and it started me thinking. He mentioned that he and some other architects were discussing green computing platforms (server vitalization, cloud computing,etc...). That started me talking about: What is the responsibility of the software developer in this emerging green computing grid? Many infrastructure groups over the last few years have been moving to virtual servers and environments initially to save...
I have spent the better part of the last three days in sessions at Microsoft TechEd listening to folks talk about: What is an architect? How do we identify them? Are they born or taught? Are there good architects and bad architects, what differentiates them? Why are architects seen as “a necessary evil” are they just overhead. What do they contribute? I apologize in advance for the lengthiness of this post but this is a core value point to me and I tend to get very wordy when an issue is near and...
An argument for Interface based design and programming For software to survive in the ever-changing jungle of the production environment, it must have three distinct characteristics: reusability, maintainability, and extensibility. Interface-based programming exists outside the world of COM. It is a programming discipline that is based on the separation of the public interface from implementation. It was pioneered in languages such as C++ and Smalltalk by software engineers who discovered that using...
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...
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...
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...
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...
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...
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...
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...
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,...
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...
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...
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...
I have been working lately with a big group of fellow developers here in SilverKey on the architecture and design of a relatively big project that required much services and messaging work. We thought that we should implement our public services the REST way using WCF for .NET 3.5, with so many customizations, and that we'll use a library called nServiceBus for internal messaging. Mohammed Nour wrote a little about thinking in REST. nServiceBus is a framework for handling publisher/subscriber (pub/sub)...
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”...
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...
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...
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...
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...
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...
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...
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...
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...
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...
This is the email I sent to SilverKey Tech. Egypt dev team yesterday, sharing here as usual. Article: Info Q: Don't Let Consumers and Service Providers Communicate Directly Just because someone is developing with Web Services does not mean they are following SOA principles Just because you're using HTTP and HTML doesn't mean you get into that camp and vice versa Weblog: "Making IT work" - Musings of a Holistict Architect Weblog: Udi Dahan Article: Autonomous Services and Enterprise Entity Aggregation...
I was reading a blog post the other day about motivating software developers to be motivated to ship code. While I agree this is a problem I have to ask the question "do IT departments really want to ship code"? Here is where I am coming from. I have seen enough IT departments where they stack release on top of release at such a frenzied pace that it causes them to split their resources. When you have multiple versions of an application that have to be tested you need more environment that all have...
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...
There's allready been a lot written about the Provider Model pattern. But in my opinion this pattern is more powerfull than most people realize. That's my reason to do a contribution on sharing some knowledge about this pattern. The Provider Model pattern was born while Microsoft was developping version 2.0 of the ASP.Net framework (Whidbey). The name was given somewhere in the summer of 2002. The pattern was designed to give developers the abillity to have complete control over the internal implementation...
Yasser Shohoud has a very good article on introducing WCF and talking about its internal architecture a bit. This is a really good read. Its also linked off of the wcfguide which I blogged about previously. Link: http://www.yassers.com/content/soa/WCFArchOverview.aspx Technorati tags: WCF, Anatomy, Architecture Cross-posted from tariqayad.com...
More on my blog at - Microsoft ArcReady Slides from the tour Technorati tags: ArcReady, Architecture...
ArcReady is going really well. We have talked to a lot of architects and aspiring architects in the past couple of weeks. I've posted a bigger update as well as frequently asked questions on my blog here - http://www.joshholmes.com/2007/03/27/ArcReadyMidTourUpdate.aspx. Technorati tags: ArcReady, Design Patterns, Architecture, Tim Landgrave...