From: Jorge Vera on
Hi there! We are thinking on moving our desktop applications to web based.

I am sending this message to collect some experience, know issues, and
anything that will help us to move forward.
we are planning to use Asp.net 4, Sql 2005 or 2008 on windows 2008

we are in the learning process right now.

thanks a lot
Jorge Vera


From: Mr. Arnold on
Jorge Vera wrote:
> Hi there! We are thinking on moving our desktop applications to web based.
>
> I am sending this message to collect some experience, know issues, and
> anything that will help us to move forward.
> we are planning to use Asp.net 4, Sql 2005 or 2008 on windows 2008
>
> we are in the learning process right now.
>

You'll notice the operative word here is 'object'. Objects should apply
to desktop solutions as well, but it is not applied in a vast majority
of cases. Object seems to be missed in desktop solutions. But you can't
or shouldn't overlook 'object' with Web based applications.

To me, it's not about what is happening at the front-end UI whether it
be a Windows desktop or Web based UI, although the UI is important. It's
about what is happening on the back-end, because if the back-end is not
solid, then the entire solution is not solid.

If the back-end is solid, then both Windows desktop and Web based UI(s)
should be able to use the same back-end with no problems with very
little adjustments between the two using the back-end.


<http://www.dofactory.com/Framework/Framework.aspx>

What is Object-oriented-programming?

(OOP) is a programming paradigm that uses "objects" and their
interactions to design applications and computer programs.

The key concepts of OOP are the following:

Class
Object
Instance
Method
Message passing
Inheritance
Abstraction
Encapsulation
Polymorphism
Decoupling

http://en.wikipedia.org/wiki/Object-oriented_programming

What are design patterns?

Design patterns are recurring solutions to software design problems you
find again and again in real-world application development. Patterns are
about design and interaction of objects, as well as providing a
communication platform concerning elegant, reusable solutions to
commonly encountered programming challenges.

<http://www.developer.com/design/article.php/1502691>
<http://www.dofactory.com/Patterns/Patterns.aspx>
<http://computerprogramming.suite101.com/article.cfm/patterns_and_antipattern>
<http://msdn.microsoft.com/en-us/library/ms954638.aspx>
<http://www.designpatternsfor.net/Presentations.aspx?tid=3&cid=4>

What is Domain Driven Design?

(DDD) is an approach to the design of software, based on the two
premises [1] that complex domain designs should be based on a model, and
that, for most software projects, the primary focus should be on the
domain and domain logic (as opposed to being the particular technology
used to implement the system).

<http://en.wikipedia.org/wiki/Domain-driven_design>

What is Test Driven Design?

(TDD) is a software development technique that uses short development
iterations based on pre-written test cases that define desired
improvements or new functions. Each iteration produces code necessary to
pass that iteration's tests. Finally, the programmer or team refactors
the code to accommodate changes. A key TDD concept is that preparing
tests before coding facilitates rapid feedback changes. Note that
test-driven development is a software design method, not merely a method
of testing.

<http://en.wikipedia.org/wiki/Test-driven_development>

What is Model–View-Controller?

(MVC) is an architectural pattern used in software engineering.
Successful use of the pattern isolates business logic from user
interface considerations, resulting in an application where it is easier
to modify either the visual appearance of the application or the
underlying business rules without affecting the other. In MVC, the model
represents the information (the data) of the application; the view
corresponds to elements of the user interface such as text, checkbox
items, and so forth; and the controller manages the communication of
data and the business rules used to manipulate the data to and from the
model.

http://en.wikipedia.org/wiki/Model-view-controller

What is Model–View-Presenter?

MVP is a software pattern considered a derivative of the
Model-view-controller.

http://en.wikipedia.org/wiki/Model_View_Presenter


MODEL-VIEW-PRESENTER

http://www.polymorphicpodcast.com/

click 'Shows'

click 'Design Patterns Bootcamp: Model View * Patterns*

view parts 1-5


What is Object Relational Mapping?

(ORM) is a programming technique for converting data between
incompatible type systems in relational databases and object-oriented
programming languages. This creates, in effect, a "virtual object
database," which can be used from within the programming language. There
are both free and commercial packages available that perform
object-relational mapping, although some programmers opt to create their
own ORM tools.

http://en.wikipedia.org/wiki/O-RM

What is Language Integrated Query?

LINQ is a Microsoft .NET Framework component that adds native data
querying capabilities to .NET languages.

Microsoft LINQ defines a set of query operators that can be used to
query, project and filter data in arrays, enumerable classes, XML,
relational database, and third party data sources. While it allows any
data source to be queried, it requires that the data be encapsulated as
objects. So, if the data source does not natively store data as objects,
the data must be mapped to the object domain. Queries written using the
query operators are executed either by the LINQ query processing engine
or, via an extension mechanism, handed over to LINQ providers which
either implement a separate query processing engine or translate to a
different format to be executed on a separate data store (such as on a
database server as SQL queries). The results of a query are returned as
a collection of in-memory objects that can be enumerated using a
standard iterator function such as C#'s foreach.

Many of the concepts that LINQ has introduced were originally tested in
Microsoft's Cω research project. LINQ was released as a part of .NET
Framework 3.5 on November 19, 2007.

http://en.wikipedia.org/wiki/Language_Integrated_Query

What is Linq-to-SQL?

LINQ to SQL, a component of Visual Studio Code Name "Orcas", provides a
run-time infrastructure for managing relational data as objects without
losing the ability to query. It does this by translating
language-integrated queries into SQL for execution by the database, and
then translating the tabular results back into objects you define. Your
application is then free to manipulate the objects while LINQ to SQL
stays in the background tracking your changes automatically.

http://msdn.microsoft.com/en-us/library/bb425822.aspx

What is ADO.NET Entities framework?

ADO.NET Entity Framework is an object-relational mapping (ORM) framework
for the .NET Framework. This framework is Microsoft's first ORM offering
for the .NET Framework. While Microsoft provided objects to manage the
Object-relational impedance mismatch (such as a DataSet).
ADO.NET Entity Framework is included with .NET Framework 3.5 Service
Pack 1 and Visual Studio 2008 Service Pack 1, released on 11 Aug 2008.
It also includes the capability of executing LINQ against ADO.NET Entity
Framework entities

http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework

What is N-tier application architecture?

N-tier application architecture provides a model for developers to
create a flexible and reusable application. By breaking up an
application into tiers, developers only have to modify or add a specific
layer, rather than have to rewrite the enitire application over, if they
decide to change technologies or scale up. In the term "N-tier," "N"
implies any number -- like 2-tier, or 4-tier; basically, any number of
distinct tiers used in your architecture. Application architectures are
part of Layer 7 of the OSI model.

http://www.webopedia.com/quick_ref/app.arch.asp

What is service-oriented architecture?

In computing, a service-oriented architecture (SOA) is a flexible set of
design principles used during the phases of systems development and
integration. A deployed SOA-based architecture will provide a
loosely-integrated suite of services that can be used within multiple
business domains.

http://en.wikipedia.org/wiki/Service-oriented_architecture