How To Approach Refactoring A Class
Jul 24, 2009
I recently started a project and needed to do some integration with LDAP via DirectoryServices. I've done this in other apps so I went into one of them to see how I did it -- why reinvent the wheel right? Well, while this wheel works, it was developed years ago and kinda smells (it's wooden, firmly attached to the previous vehicle, hard to repair and produces a potentially bumpy ride).So I thought to myself, this is the perfect time to refactor this puppy and make it more portable, reusable, reliable, easier to configure etc. Now that's fine and dandy, but then I started feeling a tad overwhelmed regarding to where to start. Should it be a separate library? How should it be configured? Should it use IoC? DI?
So my [admittedly subjective] question is this -- given a relatively small, but quite useful class like the one below, what is a good approach to refactoring it? What questions do you ask and how do you decide what to implement or not implement? Where do you draw the line regarding configuration flexibility? [Note: Please don't bash this code too much okay? It was written a long time ago and has functioned perfectly well baked into an in house application.]
Public Shared Function AuthenticateUser(ByVal id As String, ByVal password As String) As Boolean
Dim path As String = GetUserPath(id)
[code]......
View 5 Replies
ADVERTISEMENT
Feb 21, 2011
This is my scenario. I am writing an app which takes a person object and a features object , when the user selects a person object a features object is created. This works for any amount of features i care to display. So far so good, i am now refactoring to create 2 additional classes, a maths class and a ui class. my issue now is how do i get the maths functions to know the instance of the features object(s) or person object(s)?
Unfactored
Public Sub New(ByVal feature1 As New Feature)
...
[code].....
View 2 Replies
Nov 3, 2010
How do I refactor the method GetInvoiceNumbers to replace the SQL String concatenation with the StringBuilder class? Here is my code:
Private Function GetInvoiceNumbers() As System.Collections.Generic.List(Of Invoice) Implements InvoiceService.GetInvoiceNumbers
Dim invoiceList As New List(Of Invoice)
[Code].....
View 3 Replies
Nov 14, 2011
I'm currently refactoring an old Visual Basic DLL (VB.Net), which stores all of its data in one module called Globaldefinitions as public fields. There are about 200 fields, referenced thousands of times all around the code:
Public Module Globaldefinitons
Public a As Short
...
Public zz10 As Double
[Code]...
I need to change the module into a class with non-shared fields. This means, each and every of these thousands of references needs to reference the instance of that class:
globalDefinitionsInstance.a = 5
How do I go about this efficiently?
Regular expressions operating on the source fall flat. Refactoring tools like Re-Sharper or CodeRush don't seem to offer this functionality. Visual Studio 2010 cannot do it automatically either.
View 2 Replies
Sep 28, 2009
I use VS 2005 and VB.NET. I have a class A. This class A is an empty class(no functions, no members). I wrote the following code: Dim _a as new A(); Dim code as String = _a.GetCode() In the same situation, the C# refactoring tool in VS 2005 IDE propose me to create a method in the A class internal string GetCode(){ }
The VB.NET compiles does not propose anything. There is a way to implement the functions when I need it in code, or I need to planify all my methods before using the class?
View 4 Replies
Jun 7, 2012
I am currently learning vb.net for my new job and I have mixed feelings over public fields. I see many arguments about them hurting the encapsulation. In python, the common practice is to keep things simple and use fields when they are enough. If we want to add logic later, we just refactor them into a property without breaking anything for the client code.In the codebase I am working with I see huge classes containing dozen of properties like:
[Code]...
View 2 Replies
Dec 20, 2010
I want to add DataMember attributes for the properties in a class Is there any way to automatically add the attribute maybe some refactoring tool
View 4 Replies
Oct 13, 2010
When I try to change the root namespace of my WPF VB.Net application, I get this error:
'The file "" does not support refactoring and will have to be manually changed. Object reference not set to an instance of an object'
[Code]...
View 5 Replies
Jul 7, 2010
I have a class that I wrote fairly early on in my vb.net programming experience which inherited from another class it really should have composed. The base class is a relatively generic nested dictionary-based collection; let's call the descendant class a "Car".Right now there's a lot of code that does things like 'MyCar!Color.st = "Red"' (I use the generic collection rather than real properties to facilitate data interchange with code written in VB6, and also to facilitate comparisons of cars; given three cars X, Y, Z, I can e.g. detect any changes between X and Y and apply those changes to Z).
Is there any nice way to refactor the code to use composition rather than inheritance?Which properties methods should the "Car" object wrap, and which ones should be accessed through a data-object property? Should a widening conversion be defined between a car and the collection object? Are there any gotchas when doing such refactoring?
View 1 Replies
Sep 15, 2009
These routines (vb.net) allow you to dump a gridview to CSV, even if there are templated controls in the cells. It works, but I'm not thrilled with it.
What improvements should I make and why?
Private Shared Function CsvFormatted(ByVal t As String) As String
If t.Contains(",") Then
t = """" + t + """"
[Code].....
View 1 Replies
May 21, 2010
Have we moved from "Being forced to go install a 3rd party add in to get what C# users have" to "Being forced to go buy a 3rd party add in to get what C# users have"?
Why did MS see fit to get DevExpress to create Refactor! for the previous versions of VS, but not for 2010? Or am I missing something?
View 3 Replies
Sep 10, 2010
I've been working to refactor my code and ended up with a quite clean main BLL class that has only a few manager classes that pass information between eachother. They handle separate tasks/areas like socket connection, data, etc. It's only one instance of each of these manager objects, so I believe maybe the base layout is a structural singleton (?) ..but not sure. This seems to give quite good oversight and a clean separation of PL/BLL as the main form only access the BLL through one instance of a single class. But now I'm trying to figure out how to lay out the presentation layer. So with this I would like to understand a few points: Do you have all controls as members of the form class, or can you make sub classes where some controls only exist on lower levels? Like for example if you have a tab where all controls only interact with each other, and not the rest of the form, would it then be possible to make this a separate class that holds both controls and additional logic ? The first problem I get when trying this is with the events, as if I simply move an event handler method to another class than the form class, I get the message: Handles clause requires a WithEvents variable defined in the containing type or one of its base types.What does this mean? and is there an easy way around this? I would like to understand how a slightly more complex PL is designed, so I know what direction to move in for studying/developing this.
View 3 Replies
Jun 4, 2012
I have a case statement which compares data by getting parameter such as "eq,ne,gt,..." and so on. Actually this method will filter data by getting filter parameter and filter value. How can I refactor below code?
[Code]...
View 1 Replies
Feb 11, 2010
All the refactoring tools for C# and VB.Net that I have seen only consider the source code in a single visual studio solution.For better or worse, our large (many related programs) system is spread over many solution files, however:All the code is below a single windows folder. Our nAnt based build system, builds all files in a windows folder to produce a single dll (bit more complex then this but not important for this question).Therefore ALL ".cs" and ".vb" files below the single root folder are part of the system.
So I am looking for refactoring and reverse engineering tools that take a single folder as input and act on all files below that folder.(The tools may need some help to decide what "public" and "internal" means, however most of the time "internal" means "in the same code tree" when a "code tree" is a folder that contains code and any child folders.)Now I am being greedy, I would like the tools to create a lot of all the refactorings that have been done and to be able to replay the refactorings. Then I could try out ideal and if they work, throw away my code, get the latest code, you do the refactorings and checkin the code before anyone else changes the files. (Likewise for when branches need merging)
View 1 Replies
Nov 17, 2010
I need to refactor the method GetVendorBalanceDue to call stored procedure spVendorBalance in my database. I have created the stored procedure and am not sure how to get the method to call the stored procedure. Here is my code:
Private Function GetVendorBalanceDue(ByVal vendorID As Integer) As Decimal Implements InvoiceService.GetVendorBalanceDue
Dim selectCommand As New SqlCommand
[Code].....
View 1 Replies
Aug 27, 2009
I am using Oracle 11g client, with ODP.NET. I am trying to add conditional Transaction handling.
Dim ds As New DataSet()
Dim txn As OracleTransaction
Dim _beginTransaction as Bolean = true
Using conn As New OracleConnection(ConnString)
[Code]...
How do I fix txn being nothing / null? The error is: Variable 'txn' is used before it has been assigned a value. A null reference exception could result at runtime. Edit: to RichardOD for pointing out that you can not explicitly declare that a transaction cannot be opend up on stored procedures via ODP.NET. I have verified that this is an issue. BUT We still haven't figured out why the error is occuring. I understand that txn is initially given a value w/in an if statement, but being defined outside of the try/catch block should make that irrelevant.... right? Or is that bad coding?
View 3 Replies
Jun 27, 2012
I have created a simply Pizza program (for a summer project not education related) that uses check boxes to determine what the customer wants. Basically a simple pizza ordering program.I was wondering as I have used the If statement over and other again for different parameters and variables, is it possible to use multiply arrays to simply the VB Code...I was advised to use Constructors in VB.Net Or is there a more simpler way to go about creating this program...or a better way of programing?What about decreasing the repetition in the code?
[code]...
View 4 Replies
Jul 15, 2010
I have a whole slew of database access functions which assume a particular connection string. Within my application I call
[Code]...
View 1 Replies
Oct 14, 2011
In VS2010 C#, when I right-click there is "Refactor" menu with following options:
[Code]....
Are these options available in VS2010 VB.Net? All I can see is "Rename" when I right click?
View 1 Replies
Jul 20, 2008
Dont understand where to start on visual basic iv been leaning alot about computers over the months and i would now like to design a program and to be honest its all new and i dont no where to start or what any of these woulds mean like string, data enadled application and refactoring.
View 3 Replies
Dec 15, 2011
OK, I have this loop I want to perform which involves the serial port. Not to get too specific I'm actually sending data to an external device within a loop The loop involves a Start number, increments by a Step and ends when it gets to Stop This repeats until I click a STOP button.
View 15 Replies
Jul 28, 2009
I understand that there are several ways of Inserting, Updating and Deleting records in a database such as DataAdapters, DataSets, TableAdapters, SqlCommandBuilders, Parameterized SqlCommands, StoredProcedures, etc, etc,etc. According to David Sceppa Sprocs are the most preferred. Ok, I go with him on this one (who am I to challenge him anyway?).
My question is, apart from Sprocs, which of these options is the BEST for a large commercial database application and why, taking performance into account? What are the benefits and drawbacks of each option?
View 4 Replies
Jul 18, 2009
I am writing a program to assist Paramedic students in learning the Drugs that they have to know in order to pass their classes. I have created an Access database to hold all the information on these drugs, but not every student that will use this program will need to learn all the drugs contained within this database.
Right now I have 43 drugs in the database and still growing.
What I want to do is to present to the student the drugs and have them say "Y" or "N" as to whether its on their required list to learn. That way they only work on the ones that they need to.
View 3 Replies
May 18, 2012
I've two BGW with similar coding but different approach, My second BGW shows me "NOT RESPONDING" whenever i try move/click/focus to form while the BGW is running.
VB
RichTextBox2.AppendText("Some Text")
process2.ReportProgress(inc)
My.Computer.Network.DownloadFile(andpic, "pics/" & spliti(0) & nnum & ".png")
My.Computer.Network.UploadFile("pics/" & spliti(0) & nnum & ".png", "ftp://ftp.mywebsite.com/domains/mywebsite/public_html/Pics/" & spliti(0) & nnum & ".png", "users", "password")
WebBrowser1.Navigate("Mywebsite")
I've taken out number of things that i think is causing this error Are they the cause of "NOT RESPONDING" ?
View 4 Replies
Nov 12, 2010
To write a effecient Active Directory library to ease the work of technicals who are responsible to create access models into the domain controller's Active Directory. This library must allow the following:Basic operations: Add, Modify, Delete, List entries;An entry may either be an organizational unit, group or user (no further need required as of now);I thought about having a class which would represent the domain with which we want to work with.
public class Domain {
public Domain(string root) {
Root = root;
[code].....
View 1 Replies
Aug 26, 2009
I have a database with three tables:
stock
orders
order_details
Stock and Orders are self explanatory. Order_details is a lookup table, holding basically just the orderID, stockID and quantity for each item in the order. That's not very friendly for the user however, so what I want to show is a DataGridView with some elements from order_details, and some from stock, i.e.:
Part_Code, Item_Name, Description, Quantity, Price
I can create a database view for this easily enough, and bind it to a datagridview. It shows existing items in the order fine, but the problem is the view doesn't update when I add new elements to order_details in the dataset. It appears that it's bound to the main database, and so won't update until I save the record. That also has the problem that it's now much harder to update the database. A simple datagridview bound to order_details would make it easy for the user to enter quantities and for me to save the record, this one now needs a custom update statement.
In summary:
- I want to show data from two tables
- I want the datagridview editable (well, the quantity column anyway)
- I want the datagridview to update when I add entries in the dataset
What is the best/easiest way to do this? Is my current approach of a view in the database and custom update statements sensible? How can I get the datagridview to refresh whenever there's a change to the local dataset?
View 8 Replies
Apr 11, 2010
I'm working on a system where there can be 2 level of users "Admin" or "Researcher".We have the requirement to allow the researcher to change fields for a record a record, but they want the original values to stay in the record and have an admin "accept" or "approve" the changes before the real record gets updated.Has anyone run into this scenario before? I'm trying to think of the best way to do this.
View 3 Replies
Oct 15, 2009
Trying to implement a recordset approach in VB.NET and have gotten to the point where things almost run. :)
Code:
Dim strSQL As String
Dim rsMaster As New ADODB.Recordset
strSQL = "select * " & "from tblDQ " & "order by xid, xcode, xDOS"
[Code].....
View 4 Replies
Mar 25, 2012
I'm currently working on a system that requires monthly, quarterly and annual reports. I have no problem in generating/retrieving the data, my problem is the presentation. What is the best way to do it? I need the report to be:
View 3 Replies
Jun 16, 2010
I have a wierd problem with threading in an ASP.NET application. For some reason, when I run the code in the request thread, everything works as expected. But when I run it in a separate thread, nothing happens.This is verified by calling the below handler with the three flags "on", "off" and "larma" respectively - in the two first cases everything works, but in the latter nothing happens.[code]
View 4 Replies