June 2008 - Posts
During the conversation about the different types of ASP.NET Applications, there was an issue that was talked when using AJAX Enabled ASP.NET Applications, and that issue was the fact that the HTTP protocol only supports single call by request, and in order to prevent information from getting lost in the communication between Client and Server, the best way is to disable the UI during the Partial Rendering, and in order to do this there are several techniques, like placing a div on top of all the UI in order to prevent the user from selecting another options during the execution. Disabling the action controls in order to prevent the user from misuse the UI, and some others.
This is one of those options and I found it interesting to see how Scott Mitchell solved this problem and explained it, so check this in here.
There are several ways to develop ASP.NET, and this has been growing and it tends to continue to grow in order to chose the best approach to the problem in hand, and so I decided to write a little bit about this subject.
So ok, with the introduction of the ASP.NET 3.5 and even with the ASP.NET 2.0 with the AJAX Extensions you had 3 choices to develop ASP.NET Applications, and those were:
- ASP.NET Applications
- This was the best know type of applications without using any AJAX or anything else, just the plain simple ASP.NET Application, and this could be done using 2 types of development, that were the choices on the Visual Studio when beginning the development,
- ASP.NET Web Application
- Application that is pre-compiled and had some advantages in terms of security and performance, because there was no source on the server and just a pre-compiled Assembly, that could be Obfuscated, Signed, and so giving security to the owner that even if someone could gain access to the Site, there was no way ("easy") to change whatever that application was doing. An being a pre-compiled Assembly the application when activating the first time would be faster to load the first time.
- There are more differences but I think these are the most important ones.
- ASP.NET Web Site
- Applications that was not pre-compiles and had advantages when maintaining the applications if the code changes a lot and there are several add-on's to it, of course there are other ways to accomplish that, but this is one. One of the mainly talked problems was the fact of the code being deployed along on the Site, and so this could make that if someone gain access to the site, it could see and change the code as it wish's, and this is not a great thing.
- AJAX Enabled ASP.NET Applications
- This type of applications appeared when the AJAX Extensions (early known as Atlas) gave a AJAX Framework for the ASP.NET Applications, and this is the most used type of applications when developing ASP.NET Applications, because it's easy to change already built applications and increasingly enabling AJAX, like using Update Panels, AJAX Control Toolkit extenders and doing this our Application gained a lot more interaction with the User and also a richer user experience, as for calling it RIA's (Rich Internet Applications) some will agree and some won't, I'm with the one's who doesn't agree, because in order to make a RIA we need something to help us give a better User Interface, not only the UX (User Experience), although the UX is very important, but something like Silverlight will help us with this.
- This type of applications is greatly used but it has some limitations, because when using Partial Rendering some problems can occur, like History not being update (this can be solved, but is not out-of-the-box), the limitation of the HTTP that only allows a single call by HTTP request, and so even if we use Asynchronous calls this can produce undesired results, like clicking 2 buttons and the second one will make that the result of the first request get lost, even if it made changes in the Server Side. This could prove to be difficult subject.
- It can be done using ASP.NET Web Applications or ASP.NET Web Site
- ASP.NET AJAX Applications
- This is a type of applications that change the Architecture of the ASP.NET Applications, because it will take full advantage of the AJAX Framework, but in order to do this, there's a lot of Javascript to be written, and a lot of changes to be made in order to work properly. And some of the questions are. Is this really worth it? Does this perform better? The answer is not trivial, and it's worth it if the problem in hand really need's to give Users the best UX possible and the project is starting, and other options like Silverlight Applications doesn't solve the problem, and so in this cases is really worth it, other than that I don't think so. About the performance, normally yes, it's better than the AJAX Enabled ASP.NET Application, but the problem always reaches the "Does It Worth the effort?".
- It can be done using ASP.NET Web Applications or ASP.NET Web Site
So these are the types of ASP.NET Applications presented by the ASP.NET 3.5, but with the ASP.NET Extensions there's another one coming, and that's the MVC Framework. The question that can be made is, Is this really a new type of ASP.NET Application? or Is this a new option when building ASP.NET Web Applications?
From what is seen I think it's not a new type ASP.NET Application but a new option for building ASP.NET Web Applications, because it's the implementation of the MVC Pattern, and this can be used depending of the problem in hand, and should be used only when the problem needs this type of Architectural approach, other than that in can be a little tricky. So now we have the possibility of creating ASP.NET Applications using the Web Forms type development or the MVC Pattern type development. And when asked what's the best approach my answer will always be. "Depends on the problem", has it always happens when using Patterns.
But is there any advantage for using one or the other? My answer will be that with the ASP.NET MVC Framework the Unit Testing is a lot easier and with this said, I'll say that this doesn't mean that there's no way to use Unit testing with Web Forms, I'm only saying that it's not so easy.
It would be great to have your thoughts about this subject, so please feel free to comment.
The Virtual Earth Control for ASP.NET will be made available with the July CTP of Windows Live Tools for Microsoft Visual Studio 2008, and so keep in touch for news on the dev.live.com/tools site.
The Beta 2 of Silverlight 2.0 is already available in order for us to develop using this version of Silverlight that now as some more new stuff in terms of controls, skining, among others that we will analyze during our next posts. This version is available for both Windows and Mac because we continue and will always continue to talk about a technology that is Cross-Platform and Cross-Browser.
You shouldn't miss this Overview that makes a relationship between the functionalities that are present on the Beta 2 of Silverlight 2.0 compared with the ones that already existed on Silverlight 1.0.
For developers that want to stard developing the essential tools are the following:
- Visual Studio 2008
- Visual Studio 2008 Beta Tools for Silverlight 2.0 Beta 2
- Expression Blend 2.5 June 2008 Community Tecnology Preview
- Deep Zoom Composer
- Visit the Official Silverlight site
Following our SaaS thoughts here is a very interesting article about Building Connected Enterprise Applications using Hosted Biztalk Services, that was made available on the June 2008 MSDN Magazine.
It's very interesting to see how Jon Flanders and Aaron Skonnard address this subject.
Some of you may be thinking. How does this SaaS and Biztalk Service issues are related to ASP.NET and Web Development in general? The answer is simple. The best way to build this type of applications is by using the Web.
Much has been said about SaaS - Software as a Service, and how this will affect the way we Think/Architect/Develop/Support and even Buy our applications, and for this reason is important to stay in touch with how a vendor like Microsoft, is applying this principles to their technologies.
So let's think a little bit about the subject and try to identify some offers in this spectrum.
SaaS is when you have an application that is served to you the same way as a Service is.
Example:
When you buy an insurance you don't need to buy all the services that came along to make the insurance company to work, you only need to have that insurance service, and the same can happen with Software, because imagine that you need to use a CRM tool, why do you need to buy also the infrastructure for the tool to work?
This is precisely the SaaS view of Applications, and that's why they are so interesting for vendors and customers. For vendors because they can catch the Long Tail as they can provide the Software based on SLA's (Service Level Agreement) and by doing this they can increase they sales and product usage. For customers because the tend to have a more simplistic way to use Software, because they don't need large amounts of investment when they need a Tool, and even if their business is seasonable they can use the same tool, and reduce costs during the time the business decreases. Another important thing for Customers is that SaaS normally provides the possibility to "Try before you Buy" and this is always important because the possibility to address the issue, "Is this the right tool for my business.
But there's nothing easy in this world, and so to do SaaS it's required to do some major changes in the way vendors make all the product stages, primarily on the way applications are designed or architected.
About Microsoft's approach to SaaS there are some samples, like:
A set of tools that can be used to in development or even only as a consumer working on usage basis. Things like Windows Live Id (Previously known as Passport), Windows Live SkyDrive, Windows Live Messenger or even Virtual Earth are the type of Consumer based SaaS that are made available for the customers.
A set of Services that are made available for professional use and allow developers to address things like Identity and Connectivity Services as they provide an ISB - Internet Service Bus.
An online CRM Application that works based on the usage and reduces the need for investment that is generally associated with this type of Professional Business Tools.
These are some of the things Microsoft is making possible to Customers, and a lot more is coming for both Customers and Developers in this area, and a lot is being done both by Microsoft and other Vendors like Google, Amazon and so on, so keep in touch.
I'm back after a longer absence that was thought, and while I was absent a lot has happened. The most important thing was the fact that I became a father and that for me is indescribable and made me stay some time without any sleep, but I'm recovering, now that my daughter is on her 2nd week of life. Other situation that was very interesting was the MVP Global Summit 2008 in Seattle, it was absolutely fantastic from the technical to the personal side. I was able to meet some more Portuguese MVP's, and it was great and more than that I was able to exchange experiences with them. Very good indeed.
Now I'm back on the active to blogging world (of course), because I never stopped the rest, and I hope I can continue to help you with my tips and articles.
More Posts