C# - How To Organize Code (methods I Create For Various Uses On My Website)
Oct 14, 2010
I wrote some code to connect the application to it's database, then I created some code to use the connection code and retrieve, update or add some values to the database, Also I might have some code to deal with other stuff than to deal with the database
The code is a little complicated, maybe it's simple but it's not short, for example to write a good piece of code to just retrieve a single value so I could set the controller with this value I used this :
SqlConnection sqlconnection= new SqlConnection(ConfigurationManager.ConnectionStrings["DefConnectionString"].ConnectionString);
SqlCommand sqlcommand = new SqlCommand("SELECT name FROM message WHERE id = 3", sqlconnection);
try
{
sqlconnection.Open();
lbl_name.Text = (string)sqlcommand.ExecuteScalar();
Status.Text = "Done";
}
catch (Exception ex)
{
Status.Text = ex.Message;
}
finally
{
sqlconnection.Close();
}
I might even add some code to store some info in the database about any exception is thrown, I think the code is pretty basic, yet it's not small, given that it's the smallest piece I'll need, some huge code is written for adding or editing new items, and also consider that it's not the only code I'll write in the page, the page has more needs.
I've provided a detailed case I hope!...So what do you think will be the best way to make my page fast and easy to read and have an organized code I've started placing every code in an appropriate method, but some methods are common so I create them again in every page that needs them like a ConnectionToDataBase Method, and mean while I think I just organized the page so I could mainly look at Page_Load and see what are the called methods and then scroll down to read the definition but It's still a big page and note the best practice I think
Sorry for all the big question, I just provide details so I could get a reasonable answer for my question, I hope everyone benefits from it as most questions are pretty basic, newbies like me needs some detailed cases and answers to get a better start.
EDIT: I know I'm new, So any comments on my code are more than welcome!
In a website, I see some developers put code into app_code, and sometimes appcode (due to some bug), other files into DataModel, and other files into miscellaneous folders.
Is there a standard approach to organizing code within an application?
How is it different between an ASP.NET, MVC, Silverlight, Console, Database, and WCF application? The reason I mention WCF is because many people seem to have a shared types library that is linked between the server and client code.
Where can I learn these common practices without having to try, fail, and try again. I'd rather just learn it once from the experts.
I have several ASP.NET sites in IIS7 and would like to be able to group them into folders (or other mechanism, if available). Ideally, I would use a customer name or account number and put the sites under there.
Is there a way to customize the organization of sites in IIS7, or is there just the one 'flat' view?
I have been asked to join a very small team where one main developer has been buiding the web app (.NET 4.0) during ~6 months. The project should be delivered within next 2 months.
After first look at the code I can say that I would never allow it to go to production (things like catch { }, no tests at all with WebForms etc).
So the code quality is incredibly low.
My task is to improve that and still deliver the solution. So I plan to start with unit testing and MVC2 reimplementing most of the functionality (though using some of the existing code).
I estimate that I will need about 6 weeks to catch up with the current progress and be on te same functionality level as the application will be in 6 weeks.
The problem is that the main developer who has been working on the project seems to be really starting in IT and many basic things are unknown to him. It will take significant amount of time and effort to educate him how to do the proper testing, development and apply some patterns.
I am ready to take responsibility for the reimplemnting the application but at the same time I don't want the main developer to be on idle but as he won't be able to significantly contribute to the better-world project at this stage I am not sure what would the best way to keep productivity high for both of us.
Currently I think following solution is good enough: He proceeds doing what he does until I will catch up with him and then start working on a new project together.
The problem is that of course this approach is not very productive as one developer will do better-world project while the other will proceed with what he did, effectively doing similar tasks.
Another approach would be to pair and try to do things together, but again not sure how productive we will be.
Can you suggest how we could better organise the work together in order to be most efficient for the overall project?
Below is some code. The save() method was pre-existing. I added the saveRanking() method. When I walk through the code, it hits the method, but then it just bails out of it. No exception (that I can see). Do I need that function(data) part? Code: function save() { $.post( "/Applications/SaveStatus", [code]....
I want to show just a 8 entries pro time, and above the table make some kind of navigation (like 1 2 3 4 5 ..) and if i need to see next 8 entries I#m clicking on the number 2, i see them. I dont know how can i do all this.
i working with mvc, and i want too that this solution is dynamic, that by more entries automaticly will have longer navigation 56 enties = (1 2 3 4 5 6 7).
I am trying to create an extension to extend the HtmlTextbox methods to allow our developers to add onkeydown inline javascript to auto click a button with a name they specify.
I am trying to create different search methods using radio buttons. This is a web app. using asp.net and vb.net
1)Radio Button 1 - search by Account Number - txtAccountNumber 2)Radio Button 2 - search by Customer Last and First Name - txtLastName, txtFirstName 3) Radio Button 3 - search by Customer ZipCode - txtZipcode
One search button - btnSearch
By default, the search button is aligned to the txtAccountNumber (next to txtAccountNumber)
If option 2 is selected, the search has to align to txtLastName, and other txtboxes are visibly disabled If option 3 is selected, the search has to align to txtZipcode. and txtboxes are visibly disabled
I tried the followings, but it did not work.
Protected Sub rbSearchZipcode_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbSearchZipcode.CheckedChanged
Could anyone tell me where is the best place to put my business methods when using EF4 code first POCOs? Should they go in the POCO class? E.g.
public class customer public property Id as int32 public property Name as string public property Archived as boolean public sub MarkAsArchived me.Archived = true end sub public function EmailAllInvoices as boolean ... end function end class
Or should the POCO class be as clean as possible and a seperate class be used for business logic which accepts an instance of a customer POCO in the constructor to work on?
Old school coders are used to having every server control create events in the .cs files.. for example.. Getting the Initial load of data, Saving Data, Deleting data... and then binding datasources to the server control..
New school coders want to do it in Jquery + AJAX calls to .svc files... That gives automatic no post backs so that is a advantage... and I think its a different way of thinking.. All of a sudden the UI related events are all being done in Jquery..
What is the most modern and efficient way to go ? How can I convince the old school coders to let us you this new paradigm ? (assuming it is the better way)
I am trying to implement webservice authentication using SOAP Header. how to provice single authentication which applied to all the methoads of webservice.
Example :
public class Service:System.Web.Services.WebService { public AuthSoapHd spAuthenticationHeader;
public Service()
[code]....
On this sample it has only one method and based on the username and password mataches it provides access. As like this there are plenty of web methoad's in my webservice and i don't want to check the username and password on all the methoads. instead i wanted to checkonce and provide access to all the methods.
I want to update a log file(txt) everytime when methods in a an interface class are called? Is there any way to do this other than writing code in every method to create log?
I want to be able to create methods to do stuff like opening the connection to the database.Right now if I want to do that I have to put all the code to open the connection with the database in every class.What I did is create a new class called methods, this class is in the App_code folder.I have researched but don't understand how methods are created and how to call them. If someone can give me an example regarding a database connection method, I might be able to really understand how a method works. Basically, this is the code I have to use everytime I want to open a connection to the database:
yes client side must be java script but my qustion is not that.i am asking that can i use c# language to implement "actions" fired on "click side events" such as mouse over the reason for this question is that i remember some syntax of registering functions for particular events of formview, which are call when the event occurs (yes there ispostback involved" is something like the above possible for client side events using c# or even vb.net
protected void Page_Load(object sender, EventArgs e) { Label3.Text = "this is label three"; Label3.Attributes.Add("OnMouseOver", "testmouseover()"); } protected void testmouseover() { Label4.Text = "this is label 4 mouse is working!!"; }
is there any tools within VS2008 or Free 3rd Party tools where i can generate a Diagram of Class Methods and Code Behind events. think of the Table Diagram of SQL, it will show all fields, Primary Keys and to what table it is connected via foreign keys, etc.That is what i wish to make, in a much faster way, where it will show all class and within it is all the methods then linking them are the Code behinds and the event where the class is called.
public static class PageExtensions { public static int GetUserId(this Page targetPage) { var user = Membership.GetUser(targetPage.User.Identity.Name); return (int)user.ProviderUserKey; } }
Now in a page I need to use this method in a static WebMethod, so I have added another 'extension method' to PageExtensions:
public static int GetUserId() { return (int)Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey; }
and I call it as follows in my WebMethod: PageExtensions.GetUserId()
I'm building ASP.Net MVC 2 application using Repository pattern. My question is how to organize my application. Most of the examples I see on the web, using separate Modelproject with Repositories and Entity Data Model. These examples are not using MVC Model folder.
I have 3 projects in my solution.
1. Application (MVC Project)
- Models
- Repository (Here I want to create Repository folder for my Repository)
- IRepository (Also I want to create IRepository folder for my Interface)
2. DataModel ( Which will have my Entity Data Model and my POCO T4 Template)
I have a asp.net website in the IIS which is available on internet as www.xyz.com now I have been asked to prepare another website which will be accessed via www.xyz.com/abc.
For this, do I need to create a virtual directory under the website folder XYZ in IIS? or is there any other way to achieve this.
I understand the basics of setting up routes, I am trying to get a handle on how to organize more complex routes. Does the Route name do anything? I havn't seen a place it's actually used. If I have the route: controller/action/id/paramA/paramB/paramC. ParamA-C could be defining multiple parameters so First/Last/Zip or Phone/Zip/Birthday. Is it common practice to name the additional parameters with a generic name like paramA vs trying to differentiate a separate route for each?
Lastly, if you have multiple sites/functional areas in 1 site, lets say the asp.net site, each area MVC, Ajax, Forums ect were all different functional areas. Is it best to create a different group of routes such as hard coding the controller like:
MVC/action/id Ajax/action/id Forums/action/id
or is there a better way? What I am running into is 1 piece of the site overriding the other route because of the number/type of parameters.