Giter VIP home page Giter VIP logo

mvc's Introduction

Kentico MVC

Build status Q&As

Kentico 11 brings support for the development of ASP.NET MVC 5 applications. This repository contains source code for Kentico integration packages and a sample Dancing Goat web application that demonstrates all supported features related to the MVC development with Kentico. To find out more about the design of the sample web application, see the How the Dancing Goat web application works page in the Wiki. The page contains explanations of the decisions made when creating the application and can help you when building your own projects.

Repository structure

The repository consists of projects representing integration packages specified in the Kentico documentation.

There are also the DancingGoat and LearningKit projects. Both are sample ASP.NET MVC 5 applications built using Kentico. The Dancing Goat site represents a real-life website suitable for exploring the full MVC experience.

The Learning Kit is a functional website for learning purposes. It demonstrates how to implement various Kentico features on MVC websites in the form of code snippets, which you can run if you connect the website to a Kentico database. Also, the project source code is used in documentation examples.

Accessing older versions of the repository

You can find the MVC repository for older versions of Kentico under the Releases section (open the corresponding commit for the required version and click Browse files).

Quick links:

Running sample sites

Requirements

  • IIS 7.5+
  • Microsoft .NET Framework 4.6/4.7
  • Visual Studio 2015 Update 1+

Instructions – Dancing Goat

  1. Install Kentico.
  2. Import the Dancing Goat site from the webtemplates/DancingGoatMvc.zip import package.
  3. Enable web farms in automatic mode.
  4. Rename the src\DancingGoat\ConnectionStrings.config.template file to ConnectionStrings.config.
  5. Rename the src\DancingGoat\AppSettings.config.template file to AppSettings.config.
  6. Copy the CMSConnectionString connection string from the Kentico web.config file to the src\DancingGoat\ConnectionStrings.config file.
  7. Copy the CMSHashStringSalt app setting from the Kentico web.config file to the src\DancingGoat\AppSettings.config file.
  8. Open the KenticoMvc solution in Visual Studio and run the src\Dancing Goat web application.
  9. (Optional) Open the Smart search application and rebuild the Dancing Goat MVC search index.

Note: The initial build can take a little longer as it needs to restore NuGet packages.

Instructions – Learning Kit

  1. Install Kentico.
  2. Create a new site in the Sites application based on the MVC Blank Site web template.
  3. Enable web farms in automatic mode.
  4. Rename the samples\LearningKit\ConnectionStrings.config.template file to ConnectionStrings.config.
  5. Rename the samples\LearningKit\AppSettings.config.template file to AppSettings.config.
  6. Copy the CMSConnectionString connection string from the Kentico web.config file to the samples\LearningKit\ConnectionStrings.config file.
  7. Copy the CMSHashStringSalt app setting from the Kentico web.config file to the samples\LearningKit\AppSettings.config file.
  8. Open the KenticoMvc solution in Visual Studio and run the samples\LearningKit web application.

Feedback & Contributing

Check out the contributing page to see the best places to file issues, start discussions and begin contributing.

mvc's People

Contributors

alesk-kentico avatar cek-cek avatar davidbkentico avatar kenticopavelv avatar ladislavmargai avatar makma avatar marecekf avatar michalvanzura avatar ondram-kentico avatar ondrejsevcik avatar petrinecp avatar petrsvihlik avatar radkakop avatar rpribyl avatar skurekjakub avatar standasojka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mvc's Issues

Models aren't easy to extend with custom columns

For example, if a new column is added to the CustomerInfo class (i.e. CustomerTitle) then there is no way of using the Kentico.Ecommerce package to access those new columns and expose them through the Customer model.

It could be useful to amend the models to set the "OriginalCustomer" value to be a protected property which can be access by classes inheriting from Customer. This would allow us to create a custom Customer model which includes our extra columns.

This pattern could be applied to the other models in the various packages.

Kentico 12

Kentico 12 sample code for dancing got can i get because earlier version not working in kentico 12

Convert from project.json to VS2017 SDK style projects

Motivation

project.json is deprecated and SDK style projects are supported in .NET Standard, .NET Core and .NET Framework projects.

SDK style projects also provide

  • The best Nuget package dependency resolution (the transitive dependency tree can be seen in VS references UI)
  • Easier access to *.csproj files in VS (no need to unload, fewer merge conflicts through file globbing)
  • PackageReference Nuget package manifest syntax (the recommended approach going forward)
  • Global package store for users (faster package restore for common packages)

This could make it easier for developers external to Kentico to contribute to this repository.

Proposed solution

Convert all the .csproj files in this repo to SDK project syntax

Additional context

There are tools to help with this conversion
https://github.com/hvanbakel/CsprojToVs2017
And Nate McMaster blogged about the process
https://natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/

Client caching for static content is broken when Preview is enabled

As soon as I enable the Preview module in an MVC site, client cache settings are completely ignored.

To reproduce:

  • Setup an MVC-only Kentico site using the Kentico Nuget packages
  • Setup application initialization as done in sample apps like Dancing Goat (App_Start\Application.cs)
  • Add an entry to the routing table to ignore static content
  • Now request a page and observe the headers on static content like /Content/Styles/Site.css
Cache-Control: private
  • setup client caching in web.config:
<staticContent>
       <clientCache cacheControlCustom="public" cacheControlMaxAge="1.00:00:00" cacheControlMode="UseMaxAge"/>
</staticContent>
  • The response headers should now include this:
Cache-Control: public,max-age=86400

But it doesn't.

  • Now disable the Preview module in App_Start\Application.cs

After that, caching works as expected for static content.

I've traced this back to line 59 in PreviewFeatureModule.cs.

context.Response.Cache.AddValidationCallback(ValidateCacheItem, null);

Commenting that line solves the issue. I'm not sure why that line is even there.
For static content, the event handler being registered is never hit.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.