|
Would you recommend I do that? I mean, from an architecture point of view, would you consider using LINQ in your project(s) vs the clean 3 layer architecture and traditional ADO.NET?
sorry for not replying to your post earier, When you posted , I just voted it
|
|
|
|
|
Bassam Saoud wrote: sorry for not replying to your post earier, When you posted , I just voted it
Don't worry about it.
Bassam Saoud wrote: I mean, from an architecture point of view, would you consider using LINQ in your project(s) vs the clean 3 layer architecture and traditional ADO.NET?
Well, we wrote a lot of do just this, and the more time goes by, the less happy I am with it. It's just such a bloody mess - and there's a lot of unnecessary wrangling going on. I must admit that I am looking at us moving actively back to ActiveRecord - or possibly EF.
We will still continue to use L4O though.
|
|
|
|
|
Pete O'Hanlon wrote: Well, we wrote a lot of do just this, and the more time goes by, the less happy I am with it. It's just such a bloody mess
Yeah, I totally agree, Its a mess. I have read some good articles though like this MSDN Article[^], but still I dont like. I hope you would write an article about your experience
|
|
|
|
|
I was going to give away the data layer that we wrote, but frankly it's becoming a bit embarrassing.
|
|
|
|
|
Well I would love to see an article Why not to use Linq or This is is how to use Linq in a three tier layer. I am sure many will be intersted in your experience
|
|
|
|
|
When should a class access its own data members through a property rather than directly access them?
|
|
|
|
|
Only when you really need to. Accessing through the property involves more work in the IL than actually directly accessing them.
|
|
|
|
|
Pete O'Hanlon wrote: Only when you really need to.
Ok, then when do you really need to?
led mike
|
|
|
|
|
CodingYoshi wrote: When should a class access its own data members through a property rather than directly access them?
Never. There is no such thing as "property" in C++.
led mike
|
|
|
|
|
When your property methods contain logic that maintains some other value when the property changes. The alternative is to duplicate that logic ( ) wherever you directly change the property value.
|
|
|
|
|
|
Brady Kelly wrote: When your property methods contain logic that maintains some other value when the property changes. The alternative is to duplicate that logic ( [Unsure] ) wherever you directly change the property value.
That's why I would always access a data member through the property, if one is provided by the class designer. Even if it appears that accessing the member directly would accomplish the same thing, you don't know what what might be added to the property later. That's what properties are for; to provide controlled access to a data member. Why circumvent it?
Robert C. Cartaino
|
|
|
|
|
Just when they need to.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Hi All! I am new to the forum and am hoping you can help with finding a simple source code management software. I've tried downloading older open source versions but either the websites weren't running anymore or the code was for Linux or something. I am running Windows Vista...Other programs I found online were either designed for a server or too much money.
I just want a simple code management program with check in/out functionality, some basic version tracking capability and to be able to export the database for easy backup.
Is there any software like this that is free?
Thanks for your help!
|
|
|
|
|
Subversion[^] comes to mind.
There are a few free version management applications discussed here[^].
|
|
|
|
|
I'll second that.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
I have used Perforce - I believe a 1 or 2-user license is free.
HTH
|
|
|
|
|
I'm trying Perforce. It runs good I'm just trying to figure out how to use it. Not sure of the funtions of different views.
It actually does exactly what I hoped I could. I already have server and client on my home computer and I plan to setup a client version on my work computer. running over the internet.
Hopefully it all works. Looks good though.
Thanks!
|
|
|
|
|
I use VisualSVN, the server is free and is subversion based. TortouiseSVN is the good for the client side and is free as well. VisualSVN provides a low cost Visual Studio plug in that runs on top of TortuoiseSVN that I think is well worth it.
|
|
|
|
|
Netblue wrote: VisualSVN
That is really nice to add to subversion
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Ankh 2.0 is a free source control provider for VS if you are running SVN > 1.5. Don't bother with Ankh 1 though
|
|
|
|
|
SourceVault is free for single-user
|
|
|
|
|
There are two ways to pass argument: byVal or byRef. (C# and VB.Net)
However, I also know that all objects are passed by reference. So what happens when we pass an object byval--Does it make a difference?
Also, when arguments are passed byVal it hinders performance since a copy needs to be made. ByVal also means the called method can modify the argument and it will not affect the original data. If a method only needs to read an argument but does not need to modify it, does it make sense to send it byref? But then how can you guarantee the data will not be modified in the called method; specially when the called method is being coded by another programmer? Does it come down to simply making a choice between integrity and performance? Or is there a convention or am I just confused?
|
|
|
|
|
CodingYoshi wrote: However, I also know that all objects are passed by reference.
That is not correct. By default, objects references are passed by value.
Do not confuse variable data types (value types vs. reference types) with argument passing mechanisms (pass-by-value vs pass-by-reference).
For example, arrays are reference types. When you create an array, a block of memory is allocated and your array variable contains a "reference" the to the memory area (typically a four-byte address). For example:
In Visual Basic:
Dim values(10) As Integer In C#:
int[] values = new int[10];
The variable, values, contains a reference to a block of ten integers.
If you pass your array to a method as an argument, the reference to the array is passed by value (important). You can modify the elements of the underlying array but you cannot assign a new array to it.
To illustrate what I am talking about, take a look at this C# code:
using System;
class Program
{
static void Main()
{
int[] values = { 1, 2, 3 };
TestMethod(values);
Console.WriteLine("{0}, {1}, {2}", values[0], values[1], values[2]);
}
static void TestMethod(int[] values)
{
int[] newArray = new int[] { 4, 5, 6 };
values = newArray;
}
}
This code will print "1, 2, 3 ". Why? First, an array containing { 1, 2, 3 } is created. The TestMethod() creates a new array with { 4, 5, 6 } and attempts to point your array reference to it. But when TestMethod() returns, the reference is not changed because the reference was passed by value.
However, you can change the underlying data pointed to by the reference. If TestMethod() did this:
static void TestMethod(int[] values)
{
values[0] = 4;
values[1] = 5;
values[2] = 6;
} ... the values would be changed (i.e., it prints "4, 5, 6 ") because you passed a reference to the data contained in values , which TestMethod() is free to change.
CodingYoshi wrote: when arguments are passed byVal it hinders performance since a copy needs to be made
Nah. Performance differences are usually insignificant. Maybe if you need to pass really large value types (like large structures) and you really need to tune for performance, you could pass those value types ByRef. But, more often than not, it is much more important to communicate your intentions to the programmer (to protect the parameter's value or not) rather than prematurely optimizing your code.
CodingYoshi wrote: If a method only needs to read an argument but does not need to modify it, does it make sense to send it byref?
No. Passing arguments ByRef or ByVal should declare your intentions to protect (or not protect) the value of the parameters you are passing. It will improve the readability and safety of your code.
Enjoy,
Robert C. Cartaino
|
|
|
|
|
OK - so I've been working on a couple of intranet sites that use Index Server to handle content searching. Everything is going great - but I've been stuggling with a question for a while now: What type(s) of algorithms are at use within the internals of Index Server that allow it to search a 30+ MB catalog in under a tenth of a second??? Granted, to heavy lifting is done by the cidameon processes at crawl time, but even so - of 30 meg key catalog is still a lot of data to sift through. And of course, none of this information is published by MS, but I'm so ever curious....any insights???
Cheers!
|
|
|
|