Tag | Architecture Posts

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 ...
CIPS Regina has done an incredible job setting up a 2 day seminar May 13 - 14th in Regina, SK. This seminar has Tech, Business and Student tracks on the first day; Tech and Business tracks on the second day. Dr. Venkat Subramaniam, is the feature presenter at this seminar. Dr. Venkat Subramaniam, founder of Agile Developer, Inc., has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. He has significant experience in architecture, design, and development of ...
Recently I attended a TOGAF certification course up in merry old London town run by Architecting the Enterprise (AtE). My certification should show up in the list of other 5000 odd architects that have passed in the next few weeks. So what is TOGAF in a nutshell? Well it's a very generic architecture framework that helps build, in a non-prescriptive way, how to develop parts of an Enterprise Architecture capability. Notice the caveats, 'very generic', 'non-prescriptive', 'develop parts'. What am ...
I just started using Windows Live Writer to update my blogs*. I'm thoroughly impressed with what I see, both from the practical sense and just how much cool seems to surround this thing. 1) My Apartment Building, Washington, DC Software+Services is Microsoft's answer to the debate about where the future of computing is going in the near future. My take on what this means is a badass WinForms interface with a sexy back-end built around some Web 2.0-ish stuff. That's the technical explanation. Live ...
I really enjoyed speaking at this past weekend's CMAP Code Camp. I hope you all enjoyed my presentation on "Loosen Your Dependencies with Dependency Injection and Inversion of Control Containers". It was a great discussion to have with everyone and I like to learn there as much as I teach. I also enjoyed teaming up with Scott Allen on his "A Gentle Introduction to Mocking" where we talked about mocks versus stubs, test pattens and mock frameworks such as Rhino Mocks and Moq. Hopefully we'll be doing ...
Hey everybody. You sure remember that tomorrow is the first of the two-days Microsoft Egyptian Developer Conference EDC 2008. I'll be there since the early hour of registration (8:30 or 9:00 AM) - God Willing. So, it'll be great to see all the guys from different gangs around. ArabTeam2000, dotNETwork, DemoDay and so. It'll be great to see you all coming saying "hi". I'll try to hunt as much as possible of you anyway! :D You too catch me whenever we are in circles discussing any of those long discussions ...
Introduction I've been posting a lot about Silverlight lately, but hey, here is a WPF post, and about WPF integration, no less. Note: To fully understand this article, you should have a basic understanding of WPF, styles and templates, triggers, etc... Read the rest of this entry » ...
OK, So I took over a year break from blogging......I am back....and am looking for your input on what i'll be writing...  I hope to be covering BizTalk, Powershell, IIS, SOA Architecture, and maybe even other things as they come up....Posts coming soon.
I want to thank the fine folks at the Rockville .NET Users Group (RockNUG) and Dean Fiala for giving me the opportunity to speak last night. It was a record crowd last night, so I'm glad that people were interested in Loose Coupling, Design Patterns, Test Driven Development, Behavior Driven Development and Inversion of Control containers. I hope everyone got some good information, and if not interested in using containers, design patterns and such, at least know they exist and have their use. Based ...
The company I work for is in the process of converting management of our website from a manual dev process into a Content Management System delivery architecture. This is good news for me because it makes testing more technical and therefore more interesting. However, I am in an arena of technology I'm not as comfortable with and I am looking for some suggestions. First and foremost, does anyone have any links to resources online for functional testing strategies for testing ASP .NET Master Pages ...
As Chris Tavares mentioned in his blog, Unity 1.0 has been released a couple of days earlier than the April 7th release date mentioned by Grigori Melnik earlier. Scott Densmore also announced this as well as working on porting the inteception from ObjectBuilder2 which I talked about earlier in some of my Unity and IoC containers posts. Looking forward to that post as we've shared some emails on the subject. Would You Like To Know More? For those looking for my posts on the matter, I've covered it ...

Almost completed the documentation at http://gajakannan.com/netarch.aspx on .net 3.5 enterprise architecture blueprint.

Going on a business trip for a week returning on April 15th 2008 and work on reference architecture source code to supplement the documentation.  Read the document and post response, so I can update them accordingly.

One Line Statement Microsoft's IoC container Unity, hosted on CodePlex as an Application Block for Enterprise Library is now released in ver. 1.0. Introduction If you do not know what IoC is, you might want to check sample articles: The semi standard Dependency Injection (DI) and Inversion of Control (IoC) article by Martin Fowler (Tip, read as much as you can from this guy's writings - and thank me for suggesting it) [Warning: Not .NET Specific] Understanding IoC Container (Simple "down to code ...
I started a new job this week. I will be helping to move existing applications to .NET. I think it'll be a blast. The guys (and girls) I work with all seem great so far. Right now just getting my toes into their current applications and architecture. Currently reading two books: re-reading Test-Driven Development in .NET and just starting Patterns of Enterprise Application Architecture. The test-driven book was awesome, but I need to go back and read it again and really dig into it ...
I recently put together a glossary of common security-related terms to aid in discussions around "Single Sign-On" scenarios. I've experienced this a few times now -- a level-set on terminology is almost always needed to make security discussions productive from the start. Oftentimes the terms are confused, misused, or ambiguously defined. I have attempted to stay general with the definition of terminology, however, since I'm a Microsoft consultant the examples and products mentioned are Microsoft's. ...
What is normalization? Explain different levels of normalization? Check out the article Q100139 from Microsoft knowledge base and of course, there's much more information available in the net. It'll be a good idea to get a hold of any RDBMS fundamentals text book, especially the one by C. J. Date. Most of the times, it will be okay if you can explain till third normal form. What is denormalization and when would you go for it? As the name indicates, denormalization is the reverse process of normalization. ...
When was .NET announced? Bill Gates delivered a keynote at Forum 2000, held June 22, 2000, outlining the .NET 'vision'. The July 2000 PDC had a number of sessions on .NET technology, and delegates were given CDs containing a pre-release version of the .NET framework/SDK and Visual Studio.NET. When was the first version of .NET released? The final version of the 1.0 SDK and runtime was made publicly available around 6pm PST on 15-Jan-2002. At the same time, the final version of Visual Studio.NET was ...
I have just built a new PC, nothing super special, but pretty nifty. I have gone for a core 2 duo E8200 2.66Ghz with the new Wolfdale 45nm architecture (w'eva!), 4GB corsair ram, Nvidia 8600GT Gfx, WD Raptor 150GB drive and a Gigabyte board. I have read bits here and there about overclocking, but have never really been bothered to take to much of a look into it. Seeing I had some time this week and I had been prompted by a mate to do so I though I would. I started taking a look around the web and ...
Authentication in ASP.NET There are two closely interlinked concepts at the heart of security for distributed applications - authentication and authorization. Authentication is the process of obtaining some sort of credentials from the users and using those credentials to verify the user’s identity. Authorization is the process of allowing an authenticated user access to resources. Authentication is always precedes to Authorization; even if your application lets anonymous users connect and use the ...
A Preview of What is New in C# 3.0 On the heels of the Visual Studio 2005 and C# 2.0 releases, Microsoft has given a sneak preview of what to expect in the version after the next: C# 3.0. Even though C# 3.0 is not even standardized yet, Microsoft provided a preview release at its Professional Developers Conference (PDC) in September so eager developers could try out some of the expected features. This article discusses the following major new enhancements expected in C# 3.0: Implicitly typed local ...
Hi, With the release of .NET framework 3.5, I have been retooling the architecture blueprint for couple months now and finally was able to put something together... Would like to share it with the community. Here is the link to blueprint... http://gajakannan.com/netar... one question, that I am still struggling in my mind is "Business Entities"... Dont know if I should pull into Application Orchestration layer or keep it as part of DAL... There are other technologies that I ignored to show in ...
Introduction In this post I would like to share my experiences about creating and maintaining a web site for a Wroclaw .NET User Group and platforms that can use to create such web site. Hope that some of my thoughts will be useful for someone who is active member of any community group. I am a leader of Wroclaw .NET User Group since November last year. Since then Wroclaw .NET User Group grows quite quickly and we have more and more needs and expectations how our web site should look like. Currently ...
Florida has a very active developer community. The biggest problem we seem to have is that all of these different groups usually don't know about each and there hasn't been a "centralized clearinghouse" listing all of the technical communities. Joe Healy, one of our Florida Microsoft Developer Evangelists, maintains a list and earlier this year started putting together one-page flyers for each of the main areas in Florida. I think the eventual plan is that Joe will be updating his site to take advantage ...
In my previous posts I have talked a bit about Inversion of Control (IoC) containers with respect to Interception and Aspect Oriented Programming (AOP). It's not only important to understand the uses and strategies for implementing your solutions using it, but also how interception and AOP works deep down in .NET. Instead of a long, drawn out post, I think I'll just include some articles and posts that do a very good job of explaining some of the ideas behind it. Articles and Posts I think it'd be ...
Microsoft EDC 2008 Website is UP. You Can Click Here To Register. EDC will be April 13 and April 14 - In Cairo International Conference Center (Agenda) But Watch out. The Attendance Fee is 100 EGP. There're Invitations Available. An Invitation Code is required to register, and you get that by calling the guy mentioned in the right top part of the registration page, and you can call his mobile phone only on Egypt working hours. I've written about Microsoft EDC 2008 (Egypt Developers Conference 2008) ...
I realize it's been a while since my last post on Inversion of Control containers and looking at Unity as one of them. Since that time, Scott Hanselman linked to some of the comparisons that I did for IoC containers here. I'll be the first to admit that the look was a bit naive, but to get you all interested in looking at IoC container and how they can improve your applications. It was suggested here that my posts weren't a complete comparison, although in my previous posts I covered a lot of those ...
As D'Arcy shared on his blog last night, Will Craddock and Rodney Buike hosted a Community Connection event sponsored by CIPS and Microsoft in Regina, Sask, Canada. We had a great turn out, expected 175 people, I would assume 100+ attended although I did not get the final numbers. This event type was certainly new to our market; it followed the idea of Open Spaces that has been all the rage in the community. What I was most impressed with, is the fact that Microsoft made an effort to enforce community ...
Well for those of you who follow me and my blog (and who doesn't); a major life change signifies a shift in focus on this blog. For over a year I have been a big proponent of good User Experience. But as I have made some very deliberate decisions in my career I am assuming a role as a Scrum Master and Delivery Manager. I will still have architectural responsibilities too. So to be true to the principles of software design that I believe in, I will stay true to User Experience in my new roles, I just ...
Inspired via the Monkey. His Kung Fu is strong. Ladies and Gentlemen if I say I am a SOFTWARE ARCHITECT you will agree with me. And I wish to speak to you today about DEVELOPING SOFTWARE. There are those who will say they can craft you an application, and that may VERY WELL be TRUE. But can they get you to ZERO BUG BOUNCE? Can they craft a decent USER INTERFACE. Can they craft a decent CONFIGURATION MANAGER? Will they rely on a creaky THREE-TIER ARCHITECTURE or have they mastered FIVE? It is these ...
As with any career, consulting has a number of benefits and challenges. As a consultant architect you get to experience more environments than a in house architect. On the other hand you aren't assured that you will be doing architecture on every assignment. One day you may be working as a developer and the next as a project manager. So how do you keep your skills sharp and your resume viable? Your resume is going to be littered with jobs other than the title of architect. Within a project look for ...
Update: If you want the .iso I used for the VPC, check it out here on my SkyDrive. During my research and posts about Design by Contract and Spec# and my interactions with folks from Microsoft Research, I came across Singularity OS, an operating system written in an offshoot language based upon C#. In that time, I realized that the Singularity team extended Spec# and the Design by Contract and static verification pieces of it into a new language called Sing#. Fast forward to last Tuesday. Almost ...
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 ...
After we heard the news of Silverlight 2.0 Beta 1 and the new "xap" architecture I blogged about why it would be better to initialise Silverlight objects independent of Silverlight DOM, but how right was I? Here are the new test results, just be on the safe side I ran the tests on IE8 (self proclaimed better browser) Figure 1: Browser Zoom at 100% Figure 2: Browser Zoom at 75% Figure 3: Browser Zoom at 50% Figure 4: Browser Zoom at 125% Figure 5: Browser Zoom at 150% Verdict: Deceived by Microsoft, ...
Previously, on As the Geek Blogosphere Turns... Hammett questioned Polermo's MVC-ness Justice responds to Hammett's post Hammett took Ben to task I offer my .02 cents Justice expresses man-love for Hammett Hammett responds I posted a comment on his response...unfortunately, that comment isn't showing up...and other comments have shown up after my attempt...odd...oh well, I'll just post it here: "Actually Justice, *I* labelled him bitter. I'll admit the book deal bit was more an idea I got from some ...
I've been busy since the South Florida Code Camp. I've been promoted to the Architecture Team on the South Carolina Integrated Tax System project, and I've been to two more code camps. The speaker list was already full when I tried to get in on the Raleigh Code Camp. I was still able to do a session on Continuous Integration due to another speaker's VM crashing. I had very few attendees since it wasn't advertised. However, as long as I have one person interested in the topic then I'm good to go. ...
Writing asm code for 32 bit drivers is straightforward. You can embed the code in an __asm { } block. void DemoFunction() { __asm { mov eax, 0x01 ; more assembly } } But writing assembly in 64 bit driver source code requires a bit more work. The 64 bit compiler will not allow inline assembly. The assembly code will have to be moved to a seperate assembly module (an .asm file). Step 1 : Write necessary assembly routines in a seperate .asm file Example : Test.asm ---------------------------... ...
Computers with 64 bit processors are becoming popular, at least in enterprise circles. Also the X64 version of Windows Vista is more popular than Windows XP 64 bit edition. 2 Types of 64 bit architecture Yes, unlike 32 bit (aka X32) there are 2 64 bit architectures: AMD's X64 ; also known as X32-64 & AMD64 Intel's IA-64; also known as Itanium The subject of this post is AMD's 64 bit chip, which is commonly referred to as X64 So, whats the difference ? The X64 architecture is a super set of X32 ...
Twin Cities XNA User Group - March 20, 2008 3D Game Development March Guest Speaker: Nick Landry This session quickly skims over the basics and takes you through an iterative approach towards building your first 3D game: a remake of the Space Invaders classic! Using live demos we’ll discuss the structure of a game, including the game loop, game time, initialization and workflow, explore the managed code libraries that form the XNA Framework, work with the XNA Framework Content Pipeline that allows ...
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 ...
I cannot believe that I became a blogger on my 30th birthday. The fact is I never wanted to be a blogger, at least not a blogger on .NET programming, which I do everyday at work and at home. But I guess I was totally convinced to start blogging by Andrew Siemer, who has a .NET development/architecture blog on GeeksWithBlogs and a whole bunch of other stuff going on in the .NET community, and who happens to be working on the same projects with me at work. Well I have to say that the main reason why ...
At TechEd 2007, Krzysztof talked about building reusable libraries. The session abstract is below. You can download the presentation as an XPS file. The presentation was also recorded, and the WMV file can be downloaded from here. This session covers the main aspects of reusable library design: API design, architecture, and general framework engineering processes. Well-designed APIs are critical to the success of reusable libraries, but there are other aspects of framework development that are equally ...
It figures that the week after I decide to start blogging more about work that we would have the most chaotic week ever. Development is an ongoing battle with chaos, and this week, chaos brought a much bigger weapon to the fight. We do weekly iterations and most weeks we not only meet, but exceed our goals, followed by a push into the test environment. I debated about how much detail to go into and decided the specifics probably wouldn't interest anyone outside the company. So here is the high level. ...
Lee Thé recenctly posted an article on SOA Governance based on coverage from the Enterprise Architecture Practioners Conference held last month in San Francisco. The article is an interesting conversation on how governance, EA, and SOA either work or fail together in todays enterprise IT space. One of my favorite qoutes from the article was from Kyle Gabhart, director of the SOA technology division at Web Age Solution. When asked about how to make governance and reusability happen: "Gabhart joked ...
I've been looking quite a bit at the new ADO.NET Entity Framework. I'm really hoping to be able to implement the technology to replace our data access layer with all of its generated database and .NET code. One of the first things I found myself trying to figure out was updating a DateLastMaint field whenever a change is persisted by the ObjectContext. Our applications use this field religiously, and its update needs to be baked down into the architecture so the application developers don't need ...