Software Architecture & Frameworks
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
Quote:
Do you like to stick to a certain architecture and use the same frameworks
I use the same architecture, patterns, and frameworks just by virtue of the fact that all of my boilerplate code (pre-built interfaces, base classes, extension methods, etc...) are already built for a specific toolset. If I change from NHibernate to EF, or from Unity to Ninject (as a couple of examples) I'd have to re-write a lot of that. Not that I can't do that - my common library isn't *that* big - I would just need some rather compelling improvements to justify it. And since I already have a lot of that boilerplate stuff written, all of my projects end up having the same architecture. Even my little one-off apps use the repository pattern because I only have to write a handful of lines of code and a mapping XML file and I'm ready to persist to a DB (assuming my one-off app has to persist to a DB).
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
Software Architecture depends upon three things. - Type of Project: Highly Scalable, Highly Available, Complex, Simple, Multiple Devices, Multiple Platforms, Small, In-House, Device Specific - Team Size: Small but Good, Small but OK, Large but Good, Large but OK - Timeline: Enough, Not-Enough, Insane, Side Project You shouldn't follow the same software design everywhere. You can't keep creating software with 3-tier with repository patterns, sometimes it's overkill, sometimes it's time consuming. Sometimes no one from the team wants to learn new technology i.e. Code First. So it depends...
Remind Me This - Manage, Collaborate and Execute your Project in the Cloud
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
If the application will need to store and manipulate data, start there.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. Those who seek perfection will only find imperfection nils illegitimus carborundum me, me, me me, in pictures
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
I recommend Reading this thread[^] before considering to use a framework. There is very much good advise there.
Wrong is evil and must be defeated. - Jeff Ello[^]
-
Software Architecture depends upon three things. - Type of Project: Highly Scalable, Highly Available, Complex, Simple, Multiple Devices, Multiple Platforms, Small, In-House, Device Specific - Team Size: Small but Good, Small but OK, Large but Good, Large but OK - Timeline: Enough, Not-Enough, Insane, Side Project You shouldn't follow the same software design everywhere. You can't keep creating software with 3-tier with repository patterns, sometimes it's overkill, sometimes it's time consuming. Sometimes no one from the team wants to learn new technology i.e. Code First. So it depends...
Remind Me This - Manage, Collaborate and Execute your Project in the Cloud
-
Rutvik Dave wrote:
Team Size: Small but Good, Small but OK, Large but Good, Large but OK
You missed "large but a bunch of wankers"
_Maxxx_ wrote:
You missed "large but a bunch of wankers"
I have seen that more than once. :^) It seems that management likes to spend everything available in the budget. Use it or lose it mentality. X|
The report of my death was an exaggeration - Mark Twain
Simply Elegant Designs JimmyRopes Designs
I'm on-line therefore I am. JimmyRopes -
I recommend Reading this thread[^] before considering to use a framework. There is very much good advise there.
Wrong is evil and must be defeated. - Jeff Ello[^]
Thank you, good threat, think I am grasping the different aspects. Decided I was trying to much at once.
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
-
Thank you, good threat, think I am grasping the different aspects. Decided I was trying to much at once.
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
Simon Lee Shugar wrote:
Thank you, good threat
:-D
thatraja
Code converters | Education Needed No thanks, I am all stocked up. - Luc Pattyn When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is - Henry Minute
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
This kind of framework exists already, done properly, for example in DevExpress XAF (eXpressApp Framework). By done properly, I mean that it has it all, you only concentrate on your business: 1. You design the business model, UML style: All types of relations are supported: 1-1, 1-n, n-m, parent-child, etc. 2. You click the “Compile” button. 3. You get: - the WinForms business application AND - the Web application, built automatically, designed like you would have done it (maybe even better...), totally configurable, even at runtime. - The database is generated (or updated) for you, with proper tables, fields, indexes, constraints, etc., be it MSSQL, Oracle, you name it (for 12 different RDBMs). 4. As a bonus, you get: User, Roles, Authorization (per class, record or even at the field level), Active Directory login, Auditing, dynamic layout of lists and detail layouts, localization (even at runtime), reporting, etc... the list goes on: you name it, they have it, top notch support included. Most of the features are runtime configurable. For example, you can create reports at runtime, in a full fledged award winning visual designer. It is compatible with Entity Framework, although it proposes the DevExpress XPO by default, with which I believe you can better fine tune specific use cases. The library comes at around 2200 $ per developer. When I demonstrated it to a colleague, he thought that it could cost 100.000 of $, no joke. Note that a XAF project is nothing other than a standard .NET project, you are not bound to any hypothetic limits that XAF would impose you. Some links to mind blowing demos: Amanda building a small XAF business application in 10 minutes[^] Seth showing XAF in depth (1h 10mn video that highlights many basic features of XAF)[^] Some articles abouts XAF here at code project: Getting the Job Done with XAF[^] Using Domain Components (
-
Simon Lee Shugar wrote:
Thank you, good threat
:-D
thatraja
Code converters | Education Needed No thanks, I am all stocked up. - Luc Pattyn When you're wrestling a gorilla, you don't stop when you're tired, you stop when the gorilla is - Henry Minute
Ah! Well it is a Friday! I like multi-threat applications anyway!
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
-
This kind of framework exists already, done properly, for example in DevExpress XAF (eXpressApp Framework). By done properly, I mean that it has it all, you only concentrate on your business: 1. You design the business model, UML style: All types of relations are supported: 1-1, 1-n, n-m, parent-child, etc. 2. You click the “Compile” button. 3. You get: - the WinForms business application AND - the Web application, built automatically, designed like you would have done it (maybe even better...), totally configurable, even at runtime. - The database is generated (or updated) for you, with proper tables, fields, indexes, constraints, etc., be it MSSQL, Oracle, you name it (for 12 different RDBMs). 4. As a bonus, you get: User, Roles, Authorization (per class, record or even at the field level), Active Directory login, Auditing, dynamic layout of lists and detail layouts, localization (even at runtime), reporting, etc... the list goes on: you name it, they have it, top notch support included. Most of the features are runtime configurable. For example, you can create reports at runtime, in a full fledged award winning visual designer. It is compatible with Entity Framework, although it proposes the DevExpress XPO by default, with which I believe you can better fine tune specific use cases. The library comes at around 2200 $ per developer. When I demonstrated it to a colleague, he thought that it could cost 100.000 of $, no joke. Note that a XAF project is nothing other than a standard .NET project, you are not bound to any hypothetic limits that XAF would impose you. Some links to mind blowing demos: Amanda building a small XAF business application in 10 minutes[^] Seth showing XAF in depth (1h 10mn video that highlights many basic features of XAF)[^] Some articles abouts XAF here at code project: Getting the Job Done with XAF[^] Using Domain Components (
I've only experimented with ZAF, but it is mindblowing.
-
For the last couple of years I have simply not needed to think about the architecture of a project, I have worked on one core codebase that has been pretty much set up. I've created smaller projects, mostly internal stuff and kept them to a decent standard but now I want to start thinking about the architecture, frameworks and design patterns. I have been looking into Entity Framework Code First, using a tiered architecture (repository pattern) and throwing stuff like membership, enterprise libary (for logging and security). Code first simply because I want to try it, EF because it is something I want to be experienced in. So my questions are how do you choose how you architect a project, do you use the same design patterns, principles and frameworks if the scope allows? Do you like to stick to a certain architecture and use the same frameworks if again the project scope allows?
Simon Lee Shugar (Software Developer) www.simonshugar.co.uk "If something goes by a false name, would it mean that thing is fake? False by nature?" By Gilbert Durandil
Today when I think about architecture I think that a good architecture should be able to support a reliable system at least 5 years. I think mostly about abstraction, identify abstract points in the system and build a structure to allow a more easily maintence and building, without close the system to extensions, your structure should have points of extension.