|
- Project/bin/ which contains your builds
What is the general / advised approach when developing reusable components for later inclusion via SVN externals?
Currently we have, e.g.
Component x - reusable component
Application 1 - application that uses component x
Application 2 - application that uses component x
In order to get applications 1 & 2 to use component x, we include the bin\* directories in SVN and refer to them in the applications as SVN externals pointing at the bin directories.
I'm guessing from the "don't include bin" suggestion that there's a better way of doing this - any suggestions? Bearing in mind that we don't want the applications to recompile the component each time.
|
|
|
|
|
We have a folder called 'Assemblies', into which we copy the generated .dlls when they are ready for consumption. This allows us to make changes (and check them in, so we don't lose our work) without affecting the 'upstream' items. When it is ready for a new 'release', copy the completed bin files into the Assemblies folder.
Then, the upstream projects have a References folder, with an entry for each 'subsystem' that needs to be referenced which points to the Assemblies folder for the subsystem.
Bin is not stored in our source control.
(we are using TortoiseSVN)
|
|
|
|
|
I use references and set their property to "copy local" or something like that. You can reference other projects so the dll is rebuilt and imported automatically to your build directory.
For asp.net, I guess you could use the strategy of having an "assemblies" directory and set their build action to "copy to output directory", and "copy if newer". If that is not available in asp.net, you could use a post build script to copy the files from assemblies to bin. And if all else fails, I think it's possible to declare that directory as a dll search path or something in the config, but that's less than ideal because it breaks the "standard" directory structure of an asp.net site...
|
|
|
|
|
Hi
I would say, preferably the files that doesn't change everytime you re-run an unmodified program.
e.g. not files that gets generated by the compiler each time you do a clean build.
Regards,
|
|
|
|
|
I agree with the other responses - ignore obj and bin folders and .suo and.user files.
I recommend Mercurial, also called Hg, as a good source control solution. It's dead simple. You can install TortoiseHg for GUI and the Explorer integration, and VisualHg for Visual Studio integration (including VS Express?). It can sync to your own hard drive, network drive, private web or ftp, or to a free account on BitBucket. Some say it is easier than Subversion and Git, both of which I've looked into but never used. We currently use Source Safe and I'm evaluating Mercurial and love it so far. But no doubt I would love a good tar and feathering than to continue to work with and trust Source Safe.
Do not use Source Safe. Almost anything is better. I read recently that Source Safe is the most dangerous software ever written that was not intentionally designed as a virus. Let's all have a moment of silence for Gregory.Gadow having to use it.
Mike
|
|
|
|
|
We use TSVN and VisualSVN. Here is my global ignore pattern, this will prevent listing folders or files when you add them to the repo:
*/bin */obj *.bak *.*scc *.user *.suo *.webinfo bin obj *.pdb *.exe *.DCS *.zip
2 years ago we moved from SoureSafe to SVN that is why I added to ingnore the .scc file.
|
|
|
|
|
As with so many things: it depends. If you are just doing hobby projects (which it sounds like you are) then excluding the output from compiles (the obj and bin folders) is absolutely fine.
However, in a professional setting you may sometimes encounter a discipline called “configuration management”. (This is, essentially, management of the whole software lifecycle and integrates “change management”, “repository management”, “release management”, etc, into a coherent whole.) In configuration management it is common to include the final deliverables (*.exe, *.dll, etc) under version control. The reasoning being that the state of the build machine can have an impact on the final deliverable ... add a patch and the compiler might produce something subtly different. It is also common under configuration management best practices to place documentation (program specs, user guides, operations manuals, etc) under version control too.
As general advice I’d say, unless you are short of disk space, if in doubt add it in. Better to have an unnecessary file in the repository than to discover after the fact that you’ve lost the specific version of a key file.
|
|
|
|
|
Peter Trevor wrote: However, in a professional setting you may sometimes encounter a discipline called “configuration management”. (This is, essentially, management of the whole software lifecycle and integrates “change management”, “repository management”, “release management”, etc, into a coherent whole.) In configuration management it is common to include the final deliverables (*.exe, *.dll, etc) under version control.
However one would then also expect that there would be a process step(s) which is specific to building as well. And it should start with a clean extract.
Consequently one would not check in source/proj/etc files at the same time as deliverables.
Peter Trevor wrote: As general advice I’d say, unless you are short of disk space, if in doubt add it in. Better to have an unnecessary file in the repository than to discover after the fact that you’ve lost the specific version of a key file.
Better to figure out what files are actually required. It becomes obvious with a clean extract.
|
|
|
|
|
jschell wrote: However one would then also expect that there would be a process step(s) which is specific to building as well. And it should start with a clean extract.Consequently one would not check in source/proj/etc files at the same time as deliverables.
Quite correct, sorry if that wasn’t clear. Overall in SCM (software configuration management) *final* deliverables are under version control but that does not mean that those deliverables are tracked in interim stages. (Depending on the specifics of the SCM plan being used ‘candidate’ final builds may also be version controlled.) As you point out, candidate final deliverables are usually built from a clean extract (and usually on a clean build machine) after the developer has checked in his changes. I wasn’t trying to explain SCM in detail, merely make the OP aware of its existence.
jschell wrote: Better to figure out what files are actually required. It becomes obvious with a clean extract.
But if you aren’t following an SCM process it is better to err on the side of caution. Especially if (as is the case with the OP) you aren’t sure what you need to track to begin with ... you can always fine tune by dropping items over time as you gain a better understanding. It’s harder to fine tune the other way.
|
|
|
|
|
The only bin file to put in would be the .exe or any file it requires to run (.dll?).
Think of doing a build / clean before checkin, then add in the few files needed to run your app.
(My gang keeps checking in .suo files, they come out read only and screws my ability to build...)
Note .sln and .vbproj are required, they're your solution and project files. .vb is your source code. I think .resx is generated by Visual Studio...
|
|
|
|
|
CDMTJX wrote: I think .resx is generated by Visual Studio...
.resx files are resource files. They can potentially contain images, icons, strings, and other data necessary for your program. If .vb is source code then .resx is source ‘non-code’.
|
|
|
|
|
Yup, I wasn't clear... VB creates .resx during project editing, not during building. So it is required to build with, not the result of a build, and not edited by programmers (though I've been known to edit such files with C++ and C#...).
Check .resx into source control.
|
|
|
|
|
Hi,everyone! I want that a XML file be open when Form1 had been load, before my application was killed, this XML should stays open and different Form could call it . I tryed use "Public Shared xml as new XmlDocument () ", but in Form2's control event, when I input "xml.", it didn't show the list of properties and methods.
It seemed like "Public Shared" disabled?
What should I do?
Please give me some suggestions! Thank you very much!
|
|
|
|
|
Because xml is not specific to Form1 , it really should be put in a code module and not in the form. You will not need to use the Shared keywork in that case. I expect that will fix your problem.
|
|
|
|
|
Hi,Gregory! Thanks for your suggestion, my problem has been solved!Thank you very much!
|
|
|
|
|
hi,can i just find out on how should i write my codes if i want to plot line graph in my program?
|
|
|
|
|
Here's a start[^]
I don't speak Idiot - please talk slowly and clearly
'This space for rent'
Driven to the arms of Heineken by the wife
|
|
|
|
|
TextBox8.Text = RxReadAP(3)
TextBox8.Text = Math.Round((0.0996 * TextBox8.Text + 25.603), 1)
i like to draw a line graph on vb using the temperature taken.. how do i write a code for this ??
modified on Wednesday, October 27, 2010 2:14 AM
|
|
|
|
|
I think you could use an ownerdrawn control to draw your graph
|
|
|
|
|
using vb.net 2008 and latest version of JanusSystem GridEx. When I use the Try..Catch..Finally I get an error message when I am trying to get the data from the cell in a row. There can be up to 5 cells that the user has entered data into that I need to pull out if the SelectedRow is checked.
If there is data in the cell I can extract it and store it to the table. If I check the next column and it is empty I get the error message below:
A first chance exception of type 'System.NullReferenceException' occurred in Janus.Windows.GridEX.v3.dll
System.NullReferenceException: Object reference not set to an instance of an object.
at Janus.Windows.GridEX.GridEXCellCollection.get_Item(GridEXColumn column)
at Janus.Windows.GridEX.GridEX.GetValue(GridEXColumn column)
at Janus.Windows.GridEX.GridEX.GetValue(String columnKey)
at JWI.frmLOL.SaveTab1(Object& _frmGuid) in C:\JWI\JWI\JWI\frmLOL.vb:line 708
If I use the old VB6 On Error Resume Next then I don't even pick up the data that is in the cells, the code just goes right over the lines:
strJnts = GridEX1.GetValue("E") 'or "B1" or "B2" etc
And I never hit the DoSaveData function. Not sure what the solution is or even the problem. I've tried at least a dozen diferrent codings for IsNotDBNull and anything I could find in the MSDN and online but nothing seems to help. I have a message into the JanusSystem forum but they won't be answering until mid morning Monday and I would like a solution later tonight or Sunday if possible. The entire function code follows:
Public Function SaveTab1(ByRef _frmGuid As Object) As Boolean
Dim rowNdx As Integer = 0 'Set to zero index value
Dim strJnts As String
Dim _MATGuid As Object
Try
'On Error Resume Next
GridEX1.BoundMode = Janus.Windows.GridEX.BoundMode.Unbound
'allows us to use it in AddItem mode
GridEX1.KeepRowSettings = True
'keeps settings same when row scrolls out of sight
Dim checkedRows() As Janus.Windows.GridEX.GridEXRow
checkedRows = GridEX1.GetCheckedRows()
'if the user didn't check any row, you will get an empty array
If checkedRows.Length = 0 Then
'no materials on Tab1 Tubing so we need to check Tab2 Pipe
'SaveTab2()
Else
Dim row As Janus.Windows.GridEX.GridEXRow
For Each row In checkedRows
'get the rows MaterialID
_MATGuid = row.Cells.Item("MaterialID").Value.ToString
'Now lets check each column to see if any units selected
strJnts = GridEX1.GetValue("E")
If strJnts > 0 Then
If DoSaveData(strJnts, _MATGuid, 2, "E") = False Then
Return False
Exit Function
End If
End If
strJnts = GridEX1.GetValue("B2")
If strJnts > 0 Then
If DoSaveData(strJnts, _MATGuid, 2, "B2") = False Then
Return False
Exit Function
End If
End If
strJnts = GridEX1.GetValue("B1")
If strJnts > 0 Then
If DoSaveData(strJnts, _MATGuid, 2, "B1") = False Then
Return False
Exit Function
End If
End If
If row.Cells.Item("B").Value <> False Then
strJnts = row.Cells.Item("B").Value.ToString
If DoSaveData(strJnts, _MATGuid, 2, "B") = False Then
Return False
Exit Function
End If
End If
If row.Cells.Item("A").Value <> False Then
strJnts = row.Cells.Item("A").Value.ToString
If DoSaveData(strJnts, _MATGuid, 2, "A") = False Then
Return False
Exit Function
End If
End If
Next
End If
Catch ex As System.NullReferenceException
Debug.Print(ex.ToString)
End Try
Return True
End Function
|
|
|
|
|
Your best source of information is going to be Janus' support forums.
From the tack trace, it looks like you may have found a problem with their control.
|
|
|
|
|
Bummer, I have used the grid extensively to fill up with data and have the user group and sort the information. Love it for that, but this is first time trying to take a virtually empty grid and grab just the selected data from it. I've tried setting the value to <> Empty, Nothing, DBNull and many other things. Their sampls show them using a grid similarly for an odering application so I'm trying now to follow the code to see if I can locate how they check for a null value in a selected row cell. I'm also looking at how the settings for the myriad of properties may be different than the default.
If any ideas pop up please let me know,
Larry
|
|
|
|
|
I’m having a problem shifting focus off of a command button and onto a sheet. I have a user form called CommandButtonForm that I’m using as button. ShowModal = False. Focus stays on the form in spite of the Sheets(ActiveSheet.Index).Select and Range("A1").Select statements. I need to shift focus to the sheet.
This Workbook
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
CommandButtonForm.Show 'commandbuttonform
Sheets(ActiveSheet.Index).Select
Range("A1").Select
End Sub
|
|
|
|
|
It shouldn't matter what format a digital signature is correct? I'm encrypting a file and than I have to apply a digital signature to the file.
|
|
|
|
|
So long as you use an appropriate signing certificate, there's no difference.
|
|
|
|