Hi!
Since TaskVision doesn't follow any of the Microsoft Patterns (as a matter of fact it doesn't follow any pattern at all, it doesn't even follow the ADO.NET API or WindowsForms.NET API) and so many people is downloading it, using it, and basing their work on it....
Is TaskVision creating, with each download, an "anti-pattern programmer"
Is TaskVision creating, with app based on it , a badly designed non maintainable, non scalable app
s TaskVision creating, with each programmer reading its code, a wrong impression on what ADO.NET and WindowsForms.NET programming is
Seriously... if nobody in Microsoft cares about this.... ¿why http://www.microsoft.com/resources/practices/ ¿The team in TaskVision has not ever visited the Microsoft Patterns site ¿They have never read the Tutorials included with VS.NET ....
Againg... anyone from Microsoft cares to answer
bye
Luxspes

TaskVision: Danger of BadPractices
prayag
I found it was better to write CRUD - it wasn't that much more code really, and I always close my connection in a finally block.
Actually, I really really like the provider Pattern foundin <a href="http://forums.asp.net">Forum II</a> -
I'm mostly interested in having Several DAL methods - Seriously -
1. CRUD
2. CRUD with Data access Block
3. O/R Mapper
Then we just write the provider and plug it in.
Check this one out - very tricky - I have a client that was complaining about the web service - he was having a hard time configuring and my installer obviously sucked. I had a wierd provider implementation - I accessed the data via file share. I guess you'd have to see that one to get why its wierd.
using the provider pattern, this could be a great teaching tool - this way we can easily look at all of the different DAL methods side by side, codewise (num lines), perf wise (benchmark).
VBVBVB
I was an avid reader of asp.net/forums since Oct 2001.
But I have been developing Smart-Client apps this whole time.
It wasn't until Jan 2004 that I actually found this site!!!
Microsoft needs to do just a little promoting for his site. For f@%*$ sake that could whenever that are talking about smart clients.
But hey they're a pretty successful company so i am sure that know what they're doing.
Anyway, once I found TaskVision my prayers were answered.
Since I am too lazy to actually think I was able to look at TaskVision and use it as a model for the app that i needed to build.
It works for me.
And hey if you got it accepting plug-ins that's great. Sare the code if you wish.
I am working on a new DataAccessLayer that uses MSDE on the client-side and allows the user to work disconnected from the central server and the whn connected it does the synch.
The thing that needs to be pointed out and which I completely screwed up on, is the ammount of data to put in the offline xml files. Once you hit 300 records in a DataSet things start to go very bad.
Hence meeding to use MSDE.
Cheers
Kinjal Patel
1) The lookup datasets(I have 4[Client+Contact,Resource,Status+Service]) all have 50+ records.
2) The Appointments (aka Projects) have a lot of extra fields. 200 records caused the .xml file to reach 8MB .
3) If the user is off site and does not connect and up load for a week the Changes.xml file becomes huge.
After some serious stress testing my client app jumped form 28-34 MBRam to 75+ the to 110 and then died.
To much data in the datasets!
I've had to resort to MSDE (A total hack job on my nicely commeted and formatted code) I still use the datasets (I am using Janus Calendar) so I need to load a few months of appointments at a time. I also still need to bid my look up data to comboboxes as well.
So since I am using MSDE the connection is really fast so I just read/write/clear the dataset very often.
But I was smart I never submitted what I would use as the local data store to my Client in the spec. So I was able to go back and fix my mistake and no one gets hurt.
But I do plan on releasing a Lite version of the app and this will use DataSet/XML files but this time I will limit the amount of data.
Oops, I forgot my point.;p
Cheers
Ernst Kuschke
I have a basic mapper - if done correctly there is no performance hit other than first call, and all of this could be done in startup.
My main goal is to extract out common elements - to create a generic framework - where this could be used for Tasks, Orders, etc.
We should also make it a priority to get a web version working as well.
Comments What does everyone think about having an O/R mapper part of the project Something using ObjectSpace syntax
JBinGA
I'll be happy to help although i have a tide schedule, but hey, everything for a good coding practice ;)
BillH133092
Although design patterns from the Gang of four - singleton for example, and new patterns since the publishing of "patterns" like the provider pattern aren't found in the task vision, if you want to deploy a quick application that
1. uses web services for data access and authentication
2. has custom charting controls
3. has a sortable, customized datagrid with Data grid column styles
4. uses the app updater
5. registry usage
6. excel exporting
7. printing
8. windows forms state serialization
Lots of cool stuff, thanks to that company Susan Warren now works for.
Why not contribute rather than complain Microsoft probably paid the company a couple thousand to open source their app, why blame them
Look at the ASP.net forums, it was developed by Scott Mitchell from 4 guys from Rola - now, we have about 20 active contributers (and thousands of installations)
Its the same way with Task vision... it isn't Microsoft, its supported to a very limited extent by microsoft.
So rather than COMPLAIN about some spilled milk, why don't YOU step up to the plate and actually CONTRIBUTE - this kind of whining is meaningless unless you actually have CODE and PRACTICES to stand up for it. Provide real world examples, real CODE and THEN I'll concede that Task Vision is lousy IF you can create code that follows your patterns, if you can even define what patterns are useful and why.
Sedge
Dorkboy
I have just recently downloaded the TaskVision application and I like the functionality of it. I too am surprised that none of the application architecture patterns are not used. I would like to see the use of the User Interface Process Application Block, the Exception Management App. Block, the Configuration Management App. Block, the Data Access App. Block, the Updater Block, the Offline Block, etc...But I will not sit here and complain. I would like to become an active contributor to this application. And I will do whatever I can to implement the above mentioned application blocks.
What do you think, luxspes Will you join me in this journey
Martin
msanner@woh.rr.com
Marc Miller
Performance is the top priority, but i hate writing a lot of code :)
I used to use datareader and custom objects and collections but that was a lot of coding but performance was great.
Then i tried datasets, bad, adding attributes, custom routines etc was a problem because when re-generating the dataset, everything is lost, inheriting from the dataset is stiil a problem because i still have to write a lot of code....
So, i'l still in search for the "ultimate" DAL and this can be an interesting practice!!!
pgorbas
I have been building .NET App for 2 years now and I just can say that the way TaskVision is built is no the way I would have built an app, I want to disscus my ideas and see if I am plain wrong, or TaskVision is just full of BadPractices, (and of course, contribute, but ¿how to do it if nobody cares to answer)
So... lets see:
TaskVision does not use the UserInterfaceApplicatiBlock, to provide a clean separation of the Model, the View and the Controller Logic (Advantages ASP.NET and WindowsForms presentation with the same bussiness logic, abastraction of the persistence mecanisme, centralization of common bussines logic all of this is missing from TaskVision)
ObjectRelational mapping... well, where to I start, have you read: (http://www.ambysoft.com/persistenceLayer.pdf) have you read http://www.service-architecture.com/object-relational-mapping/articles/index.html I think this is the best way to persistency (way easier to use and more powerfull that DataSets)
But, hey, DataSet are proposed by microsoft, in all their tutorials like the ones in http://samples.gotdotnet.com/quickstart/, but of course they are not the solution for everything, before starting a windowsforms applications, it is a good idea to read Designing Data Tier Components and Passing Data Through Tiers http://msdn.microsoft.com/library/default.asp url=/library/en-us/dnbda/html/BOAGag.asp just to know the options, now, anyone from the TaskVision develoment team cares to answer why they didnt use Business Entities DataSets were "easier" (Because the guys from the latest .NET Petshop (3.0) completly rebuilt their architecture to use Business Entities, because their previous design, a sloppy implementation of Data Access Logic Components was a complete antipattern. I think TaskVision should be a "best practices reference implementation" not "how to build fast an unmantainable/hard to extend application.
But hey, let just say, Microsoft said "You must use DataSets" you "must follow the guidelines of the quickstart tutorials and MSDN documentation in VS.NET, patterns can go to the hell"
Okey, accepted, then:
Why TaskVision has code like this:
oneDataRow["someField"]=someTextBox.Text;
instead of using DataBinding So.. ¿what is the recommended way of building an UI ¿using bindings ¿or do not Microsoft say do, TaskVision says do not...
-TaskVision does not use DataRelationships in DataSets:
"A DataRelation is used to relate two DataTable objects to each other through DataColumn objects. For example, in a Customer/Orders relationship, the Customers table is the parent and the Orders table is the child of the relationship. This is similar to a primary key/foreign key relationship. For more information, see Navigating a Relationship between Tables."
MSDN (Why is this functionality ignored by TaskVision team I don't know)
-TaskVision does not use Does not use .vsdisco to integrate multiple WebServices in the same site with the same WebReference
The .vsdisco HTTP handler in Visual Studio.NET is disabled by default but I have found that enabling it very useful because if I add a webreferenct to a .vsdisco, I can have 1 webreference to all the webservices in a WebServices project instead of having many webreferences (one for each asmx).
Why do you like to have many webreferences
-Does not use ErrorProvider to show errors in the UI
"An error provider is a better alternative than displaying an error message in a message box, because once a message box is dismissed the error message is no longer visible".
MSDN Documentation.
In the tutorials for validating data in .NET, it says that you should use System.Windows.Forms.ErrorProvider to show the fields that have invalid values, but
TaskVision uses MessageBoxes. ¿Why TaskVision does not use ErrorProviders
Introduction to the Windows Forms ErrorProvider Component
http://msdn.microsoft.com/library/default.asp url=/library/en-us/vbcon/html/vbconerrorcontroloverview.asp
From there you can go to:
-Viewing Errors within a Dataset with the Windows Forms ErrorProvider Component
-Displaying Error Icons for Form Validation with the Windows Forms ErrorProvider Component
-ErrorProvider Class
Why Maybe microsoft tutorials are wrong, maybe Microsoft Patterns are also wrong.. maybe Gang of four is also wrong, but they have WRITTEN their opinion, and now I have written mine..., now, please why TaskVision does not use the recommendations in the tutorials, or in documentation, or in MSDN I just want to know the justification, because of all the recommended ways of building applications, TaskVision is the only one that has no documented justification.
I have built, and build applications following GoF and Microsoft Patterns, and I think Microsoft should be more careful with reference implementation applications like this, because a lot of people is not going to take the time to verify that this application is written following the current accepted software architecture standards, they are just going to think "if it is in a Microsoft site, I should build applications in the same way", so I think Microsoft has the responsability to build this kind of application dealing only with companies that know about software architecture... dont get me wrong, TaskVision is a great application if we are speaking about functionality, but, if you are an experienced developer, and you start looking carefully at the code, you will be dissapointed.
I really hope that you answer, because I have posted this exact same questions in this forum, in a more polite manner (http://www.windowsforms.com/Forums/User/UserProfile.aspx tabIndex=1&tabId=41&UserName=luxspes)
but almost nobody answered, so I was really happy to see your posting today, so please answer, if only to prove me wrong....
thankx
bye
Luxspes
meedietoo
In the web service, I've tried to define the object (e.g. "task") - having a shared class library never worked and broke the very principles of what web services are trying to solve.
Is there some way we could create a schema describing our objects (e.g. Task, Project, User)
M&#225;rcio Rosa
This forum is extremely quiet, wheras www.asp.net is extremely busy.
I've been using one of the asp.net starter kits for over a year, the community starter kit.
It was developed by Scott Walthers, and it took along time for me to figure out that he had this great Content management system, microsoft struck some deal, and we have CSK :)
The forum application itself was started by Scott Mitchell from 4 guys from rolla. They bought the app, and now we have a very nice forum app.
For winforms, well, we have task vision.
It does show alot of great features of .net, and me being a winform n00b, it really helped to get up to speed.
IMHO, what the task vision needs, on top of following patterns like Gang of 4, and brand new ones like the provider pattern, is the following:
It should be very easy for us to create derivative works for our own products.
Unfortunately, the TaskVision community appears to be very quiet, and I'm not sure there are any contributers. This concerns me, because it would mean no evolution.
I've personally taken task vision to support snap-ins, and I've developed a CMS system using it.
There's hope, but unfortunately Luxspes, I think we would be the only ones contributing, but we can only hope that the project isn't brushed under the rug because alot of very cool things are Very possible - And it's NOT going to take a Huge amount of work!
Put things like Ghengis, Snap-ins, better web service implementation, a data layer using a good open source o/r mapper.... I'm currently keeping all of my work in house. Unless the community starts to contribute more.
Hopefully, there's a couple of contributers out there who read this thread, and don't let Task Vision get swept under the rug :)
Cheers,
Sedge
tech710
Regarding the O/R mapper, i'm very interested in it, especially the way it is implemented internally. I never worked with an O/R mapper so this can be a real challenge and finally gives me a point of comparison.
I'm open to an O/R mapper but uou'll have to explain me first why you find the data access block useless :)
lbt
but like you say, it is to quite over here in comparison with asp.net site
maybey it has something to do with the fact that windowsforms developers just don't like the internet ;)
alvinjames
I'm starting to think seriously about datasets on my own task vision implementation.
1. How much easier do datasets really make life
I like your suggesting regarding offline files - thats worth looking into for sure.
Question - if we eliminated datasets, which make it very easy to update data over the wire, what would we use could ArrayLists of serialized Tasks be pulled off
Anyone ever thought of a neat implementation that would allow an arrayList of tasks client side to be syncronyzed with an arrayList server side