“It’s all luck, when you get kicked out of your college, your first job destination becomes your track” a friend of mine said, yes this is true in the reactive people’s world, however the great people who could proactively shape their future and destinations, who could sense what’s best for them, their abilities and their market best opportunities, would have some other opinions.

This still doesn’t put any of the two tracks in the lower block, on all levels java is paying better everywhere in the world, and it’s expected to be like that for a while, Microsoft wins in the developer communities’ domination, it’s like when a country wins a war and their people get into a deep poverty and their soldiers get killed, the country still wins but all what their people have is the pride. Microsoft won but their developers didn’t.

Are you a java developer or a .net developer? This question applies on more than eighty percent of the world’s current software developers, I think you already asked yourself at least once which one is the best for you, and if it’s really a first time choice or you can convert whenever you want or when the market wants, and how would this affect your career.

It’s becoming a culture that you can’t convert – or work on both – and the developers started to believe it because they have separate departments in their companies, without giving it a deep thought why and what makes it a first time choice, and when you work on this you can’t do that.

it’s all about knowledge, you can get your hands on .net for years and then convert to work on a java enterprise or vice versa as long as it puts you on the same development level and you have the potential and attitude to get yourself on this level, and on the other hand you do have your own wide and thoughtful reasons, you would see some resistance claming that this is considered as horizontal knowledge scalability or you can’t become a great developer that way, let’s step back and thoughtfully look into it, you work only on couple projects, don’t you? And you already an expert with everything you practiced on these java or .net projects, so there is no other way to do more, unless you do one of two. first, take your career to the next level (most probably would be an architect if you are desiring a technical step, or managing development projects or operations if you are desiring a business step). second, you develop your skills by self studying the corners of the technology you use, and this doesn’t count on your career path unless you apply it on an enterprise project. don’t you think so? so you are who you decide, being a great developer or not, your attitude and self-awareness are what makes your step on a solid stair.

I don’t think there is a big difference in both technologies, both do the same job with almost the same cost in the enterprise, check out this article, it has some good information about Java vs. .Net from the technology perspective.

let’s conclude this in the following, you make your choice, you can be powerful on anything, as long as you believe you are powerful inside.

 

Technorati Tags:

asp.net has published some new AJAX control toolkit tutorials, check them out, the AJAX control toolkit would certainly speed up your AJAX development.

subscribe to the asp.net latest content feed using this

Technorati Tags:

recently I had to integrate two applications one built in ASP classic and the other was an ASP.NET application, a problem you might have is transferring the session content between the two applications, you will have to do a workaround to get it done, the following sample illustrates how:

the ASP classic part

where your session variables are set, and where you want to do the transit between the two application, drop the following code into two ASP classic files, the first one is where you set the session variables, and want to transit to the ASP.NET application, the second ASP classic page submits the compound session content to the receiving ASP.NET page:

<TITLE>ASPPage1.asp</TITLE>
<%
‘ This is the page where we just set the ASP Classic Session Variables

Session(“username”)=”waleed”
session(“email”)=”email@gmail.com”

Server.Transfer(“ASPPage2.asp”)
%>

===================================================

<TITLE>ASPPage2.asp</TITLE>
<%
‘ We pull all the session variable names/values and stick them in a form
‘ and then we submit the form to our receiving ASP.NET page (ASPNETPage.aspx)

Response.Write(“<form name=t id=t action=ASPNETPage.aspx method=post >”)
For each Item in Session.Contents
    Response.Write(“<input type=hidden name=” & Item)
    Response.Write( ” value=” & Session.Contents(item) & ” >”)
next
Response.Write(“</form>”)
Response.Write(“<script>t.submit();</script>”)
%>

 

the ASP.NET part

this is where you would receive and set the ASP.NET session variables.

<TITLE>ASPNETPage.aspx</TITLE>
<%@ Page language=”c#” %>
<script runat=server>
private void Page_Load(object sender, System.EventArgs e)
{
    for(int i=0;i<Request.Form.Count;i++)
    {
     Session[Request.Form.GetKey(i)]=Request.Form[i].ToString();
    }

    //where you will start your ASP.NET application
    Server.Transfer(“YourASPNETApp.aspx”,true);
}
</script>

 

Technorati Tags: , ,

AJAX, the wrong tool?

March 13, 2008

Some developers view AJAX as the best view for every scenario, however from my own experience AJAX introduces its own set of drawbacks, and we should take care before we start on using this technology, we can summarize these drawbacks in the following points:

Additional development time

Learning a new technology like AJAX makes its own delays before properly understanding and using it.

An extra time would be needed when we consider what to do when a user has disabled JavaScript support within their browser, this would require additional development time to deliver an alternative solution (using the NOSCRIPT tag).

No browsing history, means Back/Forward buttons become useless, so the users are unable to easily bookmark or navigate to and from the app. using the browser’s buttons, there are some JavaScript libraries provide a way to build such functionality, but it will add development time and testing.

In addition, when developers jump on the AJAX, you should make sure they don’t use it for everything, so you won’t lose time fixing the application up eventually.

Accessibility

AJAX makes the browsers act in a way that is different than its original design, like we said, Back and Forward buttons no longer work as expected, and there is no URL for some AJAX content, you will have to take all this into your consideration while designing your AJAX application.

Discoverability 

Search engines like Google requires a page URL and use words on the page as one of the aspects of its approach to ranking pages. search engine spiders do not load a page and execute its JavaScript, this can lead to lose visitors, but it will not be an issue for internal intranet applications.

Security

while JavaScript is a mature language, it does have security holes that must be considered regardless of whether you’re using AJAX, sever-based security measures can be used to block such problems.

also the issue of cross-site scripting (XSS) is more recognized with AJAX, as script may run in the background and access resources without user knowledge, given these possibilities, all data must be protected to avoid malicious activity.

and finally, make the good decision

All have agreed a hybrid approach is usually the best solution with AJAX, there are times when AJAX is applicable, and there are times when you should use another approach.

 

what problems have you encountered during developing AJAX-based application? share your experience..

 

Technorati Tags:

pat After a couple of delays, next month the EDC (Egyptian Developer Conference) ‘08 will take place in Cairo, nothing has been announced yet about the agenda, place, speakers and topics, all we’ve got is “the mid of April”.

Patrick Hynds (MDC’s most famous speaker) has just confirmed his participation and announced the topics he will be speaking about in the conference.

see you all there!

 

Technorati Tags: , , ,

I am posting this to help you and myself on remembering and getting these three actions done with any ASP.NET 2.0 application that uses Membership Provider before pushing it into a production server:

1.   Add “applicationname” attribute in Profile Provider. IF you do not add a specific name here, Profile provider will use a GUID. So, on your local machine you will have one GUID and on production server you will have another GUID. If you copy your local DB to production server, you won’t be able to reuse the records available in your local DB and ASP.NET will create a new application on production. Here’s where you need to add it:

    <profile enabled=”true”>
    <providers>
    <clear />
    <add name=”…” type=”System.Web.Profile.SqlProfileProvider” connectionStringName=”…” applicationName=”YourApplicationName” description=”…” />
    </providers>

2.   Profile provider will automatically save the profile whenever a page request completes. So, this might result in unnecessary UPDATE on your DB which has significant performance penalty. So, turn off automatic save and do it explicitly from your code using Profile.Save();

<profile enabled=”true” automaticSaveEnabled=”false” >

3.   Role Manager always queries database in order to get the user roles. This has significant performance penalty. You can avoid this by letting Role Manager cache role information on cookie. But this will work for users who do not have a lot of roles assigned to them which exceeds the 2 KB limit of Cookie. But it’s not a common scenario. So, you can safely store role info on cookie and save one DB roundtrip on every request to .aspx and .asmx.

<roleManager enabled=”true” cacheRolesInCookie=”true” >

 

Technorati Tags:

pooling

Many hosting companies have based their windows-based hosting environments on the concept of shared application pooling, by sharing AppPools those  companies achieved server densities similar to those seen on Apache (Linux/Unix). But for any customer with a website that processes credit card information directly, or has proprietary scripts, this is really a significant problem. their sites share a security identity with the other sites in the same AppPool. A developer – using a coding technique called “RevertToSelf” – can view the code (in read-only mode) of all of the sites within the same AppPool.The problem this causes for the customer is that their site is not secure. the more things that can go wrong or cause the sites within that AppPool to crash – like the famous pooling crash between ASP.NET 1.1 and 2.0 – the more customers who will be affected by such a calamity.

 

Read more:

configuring Application Pools in IIS 6.0

running multiple ASP.NET applications

Isolating Applications