Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
So I just started working in a new environment. Its a Microsoft Shop that uses ASP.NET MVC 4 on most of their projects. I'm coming from a mac/linux/open source environment where I worked on the front-end exclusively.
I'm having a hard time working in this .Net environment for a few reasons, one being that ASP.NET MVC is completely new to me. I also feel like to effectively fix issues I need to have some full stack skills too.
I've looked around for some ASP.NET MVC books but most of them expect you to know a bit of C#. I have no interest in learning C# though. What can I do to help myself work more effectively in this environment?
Firstly, Your best resources are the people around you. They understand not just the framework but they way the business is using it. In any framework there is a myriad of ways to do something, it may not be the best way, but its they way they have chosen.
Books are great if you want to get a general understanding before you start, but once you are in there the fastest way to get into it is use the people around you. As questions, lots of questions, make sure they know you aren't incompetent, just that you want to learn.
Secondly, if you don't want to learn C# your in for some trouble, ASP.NET (even doing front end only) will require knowledge of C#. the pages are .cshtml for a reason because they amalgamate C# and HTML in one.
Depending on how deep you are required to go, you may need to write up some controller functionality, meaning you will need to understand C# fully. If you are solely doing .cshtml pages then a limited subset of C# should suffice. However the more you know the easier you will find it in the long run.
C# is one of the language which you can use to drive ASP.Net MVC Technology. You can opt for other languages like VB.Net also. In my answer, I am going to say some options other than C#, that is build your server with JavaScript, render you page with JavaScript framework.
To learn ASP.Net MVC - Pro ASP.Net MVC 4, ASP.Net MVC 4 in Action
If you do not want to learn C#, then you can build applications only with HTML, CSS and JQuery. So the complete middle tier would be of JavaScript. There are JavaScript Servers like Node.js. You can learn Node.js from this book - Node.js in Action.
Instead of using Razor to render pages in ASP.Net MVC, you can use plain HTML and CSS and using JQuery frameworks like KnockOutJs, AngularJs etc. Before you get on to this JavaScript frameworks, its better you refresh/learn your knowledge in JQuery thorugh JQuery in Action.
Having your frontend and middle tier both in JavaScript, removes the complete dependency of ASP.Net MVC and C#. At the same time, even if you Middle Tier (Server) is built with IIS and ASP.Net MVC combination, you can still use JavaScript frameworks to render frontend.
As mentioned above if you want to get started with Middle tier in ASP.Net + IIS combination, C# must be learned (definitely it will not demand in-depth knowledge, but you should get some experiences in concepts like LINQ etc.,). To learn C#, get this book - C# 4.0 Unleashed.
As you just got started, you can go with ASP.Net MVC + C# combination, and then slowly look into other options as I mentioned above.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have some experience in the three technologies, MVC, Web API, and AngularJS.
But I used MVC + jQuery alone, and Web API + AngularJS alone.
I found some articles about mixing MVC + AngularJS, but actually I didn't get the point: why do I need to mix them?
So my question now:
- What the pros and cons of mixing "MVC + AngularJS" over "Web API + AngularJS"
Edit: How to get the best of all worlds by mixing MVC +Angular? Or by using Web API +Angular I will not miss anything (which is what I think is the case)? Or what will I miss from MVC if I decided to go for Web API + Angular alone, especially when I am targeting SPA?
The main advantage of using MVC + Angular over Web API + Angular is that your server can directly manipulate the html markup within a view before sending it to the client. In the case of Web API, the server only produces a json serialized model and the view is fully Angular's concern.
Another reason to prefer the MVC approach would be if you do not wish to make use of the full range of Angular capabilities. For example, you might choose to use MVC for routing rather than the Angular route provider.
A disadvantage of the MVC + Angular approach is that your html markup will contain mixed angular and razor code. This will probably make it less readable and any person working on it will have to be able to work with both languages.
Also, if you end up using only a small subset of angular, it might be a good indication that you could have used a simpler javascript framework instead. For example, if you only use model binding, you could use Knockout.
Finally, you might consider using both MVC and Web API along with Angular in an effort to get the best of both worlds. You could for example use MVC views for SEO related markup and use Web API for exposing your model.
I am not sure questions like this have correct answer cause most times used technologies are bound to specific business requirements.
If you are developing back-office web application, accessible only for registered users(or small group of people), using WebAPI + Angular increases overall user experience in terms of speed, performance and responsiveness.
If you are developing a website which is dedicated mostly for 'guest users', needs SEO, needs to be indexed, has complex usability requirements etc. you should forget about whole cool stuff connected with Single-Page-Application(I believe most WebAPI + Angular apps) and switch to tools which enables you to fulfill specific needs.
I don't think you should consider differences between MVC + Angular vs WebAPI + Angular - the question is to use Angular in addition to MVC + jQuery app. If you have a lot of logic in your views(not business logic of course) and want to avoid binding data to whole bunch of jQuery objects, require Angular and make your life easier. Angular core doesn't have any routing functionality so saying that it can be used only with SPA/SPI application is a bit stupid.
For most of my projects I use jQuery to manipulate DOM and Angular to manipulate data.
You could indeed go for just WebAPI + AngularJS. If you start building from scratch, there's no need for MVC. You can just serve up a static index.html that fires up your AngularJS application and take it from there.
I've done projects like this in the past, but also have done project where we also decided to have an MVC app with AngularJS and WebAPi. With that we created several SPA's within the webapp. I think I've heard the term 'pockets of SPA' somewhere probably in .NET Rocks!.
So in case you need to display static data, just quickly throw something together in MVC. If there's a page that uses a lot of user-interaction, serve it up with a simple controller + view and hook up all the behavior through AngularJS and WebApi.
In short: it allows you to use 'best of both worlds' approach, where you can quickly display static data using MVC, and leverage AngularJS in case you have a very interactive page.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
i got a project where i must create à web application based on ASP.NET (C#), i need to generate dynamic statistic into a dashboard, the data is extracted from the database. the user can export to XML or CSV file. My database is on SQLserver express 2014 and i m using visual studio 2013.
Looking for advice, what sort of technology to study .
thanks.
Dali, you haven't mentioned if you need to use MVC or WebPages for your project so I will assume it's MVC. However, you can apply the same steps to WebPages with slight modifications.
There are MANY ways to build a dashboard in ASP.Net. Each has its own pros and cons. Please, use your own judgement. This list is nowhere near complete so I would recommend to search possible options online.
1. SSRS Dashboard
Many developers think it's an outdated technology, and, while I agree with them, I still think it's worth to learn if you're trying to implement Reports repository with basic functionality (daily snapshots, parameter filtering, report scheduling). SSRS supports different formats like Excel, HTML, XML, PDF. It's easy to learn and very intuitive. It uses Visual Basic for scripting, and can be easily integrated in .ASPX web pages.
Take a look at some examples.
2. R + MVC
This is a good option for the statistical dashboard. I personally have no experience using R so I cannot tell for sure if it's a viable option in your case. However, it's something to consider when you do your research. Here is a good example to get an idea.
3. JavaScript Chart Library + MVC
Here is good a example. For the JavaScript library, you can use either D3 or HighCharts. Both are great and powerful. Both can be easily integrated with .Net framework. Also, this option is recommended if you already know the JavaScript. There is no need to learn anything else.
4. AnjularJS (or any other JS framework) + MVC (or RESTful API)
This one is my favorite because it provides a lot of room for customization and is flexible enough to satisfy your client needs. Some developers avoid using MVC and replace it with WebAPI (or even SignalR). This also a great solution and allows you to reuse the code if you decide to build a public API based on your dashboard data in real time. Here is what I'm talking about.
P.S. In all these options, SQL Server is used as a main data storage that is why I decided not to include it everywhere. Since you are a .Net developer, it's an obvious choice that you stick with SQL Server, in my opinion.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am new to the asp MVC programming. Since you can use jQuery/JavaScript code in the View, it seems to me you even can rarely put c# code in the Model/controller. This means most of the business logic is done by jQuery only, and this makes the website looks like a pure JavaScript coded project. If this is true, what's the deal to use C# to code in MVC framework?
If you think c# is easy to be maintained and developed, then how much code should be developed in c# compared with JavaScript in MVC framework? And in what situations should we use c# code in Model/controller rather than JavaScript in View?
Besides, what's the advantages of using asp MVC to develop websites compare with pure jQuery/jQuery QI developed websites?
jQuery/JavaScript in the view will run client-side and will not have access to server-side resources (unless it uses AJAX to retrieve those). C# code is server-side code. One is not a substitute for the other - instead they're complementary to each other.
Business logic in client-side may not be prudent (depends on your application and requirements) because:
you may not want to expose your business logic to clientside as it can be viewed.
it may create significant security gap if exposed.
malicious client can manipulate clientside code and cause code to run with a different logic (some pricing attacks were done in that way in the past).
and a few other reasons.
JavaScript is fast. That's the simple way of answering the advantages to that.
You shouldn't really put any C# code in the views, besides accessing the model and looping through to display results.
When you can, your business logic should work things out, and store them in view models.
Whatever is built in MVC really can be built in JavaScript. C# can give you access to some great libraries such as NewtonJson and LINQ (my favourite).
I use the C# primarily for accessing the database for which we use Entity Framework and performing what calculations where the results can be loaded in a view model.
MVC can quickly offer you ways to add authorisation to different areas of your website, roles etc.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
Background
A year ago I had to learn PHP in school, I already knew ActionScript3 so it wasn't that difficult, and together with a friend of mine we were the first 2 of our school to learn ourselves OOP in PHP.
It wasn't required but we thought it was important.
Last year I started learning C# and ASP.NET, but I'm far from pro in C# and ASP.NET, I did do some projects for myself, just for educational purposes.
Now a few days ago I started an internship (which should take 6 months) But the company still works with ASP Classic and thus VBScript.
Question
Is it worth having learned ASP.NET and C# last year, start ASP Classic and VBScript now for 6 months and probably after that continue in ASP.NET and C#?
I would like some opinions about this, because I don't know whether I should stay and do ASP Classic, or go and look for another internship where I can do ASP.NET.
Avoid ASP classic. It will reinforce bad programming practices. ASP.NET is only as "pre-made" as you allow it to be. If you want to learn, do not use the drag-and-drop designer; write all your HTML by hand in the VS editor. This will make you a far more versatile web developer, and will also prevent VS from generating "bloat" in your pages. I would also encourage you to explore ASP.NET MVC, because the WebForms model has many complications that MVC avoids.
If you can, look for another internship. I politely, but firmly disagree with your boss.
I don't see a point in learning ASP classic unless you are getting paid to do it. In the case of an internship, the experience gained outweighs the time spent using an older technology.
I wouldn't try using ASP classic in any of my future projects, but you should be fine learning it for your internship.
Also, if you can get a job working in something newer that will help you even more in the future, I'd go with that. Sometimes that's not an option though and you're stuck working with something old.
I think your boss is wrong with what he said, and I don't know why they haven't tried to upgrade over the last decade. While this won't necessarily hurt your career, it definitely won't help it on any significant level (except for the experience).
VBScript will actually be moderately beneficial to know in the future since a lot of systems automation scripts are written in it. This will also help with automating tasks for Microsoft Office, etc.
Get the job, get the paycheck, and move on when you can.
Most ASP work is maintenance these days. If a company is doing active new development in ASP, they should have a pretty compelling reason.
Also, your boss's remark is nonsense.
I'd say you should should avoid it if you can, and continue with ASP.NET (or something else with a pulse). And I say this as someone who started his career in FoxPro for DOS.
I say it can't be a nuisance. ASP will teach you some older technologies, not to say philosophy of doing things that could perhaps bring you on some other interesting paws with your new development. As a matter of fact, having worked with ASP for 6 months will grant you some knowledge which others can only speculate about.
Besides learning or improving your skills in ASP, working in this project you're mentionning might bring you some other aspects that could be worth learning. Any new experience is a step forward to new possibilities.
Learning ASP could at least simply teach you why in ASP.NET and MVC, things are done the way they are, and you'll perhaps better understand the foundations of the most commonly used aspects of these architectures or approach.
Furthermore, when a company will require a candidate that has a minimum of knowledge in ASP to migrate a system in ASP.NET, then should you be the guy? =P
Always look at what a new experience positively can bring you. Almost any new project can teach you new aspects of your work.
I hope this helps! =)
ASP Classic is a very old language. ASP.Net WebForms is much newer and in modern use at many companies. There is an even newer model (newer to the MS world) called ASP.NET MVC. This model shares some aspects in common with ASP Classic, but improves on that old paradigm in almost every way.
You never lose by learning something new, but I think you could get more bang for your buck sticking with newer technologies. Intern with someone using MVC (like StackOverflow) if you want to learn that model.
If you have an option on an internship that better fits what you want to learn, take that instead.
That said, learning more is usually a good thing. Do it, especially if it's only six months. Don't permanently set down roots in ASP Classic, though, because that's going to go away at some point; don't latch on to a train that's already going downhill.
If you know PHP, you already know ASP classic. Yeah, the languages are different, but the important thing (the page model, the lifecycle, what runs when) are the same. The rest is just details of how to call various things in the OS. Well, except that vbscript is kind of crippled.
Also, if they're doing work in ASP, that probably means they've got COM objects (most likely written in VB6) to either call or you'll have to write and deploy. That way lies PAIN.
If you're looking for a realistic work at most IT development jobs, this would actually sound reasonable - there's lots of shops stuck on old technologies. However, it's not going to be that useful on your resume.
He is right in a way - the ASP.NET WebForms model DOES create a huge abstraction over what's actually going on. But if you looked at ASP.NET MVC or another MVC framework like Monorail, you can get the raw HTTP story. But, again, you've done PHP so you've already seen it.
Don't be duped here's a fact: VBScript does not run on the CLR, ASP classic and old IIS are not running in the CLR with ASP.Net's code paths and handlers and huge stack of stuff that I was thoroughly confused by when I went from ASP3 to ASP.Net years ago.
Don't waste your time, what's under the covers in ASP.Net and it's entire design model is so thoroughly different from what's going on in classic ASP, you'll just confuse the whole issue.
In fact, screw all of this, learn wpf/silverlight/xaml and C#, if you can put two and two together with the xaml style of code behind you will have no trouble with asp.net when you need it (or classi asp for that matter), and you will be far more capable of keeping up with what's going on next, rather than starting the journey 10 years ago, it will take a long time for you to catch up to modern times that way.
To some really small extent, your boss is right. Learning classic ASP will help you understand how ASP.NET manages web concepts such as your page's viewstate property for example ; also it will force you to create your own gridview from scratch.
However, the .NET framework is really huge and it can take a fair amount of time to get to know it. A lot of ASP.NET controls helps you save precious time to concentrate on more important aspects of your application. I would prefer to look for an ASP.NET internship and learn ASP on your own if you want to know how some things were down the "old way", i.e. more than 10 years ago (classic ASP was launched by Microsoft in 1996 if I remember correctly).
There's two things I'd add to what's been said here already, though I won't repeat the well-made points in the other answers.
It's completely wrong to say that knowing ASP will give you information about what is under the hood when it comes to ASP.NET. At the level of the two frameworks, its much more likely for knowledge of ASP to misinform you about ASP.NET - some things that seem similar are actually different. At the level below that, you're better off forgetting about frameworks and languages and learning the details of HTTP (see RFC 2616) and then working out how it works in whatever framework you are using.
Also, the real meat in class ASP wasn't ASP itself (which really, is much simpler than ASP.NET) but in COM objects used with it (which can often get much more complicated than the .NET equivalent, esp. when factoring in having to deal with the much more complicated threading abstraction, lack of garbage collection and other things where .NET provides us with new or improved tools).
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am about to employ a new programmer for our ASP.NET MVC projects. I put a lot of weight in an interview as to just how much I like a candidate's attitude and how I see them working with, talking to and enjoying being part of the team, but on a more practical note I need to weedle out those who talk a good game from those who actually have ability to adapt and overcome programming problems day to day.
Can anyone suggest any good short questions/exercises (preferably in C#) to separate the smart candidates from the good talkers?
UPDATE - Many thanks to all who answered, I have chosen the most voted for in traditional StackOverlfow manner, but still thanks for all the other suggestions.
Which letter from MVC acronym should be responsible for performing the following features in online shop web application:
calculating the total amount to pay for items in cart (M)
build an html table of items to purchase (V)
redirecting not authenticated users to the page where they can enter billing information (C)
etc.
Questions Which may be asked in ASP.Net MVC Interview.
1- what is ASP.Net MVC?
2- What is Razor?
3- What is TDD?
4- What is BDD?
5- What is Dependency Injection (DI)?
6- What is ViewData and ViewBag?
7- In which assembly is the MVC framework defined?
8- What does Model, View and Controller represent in an MVC application?
9- What are the advantages of ASP.NET MVC?
10- Which approach provides better support for test driven development - ASP.NET MVC or ASP.NET Webforms?
11- Name of different return types of a controller action method?
12- What is the significance of NonActionAttribute?
13- Is it possible to share a view across multiple controllers?
14- What is the role of a controller in an MVC application?
15- Where are the routing rules defined in an asp.net MVC application?
16- What are the 3 segments of the default route, that is present in an ASP.NET MVC application?
17- ASP.NET MVC application, makes use of settings at 2 places for routing to work correctly. What are these 2 places?
18- What is the adavantage of using ASP.NET routing?
19- What are the 3 things that are needed to specify a route?
20- What is the use of the following default route?
21- What is the difference between adding routes, to a webforms application and to an mvc application?
22- How do you handle variable number of segments in a route definition?
23- What are the 2 ways of adding constraints to a route?
24- Give 2 examples for scenarios when routing is not applied?
25- What is the use of action filters in an MVC application?
26- If I have multiple filters impleted, what is the order in which these filters get executed?
27- What are the different types of filters, in an asp.net mvc application?
28-Give an example for Authorization filters in an asp.net mvc application?
29- Which filter executes first in an asp.net mvc application?
30- What are the levels at which filters can be applied in an asp.net mvc application?
31- Is it possible to create a custom filter?
32- What filters are executed in the end?
33- Is it possible to cancel filter execution?
34- What type of filter does OutputCacheAttribute class represents?
35- What are the 2 popular asp.net mvc view engines?
36- What symbol would you use to denote, the start of a code block in razor views?
37-What symbol would you use to denote, the start of a code block in aspx views?
38- In razor syntax, what is the escape sequence character for # symbol?
39- When using razor views, do you have to take any special steps to proctect your asp.net mvc application from cross site scripting (XSS) attacks?
40- What is asp.net master pages equivalent, when using razor views?
41- What are sections?
42- What are the file extensions for razor views?
43- How do you specify comments using razor syntax?
44-What's the deal with values parameter in ASP.NET MVC?
45- What website hosting is good for ASP.NET MVC?
46- What is Area in Asp.Net MVC projects and how to implement area in ASP.Net Projects/
47- How to Use Session in ASP.Net mVC Projects?
48- How to persist data from one page to another page in ASP.Net application?
49- What is Tempdata?
50- What is JSON?
51-What is Lambda Expression?
First things first. Do they even know what MVC. Not just the TLA (three letter acronym) but can they describe it to you. Then what are the benefits. Also it doesn't hurt to ask them their opinion on it. It is good to know if they even like MVC frameworks.
Next, ask them if they have used any other MVC frameworks. Struts, Spring MVC, Zend or anything like that.
Ask them if they know when a session starts, the general state problem on the net etc etc.
Also a little bit of database. Ask them if they have any experience with database persistence layers.
Then just because you can ask a hard technical question, ask them to write a function that compares two binary trees both in value and structure to see if they are identicial.
Any one who reads a good MVC book or MVC 101 just before the interview can pretty much answer questions like what is MVC, describe it etc.. A sure shot way of determining if they have any working knowledge of MVC is to ask them, to lay out steps in order of how they would approach a web application using MVC. For example : Do they say, they will lay out models first? or views? and why? Do they work on Controllers first? just basic flow of a typical application. A candidate who describes this process in order and gives reasons to why it is the way it is, etc.. will be a winner you are looking for.
What is MVC?
Are you hiring a contractor for a short term project?
If the answer is no, I don't think MVC should really factor into the scenario. You should almost never expect a non hired-gun employee to just drop in and be productive. Truthfully, MVC isn't exactly a difficult learning curve. If you are hiring someone for the long term, and their first project just happens to be an MVC site, I think you are much better served judging their general aptitude, not so much a specific technology.
Instead, see what they understand of design patterns. MVC isnt exactly a new methodology. If the person is able to comprehend SOC, they should easily be able to learn the specifics of MVC. Hell, they probably could learn it on the fly.
Ask them to make a couple of substantial (but simple) changes to an existing MVC site.
This will allow you to watch how familiar they are with the organization of an MVC site. If you ask them to make an HTML change, do they go straight to the Views folder? If your change is in business logic, do they go straight to the controller action?
Sounds a bit obvious, I realize. But if they hesitate with these things, it means they haven't actually spent much time in MVC. You're testing for speed, really.
tell him to draw the flow of the ASP.NET MVC model on the writeboard
It is funny. I asked a close question just the other day. Check out if you find something useful there.
Can asking a developer whether he prefers WebForms or MVC be a good indicator of his proficiency?
I think the best option is not necessarily in a question, but in their portfolio. Take a look at an application they have built and question them directly on the application. Why this, why that? That way you can get a good understanding on the way they develop. Hopefully they understand the framework and the separation of concerns.
You can ask them: How Asp.net MVC Is helpful in making Search Engine friendly websites?
How Routings work in .net MVC?, What is the role of ViewEngine in asp.net, can we use customize viewengine if yes then how? How can we make controller classes without suffixing "Contrller" in the class name?
I use timer in datalist for countdown and its value display in label.
But my question is its not proper update time in datalist and when I refresh page so its get update