Application Frameworks

10/18/2009

As you can see, the trend in Data Access is to abstract into higher and higher levels within your applications. As data access libraries are generating entity classes, the question around locating data validation logic can become a slippery slope. If a data access generated entity can validate correct data types, maybe it should also validate that postal codes and phone numbers are of the correct format. Should they also cross-validate postal codes with states/provinces?
Should these error messages be managed inside of my entities? The waters can be muddied quite quickly.
It is therefore worthy to briefly mention a few of the more popular application frameworks that embrace a holistic view of data access in the scope of an application.
CSLA.NET (Component-based Scalable Logical Architecture) is a framework developed principally by author Rocky Lhotka in conjunction with his popularseries of Business Objects books. When first released, CSLA was focused on
Visual Basic 6, but over the years it has remained very current on the latest  Microsoft technologies and is now principally maintained in C# and ported to VB. In CSLA, data is fully encapsulated by rich business objects that manage all behavior including persistence. CSLA facilitates the re-use of business objects in many possible client technologies including ASP.NET, WPF, WinForms, and Silverlight including distributed architectures using Web Services.
DevForce from IdeaBlade is a commercially available framework for building rich, distributed applications in Silverlight, WPF, WinForms, and ASP.NET.
DevForce builds on top of the Entity Framework for its persistence layer and includes a Business Objects server for distributed architectures. DevForce is a popular application framework and has been around since 2001.

Posted in: Others .Net Programming| Tags: Framework Application Frameworks CSLA.NET Silverlight DevForce Entity Framework

Enter Data Services

10/18/2009

When it comes to building distributed applications, your mileage will vary with the array of data access technologies. Dealing with serialization and concurrency issues in those environments is beyond the scope of this article. However, it is important to mention what appears to be yet another data access technology available from Microsoft called ADO.NET Data Services, formerly code-named
“Astoria”. Astoria was made available with .NET 3.5 SP1.Astoria is an HTTP service layer built on top of WCF that provides a REST-style
API to your data, giving each of your elements of data a unique URI (for example, http://host/northwind.svc/Products(1) ). Out of the box, this service can be enabled for an Entity Framework model or any other IUpdateable/IQueryable data source in just a few lines of code. Data is queryable and updateable via pure
HTTP verbs (PUT, POST, DELETE, and GET) using query strings and HTTP payload. Data can be serialized in either AtomPub or JSON format. The net effect is that your data model is widely interoperable with a dizzying array of potential clients and technologies.
Although you are free to build up complex query strings and HTTP payloads for just about any type of operation, the Astoria team has created client libraries to assist in these endeavors. Firstly, an ASP.NET Ajax library is available on
CodePlex to allow JavaScript developers to easily work with Astoria Services.
Secondly, as part of the core installation, there is a .NET Client Library which provides a natural query model using LINQ and projecting data into client side
.NET objects for use by your .NET or Silverlight projects.
A new project, currently named “RIA Services” (code-named “Alexandria”), builds on top of ADO.NET Data Services by also providing rich validation and UI cues on top of your data model in a client/server model. This technology probably won’t be released until around the .NET 4.0 timeframe, but it is definitely something you should keep your eye on.

Posted in: Others .Net Programming| Tags: Data Services HTTP Http verbs PUT POST DELETE GET REST-style Astoria RIA Services UI .NET objects .net 4.0

Understanding Data Management

10/18/2009

Almost every piece of software ever written works with data. In fact, a typical web application is often just a thin user interface shell on top of sophisticated data-driven code that reads and writes information from a database. Often, website users aren’t aware (or don’t care) that the displayed information originates from a database. They just want to be able to search your product catalog, place an order, or check their payment records.
The Role of the Database The most common way to manage data is to use a database. Database technology is particularly useful for business software, which typically requires sets of related information. For example, a typical database for a sales program consists of a list of customers, a list of products, and a list of sales that draws on information from the other two tables. This type of information is best described using a relational model, which is the philosophy that underlies all modern database products, including SQL Server, Oracle, and even Microsoft Access.

As you probably know, a relational model breaks information down to its smallest and most concise units. For example, a sales record doesn’t store all the information about the products that were sold. Instead, it stores just a product ID that refers to a full record in a product table.

Although it’s technically possible to organize data into tables and store it on the hard drive in one or more files (perhaps using a standard like XML), this approach wouldn’t be very flexible. Instead, a web application needs a full relational database management system (RDBMS), such as SQL Server. The RDBMS handles the data infrastructure, ensuring optimum performance and reliability. For example, the RDBMS takes the responsibility of providing
data to multiple users simultaneously, disallowing invalid data, and  ommitting groups of actions at once using transactions.
In most ASP.NET applications, you’ll need to use a database for some tasks. Here are some basic examples of data at work in a web application:
• E-commerce sites (like Amazon) use detailed databases to store product catalogs. They also track orders, customers, shipment records, and inventory information in a huge arrangement of related tables.
• Search engines (like Google) use databases to store indexes of page URLs, links, and keywords.
• Knowledge bases (like Microsoft Support) use less structured databases that store vast quantities of information or links to various documents and resources.
• Media sites (like The New York Times) store their articles in databases.

Posted in: .Net Programming| Tags: .net data management Role Catalog e-commerce Amazon Search Engine Knowledge base media site New York Times

Troubleshooting Group Policy

05/30/2009

Administrator Enters Invalid Values
Group Policy administrative tools, such as the Group Policy Editor and the Group Policy Management Console, do not perform custom validations, so they will allow an administrator to enter an invalid value in a string field, such as an incorrect type name.

Only policies having valid values on all settings are applied, so when an invalid value is detected, an entry is written to the event log and the entire policy is ignored. The problem is logged to the event log.

Application Is Modified Without Generating New Group Policy Template
If the application is modified, some configuration elements may be replaced with new elements that have the same names, but different types. In this case, the manageable configuration source will look for the policies of the new element, but it will find policy settings for the original configuration elements, which may not match. Typically, this will result in missing values.

Policies Conflict to Produce Invalid Configuration
It is possible for different policies to conflict with one another. If this is the case, it will result in an invalid configuration after the Group Policy overrides are applied. This type of problem can easily occur, because different polices may be applied in different Group Policy Objects. In this case, the ManageableConfigurationSource instance does not detect an error. Typically, the consumer of the configuration settings logs the error.

Posted in: .Net Programming| Tags: Configuration Enterprise Library Group Policy Template Troubleshooting log type invalid case value event administrator

Hot Posts

Latest posts

Tags

Others

Sponsors