Train yourself on ASP.NET web development

I have always been supporter of the formal education as a primary way of one’s intellectual forming. However, there are times you need a quick push on a topic you have no experience, or formal education. If this is your case, then here is my advice.

You need to have a curriculum to support your knowledge development, instead of trying to grasp the topic from blog posts and internet pages. As humans tend to learn visually faster than by reading, starting with video training would be a better choice.

Pluralsight is a video training provider for developer topics with videos prepared by some of the most known authors and industry experts of software development community. From the range of the courses offered, here is a learning path I would suggest, from the range of training provided from Pluralsight.

Lets start progressively, from basics to more advanced topics, so here are the courses in this order:

  1. HTML Fundamentals
  2. HTML5 Fundamentals
  3. Using HTML5 and CSS3
  4. JavaScript Fundamentals
  5. Structuring JavaScript Code
  6. jQuery Fundamentals
  7. A Web developer’s guide to images
  8. ASP.NET MVC4 Fundamentals
  9. Building Applications with ASP.NET MVC 4
  10. Building ASP.NET MVC Apps with EF Code First, HTML5, and jQuery
  11. Web performance
  12. Scrum Fundamentals

This curricula is prepared in a way so you will progressively develop yourself to be a web developer. First, you will start with HTML, then continue with HTML5, the hot topic of our time, and proceed further with mixing HTML5 and CSS3 to create modern sites. After that, the curricula continues with JavaScript, the ultimate language of browsers, to continue with a guide to images,  and then further advance with server side programming using ASP.NET MVC framework. At the end, course finishes with Web performance topic to create optimal fast loading sites, and Scrum fundamentals, to develop a structured software development process. 

If you follow this path, my suggestion is that you allow yourself at least two months, if not more, to go through these courses.

I would like to hear your opinion, especially about the results if you have followed this learning path.


Macedonian Code Camp 2012

24 November 2012

Macedonian Code Camp 2012

My presentation on Macedonian Code Camp 2012, organized in Skopje, Macedonia,  was on ‘Optimizing ASP.NET web pages’. On this presentation, I presented web optimization techniques and how they are implemented on ASP.NET web pages, including, latest bundling and minification features in ASP.NET 4.5, client side caching, optimizing images, optimizing number of requests, etc.

International Conference of Computer Science 2012 – UBT

03 November 2012

In this international conference organized in Prishtina, Kosova, by UBT, I presented my research on web page optimization, titled ‘Web page optimization techniques and their effect on decreasing page size and load time’. My research described the effect of bundling & minification, client side caching, image optimization, and lower number of requests, on decreasing page load size and speeding up the page load time. Full conference agenda can be found here.

Information Systems and Technology Innovation (ISTI) Conference 2012

June 2012

ISTI conference was a conference organized in Tirana, Albania, for the application of information systems and technology innovation in the economy. Here, I have presented my research about Web Service Orchestration, titled ‘Web Service Orchestration in Service Oriented Software Engineering’. The research was about analyzing the effect of web service orchestration on the speed of composing business processes exposed as web services. The full conference agenda can be found here.

Microsoft DevDays Kosova 2012

16 May 2012

During this presentation, I have presented to the .NET community in Kosova, the new developments and advancements in ASP.NET MVC 4 Framwork and WebAPI. I have demonstrated the usage of Bundling & Minification included in the framework, creating REST services using WebAPI and other new features in MVC4.

Microsoft DevDays Albania 2012

14 May 2012

During this presentation, I have presented to the Albanian .NET community, the new developments and advancements in ASP.NET MVC 4 Framwork and WebAPI. I have demonstrated the usage of Bundling & Minification included in the framework, creating REST services using WebAPI and other new features in MVC4.

Zen Coding

Zen Coding is a plugin for HTML, XML, XSL, CSS fast code editing which could be used in different text editing software and/or IDEs. Recently, through the Web Essentials VS Extension, Zen coding is also available in Visual Studio. This functionality is activated by pressing TAB key right after you write the zen code.

Zen coding has a specific syntax, and the code is created by combining html tags and ‘zen code operators’. These operators include :

Operator Operation
# Create ID attribute
> Child element
. CSS style
* Mutiplication of elements
[] Custom attribute
+ Sibling element
^ Climbs one hierarchy level up

Let’s demonstrate these by examples.

Specifying the ID

If we want to create a div element which has an id named container, then we would write

div#container and when we press TAB, and the result will be <div id="container"></div>

Creating child elements

If we want to create nested elements, then we would use greater then (>) symbol to specify nested elements. Writing ul>li produces


with proper indentation.

Adding CSS class to element(s)

The dot symbol will add css class to an element. Modifying the last example code to ul#menu>li.menuItem will produce

<ul id="menu">
<li class="menuItem"></li>

Creating many elements

If we want to create more than one element of the same type, then we will use multiplier (*) operator. If we write ul#menu>li.menuItem*5 the result will be

<ul id="menu">
<li class="menuItem"></li>
<li class="menuItem"></li>
<li class="menuItem"></li>
<li class="menuItem"></li>
<li class="menuItem"></li>

Creating custom attributes

In some cases, there is a need for custom attributes (e.g. new html data-dash attributes). Let us modify our last example so it includes a data-value attribute. If we write ul#menu>li[data-value].menuItem*5 and press TAB, the result will be

<ul id="menu">
<li data-value="" class="menuItem"></li>
<li data-value="" class="menuItem"></li>
<li data-value="" class="menuItem"></li>
<li data-value="" class="menuItem"></li>
<li data-value="" class="menuItem"></li>

We can even give a default value to the attribute by changing attribute section to [data-value=val].

Creating sibling elements

Let us create a div for search with an id equal to ‘search’ and two input elements inside, one textbox and one search button. Our zen code would look like this:


and it will produce

<div id="search">
<input type="text" value="" />
<input type="submit" value="search" />

Level up

The caret operator (^) enables us to go one level up in hierarchy. E.g.

Code div#container>div#element1^div#element2 will produce this HTML

<div id="container">
<div id="element1"></div>
<div id="element2"></div>

This is it folks. I hope you like it.

Macedonian Code Camp 2012

Macedonian Code Camp 2012 is a yearly development conference organized by Macedonian .NET User Group. This year, I will be presenting the topic ‘Optimizing ASP.NET Web pages‘ to the Macedonian .NET community.

The presentation will include demonstration of web optimization techniques such as:

  • Bundling & Minification (CSS & JavaScript)
  • Caching
  • Using Web Essentials Visual Studio extension to optimize pages

Demonstrations will show the audience how they can optimize the page load time and page size in ASP.NET web applications and pages.

I will be posting the details of the presentation after the Code Camp is over. If interested, you are welcome to my session. See you there…

About me

Arian Celina, M.Sc.

I am a Software Architect, Cloud Architect and a Devevelopment Team manager. A former Computer Science lecturer and trainer. I enjoy creating software and cloud infrastructure solutions to solve business problems. Especially I enjoy creating & improving business processes to increase productivity.

Outside tech, I have developed high interest in business development, startups, and human psychology.

My detailed experience can be read on my resume.