|
Hello, can you please describe a data access model for a modern, greenfield enterprise app?
Back in 2000, a Bll and Dal were created for each domain entity. Business logic was in the Bll and data access logic was in the Dal. App code would instantiate a Bll and call one of its methods which would in turn instantiate and call a method on a related Dal.
This is a proven and effective model and is still a solid fundamental model for basic applications. However, over the last 5 years, there has been increasing emphasis on design patterns like the provider pattern, inversion of control and a general emphasis on testability.
So based on all the trends that have emerged, or become more recognized or expected over the last 5 years, can you please describe the data access model that you would propose for a modern, greenfield enterprise app?
Pretend you're a principal consultant at a consulting firm and you want to demonstrate the value and sophistication that your firm can bring to the table. Please make a data access layer proposal that would help support this goal.
|
|
|
|
|
So, I take it from this that you're a principal consultant at a consulting firm, and that you want us to do your job for you. It's your job to write this proposal, not ours - after all, it's not as though you're going to pay us for something that's quite a substantial bit of work.
What is clear from your description is that you don't understand how these patterns fit together - and if you don't, how are you going to be able to justify the different parts of your design when you're challenged by the client.
|
|
|
|
|
I see that you was able to climb really hi in the last 3 years - until 3 years before all your questions were mediocre at the best...
If you got a principal consultant job by telling stories, you are in grate danger. Even someone should answer your question (no to likely, as it an article long answer), you will not understand and will not be able to present it, specially if questions will rise!
So if you do not know your job it's better move along before some dirt will stick to your name...
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
|
|
|
|
|
Member 3919049 wrote: Pretend you're a principal consultant at a consulting firm and you want to demonstrate the value and sophistication that your firm can bring to the table. In my experience of such people they charge a lot and produce very little. Judging from your question you are well suited to the role.
|
|
|
|
|
Member 3919049 wrote: Pretend you're a principal consultant at a consulting firm and you want to demonstrate the value and sophistication that your firm can bring to the table. Please make a data access layer proposal that would help support this goal.
No Problem. We sell workshops that result in a concept for this. You can buy one if you like. I bet there are some other consultants ready to be payed here, too.
|
|
|
|
|
Well my take is that this looks like a homework assignment.
|
|
|
|
|
Are there any alternatives to MS Access around yet?
From what I can find things like SQLLite, Firebird, SQL CE etc are fine for local usage, and the others like SQLExpress, MariaDB all require servers (or at least software installed to host them).
I can't find one that has Access's standalone ability, as our current situation is access databases on LAN/WAN shares. So if there is something that can replace that?
The clients are likely to be C# WPF.
|
|
|
|
|
cjb110 wrote: From what I can find things like SQLLite, Firebird, SQL CE etc are fine for local usage, That's the category that Access falls in.
cjb110 wrote: I can't find one that has Access's standalone ability If you want a database-file without a server, you'll be looking at either access, or a single-file database like SQLite. If your data is accessed by multiple people from several workstations, then you DO want a server.
There's a button in your Access-IDE that upgrades the entire database to Sql Server. Install Sql Server Express (it's free) on a PC that the users have access to.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Your answer is exactly what I was expecting.
We've an internal issue in that getting new virtual servers are a long and overly expensive process and brings up 'which dept pays for this' problem. So I wanted to make sure that there wasn't alternatives...
|
|
|
|
|
You're welcome
|
|
|
|
|
cjb110 wrote: I can't find one that has Access's standalone ability CSV files?
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Per your other answer - where would you put Access if that was your solution? It would need to be somewhere all of the clients could reliably access it.
Same thing applies to a standard server database.
As for the internal management issue. Put it on a supervisors computer. No one works til that person starts up their computer. Everyone goes home or takes a vacation when that computer is off.
|
|
|
|
|
Access mdb's currently sits on various SAN locations, along side their other stuff like word and excel files.
A standard server database doesn't does it...but yea I know what you mean.
And unfortunately our various user bases are a bit big for the last idea to be feasible.
|
|
|
|
|
I see.
Maybe looking into clustering with embedded databases???
Not sure that is even feasible given that generally embedded would be one client but there might be one or two out there that supports that.
|
|
|
|
|
|
Please describe in brief. It was asked during one of my interviews.
|
|
|
|
|
|
Thanks Peter. This is what I was looking for. It was an easy illustration.
Could you please help me - Which book or link is better to learn more about design patters?
|
|
|
|
|
ankum16 wrote: It was asked during one of my interviews. Curious, what company, and for which position?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
One which you won't want.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Yes, but I want to note the name just to be sure, and for any future reference. Works wonders with the "permalink" button.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
|
I think now I know the answer..
Possible relationship between two classes are:
1. Association
2. Aggregation
3. Composition
4. Generalization
|
|
|
|
|
hey guys
i'm trying out MVC with vs2013 and liking it but... the EF stuff is not to my liking as it seems really overkill for the sorts of web projects i do
after a couple of days of head banging i think i understand the basics enough to build what i want but now i'm kinda stuck on how to implement logins
are there any docs that might help? all those i find are referencing the MS solution and hence EF and the whole shooting match - i wanted something more lightweight or some docs on how to roll my own
thanks in advance
"mostly watching the human race is like watching dogs watch tv ... they see the pictures move but the meaning escapes them"
|
|
|
|
|
l a u r e n wrote: i'm kinda stuck on how to implement logins You implement them with a user-unique salt, and a strong hash. Login-logic is contaminated with security-issues and would make a bad example on how to remove the dependency to EF.
Basically, you'd want to access a database from MVC, as shown on w3schools[^].
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|