Tag | Architecture Posts

Tonight was the first meeting of the Chicago Architecture Group.  David Dickinson made a wonderful presentation on real life SOA.  This was accompanied by a lively discussion with the 19 people in attendance.

Thanks to Carl Franklin, Stephan Rylander and Larry Clarkin for making this such a success.

We have a meeting planned for July 10th at the Microsoft Downers Grove office.  Stay tuned for more information.

I had too much content for a blog post, so I posted a full article to code project:

http://www.codeproject.com/KB/architecture/linqrepository.aspx
Jeff Schneider over at Momentumsi has stirred up some EA’s with his post Why Enterprise Architecture is a Joke in particular John McGovern with this post which Jeff Schneider replied to with this. In Jeff's post, point 3 hit home the most ... "3. Silo Organizations promote Silo Funding. Many EA's never had a chance. They live in organizations that fund everything according to business silo's. Then, the EA is expected to bridge the silos with nickle and dime funding. Their inability to perform Herculean ...
Imagine that every project in codeplex had to be decomposed into codeplex hosted unit tested functions which complied to some xunit standard - that would go along way towards code reuse, and move away from reinventing the wheel. worked on 2 Silverlight projects recently - see screenshots: and Last 3 months learned the following: NET Components revise – reread Yuval Loweys book – revised best mechanism for interface usage, delegates (circa .NET Framework 2.0), threading. The Interface stuff leads ...
The conference proper began with a faux improvised discussion about the conference. There were some attempts at humour, which I appreciate, but they struggled. Eric Meijer from Microsoft had the first keynote. His central theme was that imperative OO programming is fatally flawed and we should all embrace functional programming. His presentation was entertaining and thought provoking. The next talk I chose to attend was by Dave Thomas (not the Pragmattic Dave Thomas) on the topic of next generation ...
Ok, in the spirit of DRY, I'm going to write this blog post once, describing my main ideas for the game I've finally decided to start working on. More than just slappy fun, I've decided to implement this game in a hard-core message-passing style, taking hints from the likes of Udi Dahan and Greg Young (note I said hints, so if one of them is reading any future post of mine, beware, your concepts might be twisted to do evil deeds, bwahaha). The game is planned to be a 4x style turn-based strategy ...
I've finally uploaded my ESBSimpleSamples project to CodePlex here: ESB Simple Samples It's intended as a quick-start for using the ESB Guidance package, and it has a client library for building strongly-typed service request objects. It has two very simple sample services which return the encoded value of a given character, either in ASCII or Unicode. The services are exposed as Web services and IIS-hosted WCF, and there's a WinForms client which lets you call them directly or via ESB. Prerequisites ...
Many applications need to integrate data from multiple sites into a combined answer. As discussed, the modular architecture of the IIS7 and ASP.NET integrated request processing pipeline allows you to plug your own custom feature modules into the integrated pipeline to add support for new custom processing capabilities (Cross-Cutting Phenomena). looking from a philosophical point of view, what functions are computable by a computer? Logic variables pioneered by concurrent logic and concurrent constraint ...
In case you have not noticed the Patterns & Practices Team has released the greatest and latest version of the Enterprise Library. More info's can be found at Grigory Melniks blog. What’s New in v4.0? This release of Enterprise Library includes the following: – Integration with the Unity Application Block – Windows Management Instrumentation (WMI) 2.0 support and improved instrumentation – Performance improvements (particularly, in the Logging Application Block) – Pluggable Cache Managers – Visual ...
The Philly Dot Net user group pulled off another successful code camp. This time around over 350 people showed up to get their free training on a variety of subjects. I would like to thank everyone involved and all participants for making this such a success! I would also like to thank everyone that attended my session on Developing the Blueprint for Enterprise Architecture. You guys had some good questions!!! I hope you liked the exercises and I hope you gained more insight to the process of designing ...
"We have very little need for speakers, and we're starving for teachers." "The difference between speaking and teaching is subtle, but the whole point of leading a session is made or lost in that subtlety." "Clear sign you're speaking rather than teaching: you believe that an hour isn't a long enough time to really teach something." - Scott Bellware via Twitter (all of the above) I've had it all wrong. For so many years I looked up to the rock-star speakers that I saw come through events or get up ...
The web service limitations, along with the dynamic nature of most object graphs make the web service support provided by .NET Remoting inadequate for developing smart clients with the same capabilities as full Remoting clients. Expressions use VB.NET syntax and are technically very similar to Excel formulas. In Java, inner classes now come in two main avours, static (a term I don't particularly like) and non-static, see Object-Relational Mapping in accordance with Formal Specification. Object ...

The Chicago Architecture Group will be holding a presentation on June 5th.  Below is the information and a link to register.  I hope to see you there.

Service Oriented Architecture Myth and Reality ; A Report from the Front Lines

by David Dickinson
Followed by open forum

http://chicagoarchitectsgroup.eventbrite.com/
There are plenty of ORM Frameworks available to use and I have tried few of them. In this post I will describe my experience with those frameworks. NHibernate: NHibernate was the first ORM framework that I tried. The real power of this framework is that it supports many different kinds of databases. The bad thing which pushed me away was the complicated XML mapping and lazy loading. I was never able to get lazy loading to work properly. I searched on forums and saw many other developers facing the ...
So along with Alessandro I'm curious as to why the name ThinApp has been chosen as it does have more than a passing resemblance to Citrix's new XenApp? I wonder if this is any indication of the coming marketing campaigns in the push for customers attention in the Desktop Virtualization market? ;-) VMware ThinApp is the final name for Thinstall technology In January 2008 VMware, a hardware virtualization company, acquired an application virtualization startup called Thinstall. The plan is to use the ...
Our www.Phillydotnet.org second installment of the 2008 Code Camp series will be held at the DeVry University campus in Fort Washington, PA on Saturday, May 17 from 8:30-5:00. Please register on our web site.-->Detailed directions are on the DeVry web site. sold out. There will be another Code Camp in May.--> Lots of code, just say no to slides! 8+ hours 40+ sessions (8:30, 10:00, 12:30, 2:00, 3:30) 8 tracks + lunchtime entertainment 500 seats with tables (laptops welcome) Free breakfast, lunch, ...
It is difficult to introduce both novice and experienced procedural programmers to the anthropomorphic perspective necessary for object-oriented design. Wherever possible we wish to illustrate the use of functional programming in the web domain. In this domain, expressions that involve mirrors of HTML and XML elements are the key constituents. We make new members part of the team through close training and interaction. Expressions use VB.NET syntax and are technically very similar to Excel formulas, ...
When one of our departments decided to store sensitive reports, the architecture I first considered was storing them, unencrypted, in our imaging system. The imaging system cannot manage encrypted documents, but its security capabilities allow it to to deny unauthorized users access to the reports. This ability to restrict access seemed to meet our security requirements. Then I started asking questions about data backups. Offsite backups can be a major security vulnerability, as we have recently ...
Ive been doing a little research recently about the B2B capabilities of BizTalk. Based on the content currently available I thought it might be useful to have a B2B 101 style article with some background information and links to useful resources. so here goes! Background BizTalk is an integration and business process platform which can help you develop different kinds of solutions (BPM, EAI, ESB etc). One of the key scenarios which BizTalk allows you to develop solutions for is B2B. BizTalk can act ...
Time Rule on Spline-Based Animation, Florian Krüsch with SilverGlobe, Expression Team Blog updates DeepZoom Composer, Jeff Paries releases Tank Combat, and John Gossman on WPF/SL. From SilverlightCream.com: Spline Based Animation Helper I was going to start working my way back in time on Tim's blog, but this is a new article from yesterday, providing a very nice-looking UI for a Spline animation Helper... I gotta tell you... his samples are pretty nice looking. There's some explanation code on the ...
I've really been wanting to get deeper into BDD, but I'm having trouble getting the opportunity at work. I think it's a combination of two primary problems (I'm sure there are others as well though). First, it has been freaking ages since I've been present at the very beginning of a project. It seems like I'm always pulled in well after development has started which means well after project style and architecture have been established. Second, my company still hasn't made the shift to Agile practices. ...
Two of my latest books just hit the market - Professional C# 2008 and Professional Visual Basic 2008, both from Wrox. The back cover of the C# book is as follows: Updated for .NET 3.5 and Visual Studio® 2008, this book is the ultimate guide to C# 2008 and its environment. Beginning with a look into the architecture and methodology of .NET, the team of superlative authors explains why the C# language cannot be viewed in isolation, but rather, must be considered in parallel with the .NET Framework. ...
I took up Mike Walkers offer in the previous posts comment section to look at his post entitled Making Sense of Architecture Standards and found it an ideal steer on what standards are out there, where they are positioned, how they fit together and who will use them and when to use them. However, what soon dawned on me was that the disconnect between theory and particular context is huge! Many of the standards are no more than helpful steers that as yet don't offer that distilled level of knowledge ...
The message audit can be implemented by BizTalk Tracking (BizTalkDTADb) database. But there is one big "But". This database has predefined, undescribed structure, it should be used only by special BizTalk tools as HAT. We cannot change the audit points, cannot freely create user queries, cannot change structure of this database. It is not so hard to create the custom audit, it is the standard practice to make the custom audit database and gather data for it from the BizTalk application with additions ...
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 ...
Lately Evan Hoff and I have been discussing the concept of '-ilities' which we use to communicate the qualities of the software we develop. As a developer I have always valued certain qualities in the code that I write and in the software I develop but I hadn't really thought about this concretly before. Some sample '-ilities' are scalability, availability, testibility, and so on (basically anything with an 'ilitity' on the end of it). Some of the qualities I have been focusing on lately are reversability ...
In my previous post, I talked about some of the happenings from the day two experience. Day three was only a half day with only two sessions. So, it was best to make the best of times anyhow. Once again, it snowed again, rather heavily at times, so nature's cruel joke on ALT.NET. Impromptu Sessions One of the best sessions was an impromptu session with Jeremy Miller on the StoryTeller tool and his future plans for it. If you're not familiar with it, it is a tool used to manage and create automated ...
It is quite easy to say that the IT world is a diverse world. For instance, it is quite rare that you would find an enterprise that is built upon a single vendor’s technology stack. Instead, you most likely find that a company is made up of a patchwork of systems. Some of the systems are based upon UNIX, some Microsoft, and some others (sometimes items that are considered legacy). A company’s software and data repositories are something that grows quite organically over time. Usually you will find ...
Next month, on May 15th, the Twin Cities XNA User Group is hosting a very special guest. Shawn Hargreaves (Microsoft, XNA Team) has agreed to come present TWO sessions to the user group in one night: Session 1: Defeating the Network Game Gremlins The speed of light. Quantum uncertainty. Parallel universes. Bandwidth that for some reason never turns out to be good as the advert from your ISP claimed it would be. When you set out to write a networked game, you have to worry about these things. This ...
Just a reminder that the Tampa Bay IASA February meeting is Thursday night (April 24th) starting at 6:30 PM. This is an open discussion meeting, so bring your architecture problems, and depending on how many people we have and how many problems we may split up into small groups or try to solve problems one at a time. Please be sure to register so we have an idea of how many pizzas to order, and remember that the outside doors lock and the elevators need a security key after 7:00 PM. Technorati Tags: ...
Today was a mixed bag of disappointing session by some supposedly smart people who will remain nameless (unless I think better of it later). This was balanced out by some great sessions by Mark Miller and Dan Appleman. I'll start with Mark's session on Science of Great UIs. It was great how he showed how UIs can be built objectively. That and his sense of hurmor would have been reason enough to get your money's worth. But then ... In the middle of his presentation Mark's laptop died. I don't mean ...
Since Larry Clarkin and I wrote the Enterprise Mashups article in the Architecture Journal, I've been getting a ton of questions about mashups and what they are. To that end, I thought I'd put my neck out and lay down a public definition. More on my blog at Josh Holmes - Definition of a Mashup ...
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 ...