Building A Large Application Using 3 Tier Architecture
Feb 8, 2011
Building a large application using 3 tier architecture in vb.net. Question: I am a vb.net developer. I have developed small and medium size application with 2 tier architecture. Now I am going to develop a large application. I have decided to develop that application using 3 tier architecture. So I studied about 3 tier. Now I know how what is 3 tier and how to develop a simple application. And also I studied about .Net Remoting and Web services. In my project, 7 modules are available. Each module has 3 layers. How can I manage in a Single Solution?
Using VB.NET 2008 I want to know what is 3 Tier Architecture for windows application? How to make a code for Inserting, Deleting, Updating in a database using 3 tier architecture.
I have a large application that has always existed all in a single .NET project up until recently (200,000+ LOC). I'm finally getting to the point where I can fix this. I just started using the Entity Framework (4.1 using code first) and I believe this is a good time to start seperating my logic.
What I did is I separated my application into three subprojects:UI - Windows forms project Business - The POCO classes Data - Legacy data access code AND the DBContext class to connect my POCO classes to the database. I also have a Windows service project and will soon have a WCF project, but those concern me less.
The problem is that in this plan, the data layer depends on the business layer and vice versa causing a circular reference error. There is no way around this.So, my idea is to move my POCO classes into the data layer removing all business logic first (just keeping the database fields, basically). Then, I will inherit from those classes in the business layer adding back all the business rules. Then my data access layer will not rely on any other project, the business layer will rely just on the data access layer, and the interface layer will rely on both for now but eventually only on the business layer.
Does anyone see any problems with this, or a better way of doing things given my current circumstances?
I have recently built an N-Tier app using VB.Net 2008. The application is based on Beth Massi's tutorial at [URL] I am trying to incorporate a datagrridview control on a Parent form - one parent (father and mother) to many children. For example,
I am beginner in programming and developed an application of mine. Although, I am finished with the coding part, but I have to present my software architecture diagram. I am not a software engineer and so familiar with basics of software engineering, layering etc.I have used 1) .NET GDI Graphics in my application, 2) Text to Speech, 3) RichTextBox which retireives pictures etc. How do I proceed with the architecture diagram now?
Im trying to build my first N-Tier web application. And it seems like im doing it wrong. Ive been kinda working out of this book, but to me it doesnt seem like the right way to do this. In the book the guy builds User and Data centric objects but everywhere I see ntier everyone is always talking about BLL and DAL ive seen nothign on UC and DC objects.Right now I have Interfaces and serializable structures, user and data centric objects. The data centric object does all the validation and connecting to the db, as well as returns any violated rules, but when I once i started pulling it all together it just doesnt seem right.Ive already wrote a ____ load of code and now am kinda stuck. I dont know if i am doing this right and dont want to continue writing any code if this is all messed up.Ive been reading as much as humanly possible and im still just a little confused. I mean I understand the concepts of seperating the logic into different layers and tiers and all that but as far as my implementation of that I just feel somethings a bit off.
I have a solution and I want to divide it up into Business Tier, Data Tier, etc. I think I have to do this by creating a project that contains the data source, another with the forms, etc. Every time I try to add a new project, it literally opens a new project, seperate from the first.
i am on a project of two tier application with VB.NET + SQL server R2. except desk top applications i never done networked applications + i don't know asp.net
i require advise in few areas
(1) is the encryption required
(2) what are the security measures i must take in terms of connection security
(3) how to use the server effectively with out putting much burden through good client end design
(4) any other guide lines / pit falls
(5) should i continue with vb.net or must & should switch over to asp
(6) what should be the minimum configuration of client system,
(7) Preferable is the thin client systems , is it possible to use thin clients
I'm creating a rather large and complex application and was wondering if any of you had any recommendations for good books on application and project architecture. Multi-user - database - heavy interaction with windows api for shell extensions.Not the standard maintenance or reporting app I usually write!
I have attempted to make my first 3 tier application. In the process I have run into one problem I am yet to find an optimal solution for. Basically all my objects use an IFillable interface which forces the implementation of a sub as follows
Public Sub Fill(ByVal Datareader As Data.IDataReader) Implements IFillable.Fill
This sub then expects the Ids from the datareader will be identical to the properties of the object as such.
In the end I end up with a datalayer that looks something like this.
Public Shared Function GetStockByID(ByVal ConnectionString As String, ByVal StockID As Guid) As Stock Dim res As New Stock Using sqlConn As New SqlConnection(ConnectionString)[code].....
Mostly this pattern seems to make sense. However my problem is, lets say I want to implement a property for Stock called StockBarcodeList.Under the above mentioned pattern any way I implement this property I will need to pass a connectionstring to it which obviously breaks my attempt at layer separation.how I might be able to solve this problem or am I going about this the completely wrong way? I am deliberately trying to avoid using the dataset in any form.
I am a fairly rookie programmer who is trying to learn the basics of n-layered architecture (DAL, BLL, UI). The application I am programming is a single tier, 3-layer application written in VB.NET (.Net 3.5). Layers as follows:
DAL BLL UI COMMON - contains DTO's right now.
I am having trouble determining what to pass between my BLL and UI. My instinct tells me that I should only pass data to the UI, and not the full business object from the BLL. Consider two scenarios:
1) Pass the BO directly from BLL to UI. This exposes BO methods and allows the UI direct access to the BO, which seems bad.
2) Pass only the pertinent data from the BO to the UI. For instance, a customer has a Name and Address. This data is really what we want to show/edit in the UI, so we would only return that data to the UI instead of the full BO. The UI would then call to the BLL to update a specific BO.
I am inclined to use #2, but I don't know the best way to implement it. The way I have it programmed now, if I only return data from the BLL, all references to my BO's will be lost and the GC will claim them. Based on this, I have some questions:
1) Should I keep business objects alive between calls to the BLL? The alternative is to re-create them every time I pass data through the BLL, which seems wrong.
2) What is the best way to keep a BO alive in a single tier architecture (how to hold a reference if we dont pass it to the UI?)
3) How do n-tier applications do this? Do they keep the BO's alive in the BLL and wait for an update from the UI? Doesn't this require a lot of "book keeping" in the BLL to make sure BO's are released when they are no longer needed?
I have followed this walkthough at http:[url]...but I am having problems working out how to save changes to the Local Database Cache so that I can use the bidirectional sync. This walkthough does not provide the code to save local changes,I have added the line of code for the bidirectional sync and it works if you drag datasources direct onto the form from the XSD but this uses the component TableAdapterManager and the method UpdateALL which I cannot see how to implement in this Walkthough ?how I change the local Database Cache and update back to server in this walkthrough ?
I am doing a project on the CRM application which sending and receiving sms using the vb.net language. I am no where to conclusions of my project because I could not build the application. I have found many examples but the problem some of the examples some uses the sms gateway or the AT commands. I could not differentiate which one to use? I have a dateline to finish this project of mine.Most of the example does not look like a CRM application.
I was looking to build a Data Access Layer for my new web based application, I'm using ASP.NET. I'm want to build a framework not only for this application but also want to utilize it for my future projects.
Actually my main aim is to make a framework, from DAC, DAL, BL to GUI. I want suggestions from you guys that what should i adopt, what give me flexibility, which suits for both small and large size applications.
In the very near future I'll have to develop an application that uses multiple screens.
So I'll give you a practical example:
I have 4 screens where different pricing infomation is being displayed. At any given time, I have to show a Promotion which is a single image that needs to be displayed across all of the screens with text scrolling across the screens.
Now I'm wondering what the best way would be to achieve this.
At first I was thinking of using one form and to stretch it across 4 screens, while I create 4 'areas' on the form that represent a screen. However when you extend a form this big I'm afraid the text is going to look horrible.
Then I was thinking of using 4 forms and split up the image into 4 different images which are displayed on the different screens. However to get a scrolling text right on 4 different forms, that's going to take some trial and error.
how I can achieve this form of digital signage?
I want to use VB.Net unless this would seem impossible and I have to use other software?
I am building an application with VB 2005 with sql server. I am using a listbox to populate items from the database. The listbox Sorted property has been set to True and also the query uses order by clause on the Name field. The items in the listbox look like
Bean Began Cat Category Detail Delta
MY problem is when the user tries to select an item, say Detail, having focus on the listbox, when pressing the keys D the item Detail selects but on next key e, it goes on to the Item starting with E. (in vb6 listbox property Sorted = true would solve this problem, which i am not getting with vb 2005/2008)
So, how can i achieve the multiple keypress on the listbox (without using any textbox to select items) to select the typed items in the list.
im building a application that plays internet radios, and im stuck at one place, so i want it to be possible for the user to be able to add their own radio stations, i have a form for that, has; text boxes for the; name and for the URL, and a button to save it to the listbox called "User Radio's", now here is the problem, should i use a database where i store the preset radio's + where the user will save their radios or how exactly do i save this? i also need help with playing the radio station that the user saved in the listbox, and how will i play the preset radio's that are saved in database, populate the listbox from the database?
I want to build an application that checks every second for certain windows and then react according to that.
My Goal:I'm building the application for a pc in a Students Home with about 10 users. To create 10 different user accounts for windows will be annoying and crowded, because new people come in every year(or couple of months) and then old accounts have to be deleted and new ones created.
I want to build an application that accepts folderPaths or window names.Lets say user1 creates a folder with the name "Susan" that she wants to protect (her personal files/picture/work will be stored there. She opens the application, selects the folder. The application saves the folder path and her password that she enters.
If the application detects that a user is trying to open/move/delete/copy/whatever that folder, the app must pop up a password box. Correct password gives her the freedom she wants, wrong password just ignores the open/move/delete/copy/whatever command.
My new office project is based on an MVP design and is in VB.NET (.NET 3.5), using multiple libraries (like EntLib, internal corporate framework, etc.). The number of DLLs used as references is so huge (almost 50) that when I try to build/debug the application in VS2008, it takes almost 3-4 minutes to get the website running successfully.
Wanted to know if there are any settings/areas which upon some modifications can help me reduce the build time? and what exactly can be the major reasons behind this long loading duration?
I use VB 2005 Express @ home for developing stuff. I am wondering if anyone knows how to run a script automatically after building my application. When I click build I want it to compile my InnoSetup installer and also zip up my executable + readme.txt file into AppName-version.zip. Right now I manually do it, and it's not that big of a deal, but if I am just wondering if it's possible. I think I can do it with full VS, so I will check it at work, but I am wondering if I can write a plugin or something if VB2k5X doesn't have an option do it already built in.
how to work with distributed application in vb.net that automatically stored data into server? How to configure to ensure the consistency of data being stored.
Currently working on a web-service with Oracle10g as back-end. Here is my problem.
1. The table I need to populate has 100 columns. I have no control over the design of the table.
2. I wanted to use the "deriveparameters" method of OracleCommandBuilder, but found out that this is "costly" in terms of performance. What I initially planned to do was to derive the parameters from an open connection, close the connection, then maybe cache the parameters obtained but I don't know if this is possible.
I am unsure how big of a hit the performance will get if I continue using the "deriveparameters" method WITHOUT caching the parameters driven. The environment is as follows
-intranet -around 2000 users -users spread out in different parts of the country
I am not familiar where they will put the web pages of the application, the web service and the database. I don't know if they'll be putting it in different servers or on one server, but that's something we cannot control too, that's why I am looking for the best approach.
I just don't want to hard-code all that parameters and if, for instance, we need to change some properties/parameters, it will be a pain to maintain the code. It would be nice if someone here can point a way to automate the whole thing w/o the performance of the system taking a hit.
I designed an application to download a file from the Internet onto a selected location on the local computer. This application too, has a form-building error.Debug Error Message: An error occurred creating the form. See Exception.InnerException for details. The error is: Object reference not set to an instance of an object.
I have a large financial application which I am migrating to VB.NETIt has two main components: charting and financial statements.I want to know if it is possible (and how) to create a main exe, and then two separate projects for the two components (as dll's?).
I have a problem with a memory leak in a very large ASP.NET application. After about 24 hours of usage (sometimes a lot more) an OutOfMemory exception is thrown. Therefore I am trying to understand how managed memory works in .NET. When does an ASP.NET application throw an OutOfMemory exception? The server has a lot of RAM and there is always plenty of memory left when an OutOfMemory exception is thrown. I understand the difference between virtual memory and physical memory. How much memory does the W3WP process have to consume before an OutOfMemory exception is thrown? Is there a setting somewhere e.g. in the Machine.Config file? The ASP.NET process is never recycled.
I am trying to build an application using vb.net that will serve as a very large checklist of sorts. and i'm not exactly sure of the best way to do this. I considered using a database but i would need it to be self contained without having to rely on a server or internet connection
As quick solution to the user wanting to be able to open a particular form from any other form (in a large application with many forms, not an MDI app), I added KeyPreview to each form and corresponding KeyPress event so that said form will open (ShowDialog) upon pressing F12 from all these other forms.
Since this update has been in place, the user has been getting intermittent (maybe 2 or 3 within the course of a workday) but nasty errors such as "exception has been thrown by the target of an invocation" and the dreaded "out of memory". Is there reason to believe (off the top of your head) that the KeyPreview could be causing this?
I want to write a program to do Markov chain, but my states are quite large. First of all I calculate all the transition probabilities and revenues for all states(1381860 total states), and store in a multidimensional array. Public RevArr(0 To 9, 0 To 750, 0 To 282) As Long
After that the iteration of markov chain should use these as inputs to calculate the steady-state probabilities. But when I try to run the main code I got this error.Exception of type 'System.OutOfMemoryException' was thrown.
The following is the declaration of second array I add just another dimension for storing all the iterations, but I get this error. Dim stateprob(IT + 1, 0 To 9, 0 To 750, 0 To 282) As single
There is a very strange problem with a Windows Service I am working on that I would like to understand why it occurs. The service loops every 5 minutes and then within that loop it loops through keys containing webservice URLs that are numbered such as:
If String.IsNullOrEmpty(AppSettings("OM." & intCount & ".Name").ToString) Then
When it hits a key that doesn't exist an exception is thrown and the service stops and waits for 5 minutes until the next loop.This usually works great but every week or two the Windows service will crash on that line without any Exception. The application log has a line from before that line but nothing after, none of the Try Catches are hit (the main one is catching the base "Exception" class).In the Event Log for Windows is the following:
The weird part is that this line of code is executing fine 300 times a day for at least a week which is around 2000 times before that one time it causes a full crash of the application. why this is occurring? I have changed that line of code to not rely on Exceptions and it has been working fine for a week now with no crash so could be something to do with too many Exceptions - maybe causing a stack overflow?