|
Eddy Vluggen wrote: Good decision
Yes; I realise that now!
Eddy Vluggen wrote: That's being used in school 'ere; covers a lot, reads quite pleasantly.
Really? If it is being used in a school, must be OK then.
Eddy Vluggen wrote: Yup, definitely worth the time
Great. I will crack on and be back soon with my questions ha.
Thank you
|
|
|
|
|
Hi Stephen,
fyi, I found Jesse Liberty's books on C# from O'Reilly exceptionally good. And, currently I am studying Jon Skeet's 'C# in Depth," (Manning Press) which I regard as kind of the "Ph.D." level book on the subject (and one I suspect will take me years to really 'grok').
For Windows Forms, in addition to Liberty's book, I found Matthew MacDonald's books from APress excellent.
best, Bill
"In the River of Delights, Panic has not failed me." Jorge Luis Borges
|
|
|
|
|
Hello CP,
I'm currently messing around to build a plugin system and want to use subfolders.
After a bit of searching I found that adding a <probing privatepath=""/> element to app.config allowed subfolder usage.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib" />
</assemblyBinding>
</runtime>
My only objection to this is that it is yet another file (one the user can edit :s) , my question is:
Can I merge this configuration file with the exe or is there another way to do this?
It would be preferable to put this in the manifest or something.
The first rule of CListCtrl is you do not talk about CListCtrl - kornman
modified on Sunday, August 28, 2011 11:13 AM
|
|
|
|
|
You can modify the configuration during runtime.
However whether it uses it to pick up assemblies is a different point.
Myself I don't see the utility. To create a plugin system you need to load from somewhere dynamically. That is the initial path. There isn't much point in having the framework (the loader) to provide options that require the plugin to follow a loading scheme that for most plugins shouldn't matter. So if the primary assembly is in director 'Bdir' then the plugin will probably have dependent assemblies in that directory and no other. And the standard assembly load mechanism will find those because the primary assembly was loaded from that.
But further note that the point of configuration is specifically so that users can modify it. And a plugin system is pretty much by it very nature suggesting that users are going to be responsible for it. So either the system is simple to begin with or one must assume that the users are intelligent enough to deal with it.
|
|
|
|
|
I am writing a C#.net windows desktop/windows form application in 2008 or 2010. When the application basically starts in program.cs in the main method., I am going to check to see if a user has access to this new desktop at all. I am also going to check to see what parts of the application the user has access to by looking at the active directory. When a user clicks on various tabs in the application there is going to be read only or read-write access. When there is read-write access, I going going to display the extra buttons only to those users only.
I have the following questions to ask:
1. Would you put this kind of logic in program.cs? If not, where would you suggest I put this logic and can you point me to a code reference I can use?
2. For the parts of the application where a user clicks on a tab that have either read-only or read-write access:
a. I was thinking of of storing the active directory groups that user has access to in global variables. However this is generally not a good idea due to not following good object oriented design princicples. if you were going to keep these values stored in variables, how would you accomplish this task?
2. Another option would be to do the same kind of basic ldap lookup everytime a user clicks on that tab on the desktop. How would you accomplish this option?
3. Do you have other options to suggest? if so, what are they? Can you explain your alternative option to me and/or point me to a url that will explain how you accomplish your optiuon?
|
|
|
|
|
dcof wrote: by looking at the active directory
What if there is no Active Directory?
dcof wrote: Would you put this kind of logic in program.cs?
No.
dcof wrote: where would you suggest
In a class that is designed for it.
dcof wrote: how would you accomplish this task
In a class that is designed for it.
dcof wrote: basic ldap lookup everytime a user clicks on that tab
Is that data likely to change?
dcof wrote: alternative option
Maybe investigate what's inside a Windows Principal[^]?
|
|
|
|
|
In reposne to your answers,I have the following additioanl questions:
1. Would you put this kind of logic in program.cs? No.
Why would you not put the code in this section? If the application is going to shutdown right away, why not close the app right away?
2. Would you have the program.cs call the code for LDAP right away?
|
|
|
|
|
Very very little goes into the main method; unless it's a simply command-line utility.
|
|
|
|
|
Your response, 'Very very little goes into the main method; unless it's a simply command-line utility.'.
Is this a requirement of microsoft? Is this a best practices standard?
If this is a requirement, are there any other parts of the application I should not put extra code into it?
|
|
|
|
|
dcof wrote: 1. Would you put this kind of logic in program.cs? If not, where would you suggest I put this logic and can you point me to a code reference I can use?
At some point you are going to have GUI components (classes) Which will NOT be part of program.cs (And with enough complexity the GUI components might be in their own assembly.
You are also going to need at least one class that does nothing but the Active Directory interaction. The GUI components call that class. That class then retrieves the necessary information.
The GUI components are then used in program.cs. In addition program.cs will use the above class to do the initial start up check. Presumably you are already planning on telling the users that they failed the initial Active Directory check.
dcof wrote: .<layer> Another option would be to do the same kind of basic ldap lookup everytime a user clicks on that tab on the desktop. How would you accomplish this option?
I would investigate the requirement that lead to this in the first place. Authentication and Authorization is best done with roles not users. A user belongs to a role. The role controls access. I would probably implement it in a database. I would probably cache it with a short expiration time.
|
|
|
|
|
The code I am going to setup is to check for the roles the user has access. If the user not does have does not access to anything by looking at the active directory roles they are assigned to, they will be taken out of the application with an error message.
|
|
|
|
|
Hi, I'd like to make a program that talking(reply) to user
example
User: How do you do!
Computer : How do you do!
User: I'm tired
Computer : Have a rest !
& soon ,,,,,, thanks
|
|
|
|
|
You're not going to be able to (realistically speaking) make a true talking program. Much work is still being done of that field to make real talking computers.
However, you can have a go at something that looks like it. Start, for instance, by creating a 'database' of Question/Response pairs, where if the user asks Question, you read the corresponding Response from the database and output it.
Then you can work on string matching, such that minor changes in the typed question still match to a predefined question in your database, e.g. "What are you doing?" and "What you doing?" should probably be considered the same question.
You can then continue by defining keywords, that when seen in a question trigger a certain response. For instance, in your example the user says "I'm tired". If that specific question isn't in your database, but the keyword 'tired' is, then you can have a guess from seeing this keyword that the user is tired, and you say something like "Have a rest". Of course, the user could have asked "Are you tired?", in which case "Have a rest" wasn't the right response.
You could add a check for if the user ended with a question mark (?), in which case you can assume that whatever typed was a question.
At any rate, I'd say have at it, try experimenting, combining things. Come up with ways to understand the users intentions as well as possible. It's quite a fun thing to try, and also quite challenging.
|
|
|
|
|
There should be some ELIZA[^]-like open source applications out there, and some MSN-chatbots of course
Bastard Programmer from Hell
|
|
|
|
|
Eliza is open source, if you don't mind Lisp.
/ravi
|
|
|
|
|
If she talks with a Lisp, that might be a problem for the OP...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
special , thanks to all who answered the question
& in your opinions how to solve the problem of "lisp"????
thanks
|
|
|
|
|
I have a reprint of Weizenbaum's original paper published in Jan 1966 and now in the public domain. I can email it to you if you like.
/ravi
|
|
|
|
|
OriginalGriff wrote: If she talks with a Lisp, that might be a problem for the OP...
Do you see some kind of Scheme in this response?
Cheers!
"With sufficient thrust, pigs fly just fine."
Ross Callon, The Twelve Networking Truths, RFC1925
|
|
|
|
|
What you are looking for an AI program.
These are never easy to make. If you do a search, you will find some good articles / whitepapers on such types of programs.
Too much of heaven can bring you underground
Heaven can always turn around
Too much of heaven, our life is all hell bound
Heaven, the kill that makes no sound
|
|
|
|
|
please help me out to understand in simple way..........
thank you in advance.......!!!!!!!!!!
|
|
|
|
|
Threads and delegates are two completely seperate things. A delegate is a like a variable for a function. In other languages they are called function pointers. These variables can reference one or more functions. Threads allow for multiple execution paths to in application to exist at the same time. So you can be doing more than one thing at the same time in your application.
Here are some links to some documentation
Threading - http://msdn2.microsoft.com/en-us/library/ms173178(VS.80).aspx
Delegates - http://msdn2.microsoft.com/en-us/library/ms173171(VS.80).aspx
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/a328d794-56cc-46c0-b039-c91c3cd5896b/[^]
|
|
|
|
|
A delegate, very simply put, is an address to a function that needs to be invoked at a certain time.
Delegates in C# are type safe.
E.g. HandlerMethod handler1 = FirstHandler;
where FirstHandler is a method.
Thread functions (like SetThreadPriority ,Sleep etc) are functions that can be invoked on an existing thread.
E.g. Thread.ExitProcess()
Too much of heaven can bring you underground
Heaven can always turn around
Too much of heaven, our life is all hell bound
Heaven, the kill that makes no sound
|
|
|
|
|
I downloaded this project from this website itself..While running in the any of the higher version of Visual studio i.e either 2005 or 2010 facing an error in the client side
Client side Error is:cross thread operation not valid
Server side Error is: Cannot access a disposed object. Object name: 'Form1'.
teju
|
|
|
|
|
You download which project? this one? Word Building Network Game With Intelligence[^]
Why don't you ask the question in the message area for which it relates?
On the client side error, it looks like a thread is attempting to access an object in another thread
On the server side, it looks like the client died, and the server can no longer communicate with it.
Put the code in debug and watch it crash, and check where the threading error occurs and sort out the Delgates needed for the cross threading.
|
|
|
|