what are the most important features a web developer should know about in asp.net?
i am asking this question because i am a newbie and i want to learn c#, and i found a lot of books about: ajax,edmx,asmx,custom controls,jquery,wcf,silverlight......
so in what order should i learn them, and what is are the most important ones?
Learn about:
The page life cycle - here
User and customer controls - here
Learn how HTTP works - start here
Understand the difference between client side and server side code - start here
Learn about asp.net MVC - here
HTML, Javascript and CSS (for completeness)
If you're a complete beginner I suggest you first take a look at these technologies:
html
css
javascript/jQuery
Great starters for these can be found at http://www.w3schools.com/.
For getting into ASP.NET (Webforms) start with these tutorials: http://www.asp.net/web-forms/fundamentals.
Edit: from years of experience or when I teach classes the hardest thing to grasp for beginners seems to be ViewState and what harm it can do to your pages total size. Take a look at Taking a Bite Out of ASP.NET ViewState for getting a teaser of what it can cause harm.
i am asking this question because i am a newbie and i want to learn c#
Thoroughly answering your question with the detailing this topic deserves is beyond the scope of this context. So I reocmmend to Start from Stage 1 here.
Well I think that you should realize the main difference between developing a client app and a web page.
The web page is stateless and thus does not preserve the actual state.
It's just a request and a response (compared to the rich client preserving the states all the time - variables...)
When an ASP.NET page runs, the page goes through a life cycle in which it performs a series of processing steps.
You should read about it more:
http://msdn.microsoft.com/en-us/library/ms178472.aspx
Though there is no particular order below is the one that I would follow:-
First understand the framework and how the applicaion or website communicates with the client.
Before anything else clear your basics of oops and have understanding of page life cycle.
Learn how to use controls on the tool box.
Learn basics of javascript.
Learn to make your own custom control.
Learn about ajax and actually understand not only using the already made tools.
Learn webservices and wcf.
And then by this time you will have clear picture of what you should learn next.
You should also familiarize yourself with SQL Server since it's the most widely used database with .NET
There are many new features available in asp.net4.5. Below is the list of new features:
HTML Editor Features
Javascript Editor Features
Css Editor Features
The Page Inspector
Working with data
Framework Features
HTML5 features
Oauth and Security Features
For More Detail about above feature : http://rajeshprajapati.blogspot.in/2013/10/asp-net-45-features.html
Related
How time consuming is it to move a website built using Webforms to one built using MVC?
I have an existing website built using asp.net webforms, but it is a little annoying. I want to use lots of javascript and ajax, but webforms makes this a little difficult. It tries to do too much for me, and thus makes it difficult to work with when I want to do things it doesn't expect.
As such, I've taken to only using the Page_Load event, and totally ignoring all the postback stuff - when I need to deal with submitting forms, I handle it manually from the Page_Load event with Request.Form["ElementName"], but most of the time I use javascript.
I've heard that asp.net MVC is much nicer to work with, so I'm thinking of porting my site over to this. Given that I am writing runat="server" only on standard HTML elements that I need to fill with data with .innerHTML =, how long will it take me to move over to MVC? Or is it a totally stupid idea to attempt this move?
well, as you've probably guessed, it's such a broad ranging question that it would be almost impossible to give advice on your individual scenario without seeing the scale of the existing codebase. However, there are many mitigating factors that you may want to think of regarding moving functionality across piecemeal, such as:
can I break down the existing functionality into discreet segments
does the exisiting site still require all current features
are there new features that I could introduce purely in mvc
do i need to extend the object model - EF code-first may give huge advantage via mvcscaffolding
the beauty with asp.net is that you can mix-match webforms and mvc together, thus you can chip away at functionality as required. Of course, there are so many resources on mvc on the web now, it'll be easy to get going quickly, so i'm sure you'll make good progress.
I think you'll really enjoy mvc - it's a no going back experience.
[edit] - there are a few interesting resources on the web that discuss the mix of webforms and mvc. however, the definitive one for me has to be scott hanselmans from a wee while back. still relevent in mvc3 as it was then:
http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx
also:
http://www.aspnetmvcninja.com/general/mixing-asp-net-mvc-and-webforms
Short answer, impossible to tell here.
Long answer, it depends...
It depends on how many sites you have to rewrite, complexity of the site and your architecture.
If all your logic is in the code behind files you will have a long walk.
If your architecture separates responsibility with use of services and abstraction, a lot easier.
If I should walk that walk, I would look into porting the code bit by bit. I've done this with JSF and Spring MVC, and it looks like this is doable with .Net too.
http://weblogs.asp.net/rajbk/archive/2010/05/11/running-asp-net-webforms-and-asp-net-mvc-side-by-side.aspx
Wanting to improve your code and your skills is never a stupid move!
It is possible to use them both within the same application. It isn't necessarily advisable, but if you set an MVC project up, you can tell it to ignore page requests that map to your webform pages.
You can then start moving over functionality as you need it.
If there is likely to be functionality you need to be available across MVC and webform pages, then this is going to get complicated and you are probably best moving to MVC in one go.
Personally, what ever you do, start small and straightforward and if you can bit by bit.
It would have to be a rewrite, not a port. MVC sites are built very differently from WebForms sites.
MVC is not based on the ASP.NET request lifecycle. There is no codebehind; business logic gets called from Controller classes; data is encapsulated in Models which are then passed to Views. It's a totally different beast from ASP.NET.
And be warned: once you've made the switch to MVC, you'll never go back to the old world of ASP.NET! :-)
Good luck!
With only mild programming experience in the past, I was wondering about C# and ASP.NET MVC..
Do you guys think it's a better idea to learn C# before learning ASP.NET MVC? I've already delved a little into both of these already, but I still need some help deciding.
I think I would be a much stronger MVC user if I had more knowledge of the C# language itself.
What do you guys think?
Thanks!
If you're going to use C# to code your ASP.NET MVC Models/Controllers/etc. then yes, learn C# before you dive into ASP.NET MVC.
That way, you'll be able to better handle the language issues you're going to run in to when composing your .NET MVC application. Otherwise you're going to be trying to learn two things at the same time and not get a good grasp on either one.
Master C# first, then go to ASP.NET, then learn MVC and other patterns. Don't bite off more than you can chew, newbie mistake.
I agree with your third paragraph with C# at your back you'll be a stronger ASP.NET MVC developer; but I also think that they (C# and ASP.NET MVC) make great co-learning tools. And if you're going to try to pick up both tools, doing it together makes a lot of sense.
ASP.NET MVC is a pretty tough framework to start out on. It assumes you are already versed in ASP.NET, and ideally you even have a little bit of Ruby on Rails or similar experience too (ASP.NET MVC was really influenced by rails). On top of all of that good knowledge of C# is also very helpful.
I guess it depends on what your needs are. Are you going to create a mission critical webapp that your business depends on? In that case, yeah really learn ASP.NET and C# well. If this is just for a hobby and/or learning, then I say just go for it and learn C# as you go.
I jumped into Rails and Django without learning Ruby or Python first.
You learn what you need to know pretty quickly and everything you do learn is always guaranteed to be practical and immediately useful.
If you already understand MVC you already know which piece of code does what.
Knowing C# before jumping into anything .NET related is very recommended if not required. MVC is only a way of making webpages with the tools of ASP.NET which uses C# and VB as its backend languages. MVC is actually called ASP.NET MVC. Think of C# as the equivalent to PHP or Ruby in "Ruby on Rails".
Learn C# first. C# will be around for years to come; MVC may or may not be (Microsoft has a long history of handling web site code with flavor-of-the-month paradigms that don't age particularly well).
I have to disagree with Matt Greer about any assumption for MVC that you are already versed in ASP.NET. Nearly all of the tutorials and/or books that I've come across definitely do not start from an assumed ASP.NET knowledge base. In fact, for a junior developer, I'd think that knowledge of ASP.NET would be detrimental and confusing, as ASP.NET adds a whole bunch of stuff (designers, viewstate, abstractions, etc) that really is sort of the antithesis of ASP.NET MVC development.
ASP.NET MVC, however, is a framework that definitely requires knowledge of C# or VB to implement properly. In the end, any of the code that drives the site will be written in C#. The ability to properly write .net code is a definite requirement.
I'm personally very partial to Apress books, so I'd recommend the following:
Apress Beginning C# 2010:
http://www.apress.com/book/view/9781430231714
I'd also recommend from experience
Apress Pro ASP.NET MVC 2:
http://www.apress.com/book/view/1430228865
Another really great series for learning ASP.NET MVC 2 is the screencast series available from tekpub at:
http://www.tekpub.com.
Asp.net MVC is a framework for web development on top of .net developed in C#.
So if you want to know the priorities(not necessarily in a waterfall model, you can learn them in parallel):
First you must learn C#(some oo priciples and the way you must structure your code).
Second you must learn the rules and techniques
in web development (Html, Css, javascript, Web Architecture and the way it works(concepts like session management, cookies, etc) ...)
and Last learn
the Asp.net MVC
This question already has answers here:
Closed 13 years ago.
Possible Duplicate:
Small projects ideas to teach beginners web developent using ASP.Net
I am learning about technical skills to become a web developer.But i don't know how i should start to develop a web application.
The best application to develop first when learning a new technology is the good old "Hello World!" program.
The advantage of doing this is that you test that you have correctly installed and configured your technology stack without the extra confusion from possible bugs introduced in your code.
You could start with the most basic test: hardcoding "Hello World" in the page. Then try storing it in a variable and outputting it to the page dynamically. Then try reading it from an application configuration setting. Then try reading it from a database. Then reading a greeting from the user via a post and send it back to him.
This way you can test all the components of your stack and check that you understand how they work without taking on too much complexity at once.
First get a hold of page life cycle and the basic controls of the web and their properties. If this is clear then every other thing follows and is easy to understand. Secondly there are numerous tutorials on msdn for all the controls and concepts of asp.net. Refer them.
"w3 schools" is a great place to start to get an overview of the syntax for various languages. I really enjoy the screencasts at netuts.com when I'm looking to learn something new.
You're probably going to want to be confident tinkering with at least HTML, php, css and javascript before you try to take on clients or you'll just end up writing bad code and they'll be knocking on your door demanding a free fix when it inevitably breaks in 6 months' time.
There are certainly other languages that you can get into further down the track but that will cover your basic needs for encoding data, interacting with your server, making things look nice, and allowing your users to interact dynamically with your page.
You could also play with flash because it allows you to create very slick, dynamic elements relatively quickly and easily. IMO flash's relevance to the net as a whole (and getting paid work) is waning, so you can probably leave it on your "to-do" list, but that's definitly an opinion, not a rule.
They are specifically asp.net and also a little dated as in .NET 2.0 but still relevant. Once you have a grasp of the fundamentals the asp.net Data Access tutorials are a good place to look
I've always worked with the standard Linux web stack (linux, apache, php, python, mysql) but have been given a great job opportunity working with a group that works with the Microsoft Web Stack (IIS, ASP.NET, MSSQL, C#).
There seems to be a pretty good Microsoft following here on SO. Where should I begin? Specific books, tutorials, online resources are appreciated.
ASP.NET MVC will probably seem more familiar to you than ASP.NET WebForms. And honestly, I think that most pro-shops are going to move towards it over the next 5 years.
There are some really good tutorials (the kind that WebForms still doesn't have) at this site.
http://www.asp.net/Learn/mvc/
MSSQL (other than some tweaks to syntax) and IIS will probably be less of a hurdle, unless you'll specifically be administering them. I'd focus on learning C# and ASP.NET.
A good resource for C# is the MSDN C# tutorials.
A good resource for ASP.NET is the ASP.NET Quickstart Site.
RampUp is Microsoft's intro learning site. There are learning paths based on the background of the developer (like you for a LAMP stack)
http://msdn.microsoft.com/en-us/rampup/default.aspx
Additionally, the Asp.Net site has a bunch of tutorials and videos
http://www.asp.net/learn/
The data access tutorials available here from the ASP.NET website are as good a place as any for the experienced IT professional to learn about SQL Server data access in ASP.NET.
Would recommend www.learnvisualstudio.net great for staters.
If books are your best learning source then some I found helpful:
Pro C#
Pro ASP.NET
CLR via C#
The third book is about the common language runtime (what executes compiled C# code).
ASP.Net has a few different approaches. There's inline coding (much like PHP and ASP Classic), code behind and MVC.
To start out I would just stick with inline coding. Working with ASP.Net controls and view states is pretty hairy at first so I'd get familiar with the syntax to start and then move on.
Lot of good web sites in this SO thread. I very much lke MSDN Virtual Labs. They have them on just about every technology in the stack and they let you get your hands on the technology and play around.
You should definitely read a good quality book, about C#, I would recommend a C# 3.0 in a Nutshell, Third Edition book, from O'Reilly.
Then you should look into some MS stack specific pages, as is the CodeProject (www.codeproject.com/) site.
At the end you should start read some interesting blogs, on technologies you will work with.
You definitely should not miss the following ones:
weblogs.asp.net/scottgu/
www.hanselman.com/blog/
haacked.com
That would be for a start. :)
(sorry for missing links, but SO say I am a new user, and I can post only one link. :( )
I would suggest you read C# in Depth by Jon Skeet, who is a user here at SO. It will definitely help you master C#. The rest is gravy.
I'm developing a website , job portal. I have 2-3 years of ASP.NET webform development experience,
I want to create a professional job portal site (to improve and learn more) but trying to decide on best architecture. Any suggestions or advice will help...
Thanks
Well, there are a number of ways to answer this question, and I'm sure many others will chime in. I'll just say that since your goal is to improve and learn more, and you already have 2-3 years of webform experience, this might be a good opportunity for you to learn MVC. Then you will have experience in both, and can make more informed decisions regarding the best architecture for future projects.
Happy learning!
Whilst nobody can tell you exactly what to do, the team I manage is about to release a new CMS / Job portal using ASP MVC. MVC gives us excellent testability and scalability out of the box and it can be quickly combined with tools such as nHibernate / windsor (IOC) / nCache / jQuery - this ensures that you have a wealth of resources on the internet to help accelerate your development and skill. You can also embrace standards such as XHTML 1.1 strict, which is almost impossible with ASP.Net webforms due to the auto generated HTML
1 other advantage is that you also get away from the dreaded ASP.Net viewstate.
Use ASP.NET MVC if you want to:
learn the ASP.NET MVC framework
use jQuery or similar libraries
really learn web-languages (HTML, CSS, JavaScript)
use Test Driven Development
have a clean separation of concerns
If you don't have the time or will to learn to use the ASP.NET MVC framework correctly, stick with ASP.NET WebForms.
My answer is almost always "ASP.NET MVC." The amount of flexibility and features and testability and maintainabilty and ... heavily outweigh WebForms.
WebForms has the advantages of a rich ecosystem of existing controls and documentation, and is really powerful for some kinds of tasks (complex, multi-form interactions), but I find its limitations get in the way far too often. You have to mold yourself to it.
It really depends on what the end goal of the application is. As Scott Ewers said, if your goal is to learn, then using ASP.NET MVC will expand your breadth of knowledge in the ASP.NET space (since you already know web forms).
Additionally, if this is going to be a public product, you can leverage the testability benefits of MVC and run automated unit tests. Key ideas like Separation of Concerns can also increase long-term scalability and maintainability.
The primary reason why you might choose web forms is if you are rapidly prototyping the job board application. As you know, web forms allows you to drag-and-drop components onto the canvas to quickly create some basic data entry functionality.
There is a herding code podcast from May 13 on the subject.
Herding Code 47: Joe Brinkman on Webforms vs ASP.NET MVC.
I also agree that choosing MVC would have the advantage of allowing you to expand your knowledge. That not being the only reason, given the choice as well I just finished a small MVC project (my first) and let me tell you MVC rocks! Its a great framework which I feel gives you more flexibility and at the same time out-of-the-box tools to create a web app quickly and painlessly. It was my first experience with VS2008 & .NET FW 3.5 & LINQ, and all the guides at www.asp.net helped me go forward quickly (especially the free tutorial chapter from an MVC 1.0 book mentioned here).
I also got to learn JQuery along the way, as it is very much integrated into these new technologies.
One think to take note though is that this being a new tech, version 2 is already being cooked up, so if your project is for the long run, have that in mind and plan accordingly (in my case, being a small project, I'll probably try upgrading my project to version 2 when its officially released). Yet at the same time, having a fully MS (and thus MSDN) supported version 1 was a godsend for me...
Good luck!
I have good experience in Jquery, CSS, HTML, Javascript but not in TDD.
I have time..and willing to learn MVC but wasn't sure MVC is good choice for Job portal or similar site..
This can be considered a shameless self-advertisement but here is my quiz on how to choose between the two:
http://sietch.net/ViewNewsItem.aspx?NewsItemID=101
I was recently tasked by one of my clients to write a paper, or simply a checklist, that would help other lead developers make this same decision.
I posted the first 2 rough drafts on my blog. I am admittedly pro-mvc but the paper/checklist has been we received so it might be helpful.
http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/[http://eric.polerecky.com/archives/a-somewhat-less-biases-comparison-of-mvp-and-mvc/][1]
I think the most often overlooked benefit of MVC is convention; I really see any convention in webforms projects and while not strictly enforced in MVC projects at least its there.
i started developing our current app in webforms, mvc wasn't available when development started.. i've chosen the MVP pattern, with URL rewrite HTTP module. currently i'm investigating plugging in some MVC into this, basically to use the front-controller instead of using page-controllers. the other things in already established MVP architecture with web forms in my app give me more flexibility than pure MVC approach without WebForms, which i like, although require a bit more code than MS MVC examples (never tried it for real project to see if it stays that way, like in those examples in screencasts).
what i don't like with MVC is mixing control code inside templates - i believe loops, ifs and stuff like that just shouldn't belong inside the template. but a couple days ago i've ran into Spark view engine that looks kind of promising in that segment, although not still close to the Tapestry 5 (a component-based webGUI framework) in the java world.
But the above mention suggestion to mix both might work for you to explore MVC world and have the safe ground to fallback to if something won't work for you might be ok for you.