Application Frameworks for .NET

  • Thread starter Thread starter LP
  • Start date Start date
L

LP

Hello, We are about to start a big project replacing legacy application with
an application that will be developed on .NET framework. Some people on our
team have experience with application frameworks in Java and FoxPro, and
they want to use some equivalent frameworks in .NET like Spring, CSLA.NET,
Strata Frame, etc
I've never used any app frameworks, so My question to you is have you every
used any of these or other frameworks, what was your experience like? Can
you recommand a good framework? Do application frameworks really make your
life easier and cut down the development time, or do they just introduce
more complexity and issues dealing with someone else's code and bugs?
 
LP said:
Hello, We are about to start a big project replacing legacy application with
an application that will be developed on .NET framework. Some people on our
team have experience with application frameworks in Java and FoxPro, and
they want to use some equivalent frameworks in .NET like Spring, CSLA.NET,
Strata Frame, etc
I've never used any app frameworks, so My question to you is have you every
used any of these or other frameworks, what was your experience like? Can
you recommand a good framework? Do application frameworks really make your
life easier and cut down the development time, or do they just introduce
more complexity and issues dealing with someone else's code and bugs?

They can be a significant advantage.

But:
- pick frameworks that are widely used and actively maintained
- select just a few frameworks and use only them
- document what they are to be used for and how

Arne
 
LP said:
Hello, We are about to start a big project replacing legacy application
with an application that will be developed on .NET framework. Some people
on our team have experience with application frameworks in Java and
FoxPro, and they want to use some equivalent frameworks in .NET like
Spring, CSLA.NET, Strata Frame, etc
I've never used any app frameworks, so My question to you is have you
every used any of these or other frameworks, what was your experience
like? Can you recommand a good framework? Do application frameworks really
make your life easier and cut down the development time, or do they just
introduce more complexity and issues dealing with someone else's code and
bugs?

I know about CSLA. I have used it. I just came off of a Web project that was
using CSLA for the Business objects and Data Access Layer objects. It makes
the whole experience of developing business solutions a much easier task.
CSLA was the solution I used in my VB 6 days too.

As a matter of fact, the same CSLA Bus and DAL objects were being used by
the .NET Console application extracting data from the database tables that
was being converted over to XML and uploaded to a 3rd party Web service, and
in return, I was using a Windows Service application that read the response
XML from the 3rd party Web service to update the database tables using the
same CSLA derived Bus and DAL objects that were being used by the ASP.Net
solution too, up above.

I was also using CSLA on my first .Net business solution, which was using a
Windows Desktop Web service client application, with .Net Remoting, CSLA Web
Services application portal, which an ASP NET solution could have use the
same Business objects and DAL objects too derived from the CSLA framework.

I use the concepts building Bus objects that I have learned from using CSLA,
when a project I am working has nothing to do with CSLA framework.

I suggest that you get the book, read the book, down the CSLA Framework, put
the framework together, down the Tracker project, which shows how to do the
same project using the objects derived from the CSLA framework as a Windows
Desktop and an ASP.NET solution.

http://www.lhotka.net/Default.aspx

There are 3rd party tools that will generate the code for the CSLA framework
too.

You may also want your people to look at this.

MODEL-VIEW-PRESENTER

http://www.polymorphicpodcast.com/

click 'Shows'

click 'Design Patterns Bootcamp: Model View * Patterns*

view parts 1-5

You can use Google to get more information about this or find books.

I can't tell you what to use, and you'll figure it out. But I know from
experience that CSLA is very good, and you should try to keep the developers
all on the same page as much as possible.
 
LP said:
Hello, We are about to start a big project replacing legacy application
with an application that will be developed on .NET framework. Some people
on our team have experience with application frameworks in Java and
FoxPro, and they want to use some equivalent frameworks in .NET like
Spring, CSLA.NET, Strata Frame, etc
I've never used any app frameworks, so My question to you is have you
every used any of these or other frameworks, what was your experience
like?

I have used good ones with good results and bad ones with a lot of pain.
Can you recommand a good framework?

Not right off hand, but if your developers like Spring, try nSpring. I am
personally not thrilled about CSLA.NET, but have not tried it at all for a
few years. I know plenty of people who are happy with it. I have never heard
of Strata Frame.
Do application frameworks really make your life easier and cut down the
development time, or do they just introduce more complexity and issues
dealing with someone else's code and bugs?

In general, moving the core boilerplate onto someone else's plate saves you
time. The same can be said for just about any ORM product, which I would not
call a framework. If you have devs familiar with the Framework, it makes it
that much sweeter. If not, you have to consider training time and
willingness of your devs to train.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

*************************************************
| Think outside the box!
|
*************************************************
 
Cowboy (Gregory A. Beamer) said:
In general, moving the core boilerplate onto someone else's plate saves
you time. The same can be said for just about any ORM product, which I
would not call a framework. If you have devs familiar with the Framework,
it makes it that much sweeter. If not, you have to consider training time
and willingness of your devs to train.

While you are correct, of course, that there are training costs involved
with using a 3rd party ORM/framework, it is also true that there are
training costs associated with creating your own. Unless your environment
has very low turnover, your new devs are going to have to learn your custom
code. Having developed a custom ORM for our company, I can tell you that one
of my least favorite things is explaining it to new devs. It would be much
nicer to sit them down with Business Objects in .Net and just let them read
and implement examples for a few weeks.
 
Some other things to consider:

If you have a very low load or simple application it could be overkill.
You will be bound to the Third-party or Open-source libs.
Are you starting a new database schema or using an existing schema.
Some times they get in the way of freely designing your business objects.
Costs per developer/Deployments vs. build.
Deployments. Your company's and the Third-party's frame work. (Framework
patches could be a pain.)
Support -How good is the support for the product, how much will maintenance
cost.
Performance and Testing. Is it a Framework issue or a company code issue?
What if the company goes under?

Otherwise they can provide a proven design as a guide to developed you
business application.

Schneider
 
Scott:

I am in complete agreement with you about this. One of the reasons I will
generally suggest using frameworks, ORMs, and the like is you have plenty of
documentation out on the web. Also, if you use a popular enough framework or
ORM, you may actually find developers that have used it, which shortens the
cycle. The learning curve must be factored in, however, as there is some
learning time associated with any third party software. Regardless of
whether there is a learning curve with your own stuff, you have to factor in
that time, lest your management hold you to an unrealistic date.

If you go your own route, you have to be excellent at documentation, or you
will end up with a nightmare, as far as training new meat goes. It does,
however, tend to flow smoothly during initial development, providing
everyone is on the same sheet of music.

To date, I have used quite a few ORMs. In general, they will save you time
creating objects and keeping schema synced with the objects. Many are really
bad if you have to customize objects, giving kludges, at best, for
regenerating the objects. Some, like Hibernate (nHibernate) are much better
at this, but far more time consuming to implement, as you end up writing a
lot of the Hibernate code yourself (or use a contrib project).

One thing ORMs are notably bad for are shops that need to access a variety
of databases, as most do not abstract to interface. This is not 100% true,
of course. And, it is not important for many shops, as they do not bounce
from Oracle to SQL Server, etc., and, instead, stick with a single platform.
It must be considered, however, if you are designing a shrink wrap product
that uses multiple platforms.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

*************************************************
| Think outside the box!
|
*************************************************
 
Back
Top