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 1 year ago.
Improve this question
I would like to know your experience with ASP.NET webparts as a reusable component in your website.
How useful did you find it? Did you find any serious issues with it? Would you recommend it using in any asp.net project?
Any best practices or tips you would like to highlight with respect to this.
Would you recommend using webparts as part of the asp.net portal design or would our center your design around our good old UserControl as the foundation.
This input would help me make my decision for an asp.net application that I am developing.
In case you require more clarification please do leave comments.
Advantages of WebParts over UserControls:
Support for user editable properties and personalization built in
Customizable Editor Parts
Customizable standard WebPart menus
Drag'n'Drop WebParts between WebPartZones
Support for connections between WebParts, useful for master/detail views, filters, and more
Can load UserControls
Disadvantages:
Higher Resource Usage
Visual Studio currently does not have designer support for WebParts
Like ocdecio mentioned, ASP.NET MVC would probably be a better choice nowadays, at least outside of the SharePoint world, where WebParts are very important.
EDIT:
For an overview of ASP.NET 2.0 WebParts, you may want to look at:
Using WebParts in ASP.Net 2.0 and
Personalize Your Portal with User Controls and Custom Web Parts
I personally wouldn't recommend WebParts for your application unless you are going to go full-blown into the webparts portal paradigm. I played around with them sparingly and it just doesn't feel like it would be as effective as designing your own pieces.
In my experience web parts are useful to create content for SharePoint. But now with ASP.NET MVC I'm not sure they will be a good choice for a standard ASP.NET application.
I agree with TheTXI...like a lot of ASP.NET technologies, you aren't really going to get much benefit from Web Parts unless you buy into the model 100%.
But aside from that, we had some technical issues as well, mainly related to cross-browser UI rendering problems. These might have been fixed in recent releases, I don't know: we ended up rolling our own solution.
ASP.NET MVC is getting so much traction. It is literally blow everything else out of the water. I would recommend look into that first. Sharepoint probably will incorporate MVC very soon.
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 an web site built in ASP.NET. It is a business website that works with a lot of data.
I had a lot of problems, especially of speed and effectiveness, so I did what I can with ajax, and speed greatly improved.
I wonder if I should switch the web site to ASP.NET MVC?
I don't know ASP.NET MVC very deeply, so I want to know if I should invest in it, the main question is: Is ASP.NET MVC faster and more effective than regular ASP.NET?
I believe that ASP.NET MVC is (if not, already has) becoming the mainstream way to develop websites in using the ASP.NET stack. There is a lot less emphasis on ASP.NET WebForms in the last few years, which hints that MVC is the sensible choice for starting new projects (Note: WebForms is still a popular choice for some devs though, I'm not saying don't use it ever. There's still a place for it.)
Regards migrating existing ASP.NET WebForms apps, I would be a little cautious. Don't switch to another technology unless you have a very, very good reason for doing so. Depending of factors such as the amount of code, the design, it could take a lot of effort to convert an ASP.NET WebForms project to ASP.NET MVC.
In your situation you mention performance issues, which made you consider moving to ASP.NET MVC. I would look more into why your site is not performing as you would like. Use a profiler to measure which code paths are taking the longest ot execute. There are plenty of sites built using ASP.NET WebForms which perform to high-scale, so I would not make the mistake of moving to another technology in order to solve a performance problem.
It depends on where your current issues are.
Should you learn MVC - definitely.
Should you write new applications in MVC - sure.
Should you migrate old applications - depends.
What's the architecture of the current application?
How much time/resources do you have to allocate to a rewrite vs fire-fighting the existing app?
Is there a clear data or middle tier or is the data access built into each page code behind? Many applications are written so that the front-end can be swapped easily or called from other applications (eg via an API) but many webforms applications (not all) are written without these considerations and so it wouldn't be a swap out but a complete rewrite of the application.
What are the current issues other than "it's a bit slow"? For example I've seen an app that loaded the entire data model into memory for each page - simply changing the front-end would make no difference in this case as the cause of slowness was the data loading. Changing the architecture to load only what was needed significantly increased the speed.
The improvements you can get from using MVC aren't necessarily the business level ones you might expect. There are plenty of sites that go into this in more details, here's some to get you going:
MVC generates (much) cleaner HTML in the output - so pages are easier to develop/maintain and easier for developing UI interactions in javascript.
MVC has a much improved pipeline which can be hooked into, eg for adding action filters.
IoC/DI is hugely easier in MVC
Separates the model/controller code from the view html
Your application users won't care about any of these.
I have the same situation with one of my clients and after learning the MEAN stack and working with another company who made the transition to Nancy. I would recommend doing a REST API with Nancy and a pure front end with Angular or another Javascript front end. This will allow much faster response and flexibility down the road. Plus it will give you more flexibilty if you ever want to expose your API to other apps.
I tried to move from Web Forms to MVC and it was not very easy for me at the time.
You can use Asp.net Web Forms, with more ajax and less post backs and less view state usage if you do not want to move to asp.net mvc.
Asp.net MVC on other hand is very good with light wight pages and capabilities to blend in with client side ajax based solutions. And its architecture supports scale ability.
I think you should definitely take the time to learn MVC, as it is becoming a more marketable skill and future projects are more likely to call for it.
With respect to being faster and more effective, it is somewhat. First off, WebForms have a lot of overhead in order to have this windows-forms-like behavior (which, frankly, has never been a perfect fit for web pages). Second, MVC tends to render HTML that is much cleaner without the view state or long IDs. So those two items can make it faster. (Of course, if you are having speed issues you also need to look hard at your host server.)
With respect to rewriting your current project to use MVC, that's a more difficult question that only you can answer. WebForms still work and will probably be supported by Visual Studio for many years to come. Depending on your project, rewriting it can be a costly task. So you'll need to decide if it's worth it. That said, I hope to rewrite all my webforms websites using MVC as time allows, although part of the reason is just to update the look and make them more responsive to mobile devices.
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
I am in the process of architecting an application. It will be a large, enterprise class web application. Thousands of users could upload files, search large number of blog entries with chat functionality and such. It will also have mobile interface. It should be highly testable, scalable and flexible.
I have narrowed it down to three environments: pure play ASP.NET, pure play DotNetNuke (DNN) and a combination of ASP.NET and DNN. To keep this very brief, here are some 'for' and 'against' on each of the options:
ASP.NET:
for: highly scalable, supports patterns like MVC, testable, consistent architecture.
against: long development time.
DotNetNuke:
for: short development time, large number of existing functional modules and skins.
against: architecture is sealed, can't support MVC, unit testing is difficult, inconsistent modules/skins, potential upgrade issues, user experience is inconsistent due to disparate modules from different vendors, poor documentation.
So, the questions are: what do you think? Has anyone switched from DNN to ASP.NET (and, vice versa)? Have you objectively evaluated these two and what did you choose?
Highly appreciate your help. Thanks.
henry.
DNN is ASP.NET, just with a lot of the work done for you.
Also, please remember that just because raw ASP.NET has the potential to be more scalable, doesn't mean that you are actually going to built it to be more scalable. Or that you will built it well in the first place.
It comes down to a trade off between control and resouces/talent. If you have many very talented developers (like, top-10% talent), a lot of time, clearly defined requirements for your site, and consumers who will be patient while you build out the infrastruture, by all means go with raw ASP.NET.
However, if you need to build it quickly and need to be flexible, or you have limited development resources, you might have to sacrifice some of that control and unit testing and potential performance (again, the "potential" part is key here).
Based on what you are looking for, I'd recommend you go with a platform like DNN, or a million other ones line SiteFinity or Umbraco or Orchard or something like that (some of them like Umbraco give you MVC too). It gives you a lot of the infrastructure and plumbing common among a lot of sites, probably done better than you are going to do it, so that you can focus your resources on the truly unique aspects of your application.
Just stay away from SharePoint. It's evil.
I've built raw ASP.NET sites for really customized applications, which was good because I didn't need a lot of plumbing and wanted really unique funcitonality through the site. But then I've built social networking sites with DNN, which worked well because it had packaged components for blogs and forums and chat and all that stuff, plus allowed for easy skinning. I designed another application for a customer that they wanted to have a lot of custom functionality, but they also wanted to updated a lot of content and internatalized it, so we used a Umbraco for that. And right now I have a ASP.NET app that works great, but I want to add in some social features, so I'm going plug in a Umbraco or DNN site that integrates with it to host the more common social components.
I would definitely recommend DNN based on your very limited list of needed features. You can always build a custom module to meet your exact needs or modify an existing open source module as needed. You can use the MVP approach in your module development to improve the testability.
Have you considered the Umbraco CMS? It is built on .Net (v5 is MVC3). It is open source and a very robust and well supported application. It has been used for the asp.net site for example.
It has a very short development time, many modules, extremely flexible and I find it very easy to extend. For example, I rolled my own workflow, event driven publishing and have created multiple custom administration sections for managing bespoke functionality external to Umbraco.
You can use XSLT, Usercontrols or Razor to create template modules.
It has a fantastic community too.
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 have worked with window based application in .net. But I want to learn asp.net. So I want to develop one website such that developing that website I can get best and better knowledge of asp.net. And developing that website all most important concepts and controls are covered in that website. And in that website all the concept should be covered which are used in the website which are developed in today's time. So what should the website which I can develop to learn asp.net best and after developing that website I can have better knowledge of asp.net ? I have never develop a website. And which are the features that should be there in that website ? And that features are normally seen in today's website.And what are the books which I should refer ?
Update: Which are the other technologies I should also learn like javascript,css to develop better website of this time?
Make sure first which flavor of ASP.NET you want to learn:
ASP.NET webforms
ASP.NET Dynamic data
ASP.NET MVC
There are for the above mentioned technologies great tutorials which let you make up a complete site and in the mean time learn a ton from it to be found here http://www.asp.net/web-forms/fundamentals and Nerddinner.
Update: I forgot to mention the Music store sample.
Grz, Kris.
One possibility would be to pick a fairly simple database that you know well (such as Northwind or pubs) and make a web site for displaying and updating its data. This will get you familiar with data display controls such as GridView and DetailsView, and with ASP.NET databinding. You'll get to play with events and with the ASP.NET page life cycle. When you create a data entry form, you can learn ASP.NET's validators.
Once you've done that, you'll have a good foundation in ASP.NET. Most important, have fun!
Build your own blog.
Create a website that geeks from all over the world can use to meet for lunch. You could call it GeekLunch.com ;-)
I'd second XIII's answer on learning to distinguish between webforms and MVC, but if you're starting from scratch, it would be helpful to know the basics of both, to better decide which you like.
I prefer getting a big application and then reverse engineering, some prefer starting from scratch.
You already have Nerddinner for a sample MVC app.
Here are some sample webform apps:
http://forums.asp.net/default.aspx/2
They're a little dated, but the fundamentals are there.
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
How much of ASP.NET or C# is required for Sharepoint development? Do you need experience with things like developing N layered web applications, design patterns, test driven development, strong SQL background etc?
I hear that Sharepoint development is different from enterprise applications thats typically built with technologies like ASP.NET.
If I know my basics in .NET, C# and have some experience with ASP.NET and have good understanding of things like Page lifecycle in webforms, web parts, Master pages etc, then am I ready for Sharepoint?
Also, is Infopath very heavily used in Sharepoint development?
If you already know ASP.NET than you are ready for SharePoint development. Get familiar with its SDK and other development concepts. SharePoint Dev Wiki might also be a good start.
A must have for new developers is to learn SharePoint from end user perspective. I am using this book to train the new guys. If you do not understand these concepts it might be hard to start coding.
It really depends on what you are wanting to achive, there are more than a few ways to develop something for SharePoint each requires different skills.
for example :
SharePoint exposes a number of webservices which you can use to complete a number of tasks.
A step up from that Sharepoint has a number of DLL's you can reference directly in order to access a more granular level of detail, but is more fiddly to work with.
Neither of these require any knowledge of ASP.NET but both work with sharepoint.
If you are planning on making a WebPart then yes ASP.NET knowlege is a big plus.
If you want to work with the Sharepoint workflows then you need knowlege of WF.
There is no one fit for developing sharepoint, which quite frankly makes it hard to hire people for it.
I guess it really depends on what you mean by SharePoint development. In my humble opinion you must learn what SharePoint provides out of the box in order not to reinvent the wheel all over again.
The object model, web services and how to deploy your work using solutions is something you have to pick up very quickly in order to be a good SharePoint developer.
As I am more of a consultant type when a developer I can't say whether you should know SQL and AD but I guess it won't hurt a bit.
If you are fluent in C# it might also be a good idea to have a closer look at PowerShell as it sure looks like Microsoft will integrate PowerShell in all server products including SharePoint 2010.
I don't think it's much different, really. I've been learning both at the same time to some success. Of course, ASP.NET and SharePoint are just different things, but SharePoint is built on ASP.NET, so to the extent you understand ASP.NET, you also understand SharePoint.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
A friend of mine's company is considering using either Java or ASP.NET for web development. Currently they do all development in Delphi. As they have no experience in .NET they have asked me to come down and give a 1 hour overview of .NET (mainly ASP.NET). What topics should I cover?
I was hired by a Delphi product company as a senior .NET developer with the goal of moving their applications from Delphi client server/desktop apps to web based ASP.NET.
I no longer work there but remain friends with an experienced Delphi programmer who is still there.
The biggest concern you have is ensuring that these Delphi programmers start to get their heads around the fundamental shift from desktop client server apps (very common using Delphi) to web based stateless, cross browser UI ASP.NET.
My friend from the previous company has said that the company is still struggling along with minimal .NET progress after 2 years. Technologies such as XML, Javascript, AJax and even fundamentals such as the .NET CLR and assemblies are still a bit of a mystery to the team.
In summary, if I was you I would be focusing entirely on bigger concepts such as the stateless nature of the web and how ASP.NET can solve it, and the benefits and drawbacks of thin client software (ie ease of deployment, browser incompatibilies, less rich user interfaces etc.)
Other than the other suggestions you are no doubt going to get, I'd explain to them that there is a Delphi for .NET which would ease the pain of change a little. So basically they are using Delphi as the language but the underpinnings of .NET.
You might want to talk to your regional developer evangelist. I'm sure they have a stack of bullet points for instances just like this.
You can find your local evangelist(s) at: http://msdn.microsoft.com/en-us/bb905078.aspx
There is so much to cover!
ASP.Net is better for Web Development though, It is designed for it. Take into account the following features:
Membership Provider
ASP.Net controls
The Whole Page and Code-Behind
system and don't forget ASP.Net MVC
ASP.Net Ajax and support for jQuery
ASP.Net peforms well generally, not
sure about Java though
Use .Net Librarys and languages, C#
or VB.Net and so on.
Many Many more
I would cover those, the way ASP.Net is designed as a much more complete package for web development than Java is. I also think the connection between pages and code is better in ASP.Net than using PHP/Java or how ever they would do it.
Can also switch to Winforms or other MS technologies relatively easily.
If they do want to explore C# the transition is pretty easy. Just remind them that Anders Hejlsberg was the Chief Architect of Delphi and C#.
http://en.wikipedia.org/wiki/Anders_Hejlsberg
I was a VB.net guy, but I took a one year Delphi gig a few years back. When I came back to .Net I was using C# and the transition was very easy.
Not sure if you're planning to give more of an architectural view or a more of hands-on experience (say, build a demo Hello World ASP.NET site), but anyway, here are some topics that might get them interested:
.NET covers many languages (C#, VB.NET, IronPython, IronRuby, Delphi.NET), even on the same solution; that means the developers can reuse some of their previous knowledge;
To support the item above, an overview of the CLR, IL etc might be useful, maybe comparing it a bit with how Java works
Visual Studio.NET is a great IDE, and there are lots of tools for it that support the latest best practices (TDD, IoC etc), including OSS
Could be also nice to mention Mono (maybe show them the same app running on Windows, MAc and Linux?) and ASP.NET MVC, in case your teammates have some knowledge of what MVC, RoR are about
I will think some more... :)
First off I'd give them a tour of creating a simple web app using Visual Studio and whatever the equivalent would be in Java. Seeing it done speaks a lot more than just giving the theory.