|
Hi All,
Newbie question!!!
Is it possible to have a web interface for a c# Windows application??
Basically this is what i would want to do. I have a Windows application program which runs 24/7 and collects data from the TCP IP layer and stores it in a database. Its a windows application witha form for the administrator to do the initial configuration and monitoring.
All the data that is collected now needs to be shown on a web page, as a status report with graphs and stuff. Also the web page should be able to send data to the application , which inturn will send TCP IP data .
How do I proceed with this??
Any help will be appreciated.
Best Regards.
|
|
|
|
|
Preetham.N wrote: Newbie
You should really try simpler problems until you become more experienced.
Preetham.N wrote: a web interface for a c# Windows application?
Study the WebBrowser class....
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Sorry, it sounds like you have a windows application that does one thing and now you want another (web) application to use for reporting - correct?
Then yes - I'm guessing you just have a database in the background, it should be simple?
|
|
|
|
|
WinForms .NET 3.5 application creates files using UserSettings.Store
object.
UserSettings.RemoveAll() does not remove those files.
Directory
C:\Users\user\AppData\Local\IsolatedStorage\kpfhj5go.0xp\drvowkmz.al1\Url.uxurxejkalg3optycd32sijndoeqvbiy\Url.4d3tujmqjjalo23wq4rjcu1tkcry2s2d\Files
still contains created files.
How to remove all files in code from isolated storage ?
Andrus.
public static class UserSettings
{
static IsolatedStorageFile Store
{
get
{
return IsolatedStorageFile.GetUserStoreForDomain();
}
}
public static void RemoveAll()
{
Store.Remove();
IsolatedStorageFile.Remove(IsolatedStorageScope.Domain);
IsolatedStorageFile.Remove(IsolatedStorageScope.Machine);
IsolatedStorageFile.Remove(IsolatedStorageScope.Assembly);
IsolatedStorageFile.Remove(IsolatedStorageScope.Application);
}
}
Andrus
|
|
|
|
|
When you change the font size for a control in Visual Studio, you can often see that VS seems to know better; e.g. you select Arial 10, and when you look at the property window afterwards, it has changed to 10.2.
My experience with a little proportional resizing tool I wrote in C# seems to imply that this happens at runtime as well, which causes problems when labels are to close to each other (they may overlap when I have computed their positions based on font size 10 but really they autosize to 10.2).
Does anybody know how I can determine at runtime with which font size a text is actually being rendered? And what the reason for all this is anyway?
Graphics isn't exactly my strong point, and I'm running out of ideas for search criteria to find something related.
|
|
|
|
|
Hey everybody!
Lets assume the following function signature:
void do_something(byte* input, byte* output);
The function is taking the input, doing something with it and places the result in output.
The function uses "new byte(X)" command, and returns this new byte* (in other words, the caller must delete the variable when done).
Now, We're putting this function in COM, and calling it from C#.
So, in C++ we're using "new", and it returns to C#.
Does c# take care of the assigned memory in this scenario ???
Thanks a lot in advance!!!
|
|
|
|
|
As the memory is not allocated from the managed memory, it's not garbage collected. The calling code will have to delete the memory.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
|
Green Fuze wrote: Does c# take care of the assigned memory in this scenario ???
Nope. See, for instance, here [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
|
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Whenever you allocate memory in a COM component that you intend to return to the caller, you should use COM's memory allocator, which you can obtain by calling CoGetMalloc . There's a straightforward wrapper for allocation called CoTaskMemAlloc , which has the counterparts CoTaskMemRealloc for increasing the block's size, and CoTaskMemFree for freeing memory allocated this way.
The COM runtime will have to manage memory for you any time it passes any kind of boundary, so you should always do this even with C++ clients and servers. It's a good idea to do it properly
In your IDL, you will need to provide attributes to tell the marshalling layer what pointers actually mean. Do these point to one byte, or to an array of bytes? If it's an array, you'll need to provide information about whether it's null terminated ([string] ) or what the size of the array is ([size_is] ).
If you mean one byte, the runtime will be expecting the caller to pass a pointer to a location where the byte should be stored, and the called function should write directly to that address without allocating.
If you really mean passing in one byte and returning one byte, I'd write it:
void do_something(byte input, [out] byte* output); [out] just tells MIDL that the value is an output and doesn't need to be marshalled on the 'in' direction (this means the function will receive junk data). I've changed the first parameter to a single byte passed by value.
In addition you should really make the return type HRESULT . This is the only way to signal faults; if a failure HRESULT is returned, the .NET marshalling layer will throw the corresponding exception.
DoEvents: Generating unexpected recursion since 1991
|
|
|
|
|
Thanks a lot!
That really helped!
|
|
|
|
|
Since this morning VStudio 2008 refuses to work.
I wanted to open VStudio by double-clicking a sln-file. VStudio opened for approximately 1 seconds and than it closed again (automatically)
If I open VStdio directly by starting from start-menu (without double-clicking a sln-file) than it opens. BUT: When I try to load a sln-file via menu (file-open solution) than I get the following message:
"Microsoft Visual Studio has encountered a problem and needs to close"
I have no idea!
I also observed that VStudio blocked some actions for a very long time the last days.
Does anybody have some idea?
|
|
|
|
|
Hi,
I'd try manually cleaning project/solution by deleting all the bin and obj folders.
If that fails to work and if you're more concerned with getting back to work than figuring out what caused it one solution is to create an new solution and add everything (source files, .resx files etc) from the broken solution to that one.
/Fredrik
|
|
|
|
|
It sounds like some files have become corrupted. Check if there is a Repair option in the installation.
Despite everything, the person most likely to be fooling you next is yourself.
|
|
|
|
|
I perfromed a repair - it dit not help.
((
|
|
|
|
|
I have a created a window which has one show button which searches some information from my LAN pc's, but what i want is to display a progress window , having the image "please wait" for this i have created a separate window and called the show method , Now when this progress window is opened , user should not switch to the parent window, how can i do that ?.
Regards
|
|
|
|
|
Show the progress window as modal but make sure you are doing it from a separate thread, your main thread will be blocked else.
|
|
|
|
|
|
Application.DoEvents ??
it is helpfully (sometimes)
|
|
|
|
|
It's trivial. You run the searching in a separate thread and show modal progress window from the main thread. Something like
ThreadPool.QueueUserWorkItem(DoSearching,AnyObject);
progress.ShowDialog() "DoSearching " method should be able to update and close the progress. Make sure you use Invoke/BeginInvoke when accessing progress window from your DoSearching method.
|
|
|
|
|
When i search about BeginInvoke /Invoke every where written that u should avoid them because it causes deadlocks and also slow. Any better idea
|
|
|
|
|
I never experienced any problem with that. CP has an excellent article on Invoke/BeginInvoke here[^]. It's worth reading.
|
|
|
|
|
Ok i have created a function progress() and uses MethodInvoker and called BeginInvoke(), Now in progress() function i called the progress.showdialog() after begininvoke i called method of extracting details from the network , when this function returns i closes the form progress.close() but gives error why? how can i close my show dialog form.
|
|
|
|