|
This is a variation of a fairly common way of abstracting your data layer in Unit of Work and Repository patterns.
First, let me say there is nothing "enterprise" about this. It's used in both small, medium and large applications. So anyone that told you this was about enterprise development was feeding you a line.
Second, this particular implementation is a bit heavy on the abstractions.. and could probably be slimed down, but there is basically nothing wrong with it, other than having to maintain all those extra abstractions. (also, depending on who you talk to, some people feel that generic repositories are a bad idea, and an anti-pattern. I'm one of them, but It is a controversial subject).
Third, if you're using Entity Framework as your underlying data model, these abstractions are probably just extra noise since EF already provides these abstractions in the form of your DbContext and DbSet, which are already Unit of Work and Generic Repsitory respectively. You can add interfaces to these to make them more Dependency Injection friendly fairly easily, and as of EF6 they provide mockability so neither DI or Unit testing are good reasons to add the extra abstraction layers anymore. However, some people like the comfort of knowledge that they may want to replace their data layer some day and adding these abstractions (in theory) makes that easier (although in practice it's usually not so simple as these are leaky abstractions which tend to leak into your application layers anyways).
However, having said all that.. if you already have this infrastructure, I wouldn't go ripping it out unless you find it to be too burdensome to maintain.
Now, on to the interfaces... Yes, you absolutely should be using interfaces. For reasons of Unit testing and Dependency Injection, as well interface segregation principle. Using an interface helps decouple your implementation from the contract you use to access it.
It's important to realize that "enterprise architecture" is a lot more than just adding an abstracted data layer. It's creating standards that your enterprise follows, and architecting your suite of applications to work together. It's having an infrastructure or technologies, like Service Busses, or Message Queues and planning redundancy, durability, and failability. In short, it's about seeing the forest and not the trees.
--
Where are we going? And why am I in this handbasket?
|
|
|
|
|
Hello Good Sirs! I'm new to asp.net environment and I was wondering how can I launch thisexe. from a button. Also, how I can throw the scanned qrcode to a textbox?
Every answer will be much appreciated! Please do reply!
Thank you so much! More power!
|
|
|
|
|
Anyone can guide me?
|
|
|
|
|
Hello;
I'm working on a simple login form in c# in asp.net. I'd like to bind a key to the password and then save it in encrypted form. When the user logs in, he should enter his key and password. The key will be bind to the password and then compared to the one stored on the database.
Please help me with the binding process and encryption.
Thanks.
|
|
|
|
|
|
How is the key any different from the password then? Key + Password = Password... they're the same thing. Just have the user enter both in the password field, and use standard hashing.
--
Where are we going? And why am I in this handbasket?
|
|
|
|
|
From the app perspective, The key is just another password. Instead of having user type complete password in one box, you will be asking him to split in two and then app will append it.
As for the encryption. Passwords should never be stored encrypted. they should be hashed and stored. Better yet if you salt them before hashing. Following article will give you all you need to achieve this.
A Beginner's Tutorial for Understanding and Implementing Password Hashing and Salting[^]
|
|
|
|
|
How do I retrieve multiple sub category values from a single select statement?
I have the following code:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
ddlParks.AppendDataBoundItems = True
Dim strQuery As [String] = "Select parkID, parkName from ParksCategory"
Dim con As New SqlConnection(strConnString)
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = strQuery
cmd.Connection = con
Try
con.Open()
ddlParks.DataSource = cmd.ExecuteReader()
ddlParks.DataTextField = "parkName"
ddlParks.DataValueField = "parkID"
ddlParks.DataBind()
Catch ex As Exception
Throw ex
Finally
con.Close()
con.Dispose()
End Try
End If
End Sub
Protected Sub ddlParks_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlParks.SelectedIndexChanged
Dim strQuery As [String] = "select subcatID, subcatName from SubCategory" _
& "where parkID=@parkID AND Status=1"
Dim con As New SqlConnection(strConnString)
Dim cmd As New SqlCommand()
cmd.Parameters.AddWithValue("@parkID", _
ddlParks.SelectedItem.Value)
cmd.CommandType = CommandType.Text
cmd.CommandText = strQuery
cmd.Connection = con
Try
con.Open()
dr = cmd.ExecuteReader()
Do While dr.HasRows
lblfacility.Text = dr.GetName(1)
Do While dr.Read()
lblfacility.Text = dr.GetString(1)
Loop
dr.NextResult()
Loop
Catch ex As Exception
Throw ex
Finally
con.Close()
con.Dispose()
End Try
End Sub
When a user selects a category, there are at least two sub categories associated with the Park Category selection.
Any ideas why the WHILE LOOP I am using is not producing the correct result.
Assume that I have a categoryId of 251 and there are three values associated with this categoryId from subcategory table and assume those IDs are subcat1 subcat2, subcat3, the result being returned so far is subcat3. The first two are ignored.
Thanks in advance for your help.
|
|
|
|
|
samflex wrote: why the WHILE LOOP I am using is not producing the correct result.
Because it's wrong?
|
|
|
|
|
|
Elsewhere.
Do While dr.Read()
lblfacility.Text = dr.GetString(1)
Loop
You keep overwriting the same value, so it will always be left holding the last. What did you intend to get?
And I have no idea why you have the outer loop:
Do While dr.HasRows
|
|
|
|
|
Even with this:
Do While dr.Read()
lblfacility.Text = dr.GetString(1)
Loop
dr.NextResult()
I am still getting the last value.
As stated in my original post, each category has atleast two sub category values.
In one instance, one categoryId has five (5) values.
I am hoping that the loop will list all five values or however many values from subcategory that are associated with a chosen category.
|
|
|
|
|
Maybe you want to concatenate those values together and then display the result? (If so, use a StringBuilder.)
|
|
|
|
|
Do While dr.Read()
lblfacility.Text = lblfacility.Text & " " & dr.GetString(1)
Loop
|
|
|
|
|
Hello,
I am developing a Web application using asp.net where am adding multiple window popup . Using button group, but problem is that once I write code for second link then the code for first link doesn't work.
|
|
|
|
|
We can not help you without the relevant code...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
For window based authentication
<add name="dbserver" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=databasename;Integrated Security =true;" />
For username and password authentication
<add name="connectionstringname" connectionString="data source=SERVERNAME;initial catalog=databasename;user id=username;password=123"/>
|
|
|
|
|
Thanks guys I got the problem and it's solved .I'll post solution soon.
|
|
|
|
|
I have the following regular expression. I need to add to allow
[] and '' ?
ValidationExpression="^[a-zA-Z0-9+'.#$&'%,“:;=/\(\),\-\s]{1,8000}$"
|
|
|
|
|
Special characters can be used with escape char before...like \[ or \'...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
How to make Connection string in visual studio 2012 ?
|
|
|
|
|
|
here is a good reference site for writing connections strings
http://www.connectionstrings.com[^]
Every day, thousands of innocent plants are killed by vegetarians.
Help end the violence EAT BACON
|
|
|
|
|
in web. confg file..
you just write in <configuration> element before closing tag
write this
<connectionstring>
<add name="mycon" connectionstring="Data Source=<Your server name>; Initial Catalog=<Your Data Base Name>; User ID=sa; Password=<Your RDBMS Password>" providername="System.Data.SqlClient">
|
|
|
|
|
For window based authentication
<add name="dbserver" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=databasename;Integrated Security =true;" />
For username and password authentication
<add name="connectionstringname" connectionString="data source=SERVERNAME;initial catalog=databasename;user id=username;password=123"/>
write above code in connection string tag in web config like
<connectionStrings>
<add name="dbserver" connectionString="Data Source=(LocalDB)\v11.0;Initial Catalog=databasename;Integrated Security =true;" />
</connectionStrings>
-- modified 28-Jan-15 7:22am.
|
|
|
|