.NET Forum / ASP.NET / General / December 2007
How complex is this, really?
|
|
Thread rating:  |
sam - 14 Dec 2007 04:27 GMT I have been a Window application developer for over 13 years. I know SQL though I have been able to avoid it for a vast majority of my career. I understand the basics of ASP.Net and Web servers, actually put together a VERY basic Asp.net web site for my little business. It was basically a static site that I used ASP.Net to implement a fancy navigation system. But now I am wondering if I am biting off more then I can chew...
My son's Boy Scout Troop has one big fund raiser each year and I have volunteered to revamp the order entry/tracking software. Two people from their respected homes will enter the orders into the system through out the week. The night of the meeting orders will be entered on a laptop that is disconnected from the Internet.
My whole strategy is to leverage what I know best, Windows.Form development. I will develop a basic Windows Application in .Net 3.5 to enter orders. Originally I had some crazy ideas to make the data store XML and sync everything myself. Then last night I learned of the existence of SQL Server Compact 3.5 and Sync Services.
My thought now is to leverage SQL Server Compact 3.5, Sync Services, and Web Services. All the web service would be doing is keeping four different tables in sync for a handful of known users. My web hosting account is .Net 2.0 but I only have access to a MySQL database. One of the other things the web service is going to have to do is allow large (500K ~ 4M) images to be uploaded (I am going to have the order forms scanned into the system to ease order verification).
It sounds like pretty straight forward web service to me, but is it? One of my issues is I don't know how to contend with security.
Hay, is there anyone out there that might be willing to give me hand in this?
Sam
Barrie Wilson - 14 Dec 2007 05:57 GMT Sounds like a lot of effort for a Boy Scout app that doesn't need to do much nor for very long, Sam ... but I like the idea of doing a hybrid Winforms/Web Services app as a general matter ... you really need to scan order forms for verification? sounds like too much digital bling for what you're doing here ... but maybe you want to take the opportunity to work on that sort of thing?
Seems to me you could more easily just use HttpWebRequest to POST the home orders from the WinForms app to MySQL via a simple ASP or ASP.NET page during the week and then just merge that data with the table(s) from the meeting ... it's a one-time thing, right? But that wouldn't be as much fun or as good of a tech workout ...
>I have been a Window application developer for over 13 years. I know > SQL though I have been able to avoid it for a vast majority of my [quoted text clipped - 31 lines] > > Sam sam - 14 Dec 2007 12:35 GMT > Sounds like a lot of effort for a Boy Scout app that doesn't need to do much > nor for very long, Sam ... The event happens once a year, so the solution will be used annually.
> you really need to scan order forms for verification? sounds like too much > digital bling for what you're doing here ... but maybe you want to take the > opportunity to work on that sort of thing? It is two fold, I know imaging well, I am writing image acquisition software during the day and I am a professional photographer at night, so the concept is right up my ally. From the business side of things, the real problem I am trying to solve is this:
There is one day the product is delivered by all the scouts to all the customers. There is someone at a central location that is able to take calls when customers call and complain they did not get the correct items. In the past they had to figure out which order number the person was, find the paper order to determine of there was an error in entering the order or if the customer marked the wrong thing.
My solution is to scan in that order form so that it is easy for others to double check that it WAS entered correctly. More importantly, on delivery day, make is a one click stop to confirm what the customer wrote down.
P.S. Normally even of the customer marked down the wrong thing, the troop tries their best to get the customer what they really wanted;)
> Seems to me you could more easily just use HttpWebRequest to POST the home > orders from the WinForms app to MySQL via a simple ASP or ASP.NET page > during the week and then just merge that data with the table(s) from the > meeting ... it's a one-time thing, right? But that wouldn't be as much fun > or as good of a tech workout ... I am really very open to any approach that is fast and easy. Can you give me a bit more detail on HttpWebRequest? I looked it up and it looks like a generic way to post data to a web server. Would not a Web Service be easier because it will do all the packaging and unpackaging of the data for me? It is my understanding that WebServices is simply Microsoft's version of SOAP which is simply an interface to make function calls and to interact with classes over HTTP. Am I mistaken?
Sam
Barrie Wilson - 14 Dec 2007 19:09 GMT > There is one day the product is delivered by all the scouts to all the > customers. There is someone at a central location that is able to > take calls when customers call and complain they did not get the > correct items. In the past they had to figure out which order number > the person was, find the paper order to determine of there was an > error in entering the order or if the customer marked the wrong thing. ah, this one is easy ... outsource the call center to India, put people on hold for 45 minutes and then drop the call ... it works great for Dell; they save money and I live with the problem
> I am really very open to any approach that is fast and easy. Can you > give me a bit more detail on HttpWebRequest? I looked it up and it > looks like a generic way to post data to a web server. it's a way to make a request over HTTP, with or without data being sent; this is an example of what it takes to send data from a WinForm to a web server; I'm leaving out what comes back from the server; you can have your web page send back whatever makes sense (or nothing at all); the page you request just has to handle the data in the Request collection and dump it in the SQL store ... simple ...
string url = "http://www.MyServer.com/DataPost.asp";
HttpWebRequest req; req = (HttpWebRequest)HttpWebRequest.Create(url);
// no search for proxy; takes forever req.Proxy = null;
// create an arbitrary HTTP request header req.AllowAutoRedirect = true; req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"; req.Accept = "*/*"; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; // important
// you have to build up your data string from the WinForm string postData = "var1=POSTMEISTER&var2=message"; byte[] postDataBytes = Encoding.UTF8.GetBytes(postData.ToString());
req.ContentLength = postDataBytes.Length;
Stream postDataStream = req.GetRequestStream(); postDataStream.Write(postDataBytes, 0, postDataBytes.Length); postDataStream.Close();
> Would not a > Web Service be easier because it will do all the packaging and > unpackaging of the data for me? I think it's hard to get simpler than what I posted above ...
> It is my understanding that > WebServices is simply Microsoft's version of SOAP which is simply an > interface to make function calls and to interact with classes over > HTTP. Am I mistaken? not mistaken but over-simplified ... but I am by no means knocking web services and if learning to write a web service to do this project is valuable payback for taking on the project then by all means do it would be my view
Scott Roberts - 14 Dec 2007 06:23 GMT If it were me, I'd just create an asp.net web app with a SQL backend. Users can enter orders on a "public" web site up until the event (hosting is dirt cheap). Also install the web app on the notebook (I assume it's yours).
The night of the event, I'd back up the SQL database and restore it to the notebook. You can run the web app locally (on the notebook) the night of the meeting and continue to enter orders as usual.
After the event, you can move the database back to the hosted site (if necessary).
>I have been a Window application developer for over 13 years. I know > SQL though I have been able to avoid it for a vast majority of my [quoted text clipped - 31 lines] > > Sam sam - 14 Dec 2007 12:38 GMT On Dec 14, 1:23 am, "Scott Roberts" <srobe...@no.spam.here-webworks- software.com> wrote:
> If it were me, I'd just create an asp.net web app with a SQL backend. Users > can enter orders on a "public" web site up until the event (hosting is dirt [quoted text clipped - 6 lines] > After the event, you can move the database back to the hosted site (if > necessary). Well, the thing is... I don't own a laptop:(
The other thing I did not mention is that the orders/sales goes on for about two months. At the weekly meetings the scouts compete against one another to see who brought in the most orders. At the meetings, orders are entered and reports are generated so the scouts know where everyone stands.
Besides, I would REALLY like to learn more about web development.
Sam
Scott Roberts - 14 Dec 2007 15:29 GMT > On Dec 14, 1:23 am, "Scott Roberts" <srobe...@no.spam.here-webworks- > software.com> wrote: [quoted text clipped - 24 lines] > > Sam Ah, I completely misunderstood you.
You may want to check out Google Gears as well. I've never used it, but it looks like it might be up your alley:
http://code.google.com/apis/gears/
Kevin Spencer - 14 Dec 2007 12:51 GMT It sounds pretty straightforward, Sam, except for one thing:
>(I am going to have the order > forms scanned into the system to ease order verification). There's nothing easy about this approach. First, an order form is a container of string data, such as name, address, etc. An image is a container of pixel data (colors in a plane). Images are useful with forms only when the original form is in a paper format, since a sheet of paper is also a container of colors in a plane. To extract string data from an image, a human being must display the image and read the data in it. To extract string data from a container of string data, a computer can read the string data easily. It can also be displayed in a Windows form application, or formatted as an image for viewing by humans.
In addition, string data is small, consisting only of the characters which comprise the data. Image data is large, because most of the data is the background of the image.
In other words, any way you slice it, putting your form data into an image does nothing to ease order verification, and in fact, makes the whole process much more difficult.
If you have a client Windows Forms app that uploads form data to a Web Service, it makes much more sense to upload string data.
 Signature HTH,
Kevin Spencer Chicken Salad Surgeon Microsoft MVP
>I have been a Window application developer for over 13 years. I know > SQL though I have been able to avoid it for a vast majority of my [quoted text clipped - 31 lines] > > Sam sam - 14 Dec 2007 15:16 GMT > It sounds pretty straightforward, Sam, except for one thing: > [quoted text clipped - 10 lines] > data easily. It can also be displayed in a Windows form application, or > formatted as an image for viewing by humans. Kevin,
Come on Kevin, it is clear to me that you are a smart guy, think outside the box just a little;)
First off, if you had read the whole thread, you would have seen that I have 13 years of professional software development under my belt AND that I am a photographer. I know you are smart enough to put together these facts to realize that I know the difference between a scanned image and manually entered data.
Second, the data verification is *NOT* going to be done by a computer, but a human. I was hoping I did not need to spell it out, but I will... Here is the data entry process:
1: person picks up orders from the PO box 2: person starts my application 3: person reads all the data off the order and enters it into my Windows Application 4: person places the order in the scanner 5: person scans the order form that is saved as a PNG file 6: person saves the complete order, both text data (from step 3) and the binary image (step 5)
At some point all this is sync with the main data source
Another human needs to verify that the order was entered correct...
1: person selects an order and see the entered data and the binary image. 2: person zooms into the area on the binary image of interest and verifies that is was is in the entered data.
I don't see anything all to hard about this other the me learning how to get the PNG file from the application to the web site.
Sam
Kevin Spencer - 17 Dec 2007 12:44 GMT Hi Sam,
I think outside the box for a living. Also, I read the whole thread, and I know what you are experienced in, as well as what you are NOT experienced in.
I don't have to time to get into a debate about this, but suffice it to say I don't believe you've thought the problem through quite thoroughly. As I mentioned, there are issues with the size of the data being transmitted, as well as the readability of the data, both by computers and by humans. In addition, the verification of the form data is not likely to be the last usage of it, and again, text/string data is represented in computers by the use of strings rather than images for the same sorts of reasons that numeric and date-time data is not stored as text.
You're free, of course, to choose whatever solution you desire. My desire is to be helpful by providing what I know, and I have done that. Convincing people that I'm right about it is not in my agenda.
 Signature HTH,
Kevin Spencer Chicken Salad Surgeon Microsoft MVP
>> It sounds pretty straightforward, Sam, except for one thing: >> [quoted text clipped - 51 lines] > > Sam Barrie Wilson - 17 Dec 2007 16:46 GMT Kevin
I don't think Sam was intending to machine-read the images and extract strings; looked like the idea was to be able to display the scanned order form and have a human read it and verify it .. personally, I think it's overkill either way ... but it's not my project
> Hi Sam, > [quoted text clipped - 71 lines] >> >> Sam
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|