|
I am trying to develop a complex series of controls under .Net that will create a Visual Studio/Access style application for xml and other datasources.
I'm looking for someone with experience of subclassing and owner-drawn controls to assist me either in developing them or just as a knowledgable buddy to help me out.
I'm stuck with the project at the minute due to bugs I cannot solve on my own (all relating to subclassing). I have done a lot of work and would hate to have to shelve the project due to my lack of understanding.
If you wan't to know what sort of problems i'm facing have a look through the c# forums for my posts.
Hope someone can help me
|
|
|
|
|
In order to write tests you need to access the classes you want to test. Of course. So, if you have a VS.NET solution that contains (a) the project you are developing and (b) the testing classes as a class library the latter has to reference the former. But how? VS insists that everything I reference must be a .dll but at the same time my assembly must be a .exe for it to be executable.
I know that I could move most of the code from the executable into a .dll and just keep a stub in the .exe but this means that I would have to keep the dll around as well when I want to run my app.
Can anybody think of a better solution?
|
|
|
|
|
Hi Erik,
If you are using NUnit 2.0, you can create a project in your solution that creates a DLL to contain your unit tests. This will be separate from your main EXE module. Then, you can use either the console or GUI runner that NUnit provides to see the results of your unit tests. Hope this helps!
Kevin
"Semicolons in a programming language are like mother's milk."
|
|
|
|
|
Hi,
I prepared an article about Agile Programming and Refactoring for CP, it still needs some scrubbing (and proof-reading), but I figure it would be nice if someone else already has a look at it, and give some comments.
it's here: clickety[^]
I'm not very happy yet, I feel it's a bit too long, and not "focused" enough (I feel I'm trying to cover to much). I'm especially unsure if tje "real life example" makes any sense at all...
Thanks in advance
Peter
As James Bond in "die another day", Pierce Brosnan features traits handy in the dawning millenium. He fights without hesitation in a bewildering environment, trusts his high-tech-gadgets, and rather falls for beauty than pondering the political absurdities around him. [sighist]
|
|
|
|
|
[edit]Oops, sorry about that, I just read your bio
Hi! [/edit],
Barring minor spelling and grammatical errors, I thought your article was excellent. I was really sucked in by your introduction, and found it quite interesting that [edit]both a designed [edit]and a non-designed effort end up in the same place. Your content is quite good and you get your ideas across well and in a manner that I found entertaining. I don't think it's too long, and I thought it was sufficiently focused.
I've had a lot of experiences that fit exactly into what you described, and I've had a lot of successes where the processes that I've followed turned out to be exactly those described in Agile Programming. In fact, I'm even a member of the Agile Alliance!
The thing is, I haven't found anything in Agile Programming that tells you HOW to design better software, from a software design perspective. It says lots of wonderful things about the development process, but not the actual architectural design of the software. Instead, it seems that AP tries to fit in with existing design practices.
This is just plain wrong, in my opinion. While each design practice has some merits, they all have major flaws that are propagated by frameworks like MFC and .NET and the architectures that Microsoft tries to force upon people.
This is why I'm writing a series of articles on this: http://www.codeproject.com/useritems/AAL-1.asp[^]
As far as I'm concerned, the only way the principles of AP can succeed is if we change how software is architected. And as far as refactoring goes, it's an excellent technique, but the real effort should be put into preventing code from being written that ultimately needs refactoring. OK, every piece of code could stand for some refactoring--I just think this approach ends up being used for major surgery where prevention would have been better to begin with.
At the conclusion of your article, you state The best selling point is success.. I have "sold" (not in the monetary sense, but in the adoption sense) to management my AAL concept to several different companies and to my team members, because it does work. In other words, I've combined using the right software architecting techniques AND Agile Programming techniques for success. They are both required.
If that gives you any food for thought, let me know!
Marc
Help! I'm an AI running around in someone's f*cked up universe simulator. Sensitivity and ethnic diversity means celebrating difference, not hiding from it. - Christian Graus Every line of code is a liability - Taka Muraoka
|
|
|
|
|
Thanks for your feedback (double so since it's encouraging )
I got to read you AAL article later - I'm a bit unfocused right now. But you're right: that's one thing that was bugging me: Which designs are good for AP (I just wrote that "many will fit the same result" to cover this shortcoming of my article...)
I don't think we should avoid writing code that needs to be refactored - we should just pick designs that avoid large-scale refactorings. IMO, Refactoring is once a tool to "design on your way" (I think this part you can't avoid), and second a tool to avoid complete rewrites of large portions (this we should avoid).
On the design principles: Together with the Agile techniques, at least new design techniques have gotten more attention (User Stories, Patterns, etc.) And although I feel I could "sell" them, it feels incomplete for me. It's just other techniques pointing out possibilities - but IMO requires experience to pickj the right ones nonetheless. Wel, I'll read your article first
As James Bond in "die another day", Pierce Brosnan features traits handy in the dawning millenium. He fights without hesitation in a bewildering environment, trusts his high-tech-gadgets, and rather falls for beauty than pondering the political absurdities around him. [sighist]
|
|
|
|
|
I read your article and I think it is written well. I would suggest that you include an overview where you list your 5 points (the ones in blue) by themselves before the main body of the article. I don't think it is too long.
One thing that I would suggest covering is how to plan for refactoring. What I mean is to tell how to develop code that is intended to be refactored. Sometimes it is necessary to "find" a solution before you can code it properly. Unfortunantely, many times this "experimental" code becomes part of production systems. Planning for refactoring at this level is important because it recognizes the reality of the likelihood of the code finding its way into production systems and it makes the refactoring more productive. If you plan for refactoring you will not leave off application-critical steps (like validating inputs, checking errors, catching exceptions, etc), instead you will keep your design simple but your code well written.
One questionable aspect of AP techniques is that it focuses too heavily on ultra small time-frames and tends to make a developer rely on the compiler too heavily. I find that being able to focus on a code related problem as a whole problem, not just as a component of the problem is often more effecient and ultimately more productive than time-slicing the problem into smaller compoenents. This does not necessarily go against AP, but on the surface seems to.
Also, one of the strengths most developers have is the ability to keep lots of "state" info in their heads at a time as long as it is focused. AP often tends to limit the amount of focus a developer uses by time-slicing everything and I believe reduces the total amount of "state" a developer can handle because while I can remeber 7 related things at a time, I can only remember 4 unrelated things at a time.
All-in-all, a good article.
|
|
|
|
|
Thanks for your feedback!
I share some of your doubts about AP - I see it as just one tool, that has some simple, "feeling natural" techniques to keep complexitiy managable; AP alone is for sure not sufficient!
I updated the sketch with an "Limits of AP" section, including these doubts. (I want to prof-read tomorrow, than upload it here).
State: IMO keeping lots of state information is prerequisite for a good programmer, and Agile techniques can greatly reduce the amount of state information that's necessary to keep in mind at one time. I don't quite understand what you mean with AP forcing you to remember unrelated things - can you elaborate this?
As James Bond in "die another day", Pierce Brosnan features traits handy in the dawning millenium. He fights without hesitation in a bewildering environment, trusts his high-tech-gadgets, and rather falls for beauty than pondering the political absurdities around him. [sighist]
|
|
|
|
|
peterchen wrote:
I don't quite understand what you mean with AP forcing you to remember unrelated things - can you elaborate this?
AP does not force you to remember unrelated things, but it limits the amount of "state" you need to remember for a given task. This is OK for some sitations (and on the surface sounds like a good thing) and can make quick-and-dirty maintenance and refactoring work quicker. However, the results are more limited than what can be accomplished when the ultimate intent is to refator a whole problem instead of a tiny part of it.
When a programmer gets in the -zone-, solving a larger problem is often more effecient than solving just a tiny part of it. Failing to leverage the -zone- and failing to allow a programmer to use his ability to maintain "state" limits the possibilities and productivity of that programmer.
Also, (back to the original question), because a programmers skill of "state" recall is not used for the task at hand it tends to mean that the programmer will need to shift from one task to another relatively quickly. Shifting tasks is often the most ineffecient task for programmers which is where my remark came from.
Just my 2 cents.
|
|
|
|
|
I don't believe you should plan for refactoring. Any code can at some time become obsolete, be it after 2 days or 2 years. That's when you refactor it, even if it's in production. I love the notion of "good enough" to decide for or against refactoring some code.
For the state problem, I often make the "mistake" to think too much in high-level states, eating up my human RAM. Ultra small time-frames let me write down some states for later retrieval and free the memory I need for a better focus on the problem at hand (and a better schedule).
As AP is very much human-centered, it's not a solution but rather a "programming philosophy" that can work or not the same depending on you.
Eric
|
|
|
|
|
|
Would you describe more?
A. Riazi
|
|
|
|
|
First off, the link: test build 5 (183KB)
What's new in this one? A spiffy new customizable Site Links menu, that's what! The SearchBar reads an XML file and builds the Site Links menu based on that file, so we here at CP can update the menu for everyone w/o making y'all download a new version of the Bar. You can check for an updated Site Links file by clicking Update Site Links Menu in the control menu. (This just downloads a file from my upload area, no Personally Identifiable Information is transmitted, stored, sent in, sent back, queried, lost, found, subjected to public inquiry, or buried in soft peat for three months and recycled as fire-lighters.)
Also - and I know a lot of folks will like this as it's been requested often on the Suggestion board - I've added some keyboard shortcuts that you can use on the "post a comment" pages. Ctrl+Shift+C clicks the code button, Ctrl+Shift+L clicks the link button, and Ctrl+Shift+6 clicks the link[^] button.
It's also got a new build of the installer that handles registering the web service reader and installing the afore-mentioned XML file. Uninstall is not 100% working yet (not that it ever was ).
Chris M said he was going to be updating the web service Real Soon Now, so until he gets that work done this will likely be the last test build I release. I'll make any changes/fixes in the Bar necessitated by his web svc changes, maybe add more keyboard shortcuts for the other buttons if folks like the idea, then release that as v2.0.
--Mike--
If it doesn't move and it should: WD-40. If it moves and it shouldn't: duct tape.
1ClickPicGrabber - Grab & organize pictures from your favorite web pages, with 1 click!
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
Hi, this is my first post in The Code Project Lounge.
I'm thinking about creating my own MAPI-based listserv for MS Exchange Server 2000, but not if it already exists. I thought this tool came in one of the SDK's for Exchange, but i couldn't find it.
I have no previous experience with MAPI programming.
Any help would be appreciated.
Sik.
|
|
|
|
|
I know under 5.5 there was a routing add-in sample that implemented this kind of functionality. It was pretty basic though. You would be best writing this server-side rather than using client side functionality or writing it client side using POP3 and SMTP so it can be used with any mailserver but I would keep away from writing client side MAPI to do this.
|
|
|
|
|
Hi this is my first beta and first program I am releasing to the world If possible can people test it and try it on there maching and lmk what specs your machines are? Thanks for any help and if you want to give comments or suggestions that would be appreciated as well
You can download it here:
http://www.stuffsoft.com/quicke.html[^]
Code4Food
----
"There is no try; only do or do not"
-Yoda
|
|
|
|
|
Just downloaded from http://www.stuffsoft.com/quicke.php
1/26/02 and installed on my Windows XP Compaq Presario 700 and the program makes it to the system tray but then Runtime error , abnormal termination.
I use AOL, which might be causing the problem.
Another critical point if I may, I personally do not like the installer you used, looks win 3.1 ish and it didn't want to install to my program file dir by default, which I prefer. I use InnoSetup[^] which is free and nicely designed.
Your website is hella cool and very attractive.
On monday, if I remember, I will try it at work on my win98 machine and lan connection.
Later,
JoeSox
www.joeswammi.com
"I find your lack of faith disturbing" - Darth Vader
|
|
|
|
|
Joe,
Thanks for all your kind comments. Sorry for the delay in getting back to you, but I'm trying to figure out why it crashed twice now, including your computer. I didn't even bother asking the other person what ISP they where using...hmmmmm.
I was looking at InnoSetup I might just give it a try. The only requirement is that the setup program be freeware, since the program is, that's the reason I was not going to put any bells or whistles on the program, just because it is free. But with the amount of people that have downloaded it, I may try to make it better.
LMK what happens JoeSox, and thanks for the comments. And its kewl that we have Star Wars type sigs!!! LOL
Code4Food
----
"There is no try; only do or do not"
-Yoda
|
|
|
|
|
Yes, Yoda is the man! Last Star Wars was great because of Yoda. But anyway Tried QuickE at work (Windows98se) and worked fine. I think your problem is with Windows XP users, that is the OS it crashed on me. I know that Windows XP is unusual not only because it uses another kind of control to handle taskbar buttons, but also because it implements a button grouping feature.
But I found a typo when I received my test email the bottom is misspelled:
"This messasge was sent quickly with QuickE"
message I believe what you meant
Don't feel bad I have made mistakes with my JoeSwammi software after I had rolled it out but I mostly code for hobby.
Later, JoeSox
Load my Sig here.....
|
|
|
|
|
Thanks for catching the typo. I'll fix it for the next release. I mostly code for a hobby as well, since my real job has me coding using Visual Basic and php/mySQL I wish I can get a job coding C++ but alas, its hard with no degree. So I created Stuffsoft, mostly a glittery front end, so people take the software seriously. If I just put a bunch of text in times new roman, I probably would have not be taken seriously
What version of XP are you running? The program was developed and tested on my Win XP professional installation. Home built syste, why it took awhile to respond all weekend had to replace a faulty mobo.
Btw, your site is very clean and professional as well. And you sell your software One day I'll release something worth selling, but for now QuickE and the other software project I'm developing concurrently seem to fit the freeware mold.
Code4Food
----
"There is no try; only do or do not"
-Yoda
|
|
|
|
|
Code4Food wrote:
What version of XP are you running?
Home with some hotfixes installed. I can get back to you with the exact info if you need it. My laptop is at home right now.
Thanks I am always wondering about my site. I am good and getting my sites ranked well on the engines but I am not graphically gifted
Later, JoeSox
Load my Sig here.....
|
|
|
|
|
(Yet Another Forum Testing Post)
If you're happy and you know it clap your hands.
If you're happy and you know it clap your hands.
If you're happy and you know it and you really want to show it clap your hands.
Alternatively, if you're German and you'd really like to help me out of a pickle click here[^]. Problems running the forums on German language systems have apparently been plaguing the forum scripts since their first release (which is odd because they were part created by a German: Uwe), and I'd like to make sure whatever is causing the problem/s is resolved in the upcoming version so I need help testing the software on such a system. Non Germans can still sign up of course, but I'm specifically looking for a German guy here... GSOH, 120lbs, Non-Smoker. *cough*
Live for today and die tomorrow.
|
|
|
|
|
I'm getting a 500 Internal Server Error when trying to post a reply to a thread in forumid 26. I am logged in.
Jon Sagara
When I want something, I just go out and buy it. That makes me a go-getter.
-- My sister
|
|
|
|
|
You've caught me in my nightly "update the scripts of the server".
I was hoping no-one would be around this time of night - I'll get them up asap.
Live for today and die tomorrow.
|
|
|
|
|
Hello again everyone!
I have updated the forum scripts to include Dynamic mode for Internet Explorer. I have only tested with IE6 sp1, but the scripts should work for at least IE 5.
Please bang away and notify me of any bugs.
Thanks!
http://www.sagara.org/cpforums[^]
Jon Sagara
When I want something, I just go out and buy it. That makes me a go-getter.
-- My sister
|
|
|
|
|