|
What is your backgound? I mean if you are a student of Software Development how are you not aware of Requirements Documents?
They are all over the internet including formal standards at IEEE. Anyway you can do stuff like this.[^]
led mike
|
|
|
|
|
Why do you think the client will know that they want radio buttons, etc? This isn't the way most users think. What you need to do, instead, is get the requirements from the user about what they are actually trying to do. Then, you may want to draw up some use cases to map the process from the users point of view.
|
|
|
|
|
This particular thread makes me wonder if there should be an article done here on requirements gathering.
"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
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
|
That's a nice find, Richard. It looks like one to definitely bookmark for reading later tonight
"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
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
|
Hi all,
I'm struggling on how to set this up. I'm going to be building a web app that will be on our intranet (Active Directory security) to support some business function. Though there is a need to have external users get to the app from outside the intranet. For the sake of getting it out quickly, I'm thinking about just doing the intranet app minus external use.
What kind of things should I be be looking for if I tack on the external use feature after I finished with the main app? Should I be just including it from the start?
We also have Sharepoint 2003 which I'm strongly considering using since it already has links to outside our network. The downside to using Sharepoint is that I've never done anything in Sharepoint so the time factor goes up (learning and what not).
Thanks,
Keith
|
|
|
|
|
I have a specification of a framework for distributed applcations.
2.1. Canals/Ports paradigm
The general idea of the paradigm is building distributed application from components using canals and ports. Each component is an executable (running as separate process), that exposes several ports. Components can be run on different computers across network. Canal Manager Framework provides passing data from an output port of a component to several input ports of other components. Passing data from an output port to input ports provided with canals, connected with ports. Each canal connected with an output port and several input ports. The connection scheme of components is described with special Connection Scheme Description Language (CSDL).
For more information ask me via e-mail amspb1@hotmail.com
|
|
|
|
|
First, I think you mean "Channel" not "Canal". Second, what is the question here? You have a specficiation, great, but what are you hoping to gain by posting that specification here on CP?
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
[ Blog][ Articles][ Forum Guidelines] Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
|
|
|
|
|
I think he does mean Canal. After all, he talks about ports - I assume he uses a loch on it.
|
|
|
|
|
Loch free canals are generally faster, but more assymmetric. Its often slower to send things upstream. :P
|
|
|
|
|
You win.
|
|
|
|
|
http://www.codeplex.com/CanalManager/
|
|
|
|
|
Ugh.. GPL? People that are interested in a freer license might be tending towards NServiceBus, which is Apache and designed for this sort of thing, or at a stretch RabbitMQ, which iirc can do this, and is MPL.
|
|
|
|
|
Thank you for these references! I think, the Channel Manager could be built on, for example, RabbitMQ. But, now is more interesting if Channels/Ports paradigm with the specific message exchange protocol used in the Channel Manager could be really useful. (I think, so but I'd like to discuss)
Anatoly Medyntsev,
Leading Software Engineer,
Arcadia Inc.
|
|
|
|
|
I am building a TAPI client for the company I work for. One of the planned features is to be able to see the active calls of the other employees within a group (Call center environment). I do not want to use a centralized system where a server handles everything, and having a server that just aggregates and distributes the information to the clients seems silly.
The plan I have in my head right now is for each client to issue a broadcast of their individual updates, and to listen for broadcasts from the other clients and reflect the updates of others on screen. There would also be a client that monitors queues and broadcasts the information of the calls.
The advantage that I seen in doing this, is that there is no single computer that can fail and prevent the clients from functioning. The disadvantage is that if a client fails, the status information becomes stale for the lost computer and any calls that were handled by the client that are not owned by an extension (such as parked calls) would then be lost to the restarted client.
Is my design completely flawed? How could I make it better?
|
|
|
|
|
Like you've noted, the state management issue is going to be a killer. Other "desirables" that are going to be difficult to implement with a distributed model are reporting on BI things (stats/metrics), and tiered support, call handover...
I'd focus on the advantage (resiliance/reliability) and see if you can get that by a more traditional means, such as clustering or redundancy.
|
|
|
|
|
I'm not sure what Mark specifically is suggesting but in general his comments seem to be an improvement over what you posted. One interpretation of what he said is that taking a simpler strategy, e.g., a single server, and using standard tools to account for resilience, redundancy etc.
On the other hand your post tends to sound like a peer to peer system. Perhaps you should find and study some technical information about P2P designs and issues. You may find some of the information/issues match your situation and gain some insight on the architecture and it's associated benefits and drawbacks.
led mike
|
|
|
|
|
Construction of a computer family: computer, PC, superComputer, and
workstation. Each computer will have brand, model, CPU, and normal computer
function e.g. Start, Render, Run, and shutDown. However, PC, superComputer, and
workstation should have different Render and Run performance. Each
PC/superComputer/workstation will have GraphicCard object, motherBoard object.
The user can choose to build a PC, or a superComputer, or a workstation and
instantiate motherBoard object with different brand, cpuType, clockSpeed. The
program should allow the user to install GraphicCards with model choices and
inform the user the installation progress status. After the construction of the
PC/superComputer/workstation is completed, the program should report to user the
specifications of computer created. The PC/superComputer/workstation objects
should be able to Start, Render, Run a program, shutDown according to the
command given by the user.
|
|
|
|
|
hi,
If I have something like:
class Person
{
static Person[] GetAllPersons();
static Person[] Search(string field,string value);
}
In the second function I would do something like build an sql query like this:
SELECT ........... WHERE field = value
and send it through another data class to retrieve the right Persons.
eg:
Person[] teens = Person.Search("Age",18);
Firstly the biggest problem searching with AND, >,<, OR, Between etc.? Which terribly limits the search.I could make more functions for that, but its turns into a little bit of a mess. Is there a better/more generic way to build a query on the fly?
Would I benefit by using Linq instead/would it be more efficient to load all persons in memory and then search them with linq? If I were to use linq how again would I write a function to build a query on the fly?
Thanks so much
Gideon
|
|
|
|
|
giddy_guitarist wrote: If I were to use linq how again would I write a function to build a query on the fly?
That's what Lamda queries are for. Take a look at them, because they really do fit the bill with regards to your requirements.
|
|
|
|
|
ah! You mean take a lambda expression in my function parameter? I would have never thought of that?
Also, are you saying loading all objects in memory and then searching them would be more efficient than searching a data base? Because I cant use Linq to SQL, I'm using an Access database.
But I'm curious, searching data like this is a common thing in a lot of apps, how do they implement it?
Thanks so much
Gideon
|
|
|
|
|
Do you have to use Access? Could you not replace it with SQL Server CE, which would give you the easy deployment capabilities you get with Access databases, and the ability to use L2S.
|
|
|
|
|
Yes! I already did this whole app(Hotel Management Studio) with sql server 2k5 express. Turned into a 15,000 line mess, mostly because I didn't design it well(or didn't design it all!).
I'm doing the whole thing again and this time building use cases and going through everything right(I think)
Part of my failure was because Access was the perfect solution and when i did it with sqlservr it raised the complexity and especially the networking stuff got crazy, I have to use TCP/IP to open the data base over LAN, with access I can just open the file over a UNC path. Sweet and simple. Just like the app should be, I dont think its such a big app anyway.
If you are wondering what kind of computer programming, I'm one that turned 18 last week , I dont know hardly anything when it comes to good design but I know quite a bit about technology and API(I'm an MCTS :WinDev and I've even done Win32 API)
It would be very helpful if you could comment on Mark's Solution?
Thanks so much.
Gideon
|
|
|
|
|
Diamond Binding's business objects expose a variety of methods for selecting sets of objects. For the simple searching we expose what you described T[] T.FindByColumn(T.Columns.Foo, value). In most apps that I've implemented then its by far the most common useage. If you were implementing your own data layer by hand, then providing FindByColumn, FindAll and for the rare occasions that you need something more complex, select by stored proc. Select by stored proc could work like T[] T.FindUsing(procName, params[]).
The next level of complexity works using NHibernate Expressions - this is a fairly simple API that covers your boolean logic scenarios. This is implemented by a FindBy that takes an Expression object. The "generic" way that this expression is constructed is by using factory methods. so expression = Expression.Or( expr1, expr2 ). Expression.Between(column, low, high), etc. This is do-able in house if you wanted to go for the learning experience - a simple implementation would be to just emit an SQL condition straight from this tree.
We also provide Hibernate Query Language support - HQL could be seen as an "object-orientated" version of SQL, referring to the model, not the DB. So you can do conditions like "order.product.department.name = 'foo'". Linq is on a similar level of complexity to this.
So theres a fair few options. My recommendation (apart from buying our product :P) would be to start with a bunch of Expression style objects for single column search (= != gt lt) and then expose a FindByExpression and perhaps some thin wrappers such as FindByColumn(...) { r FindByExpression(Expression.Eq(...)) }. Then you can build up your "library" of expressions and go from there.
Definitely don't load everything and query in memory. Imagine if you wanted only one out of the million audit records
|
|
|
|
|
hi mark,
Thanks for your reply, I like your solution, could you please elaborate on the Expression objects
Is it something like:
class Expression{
}
Person[] p = Person.FindByExpression(Expression.And("Age>20","Country='Australia'"));
Person[] FindByExpression(Expression exp)
{
_personDataAccess.GetByQuery("SELECT * FROM Persons WHERE " + exp.ToString());
}
Could you correct me if I'm wrong please.
Thanks so much
Gideon
|
|
|
|
|