3rd party tools
-
You just described me to a T. The biggest problem I have with 3rd party tools is, you often have to buy into the whole architecture. OK, that's hurdle #1. Then I look at all the dll's and stuff and go, ugh, I don't want all this other crap just for a snazzy new toaster. But maybe I decide to grin and bear it because it looks so darn cool and looks like it does everything I need (ignoring all the other things I don't need). Hurdle #2. Then I start trying to use it. Sigh. I do a lot of declarative driven UI's, and the controls are part of an automation framework to help decouple presentation from business and data layers. That means, I don't usually use the designers to create the UI's. So I have to figure out how the darn control works programmatically. Time for Tylenol. Time to fire up a test project and use the designer to see what it's doing. OMG. Look at all that initialization stuff. Rip. Hmm. Doesn't work. Replace. Rip... Sigh. Oh cool, got it working. Hurdle #3. Oh crap. There's new release of the 3rd party tool. Oops, some of the methods are deprecated. Hmmm, the parameters to that method changed. Fix, patch. Get everyone on the project to uninstall 6.1.2.5.3.1 and install 6.1.2.5.3.2. Hurdle #4. Putzing along, using it, hmmm...here's what seems like a bug. Research documentation, maybe I'm not setting it up right. Documentation? Somewhat incomplete. Lots of things not really well described. I can't find any examples on how to do what I want. Argh. Crashed into hurdle #5. Let's see what's on Code Project instead. Ahhhh. Cool. A nice control that can get me started. Reality check time. Hmmm. More bugs. But I have the code to fix it. Ewww. What wierd implementation. What's going on? There's no code comments! Maybe that 3rd party tool isn't too bad. Hmmm. Which will get me there faster? Figuring out the 3rd party tool, or fixing that nifty control I found? I know! I'll just borrow from the nifty control the stuff that seems to work and rewrite the thing. Sigh. It doesn't look as sexy as the 3rd party control. Hmmm. My new control still has bugs. What was I thinking here? Shat!!! I didn't put any comments in the code!!! And so it goes. The lesson is, what? Figure out your requirements, both locally and for the whole app. Decide on an approach before coding. Decide whose architecture you're going to buy into. Have an architecture. Wrap those 3rd party controls rather than use them directly, so they can be replaced. Do
Marc Clifton wrote:
Oh crap. There's new release of the 3rd party tool. Oops, some of the methods are deprecated. Hmmm, the parameters to that method changed. Fix, patch. Get everyone on the project to uninstall 6.1.2.5.3.1 and install 6.1.2.5.3.2. Hurdle #4.
Oh dear god, i feel your pain... Several hundred pages containing incorrect references to old versions... why, why...
-
Marc Clifton wrote:
Oops, some of the methods are deprecated. Hmmm, the parameters to that method changed.
As you probably know, I work on the toolbox and grid here at CP. Do library vendors really do that ? I'm super careful to make sure everything I add is going to compile for existing users, if I add a parameter it has a default, if I change something, the old way stays in so that no-one curses me for breaking their app. Surely anyone would do the same ? Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog
Christian Graus wrote:
Surely anyone would do the same ?
Have you seen the breaking changes documentation for each release of the .NET framework?
225 years ago, we set an example for the rest of the world by creating a country where everyone could vote...
Well, except for women and black people, but we fixed that!
-Adam Duritz, of Counting Crows -
You just described me to a T. The biggest problem I have with 3rd party tools is, you often have to buy into the whole architecture. OK, that's hurdle #1. Then I look at all the dll's and stuff and go, ugh, I don't want all this other crap just for a snazzy new toaster. But maybe I decide to grin and bear it because it looks so darn cool and looks like it does everything I need (ignoring all the other things I don't need). Hurdle #2. Then I start trying to use it. Sigh. I do a lot of declarative driven UI's, and the controls are part of an automation framework to help decouple presentation from business and data layers. That means, I don't usually use the designers to create the UI's. So I have to figure out how the darn control works programmatically. Time for Tylenol. Time to fire up a test project and use the designer to see what it's doing. OMG. Look at all that initialization stuff. Rip. Hmm. Doesn't work. Replace. Rip... Sigh. Oh cool, got it working. Hurdle #3. Oh crap. There's new release of the 3rd party tool. Oops, some of the methods are deprecated. Hmmm, the parameters to that method changed. Fix, patch. Get everyone on the project to uninstall 6.1.2.5.3.1 and install 6.1.2.5.3.2. Hurdle #4. Putzing along, using it, hmmm...here's what seems like a bug. Research documentation, maybe I'm not setting it up right. Documentation? Somewhat incomplete. Lots of things not really well described. I can't find any examples on how to do what I want. Argh. Crashed into hurdle #5. Let's see what's on Code Project instead. Ahhhh. Cool. A nice control that can get me started. Reality check time. Hmmm. More bugs. But I have the code to fix it. Ewww. What wierd implementation. What's going on? There's no code comments! Maybe that 3rd party tool isn't too bad. Hmmm. Which will get me there faster? Figuring out the 3rd party tool, or fixing that nifty control I found? I know! I'll just borrow from the nifty control the stuff that seems to work and rewrite the thing. Sigh. It doesn't look as sexy as the 3rd party control. Hmmm. My new control still has bugs. What was I thinking here? Shat!!! I didn't put any comments in the code!!! And so it goes. The lesson is, what? Figure out your requirements, both locally and for the whole app. Decide on an approach before coding. Decide whose architecture you're going to buy into. Have an architecture. Wrap those 3rd party controls rather than use them directly, so they can be replaced. Do
-
Christian Graus wrote:
Surely anyone would do the same ?
Have you seen the breaking changes documentation for each release of the .NET framework?
225 years ago, we set an example for the rest of the world by creating a country where everyone could vote...
Well, except for women and black people, but we fixed that!
-Adam Duritz, of Counting CrowsYes, but Microsoft can do what they want, plainly. Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog
-
I seem to be battling with myself and wanting to build everything by myself. I have found a few good 3rd party tools that I want to add to the application I am writing yet I have this feeling of wanting to build them myself. Do any of you sometimes feel this way? How do you deal with this? All I would be doing is reinventing the wheel yet I just feel better after I build the GUI tool myself.
I needed a simple CMS. I ended building by own Wiki engine... _____________________________________________ Tozzi is right: Gaia is getting rid of us. My Blog [ITA] - Developing ScrewTurn Wiki 1.0 Beta3...
-
If it belongs to, or carries your core business (that what makes you stand out from competition), do it yourself. If it is a gimmick, a "must have" everybody has, a cute feature noone else has but your app could live without, purchase.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree in C# || Fold With Us! || sighistExcellent rationale; concise and elegant. May I quote you to my management?
Software Zen:
delete this;
-
I seem to be battling with myself and wanting to build everything by myself. I have found a few good 3rd party tools that I want to add to the application I am writing yet I have this feeling of wanting to build them myself. Do any of you sometimes feel this way? How do you deal with this? All I would be doing is reinventing the wheel yet I just feel better after I build the GUI tool myself.
The development staff at the company I work for had the same questions and even started creating some of our own controls. After spending some time trying to learn this we discovered how incredibly complicated it is to create a great custom controls and realized we would need a full time developer that only did controls if we really wanted to do this right. Unfortunately a full time control developer was not in the company budget. Anyways I am not sure if code project really wants third party companies touted or linked in the blog and tried to email you directly but it said your email had not been verified. We use RadControls from a company called Telerik and they rock. They are a little pricey (not too bad) but you get what you pay for. Here is website. http://www.telerik.com/asp-net-controls/ui-components/overview.aspx Also, if you are interested in implementing ajax they have some outstanding ajax stuff that makes it very easy to implement. You don't have to buy their whole package and can just buy the controls you want. They really help make web apps look like desktops apps and saves a ton of time and therefore saves a lot of money. As with any new technology there is a learning curve but I think it is lot less time than I would have spent developing my own controls HTH
-
You just described me to a T. The biggest problem I have with 3rd party tools is, you often have to buy into the whole architecture. OK, that's hurdle #1. Then I look at all the dll's and stuff and go, ugh, I don't want all this other crap just for a snazzy new toaster. But maybe I decide to grin and bear it because it looks so darn cool and looks like it does everything I need (ignoring all the other things I don't need). Hurdle #2. Then I start trying to use it. Sigh. I do a lot of declarative driven UI's, and the controls are part of an automation framework to help decouple presentation from business and data layers. That means, I don't usually use the designers to create the UI's. So I have to figure out how the darn control works programmatically. Time for Tylenol. Time to fire up a test project and use the designer to see what it's doing. OMG. Look at all that initialization stuff. Rip. Hmm. Doesn't work. Replace. Rip... Sigh. Oh cool, got it working. Hurdle #3. Oh crap. There's new release of the 3rd party tool. Oops, some of the methods are deprecated. Hmmm, the parameters to that method changed. Fix, patch. Get everyone on the project to uninstall 6.1.2.5.3.1 and install 6.1.2.5.3.2. Hurdle #4. Putzing along, using it, hmmm...here's what seems like a bug. Research documentation, maybe I'm not setting it up right. Documentation? Somewhat incomplete. Lots of things not really well described. I can't find any examples on how to do what I want. Argh. Crashed into hurdle #5. Let's see what's on Code Project instead. Ahhhh. Cool. A nice control that can get me started. Reality check time. Hmmm. More bugs. But I have the code to fix it. Ewww. What wierd implementation. What's going on? There's no code comments! Maybe that 3rd party tool isn't too bad. Hmmm. Which will get me there faster? Figuring out the 3rd party tool, or fixing that nifty control I found? I know! I'll just borrow from the nifty control the stuff that seems to work and rewrite the thing. Sigh. It doesn't look as sexy as the 3rd party control. Hmmm. My new control still has bugs. What was I thinking here? Shat!!! I didn't put any comments in the code!!! And so it goes. The lesson is, what? Figure out your requirements, both locally and for the whole app. Decide on an approach before coding. Decide whose architecture you're going to buy into. Have an architecture. Wrap those 3rd party controls rather than use them directly, so they can be replaced. Do
I've learned a couple things about using 3rd party tools the hard way: 1. If it's licensed, don't consider it unless a trial version is available. And if the trial has an expiration date, bang on it as hard as you can before purchasing the license. 2. Because customization of the tool is inevitable to meet the needs of its specific implementation, consider abandoning a commitment to supporting future releases of the tool. Once you've got the current version doing what you want, in my opinion accomodating the changes in a new release of the tool usually isn't worth the effort. After all, you evaluated the tool based on its current version and not on any future release promises, right? ~ Tillman
-
I've learned a couple things about using 3rd party tools the hard way: 1. If it's licensed, don't consider it unless a trial version is available. And if the trial has an expiration date, bang on it as hard as you can before purchasing the license. 2. Because customization of the tool is inevitable to meet the needs of its specific implementation, consider abandoning a commitment to supporting future releases of the tool. Once you've got the current version doing what you want, in my opinion accomodating the changes in a new release of the tool usually isn't worth the effort. After all, you evaluated the tool based on its current version and not on any future release promises, right? ~ Tillman
-
The development staff at the company I work for had the same questions and even started creating some of our own controls. After spending some time trying to learn this we discovered how incredibly complicated it is to create a great custom controls and realized we would need a full time developer that only did controls if we really wanted to do this right. Unfortunately a full time control developer was not in the company budget. Anyways I am not sure if code project really wants third party companies touted or linked in the blog and tried to email you directly but it said your email had not been verified. We use RadControls from a company called Telerik and they rock. They are a little pricey (not too bad) but you get what you pay for. Here is website. http://www.telerik.com/asp-net-controls/ui-components/overview.aspx Also, if you are interested in implementing ajax they have some outstanding ajax stuff that makes it very easy to implement. You don't have to buy their whole package and can just buy the controls you want. They really help make web apps look like desktops apps and saves a ton of time and therefore saves a lot of money. As with any new technology there is a learning curve but I think it is lot less time than I would have spent developing my own controls HTH
-
I am not sure why it said my email was not verified. I will have to see if it is something in my settings. Thanks for the feed back!!
NP on the feedback, Regarding the email, I guess it just said that an email address was not verified. It didn't really specifically say if it was yours or mine. Although I recevied your reply to my post through email and don't know why mine would not be verified either? Maybe it is just an error at the code project?
-
Excellent rationale; concise and elegant. May I quote you to my management?
Software Zen:
delete this;
Why not? I think Joel discussed this once in more length (i.e. I'm just a carrier)
Some of us walk the memory lane, others plummet into a rabbit hole
Tree in C# || Fold With Us! || sighist -
Marc Clifton wrote:
Oops, some of the methods are deprecated. Hmmm, the parameters to that method changed.
As you probably know, I work on the toolbox and grid here at CP. Do library vendors really do that ? I'm super careful to make sure everything I add is going to compile for existing users, if I add a parameter it has a default, if I change something, the old way stays in so that no-one curses me for breaking their app. Surely anyone would do the same ? Christian Graus - Microsoft MVP - C++ Metal Musings - Rex and my new metal blog
And thank you for doing that!! I'll be getting my update later this year.;) ed ~"Watch your thoughts; they become your words. Watch your words they become your actions. Watch your actions; they become your habits. Watch your habits; they become your character. Watch your character; it becomes your destiny." -Frank Outlaw.
-
Christian Graus wrote:
Do library vendors really do that ?
DevExpress deprecated several methods in their report designer, so the initialization sequence changed. Also, yes, I've had method signature change, but I can't remember if that was DevExpress or Infragistics or something else. I probably took too large of a step in updating the library and missed some deprecation warnings along the way. Marc Pensieve Some people believe what the bible says. Literally. At least [with Wikipedia] you have the chance to correct the wiki -- Jörgen Sigvardsson
aaaarghh!! Infragistics!! Yes!! *seethe* > Huge. > Numerous patches and updates: MINOR version changes BREAK COMPATIBILITY? er...wtf? > Significant (and proven) performance degradation, just by having and instantiating a control on a form. > Doesn't follow IT'S OWN standards (erratic naming and methodology) > Customer-support personell adopt the "you're doing something wrong" approach to most queries. (Which, granted, may be true some of the time... but come on!) /rant That said, their controls look great! Personally, this is why I get pretty nervous using 3rd party stuff. However, I have used numerous smaller 3rd party stuff (like, single-controls, not suites) pretty successfully.
-
I seem to be battling with myself and wanting to build everything by myself. I have found a few good 3rd party tools that I want to add to the application I am writing yet I have this feeling of wanting to build them myself. Do any of you sometimes feel this way? How do you deal with this? All I would be doing is reinventing the wheel yet I just feel better after I build the GUI tool myself.
I do write my own stuff -- if it's in an area where I'm reasonable competent. Outside of those areas I will use 3rd party tools/libraries. The drawbacks with those are that I often invest more time working around their quirks then doing my job. So, whenever I feel confident enough to roll my own, I end up doing it. Albeit less feature rich but otoh -- They do work;) When it comes to smaller stuff, where the cost of researching+interfacing+implementing+bugs > DIY, I will do it myself. Sorry, no good answers and... ones own code do have a tendency to become almost as cumbersome as 3rd parties as time goes on ("what drug was I on while writing that piece of code?" "WTF?")... So still ends up with legacy code, either our own or from outside the house... I think that what I'm trying to say are; The only "good" reason for writing it your self, is just because you feel like it:rolleyes:
-
Why not? I think Joel discussed this once in more length (i.e. I'm just a carrier)
Some of us walk the memory lane, others plummet into a rabbit hole
Tree in C# || Fold With Us! || sighistI think the operative terms here are 'concise' and 'management'. Short sentences, words of one syllable, that sort of thing.
Software Zen:
delete this;